Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Lista jednokierunkowa na podstawie UML i krótkiego polecenia

Ostatnio zmodyfikowano 2017-05-21 22:15
Autor Wiadomość
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. 
P-161399
« 1 »
  Strona 1 z 1