2012-06-22 4 views
1

여름 OO 클래스의 숙제를하고 있고 두 개의 클래스를 작성해야합니다. 하나는 Sale이고 다른 하나는 Register입니다. 내 Sale 클래스를 작성했습니다. 우리는 회원들의 데이터 Sale 객체의 동적 배열을 포함하는 데 필요한 Register 클래스객체의 동적 배열 Sans Vector 클래스

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 
}; 

: 여기에 .h 파일입니다. 벡터 클래스는 사용할 수 없습니다. 어떻게 이뤄지나요?

여기 내 '등록' '.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; 

}; 
+0

'벡터 클래스를 사용할 수 없습니다 ...', 이유는 무엇입니까? 아무튼, 요구 사항에 따라'new []'를 사용할 수 있습니다. – iammilind

+0

내 OO 클래스의 숙제는 벡터를 사용할 수 없다고합니다. 우리가 지금 할 수 있다면 ... –

답변

1

당신이 등록 클래스에 필요한 모든 판매 객체의 배열이며, 항목 카운터가 만든 얼마나 많은 매출을 기억합니다. 이 작업을 수행해야하는 등록 10 개 항목이 예를 들어

경우 :

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

새로운 판매 배열을 판매 개수가 증가 할 때마다 작성해야합니다 배열의 동적를 만들려면이, 판매 목록의 모든 항목을 새로운 판매 목록으로 복사하십시오. 마지막에 새 판매를 추가하십시오.

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; 
+0

고마워, 이건 내가 필요한거야. –

+2

실제로 배열을 확대 할 때마다 필요한 것보다 더 큰 배열을 만드는 것이 좋습니다. 이 방법으로 생각하면 배열 크기를 1 씩 늘린 다음 꽉 차면 모든 새 항목은 배열을 다시 빌드해야 함을 의미합니다. 그러나 크기가 10, 20, 30 등으로 배열 된 경우 10 개 항목을 추가 할 때마다 배열을 다시 작성하면됩니다. – MattS

+0

매트가 옳습니다. 더 효율적입니다. –