Advertisement
Mushroomtrip

Prog02

Oct 18th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.56 KB | None | 0 0
  1. #include <iostream>
  2. #include "biblioteka_vrijeme.cc"
  3. #include <iomanip>
  4. using namespace std;
  5.  
  6. struct tstudent{
  7.     int mat_br;
  8.     char prez_ime[35];
  9.     int god_stu;
  10.     float vrijeme_unosa;
  11.     tstudent *sljedeci;
  12. };
  13.  
  14. void unos(tstudent *lista){ //dodaje element na kraj liste
  15.    
  16.     tstudent *novi, *zadnji;
  17.     zadnji = lista;
  18.    
  19.     while(zadnji -> sljedeci){ //sve dok postoji sljedeci element u listi
  20.         zadnji = zadnji -> sljedeci; //pronalazak zadnjeg elementa u listi
  21.     }
  22.    
  23.     novi = new tstudent; //alokacija novog elementa liste
  24.     zadnji -> sljedeci = novi; //povezivanje zadnjeg elementa u listi novim elementom
  25.     novi -> sljedeci = NULL; //novi element je sada zadnji element liste
  26.    
  27.     //unos podataka u listu
  28.     cout << "Maticni broj: ";
  29.     vrijeme_pocetak();
  30.     cin >> novi -> mat_br;
  31.     cout << "Prezime i ime: ";
  32.     cin >> novi -> prez_ime;
  33.     cout << "Godina studija: ";
  34.     cin >> novi -> god_stu;
  35.     vrijeme_kraj();
  36.     novi -> vrijeme_unosa = vrijeme_proteklo()/1000;
  37. }
  38.  
  39. void ispis(tstudent *lista){ //ispisuje sve elemente liste
  40.    
  41.     tstudent *tekuci = lista -> sljedeci; //tekuci element se preusmjerava na pocetni element za ispis
  42.    
  43.     while(tekuci){ //sve dok postoji tekuci element
  44.         cout << "Maticni broj: " << tekuci -> mat_br << endl;
  45.         cout << "Prezime i ime: " << tekuci -> prez_ime << endl;
  46.         cout << "Godina studija: " << tekuci -> god_stu << endl;
  47.         cout << fixed << setprecision(2) << "Proteklo vrijeme: " << tekuci -> vrijeme_unosa << " sekundi" << endl;
  48.         cout << "----------------------" << endl;
  49.    
  50.         tekuci = tekuci -> sljedeci; //kretanje kroz listu
  51.     }
  52. }
  53.  
  54. void pretrazi(tstudent *lista, int mat_br){ //pretrazivanje liste prema maticnom broju
  55.     tstudent *tekuci = lista -> sljedeci;
  56.     while(tekuci){
  57.         if(tekuci -> mat_br == mat_br){
  58.             cout << "Maticni broj: " << tekuci -> mat_br << endl;
  59.             cout << "Prezime i ime: " << tekuci -> prez_ime << endl;
  60.             cout << "Godina studija: " << tekuci -> god_stu << endl;
  61.             cout << "Vrijeme unosa: " << tekuci -> vrijeme_unosa << endl;
  62.             cout << "----------------------------" << endl;
  63.             return;
  64.         }
  65.         tekuci = tekuci -> sljedeci;
  66.     }
  67.     cout << "Element nije pronadjen!" << endl;
  68. }
  69.  
  70. void brisi(tstudent *lista, int mat_br){
  71.     tstudent *tekuci = lista -> sljedeci, *prethodni = lista;
  72.     while(tekuci){
  73.         if(tekuci -> mat_br == mat_br){
  74.             prethodni -> sljedeci = tekuci -> sljedeci;
  75.             delete tekuci;
  76.             cout << "Element je izbrisan iz vezane liste!" << endl;
  77.             return;
  78.         }
  79.         prethodni = tekuci;
  80.         tekuci = tekuci -> sljedeci;
  81.     }
  82.     cout << "Element za brisanje nije pronadjen!" << endl;
  83. }
  84.  
  85. int main(){
  86.    
  87.     char jos;
  88.     int odabir, mat_br;
  89.     tstudent *lista = new tstudent; //alokacija glave liste
  90.     lista -> sljedeci = NULL;   //kraj liste
  91.    
  92.     do{
  93.         cout << "1. Unos novog elementa vezane liste" << endl;
  94.         cout << "2. Ispis sadrzaja vezane liste" << endl;
  95.         cout << "3. Pretrazivanje vezane liste (prema primarnom kljucu)" << endl;
  96.         cout << "4. Brisanje elementa liste (prema primarnom kljucu)" << endl;
  97.         cout << "9. Izlaz iz programa" << endl;
  98.    
  99.         cout << "\nUnesite odabir: ";
  100.         cin >> odabir;
  101.    
  102.         switch(odabir){
  103.             case 1:
  104.                 unos(lista);
  105.                 break;
  106.             case 2:
  107.                 ispis(lista);
  108.                 break;
  109.             case 3:
  110.                 cout << "Unesite maticni broj: " << endl;
  111.                 cin >> mat_br;
  112.                 pretrazi(lista, mat_br);
  113.                 break;
  114.             case 4:
  115.                 cout << "Unesite maticni broj: " << endl;
  116.                 cin >> mat_br;
  117.                 brisi(lista, mat_br);
  118.                 break;
  119.             default:
  120.                 cout << "Izlazim iz programa..." << endl;
  121.         }
  122.        
  123.         cout << "Zelite li jos? (d/n)" << endl;
  124.         cin >> jos;
  125.        
  126.     }while(jos == 'd');
  127.  
  128.    
  129.     system("pause");
  130.     return 0;
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement