/ Published in: C++
Header file za 1 zadatak strukture podataka 2012
Expand |
Embed | Plain Text
#include<iostream> #include<cstdlib> #include<cstring> using namespace std; struct pzivotinja{ int sifra; char vrsta[30]; char naziv[30]; float cijena; int dan, mjesec, godina; pzivotinja *slijedeci; pzivotinja *prethodni; }; pzivotinja *lista = new pzivotinja; int sifra = 100; int InsertL(int p, pzivotinja*lista){ if(p==1){ lista->slijedeci = NULL; lista->prethodni = NULL; } pzivotinja *novi,*zadnji; zadnji = lista; while(zadnji->slijedeci) zadnji = zadnji->slijedeci; novi = new pzivotinja; novi->prethodni = zadnji; novi->slijedeci = NULL; zadnji->slijedeci = novi; novi->sifra = sifra; cout << "Unesite vrstu zivotinje: "; cin>> novi->vrsta; cout << "Unesite naziv zivotinje: "; cin>> novi->naziv; cout << "Unesite cijenu zivotinje: "; cin>> novi->cijena; cout << "Unesite dan zaprimanja: "; cin >>novi->dan; cout << "Unesite mjesec zaprimanja: "; cin >>novi->mjesec; cout << "Unesite godinu zaprimanja: "; cin >>novi->godina; sifra++; cout << "Zapis uspjesno dodan!"<<endl; return 1; } int NumberL(pzivotinja*lista){ pzivotinja*zadnji; zadnji = lista; int brojac = 0; while(zadnji ->slijedeci){ zadnji = zadnji -> slijedeci; brojac ++; } return brojac; }// NumberL int RetriveL(int p, pzivotinja *lista){ pzivotinja*zadnji; zadnji =lista; int brojac = 0; while(brojac < p){ zadnji = zadnji->slijedeci; brojac++; } cout<< "-----------------------------------"<<endl; cout<< "Sifra: "<<zadnji->sifra<<endl; cout<<"Naziv zivotinje: "<<zadnji->naziv<<endl; cout<<"Vrsta zivotinje: "<<zadnji->vrsta<<endl; cout<<"Cijena zivotinje: "<<zadnji->cijena<<" kn."<<endl; cout<<"Datum zaprimanja: "<<zadnji->dan<<"/"<<zadnji->mjesec<<"/"<<zadnji->godina<<"."<<endl; cout<< "-----------------------------------"<<endl; } int pretrazi(pzivotinja *lista){ pzivotinja *tekuci = lista->slijedeci; int br2=0; cout<<"Izvotinje unesene poslije 23/9/2012 su:"<<endl; while(tekuci){ if(tekuci->godina<2012) { tekuci=tekuci->slijedeci; continue;} if(tekuci->godina==2012 && tekuci->mjesec<9) { tekuci=tekuci->slijedeci; continue;} if(tekuci->mjesec==9 && tekuci->godina==2012 && tekuci->dan<=23) { tekuci=tekuci->slijedeci; continue;} else{ cout<<"------------------------------------"<<endl; cout <<"Sifra: "<<tekuci->sifra<<endl; cout<<"Vrsta zivotinje: "<<tekuci->vrsta<<endl; cout<<"Naziv zivotinje: "<<tekuci->naziv<<endl; cout<<"Cijena zivotinje: "<<tekuci->cijena<<endl; cout<<"Datum zaprimanja: "<<tekuci->dan<<"/"<<tekuci->mjesec<<"/"<<tekuci->godina<<"."<<endl; br2++; }//ispis tekuci = tekuci->slijedeci; }//while tekuci cout<<"Broj zivotinja unesenih poslije 23/09/2012.: "<<br2<<endl; }//pretrazi int LocateL(pzivotinja *lista, char naziv[]){ pzivotinja *tekuci = lista->slijedeci; int br3 = 0; while(tekuci){ br3++; if(strcmp(naziv, tekuci->naziv)) return br3; tekuci = tekuci->slijedeci; } }//locatel int DeleteL(pzivotinja *lista, char naziv[]){ pzivotinja *brisi = lista->slijedeci, *prethodni =lista; while(brisi){ if(!strcmp(naziv, brisi->naziv)){ prethodni->slijedeci = brisi->slijedeci; delete brisi; cout << "Zivotinja je izbrisana sa liste. " << endl; return 1; } prethodni = brisi; brisi = brisi->slijedeci; } cout<<"Zivotinja za brisanje nije proadjena!"<<endl; return 0; } int DeleteL(char vrsta[],pzivotinja *lista){ pzivotinja *brisi = lista->slijedeci, *prethodni =lista; while(brisi){ if(!strcmp(vrsta, brisi->vrsta)){ prethodni->slijedeci = brisi->slijedeci; delete brisi; return DeleteL(vrsta,lista); } prethodni = brisi; brisi = brisi->slijedeci; cout << "Vrsta je izbrisana sa liste. " << endl; } cout<<"Vrsta za brisanje nije proadjena!"<<endl; return 0; }
You need to login to post a comment.
