Facebook
From Idiotic Moth, 5 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 209
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Artykul
  5. {
  6.         private:
  7.                 float cena;
  8.                 int ilosc;
  9.                 string nazwa;
  10.        
  11.         public:
  12.                 Artykul() : cena(0), ilosc(0){}
  13.                
  14.                 Artykul(string _nazwa, int _ilosc, float _cena)
  15.                         : cena(_cena), ilosc(_ilosc), nazwa(_nazwa){}
  16.                        
  17.                 friend
  18.                 ostream& operator << (ostream& os, const Artykul& a)
  19.                 {
  20.                         return os << a.nazwa << " " << a.cena << " " << a.ilosc <<endl;
  21.                 }
  22.                
  23.                 bool operator == (const Artykul& a)
  24.                 {
  25.                         return  a.cena == cena && a.ilosc == ilosc && a.nazwa == nazwa;
  26.                 }
  27. };
  28.  
  29. class Koszyk
  30. {
  31.         private:
  32.                 int pojemnosc;
  33.                 Artykul * artykuly;
  34.                 int pozycja;
  35.         public:
  36.                 Koszyk() : pojemnosc(0), artykuly(0), pozycja(0){}
  37.                
  38.                 Koszyk(int _pojemnosc)
  39.                 {
  40.                         pozycja = 0;
  41.                         pojemnosc = _pojemnosc;
  42.                         if(pojemnosc > 0)
  43.                         {
  44.                                 artykuly = new Artykul[pojemnosc];
  45.                         }
  46.                         else
  47.                         {
  48.                                 artykuly = 0;
  49.                         }
  50.                 }
  51.                
  52.                 Koszyk(const Koszyk& k)
  53.                 {
  54.                         if(pojemnosc > 0)
  55.                         {
  56.                                 delete [] artykuly;
  57.                         }
  58.                         pojemnosc = k.pojemnosc;
  59.                         artykuly = new Artykul[pojemnosc];
  60.                         for(int i = 0; i < pojemnosc; i++)
  61.                         {
  62.                                 artykuly[i] = k.artykuly[i];
  63.                         }
  64.                         pozycja = k.pozycja;
  65.                 }
  66.                        
  67.                        
  68.                 void dodaj(const Artykul& a)
  69.                 {
  70.                         if(artykuly != 0 && pozycja < pojemnosc - 1)
  71.                         {
  72.                                 artykuly[pozycja] = a;
  73.                                 pozycja++;
  74.                         }
  75.                 }
  76.                
  77.                 Koszyk& operator = (const Koszyk& k)
  78.                 {
  79.                         if(this != &k)
  80.                         {
  81.                                 if(pojemnosc > 0)
  82.                                 {
  83.                                         delete [] artykuly;
  84.                                 }
  85.                                 artykuly = 0;
  86.                                
  87.                                 pojemnosc = k.pojemnosc;
  88.                                 artykuly = new Artykul[pojemnosc];
  89.                                 for(int i = 0; i < pojemnosc; i++)
  90.                                 {
  91.                                         artykuly[i] = k.artykuly[i];
  92.                                 }
  93.                                 pozycja = k.pozycja;
  94.                         }
  95.                        
  96.                         return * this;
  97.                 }
  98.                
  99.                 Artykul& operator [] (int indeks)
  100.                 {
  101.                         return artykuly[indeks];
  102.                 }
  103.                
  104.                 ~Koszyk()
  105.                 {
  106.                         if(pojemnosc > 0)
  107.                         {
  108.                                 delete [] artykuly;
  109.                         }
  110.                 }
  111. };
  112.  
  113.  
  114. int main()
  115. {
  116.         Koszyk k1(3);
  117.         k1.dodaj(Artykul("pendrive", 2, 50.0));
  118.         k1.dodaj(Artykul("dvd", 5, 2.5));
  119.         k1.dodaj(Artykul("powerbank", 1, 200.0));
  120.        
  121.         Koszyk k2(k1);
  122.         k2[0] = Artykul("cpu", 1, 1000.0);
  123.        
  124.         cout << k1[0] << " " << k2[0] << endl;
  125.         k2 = k1;
  126.         k2[1] = Artykul("gpu", 1, 1000.0);
  127.         cout << boolalpha << (k1[1] == k2[1]) << endl;
  128.        
  129.         return 0;
  130. }
  131.