Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include "biblioteka_vrijeme.cc"
- #include <iomanip>
- using namespace std;
- struct tstudent{
- int mat_br;
- char prez_ime[35];
- int god_stu;
- float vrijeme_unosa;
- tstudent *sljedeci;
- };
- void unos(tstudent *lista){ //dodaje element na kraj liste
- tstudent *novi, *zadnji;
- zadnji = lista;
- while(zadnji -> sljedeci){ //sve dok postoji sljedeci element u listi
- zadnji = zadnji -> sljedeci; //pronalazak zadnjeg elementa u listi
- }
- novi = new tstudent; //alokacija novog elementa liste
- zadnji -> sljedeci = novi; //povezivanje zadnjeg elementa u listi novim elementom
- novi -> sljedeci = NULL; //novi element je sada zadnji element liste
- //unos podataka u listu
- cout << "Maticni broj: ";
- vrijeme_pocetak();
- cin >> novi -> mat_br;
- cout << "Prezime i ime: ";
- cin >> novi -> prez_ime;
- cout << "Godina studija: ";
- cin >> novi -> god_stu;
- vrijeme_kraj();
- novi -> vrijeme_unosa = vrijeme_proteklo()/1000;
- }
- void ispis(tstudent *lista){ //ispisuje sve elemente liste
- tstudent *tekuci = lista -> sljedeci; //tekuci element se preusmjerava na pocetni element za ispis
- while(tekuci){ //sve dok postoji tekuci element
- cout << "Maticni broj: " << tekuci -> mat_br << endl;
- cout << "Prezime i ime: " << tekuci -> prez_ime << endl;
- cout << "Godina studija: " << tekuci -> god_stu << endl;
- cout << fixed << setprecision(2) << "Proteklo vrijeme: " << tekuci -> vrijeme_unosa << " sekundi" << endl;
- cout << "----------------------" << endl;
- tekuci = tekuci -> sljedeci; //kretanje kroz listu
- }
- }
- void pretrazi(tstudent *lista, int mat_br){ //pretrazivanje liste prema maticnom broju
- tstudent *tekuci = lista -> sljedeci;
- while(tekuci){
- if(tekuci -> mat_br == mat_br){
- cout << "Maticni broj: " << tekuci -> mat_br << endl;
- cout << "Prezime i ime: " << tekuci -> prez_ime << endl;
- cout << "Godina studija: " << tekuci -> god_stu << endl;
- cout << "Vrijeme unosa: " << tekuci -> vrijeme_unosa << endl;
- cout << "----------------------------" << endl;
- return;
- }
- tekuci = tekuci -> sljedeci;
- }
- cout << "Element nije pronadjen!" << endl;
- }
- void brisi(tstudent *lista, int mat_br){
- tstudent *tekuci = lista -> sljedeci, *prethodni = lista;
- while(tekuci){
- if(tekuci -> mat_br == mat_br){
- prethodni -> sljedeci = tekuci -> sljedeci;
- delete tekuci;
- cout << "Element je izbrisan iz vezane liste!" << endl;
- return;
- }
- prethodni = tekuci;
- tekuci = tekuci -> sljedeci;
- }
- cout << "Element za brisanje nije pronadjen!" << endl;
- }
- int main(){
- char jos;
- int odabir, mat_br;
- tstudent *lista = new tstudent; //alokacija glave liste
- lista -> sljedeci = NULL; //kraj liste
- do{
- cout << "1. Unos novog elementa vezane liste" << endl;
- cout << "2. Ispis sadrzaja vezane liste" << endl;
- cout << "3. Pretrazivanje vezane liste (prema primarnom kljucu)" << endl;
- cout << "4. Brisanje elementa liste (prema primarnom kljucu)" << endl;
- cout << "9. Izlaz iz programa" << endl;
- cout << "\nUnesite odabir: ";
- cin >> odabir;
- switch(odabir){
- case 1:
- unos(lista);
- break;
- case 2:
- ispis(lista);
- break;
- case 3:
- cout << "Unesite maticni broj: " << endl;
- cin >> mat_br;
- pretrazi(lista, mat_br);
- break;
- case 4:
- cout << "Unesite maticni broj: " << endl;
- cin >> mat_br;
- brisi(lista, mat_br);
- break;
- default:
- cout << "Izlazim iz programa..." << endl;
- }
- cout << "Zelite li jos? (d/n)" << endl;
- cin >> jos;
- }while(jos == 'd');
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement