1

私は夏のOOクラスの宿題をしていますが、2つのクラスを書く必要があります。1つはと呼ばれSale、もう1つはと呼ばれRegisterます。私は自分のSaleクラスを書きました。これが.hファイルです:

enum ItemType {BOOK, DVD, SOFTWARE, CREDIT};

class Sale
{
public:
    Sale();         // default constructor, 
            // sets numerical member data to 0

    void MakeSale(ItemType x, double amt);  

    ItemType Item();        // Returns the type of item in the sale
    double Price();     // Returns the price of the sale
    double Tax();       // Returns the amount of tax on the sale
    double Total();     // Returns the total price of the sale
    void Display();     // outputs sale info 

private:
    double price;   // price of item or amount of credit
    double tax;     // amount of sales tax 
    double total;   // final price once tax is added in.
    ItemType item;  // transaction type
};

クラスの場合、メンバーデータにオブジェクトRegisterの動的配列を含める必要があります。Saleベクトルクラスは使用できません。これはどのように行われますか?

これが私の「登録」です''.h '

class Register{
public:

Register(int ident, int amount);
~Register();
int GetID(){return identification;}
int GetAmount(){return amountMoney;}
void RingUpSale(ItemType item, int basePrice);
void ShowLast();
void ShowAll();
void Cancel();
int SalesTax(int n);

private:

int identification;
int amountMoney;

};
4

1 に答える 1

1

Registerクラスに必要なのは、Saleオブジェクトの配列と、売上がいくつ行われたかを記憶するためのアイテムカウンターだけです。

たとえば、レジ​​スタに10個のアイテムがある場合、これを行う必要があります。

int saleCount = 10;
Sale[] saleList = new Sale[saleCount];

配列を動的にするには、セール数が増えるたびに新しいセールアレイを作成し、saleList内のすべてのアイテムを新しいセールリストにコピーする必要があります。最後に、最後に新しいセールを追加します。

saleCount++;
Sale[] newSaleList = new Sale[saleCount];
//copy all the old sale items into the new list.
for (int i=0; i<saleList.length; i++){
  newSaleList[i] = saleList[i];
}
//add the new sale at the end of the new array
newSaleList[saleCount-1] = newSale;
//set the saleList array as the new array
saleList = newSaleList;
于 2012-06-22T03:28:53.367 に答える