Ik probeer twee klassen te schrijven, Sale en Register, voor mijn OO-klas. Dit zijn de twee headers.
Verkoopkop:
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 (described below)
private:
double price; //price of item or amount of credit
double tax; //amount of sales tax (does not apply to credit)
double total; //final price once tax is added in.
ItemType item; //transaction type
};
Registreer header:
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;
int listSize;
int numSales;
Sale* sale;
};
In de klasse Register moet ik een dynamische array van Sale-objecten bevatten. Ik kan dit doen. Mijn probleem is met de functie RingUpSale() in 'Registreren'. Ik moet in staat zijn om toegang te krijgen tot de gegevens van de privé-leden van 'Sale' en deze te wijzigen vanuit die functie. Bijvoorbeeld:
sale[numSales]->item = item;
sale[numSales]->total = basePrice;//Gets an error
if(item == CREDIT){
sale[numSales]->tax = 0;//Gets an error
sale[numSales]->total = basePrice;//Gets an error
amountMoney -= basePrice;
}
else {
sale[numSales]->tax = 0.07*basePrice;//Gets an error
sale[numSales]->total = (0.07*basePrice)+basePrice;//Gets an error
amountMoney += basePrice;
}
Ik weet niet hoe ik deze toegang mogelijk moet maken. Misschien door overerving of vriendenstructuur?
En houd rekening met het ontwerp voordat je begint met het maken van huiswerk, dus er zijn idiote beperkingen. Een daarvan is dat ik de 'Sale.h' niet kan aanpassen aan wat ik heb geschreven. En ik kan alleen meer privé-functies toevoegen in de 'Register.h'.
Functiebeschrijving RingUpSale ():
- RingUpSale
Met deze functie kunnen het artikeltype en de basisprijs van een verkoop worden doorgegeven als parameters. Deze
functie zou de verkoop in de verkooplijst moeten opslaan, en het zou de hoeveelheid geld in de
kassa correct. Items die worden gekocht, voegen geld toe aan het register. Onthoudt dat
omzetbelasting moet worden toegevoegd aan de basisprijs van een verkocht item. Als het verkooptype CREDIT is, dan jij
moet het bedrag van het register aftrekken.
Dit ook:
- (Tip: houd er rekening mee dat u binnen het register een dynamische reeks Sale-objecten behoudt
betekent dat de meeste van deze functies deze array zullen gebruiken om hun werk te doen - en dat kunnen ze ook
een beroep doen op de leden van de Sale-klas).