Facebook
From adam128pl@gmail.com, 5 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 80
  1. #include <iostream>
  2.  
  3.  
  4. class platnosc {
  5.  
  6.         char * nazwa;
  7.         double kwota;
  8.         int rok;
  9.         int miesiac;
  10.         int dzien;
  11.  
  12. public:
  13.  
  14.         platnosc(char * naz=nullptr,double kwo=0,int r=1970,int ms=1,int d=1)   //konstruktor wieloargumentowy
  15.                 :nazwa(naz),kwota(kwo),rok(r),miesiac(ms),dzien(d){}
  16.  
  17.         bool operator<(const platnosc &p)       //operator pomocniczy
  18.         {
  19.                 if (this->rok < p.rok)
  20.                         return true;
  21.                 if (this->miesiac < p.miesiac)
  22.                         return true;
  23.                 if (this->dzien < p.dzien)
  24.                         return true;
  25.  
  26.                 return false;
  27.         }
  28.  
  29.         friend std::ostream& operator<<(std::ostream& out, platnosc * pl);
  30.  
  31.         operator double()
  32.         {
  33.                 return kwota;
  34.         }
  35.  
  36. };
  37.  
  38.  
  39. std::ostream& operator<<(std::ostream& out, platnosc * pl)
  40. {
  41.         out << pl->dzien << '.' << pl->miesiac << '.' << pl->rok << '.' << pl->nazwa << '.' << pl->kwota << '\n';
  42.         return out;
  43. }
  44.  
  45.  
  46. struct wezel {
  47.         platnosc dane;
  48.         wezel *pPrev;
  49.         wezel *pNext;
  50. };
  51.  
  52. class spis_platnosci
  53. {
  54.  
  55. protected:
  56.         wezel * pHead;
  57.         wezel * pTail;
  58.  
  59. public:
  60.  
  61.         friend std::ostream& operator<<(std::ostream& out, spis_platnosci & sp);
  62.  
  63.         spis_platnosci()                                        //konstruktor bezargumentowy
  64.                 :pHead(NULL), pTail(NULL){}
  65.  
  66.         spis_platnosci(spis_platnosci &sp)      //konstruktor kopiuj─ůcy
  67.         {
  68.                 if (sp.pHead == nullptr)        //je┼╝eli lista jest pusta to przypisanie null├│w
  69.                 {
  70.                         this->pHead = nullptr;
  71.                         this->pTail = nullptr;
  72.                         return;
  73.                 }
  74.  
  75.                 wezel * iterator = this->pHead;
  76.  
  77.                 wezel * iterator_sp = sp.pHead;
  78.  
  79.                 while (iterator_sp != nullptr)
  80.                 {
  81.                         wezel * tmp = new wezel;
  82.  
  83.                         tmp->dane = iterator_sp->dane;  //przypisanie danych
  84.                         tmp->pNext = nullptr;
  85.                         tmp->pPrev = iterator;
  86.                         tmp->pPrev->pNext = tmp;
  87.  
  88.                         iterator_sp = iterator_sp->pNext;
  89.  
  90.                         iterator = iterator->pNext;
  91.                 }
  92.                
  93.                 pTail = iterator;       //przypisanie warto┼Ťci do ogona
  94.         }
  95.  
  96.         spis_platnosci& operator+=(const platnosc& pl)
  97.         {
  98.                 wezel * tmp = new wezel;
  99.  
  100.                 tmp->pNext = nullptr;   //dopisanie do ko┼äca listy
  101.                 tmp->pPrev = pTail;
  102.                 pTail->pNext = tmp;
  103.                 pTail = tmp;
  104.  
  105.                 return *this;
  106.         }
  107.  
  108. };
  109.  
  110. std::ostream& operator<<(std::ostream& out, spis_platnosci & sp) {
  111.  
  112.         wezel * iterator = sp.pHead;
  113.  
  114.         while (iterator != nullptr)
  115.         {
  116.                 out << iterator->dane;
  117.                 iterator = iterator->pNext;
  118.         }
  119. }
  120.  
  121.  
  122.  
  123. class kolejka_wydatkow
  124.         :public spis_platnosci
  125. {
  126.  
  127.         kolejka_wydatkow()
  128.         {
  129.                 pHead = nullptr;
  130.                 pTail = nullptr;
  131.         }
  132.  
  133.         operator double()
  134.         {
  135.                 double suma;
  136.  
  137.                 auto iterator = pHead;
  138.  
  139.                 while (iterator != nullptr)
  140.                 {
  141.                         suma += iterator->dane; //dodanie danych
  142.                 }
  143.  
  144.                 return suma;
  145.         }
  146.  
  147.         platnosc pobierz()
  148.         {
  149.                
  150.         }
  151.  
  152.  
  153. };
  154.