Advertisement
Guest User

vj9

a guest
Dec 12th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.93 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. class cstavka
  4. {
  5.     private:
  6.         cstavka *sljedeci;
  7.     public:
  8.         int sifra;
  9.         char naziv[40];
  10.         float cijena;
  11.         int kolicina;
  12.     cstavka()
  13.     {
  14.         cout<<"Alociram element liste"<<endl;
  15.         sljedeci=NULL;
  16.     }
  17.     ~cstavka()
  18.     {
  19.         cout<<"Dealociram: "<<this->sifra<<endl;
  20.     }
  21.     void novi()
  22.     {
  23.         cstavka *zadnji, *novi;
  24.         zadnji=this;
  25.         while(zadnji->sljedeci)
  26.             zadnji=zadnji->sljedeci;
  27.         novi=new cstavka;
  28.         zadnji->sljedeci=novi;
  29.        
  30.         cout<<"Sifra: ";cin>>novi->sifra;
  31.         cout<<"Naziv: ";cin.ignore();cin.getline(novi->naziv,40);
  32.         cout<<"Cijena: ";cin>>novi->cijena;
  33.         cout<<"Kolicina: ";cin>>novi->kolicina;
  34.     }
  35.     void ispis()
  36.     {
  37.         cstavka *trenutni=this->sljedeci;
  38.         while(trenutni)
  39.         {
  40.             cout<<"Sifra: "<<trenutni->sifra<<endl;
  41.             cout<<"Naziv: "<<trenutni->naziv<<endl;
  42.             cout<<"Cijena: "<<trenutni->cijena<<endl;
  43.             cout<<"Kolicina: "<<trenutni->kolicina<<endl<<endl;
  44.             trenutni=trenutni->sljedeci;
  45.         }
  46.     }
  47.     void zbroj()
  48.     {
  49.         float suma;
  50.         cstavka *trenutni=this->sljedeci;
  51.         while(trenutni)
  52.         {
  53.             suma+=(trenutni->kolicina*trenutni->cijena);
  54.             trenutni=trenutni->sljedeci;
  55.         }
  56.         cout<<"Ukupan iznos: "<<suma<<endl;
  57.     }
  58.     cstavka dealokacija()
  59.     {
  60.         cstavka *prethodni, *trenutni;
  61.         prethodni=this;
  62.         trenutni=this->sljedeci;
  63.         while(trenutni)
  64.         {
  65.             prethodni->sljedeci=trenutni->sljedeci;
  66.             delete trenutni;
  67.             trenutni=prethodni->sljedeci;
  68.         }
  69.     }
  70. };
  71. cstavka *lista;
  72. cstavka *polje;
  73. int main()
  74. {
  75.     bool je=false;
  76.     lista=new cstavka;
  77.     int o,o2,o3,broj;
  78.     do
  79.     {
  80.         cout<<"1. Alokacija, unos pojedinog elemnta, ispis svih elemenata"<<endl;
  81.         cout<<"2. Iznos svih stavki, dealokacija liste"<<endl;
  82.         cout<<"3. Alokacija polja vezanih listi, unosp odataka u zadanu listu, ispis pojedine vezane liste"<<endl;
  83.         cout<<"4. Dealokacija svih vezanih listi i polja"<<endl;
  84.         cout<<"9. Izlaz"<<endl;
  85.         cin>>o;
  86.         switch(o)
  87.         {
  88.             case 1:
  89.                 lista->novi();
  90.                 lista->ispis();
  91.                 break;
  92.             case 2:
  93.                 lista->zbroj();
  94.                 lista->dealokacija();
  95.                 break;
  96.             case 3:
  97.                 cout<<"1. Alokacija polja"<<endl;
  98.                 cout<<"2. Unos elemenata u pojedino polje"<<endl;
  99.                 cout<<"3. Ispis pojedine liste"<<endl;
  100.                 cin>>o2;
  101.                 switch(o2)
  102.                 {
  103.                     case 1:
  104.                         if(je==false)
  105.                         {
  106.                             cout<<"Velicina polja: ";cin>>broj;
  107.                             polje=new cstavka[broj];
  108.                             cout<<"Polje je kreirano"<<endl;
  109.                             je=true;
  110.                         }
  111.                         else
  112.                             cout<<"Polje vec postoji"<<endl;
  113.                         break;
  114.                     case 2:
  115.                         cout<<"U koje polje zelite unjeti element: ";
  116.                         do
  117.                         {
  118.                             cin>>o3;
  119.                         }while(o3>broj);
  120.                         polje[o3].novi();
  121.                         break;
  122.                     case 3:
  123.                         cout<<"Iz kojeg polja zelite ispisat element: ";
  124.                         do
  125.                         {
  126.                             cin>>o3;
  127.                         }while(o3>broj);
  128.                         polje[o3].ispis();
  129.                         break;
  130.                 }
  131.                 break;
  132.             case 4:
  133.                 for(int i=broj-1;i>=0;i--)
  134.                     polje[i].dealokacija();
  135.                 je=false;
  136.                 break;
  137.             case 9:return 0;
  138.         }
  139.     }while(1);
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement