Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstring>
- #include <iostream>
- using namespace std;
- class Product
- {
- friend ostream& operator<< (ostream& levo, const Product& desno);
- private:
- int imeLen;
- char * ime;
- int cena;
- public:
- Product();
- Product(const char* _ime, int _cena);
- ~Product();
- Product(Product& p);
- Product& operator=(Product &p);
- const char* GetIme() const { return ime; };
- int GetCena() const { return cena; };
- bool operator== (const Product& desno);
- };
- Product::Product()
- {
- ime = NULL;
- cena = 0;
- }
- Product::Product(const char* _ime, int _cena)
- {
- imeLen = strlen(_ime);
- ime = new char[imeLen+1];
- strcpy(ime, _ime);
- cena = _cena;
- }
- Product::~Product()
- {
- delete[] ime;
- }
- Product::Product(Product &p)
- {
- imeLen = p.imeLen;
- ime = new char[imeLen+1];
- strcpy(ime, p.ime);
- cena = p.cena;
- }
- Product& Product::operator =(Product &p)
- {
- if (this == &p) return *this;
- imeLen = p.imeLen;
- delete[] this->ime;
- ime = new char[imeLen+1];
- strcpy(ime, p.ime);
- cena = p.cena;
- return *this;
- }
- bool Product::operator ==(const Product &desno)
- {
- if (this->cena != desno.cena)
- return false;
- if (strcmp(this->ime, desno.ime) != 0)
- return false;
- return true;
- }
- ostream& operator<< (ostream& levo, const Product& desno)
- {
- levo << desno.ime << ' ' << desno.cena << endl;
- return levo;
- }
- class Basket
- {
- private:
- Product * niza;
- int len;
- int elementi;
- Basket(Basket& b);
- Basket& operator=(Basket& desno);
- //bool ZgolemiNiza(int newLen);
- public:
- Basket(int _len=10);
- ~Basket();
- int GetElementi() { return elementi; }
- float Average();
- int Total();
- Basket& operator+=(Product& desno);
- };
- Basket::Basket(int _len)
- {
- len = _len;
- niza = new Product[10];
- elementi = 0;
- }
- Basket::~Basket()
- {
- delete[] niza;
- }
- Basket& Basket::operator +=(Product& desno)
- {
- if (elementi<len)
- {
- niza[elementi] = desno;
- elementi++;
- }
- return *this;
- }
- int Basket::Total()
- {
- int ret = 0;
- for (int i=0; i<elementi; i++)
- {
- ret+=niza[i].GetCena();
- }
- return ret;
- }
- float Basket::Average()
- {
- return Total()*1.0F/elementi;
- }
- int main()
- {
- Product p1("Coca Cula", 60);
- Product p2("Pupsi", 50);
- Product p3("Pivo 1.5l", 90);
- Basket b;
- b += p1;
- b += p2;
- b += p3;
- cout << "prosecna cena:" << b.Average() << endl;
- return 0;
- }
Add Comment
Please, Sign In to add comment