tehlurk

vjezba03

Oct 23rd, 2013
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.96 KB | None | 0 0
  1. #include <iostream>
  2. #include "biblioteka_vrijeme.cc"
  3. using namespace std;
  4.  
  5. struct tlista{
  6.     int redniBrojRobe;
  7.     char nazivRobe[40];
  8.     int cijenaKomada;
  9.     int kolicina;
  10.     float vrijemeUnosa;
  11.     tlista *sljedeci;
  12.     tlista *prethodni;
  13. };
  14.  
  15. struct tstablo{
  16.     int redniBrojRobe;
  17.     char nazivRobe[40];
  18.     float cijenaKomada;
  19.     int kolicina;
  20.     float vrijemeUnosa;
  21.     tlista *lijevo;
  22.     tlista *desno;
  23. };
  24.  
  25. int Velicina_liste(tlista *lista){
  26.     int brojac=0;
  27.     tlista *tekuci=lista->sljedeci;
  28.     while(tekuci){
  29.         brojac++;
  30.         tekuci=tekuci->sljedeci;
  31.     }
  32.     return brojac;
  33. }
  34.  
  35. void dodaj_element(tlista *lista){
  36.     cout<<"Lista ima "<<Velicina_liste(lista)<<" elemenata."<<endl<<endl;
  37.    
  38.     tlista *novi, *zadnji, *temp;
  39.     char izbor;
  40.     temp=new tlista;
  41.    
  42.     vrijeme_pocetak();
  43.     cout<<"Redni broj robe: ";
  44.     cin>>temp->redniBrojRobe;
  45.     cout<<"Naziv robe: ";
  46.     unos(temp->nazivRobe);
  47.     cout<<"Cijena komada: ";
  48.     cin>>temp->cijenaKomada;
  49.     cout<<"Kolicina: ";
  50.     cin>>temp->kolicina;
  51.     vrijeme_kraj();
  52.     temp->vrijemeUnosa=vrijeme_proteklo()/1000;
  53.     cout<<"\nProteklo je "<<temp->vrijemeUnosa<<" sec."<<endl;
  54.     cout<<"Vrijednost robe iznosi: "<<temp->cijenaKomada*temp->kolicina<<endl<<endl;
  55.    
  56.     cout<<"Jeste sigurni da zelite unesti podatke (d/n): ";
  57.     cin>>izbor;
  58.    
  59.     if(izbor=='d'){
  60.         zadnji=lista;
  61.         while(zadnji)
  62.             zadnji=zadnji->sljedeci;
  63.        
  64.         novi=new tlista;
  65.         novi=temp;
  66.         novi->prethodni=zadnji;
  67.         zadnji->sljedeci=novi;
  68.         novi->sljedeci=NULL;
  69.        
  70.         cout<<"Unos obavljen!"<<endl<<endl;
  71.        
  72.         tlista *tekuci=lista->sljedeci;
  73.         while(tekuci){
  74.             cout<<"Redni broj robe: "<<tekuci->redniBrojRobe<<endl;
  75.             cout<<"Naziv robe: "<<tekuci->nazivRobe<<endl;
  76.             cout<<"Vrijednost robe: "<<tekuci->cijenaKomada*tekuci->kolicina<<endl;
  77.             cout<<"Vrijeme unosa: "<<tekuci->vrijemeUnosa<<" sec"<<endl<<endl;
  78.             tekuci=tekuci->sljedeci;
  79.         }
  80.     }
  81.     else{
  82.         cout<<"Vrijeme unosa iznosi: "<<temp->vrijemeUnosa<<" sec."<<endl;
  83.         cout<<"Broj elemenata: "<<Velicina_liste(lista)<<endl<<endl;
  84.     }
  85.     delete temp;
  86.     temp=NULL;
  87. }
  88.  
  89. int main(){
  90.    
  91.     int izbor;
  92.     tlista *lista=NULL;
  93.     tstablo *stablo=NULL;
  94.    
  95.     do{
  96.         cout<<"0. Alokacija glave vezane liste i korijena binarnog stabla."<<endl;
  97.         cout<<"1. Dodavanje elementa na kraj dvostruko vezane liste."<<endl;
  98.         cout<<"2. Dodavanje elementa na pocetak dvostruko vezane liste."<<endl;
  99.         cout<<"3. Binarno stablo (kreiranje i ispis)"<<endl;
  100.         cout<<"4. Binarno stablo (pretrazivanje / dealokacija)"<<endl;
  101.         cout<<"9. Izlaz iz programa"<<endl;
  102.         cin>>izbor;
  103.        
  104.         switch(izbor){
  105.             case 0:
  106.                 if(lista!=NULL || stablo!=NULL){
  107.                     cout<<"Glava liste i/ili korijen stabla su vec alocirani!"<<endl<<endl;
  108.                     break;
  109.                 }
  110.                 lista = new tlista;
  111.                 lista->sljedeci=NULL;
  112.                 lista->prethodni=NULL;
  113.                 stablo = new tstablo;
  114.                 stablo->lijevo=NULL;
  115.                 stablo->desno=NULL;
  116.                 cout<<"Glava liste i korijen stabla su uspjesno alocirani!"<<endl<<endl;
  117.                 break;
  118.             case 1:
  119.                 dodaj_element(lista);
  120.                 break;
  121.         }
  122.     }while(izbor!=9);
  123.    
  124.     return 0;
  125. }
Advertisement
Add Comment
Please, Sign In to add comment