//----------------------------------------------------------------------
//  SPECIFICATION FILE (supply.h)
//  This module exports an ADT for stationery store objects.
//----------------------------------------------------------------------
#ifndef SUPPLY_H
#define SUPPLY_H

class Supply {
public:
    void Increase( /* in */ int amt );
        // PRE:   Assigned(amt)
        // POST:  Quantity on hand increased by amt

    void Decrease( /* in */ int amt );
        // PRE:   Assigned(amt)
        // POST:  Quantity on hand decreased by amt

    void Reprice( /* in */ float newPrice );
        // PRE:   Assigned(newPrice)
        // POST:  Selling price is newPrice

    void Display() const;
        // POST: Item description, stock no., quantity, and price
        //       have been written to standard output

    Supply( /* in */ const char* description,
            /* in */ int         stockNumber, 
            /* in */ int         initQuantity,
            /* in */ float       initPrice    );
        // PRE:  All parameters assigned
        // POST: New object created, with private data initialized
        //       by the input parameters

    Supply( const Supply& otherSupply );
        // POST: New object created, with private data initialized
        //       by otherSupply's private data

    ~Supply();
        // POST: Object destroyed
private:
    char* descrip;
    long  stockNo;
    int   quant;
    float price;
};

#endif


