SeeTee Temat założony przez niniejszego użytkownika |
Lista jednokierunkowa na podstawie UML i krótkiego polecenia » 2017-05-21 22:15:12 Witam, kompletnie nie mam pojęcia o co tutaj chodzi, na podstawie tego UML'a: http://imgur.com/a/OYl0l i tej krótkiej instrukcji: 1. Zdefiniowanie klas: CBaza, CWezel.
2. Dodawanie nowych produktow - najpierw dodajemy tylko zmienna typu int i pamietamy w polu wezel.indeks. CBaza db1; db1.Dodaj(5); db1.Dodaj(7); db1.Pokaz();
3. Tworzymy funkcje dodającą produkty (2 opcje) CBaza db1; CWarzywo w1; CProdukt w2 = new CWarzywo(); CProdukt p1;
db1.Dodaj(w1); // ta opcja lepsza bo nie wymaga alokacji pamieci od uzytkownika lub db1.Dodaj(w2);
---------- .. muszę wykonać program, mam już taki drobny szkielet (z błędami) ale on i tak jest zły: #include <iostream> #include <fstream> #include <string> #include <cstring> #include <conio.h> #include <cstring> #include <cstdlib> using namespace std;
class cProdukt { //friend class warzywo; // deklaracja przyja�ni, aby mo�liwy by� dost�p do p� privat w nowej klasie pochodnej protected: // zaprzyja�nienie zamienione na rozwi�zanie z polami protected int mLp; string mName; // nazwa produktu double mCount; // liczba produkt�w string mUnit; // jednostka miary double mPrize; // cena netto 1 sztuki double mVat; // warto�� podatku VAT public: cProdukt *next; cProdukt(); // konstruktor cProdukt(int Nlp, string Nname, double Ncount, string Nunit, double Nprize, double Nvat); // konstruktor void wypelnij(void); void pokaz(void); //virtual void pokaz(void); cProdukt(cProdukt &l); // konstruktor kopiujacy ~cProdukt(); // destruktor int pole_lp(void); void pole_lp(int); };
cProdukt::cProdukt(int Nlp, string Nname, double Ncount, string Nunit, double Nprize, double Nvat) { mLp=Nlp; mName=Nname; mCount=Ncount; mUnit=Nunit; mPrize=Nprize; mVat=Nvat; } cProdukt::cProdukt() { mLp = 0; }
cProdukt::cProdukt(cProdukt &l) { mLp=l.mLp; mName=l.mName; mCount=l.mCount; mUnit=l.mUnit; mPrize=l.mPrize; mVat=l.mVat; }
cProdukt::~cProdukt() { ; }
void cProdukt::wypelnij(void) { cout << "Podaj nazwe:\n"; cin >> mName; cout << "Podaj ilosc:\n"; cin >> mCount; cout << "Podaj jednostke miary:\n"; cin >> mUnit; cout << "Podaj cene:\n"; cin >> mPrize; // UWAGA obowi�zuje notacja z kropk� . cout << "Podaj stawke VAT:\n"; cin >> mVat;
} void cProdukt::pokaz(void) { cout << endl; cout << mLp << "\t"; cout << mName << "\t"; cout << mCount << "\t"; cout << mUnit << "\t"; cout << mPrize << "\t"; cout << mVat << endl; } int cProdukt::pole_lp(void) { return(mLp); } void cProdukt::pole_lp(int x) { mLp = x; } class cWezel {
};
class cBaza {
public: cProdukt *first; baza(); dodaj(int first); wyswietl(); usun(int); zapisz(); wczytaj();
};
void cBaza::dodaj(int x) { cProdukt *nowa = new cProdukt; } cBaza::cBaza() { first = 0; } /* class cWarzywo : public cProdukt { public: string mKolor; cWarzywo(); cWarzywo(int Nlp, string Nname, double Ncount, string Nunit, double Nprize, double Nvat, string Nkolor); void pokaz(void); }; cWarzywo::cWarzywo() { mKolor="nieznany"; } cWarzywo::cWarzywo(int Nlp, string Nname, double Ncount, string Nunit, double Nprize, double Nvat, string Nkolor) { mLp=Nlp; mName=Nname; mCount=Ncount; mUnit=Nunit; mPrize=Nprize; mVat=Nvat; mKolor=Nkolor; } void cWarzywo::pokaz(void) { cout << endl; cout << mLp << "\t"; cout << mName << "\t"; cout << mCount << "\t"; cout << mUnit << "\t"; cout << mPrize << "\t"; cout << mVat << "\t"; cout << mKolor << endl; } */ /* class cProcesor :public cProdukt { public: int mTaktowanie; string mProducent;
cProcesor(); cProcesor(int Nlp, string Nname, double Ncount, string Nunit, double Nprize, double Nvat, double Ntaktowanie, string Nproducent); void procesor (int, string, int, string, double, double, double, string ); void pokaz (void); };
cProcesor::cProcesor() { mTaktowanie=0; mProducent="nieznany"; } cProcesor::cProcesor(int Nlp, string Nname, double Ncount, string Nunit, double Nprize, double Nvat, double Ntaktowanie, string Nproducent) { mLp=Nlp; mName=Nname; mCount=Ncount; mUnit=Nunit; mPrize=Nprize; mVat=Nvat; mTaktowanie=Ntaktowanie; mProducent=Nproducent; } class cPamiec :public cProdukt { public: int mPojemnosc; string mProducent;
void pamiec(int, string, int, string, double, double, double, string); void pokaz(void);
}; cPamiec::cPamiec() { mPojemnosc=0; mProducent="nieznany"; } cPamiec::cPamiec(int Nlp, string Nname, double Ncount, string Nunit, double Nprize, double Nvat, double Npojemnosc, string Nprocesor) { mLp=Nlp; mName=Nname; mCount=Ncount; mUnit=Nunit; mPrize=Nprize; mVat=Nvat; mPojemnosc=Npojemnosc; mProducent=Nproducent; } */
int main(void) { cProdukt *wsk_produkt; cWarzywo *wsk_warzywo;
cWarzywo w1(2, "marchew", 100, "kg", 1.50, 0.07, "czerwony"); wsk_produkt = &w1; wsk_warzywo = &w1;
w1.pokaz(); wsk_produkt->pokaz(); wsk_warzywo->pokaz();
cBaza db1; db1.dodaj(5);
// Dynamiczne przydzielanie pamiecy cProdukt *p1 = new cProdukt; p1->pole_lp(6); cout << p1->pole_lp() << endl; delete p1; cProdukt *p2 = new cProdukt(5, "maslo", 10, "sztuk", 1.00, 0.07); p2->pokaz();
// Deklaracja statyczna cProdukt p3(4, "chleb", 10, "sztuk", 2.00, 0.07); cProdukt p4;
p3.pokaz(); p4.wypelnij(); p4.pokaz();
cout << p4.pole_lp(); p4.pole_lp(5); cout << p4.pole_lp();
system("PAUSE"); return(0); }
---- Czy mógłby mi ktoś wskazać o co w tym wszystkim chodzi, jakieś wskazówki itp.
|