/ Published in: C++
evidencija zivotinja u trgovini kucnim ljubimcima
Expand |
Embed | Plain Text
#include <iostream> #include <cstring> #include "lista_polje.h" //#include "lista_pokazivac.h" using namespace std; int unos() { elem novi; novi.sifra=sifra++; cout<<"vrsta: "; cin.ignore(); cin.getline(novi.vrsta,20); cout<<"naziv: "; cin.getline(novi.naziv,20); cout<<"cijena: ";cin>>novi.cijena; if(novi.cijena<1) {sifra--; return 0; } cout<<"datum dostave:\n"; cout<<"-------------\n"; cout<<"dan: "; cin>>novi.date.dan; if(novi.date.dan<1||novi.date.dan>31) {sifra--; return 0; } cout<<"mjesec: "; cin>>novi.date.mjesec; cout<<"godina: "; cin>>novi.date.godina; if(novi.date.godina<2000||novi.date.godina>2012) {sifra--; return 0; } InsertL(novi,br_el,lista); br_el++; return 1; } void ispis_od_zadnjeg() { elem a; int x=0, y=PreviousL(EndL(lista),lista); while(x<br_el){ a=RetrieveL(y,lista); cout<<"\nsifra: "<<a.sifra<<endl; cout<<"vrsta: "<<a.vrsta<<endl; cout<<"naziv: "<<a.naziv<<endl; cout<<"cijena: "<<a.cijena<<endl; cout<<"datum dostave: "<<a.date.dan<<"."; cout<<a.date.mjesec<<"."<<a.date.godina<<".\n"; cout<<"-----------------------\n"; x++; y = PreviousL(y,lista); } } void ispis_23_9() { int br=0; elem a; int y = FirstL(lista); while(y!=EndL(lista)) { a = RetrieveL(y,lista); if(a.date.godina>=2012) if((a.date.mjesec==9&&a.date.dan>23||a.date.mjesec==10)||a.date.mjesec==11||a.date.mjesec==12) { br++; cout<<"sifra: "<<a.sifra<<endl; cout<<"vrsta: "<<a.vrsta<<endl; cout<<"naziv: "<<a.naziv<<endl; cout<<"cijena: "<<a.cijena<<endl; cout<<"datum dostave: "<<a.date.dan<<"."<<a.date.mjesec<<"."<<a.date.godina<<".\n"; cout<<"------------------------------\n"; } y = NextL(y,lista); } cout<<"Broj pronadjenih zivotinja: "<<br<<endl<<endl; } int brisi_naziv() { n=1; char naziv[20]; elem a; cout<<"Unesite naziv zivotinje: "; cin.ignore(); cin.getline(naziv,20); int y = LocateL(naziv,lista); n=0; if(y==EndL(lista)) return 0; else { DeleteL(y,lista); br_el--; return 1; } } int brisi_vrstu() { v=1; char vrsta[20]; elem a; int y; bool obrisan=0; cout<<"Unesite vrstu zivotinje: "; cin.ignore(); cin.getline(vrsta,20); while (LocateL(vrsta,lista)!=EndL(lista)) { y = LocateL(vrsta,lista); DeleteL(y,lista); br_el--; obrisan=1; } v=0; if(!obrisan) return 0; else return 1; } void ispis() { elem a; int y=FirstL(lista); while (y!=EndL(lista)){ a=RetrieveL(y,lista); cout<<"sifra: "<<a.sifra<<endl; cout<<"vrsta: "<<a.vrsta<<endl; cout<<"naziv: "<<a.naziv<<endl; cout<<"cijena: "<<a.cijena<<endl; cout<<"datum dostave: "<<a.date.dan<<"."; cout<<a.date.mjesec<<"."<<a.date.godina<<".\n"; cout<<"-------------------------------\n"; y = NextL(y,lista); } } void spoji(int i, int k, int j) { int I=i, J=k+1, K=0; elem *b = new elem [j-i+1]; elem prvi,drugi; while(I<=k && J<=j){ prvi=RetrieveL(I,lista); drugi=RetrieveL(J,lista); if(prvi.cijena > drugi.cijena) { b[K++]=prvi; I++; } else if(prvi.cijena < drugi.cijena){ b[K++]=drugi; J++; } else if(strcmp(prvi.naziv,drugi.naziv)==-1) { b[K++]=drugi; J++; } else { b[K++]=prvi; I++; } } if(I>k) while(J<=j) { drugi=RetrieveL(J,lista); b[K++] = drugi; J++; } else while(I<=k) { prvi=RetrieveL(I,lista); b[K++] = prvi; I++; } for(int I=0;I<=j-i;I++) Vrati(b[I],i+I,lista); delete [] b; } void msort(int i, int j) { if(i<j) { int k=(i+j)/2; msort(i,k); msort(k+1,j); spoji(i,k,j); } } void msort() { msort(0,br_el-1); } int main() { int izbor; InitL(lista); do { cout<<"-----------------------------------------------\n"; cout<<"1. Unos nove zivotinje\n"; cout<<"2. Ispis zivotinja od posljednje dodane\n"; cout<<"3. Ispis zivotinja dodanih nakon 23. rujna 2012.\n"; cout<<"4. Brisanje zivotinje po nazivu\n"; cout<<"5. Brisanje po vrsti\n"; cout<<"6. Silazno sortiranje po cijeni i nazivu\n"; cout<<"0. Izlaz\n"; cout<<"-----------------------------------------------\n"; cin>>izbor; switch(izbor) { case 1: if(unos()) cout<<"\nZivotinja je dodana!\n"; else cout<<"\nPogresan unos!\n";break; case 2: ispis_od_zadnjeg();break; case 3: ispis_23_9();break; case 4: if(brisi_naziv()) cout<<"\nZivotinja je obrisana.\n\n"; else cout<<"\nZapis ne postoji!\n\n";break; case 5: if(brisi_vrstu()) cout<<"\nVrsta je obrisana.\n\n"; else cout<<"\nZapis ne postoji!\n\n";break; case 6: msort(); ispis();break; } }while(izbor!=0); DeleteAll(lista); system("pause"); return 0; }
You need to login to post a comment.
