/ Published in: C++
Kod evidentira zivotinje koje korisnik unosi. Omoguceno je brisanje zivotinje kao i cijele vrste, te takodjer sortiranje i ispis svih zivotinja u listi.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include<iostream> //#include "lista_polje.h" #include "lista_pokazivaci.h" using namespace std; lista *L; int p=0,sifra=0; void novi_zapis(){ cin.ignore(); ++p; podaci novi; novi.sifra = sifra; cout<<"\nUnos podataka:"<<endl; cout<<"Vrsta: "; cin.getline(novi.vrsta,50); cout<<"Naziv: "; cin.getline(novi.naziv,50); cout<<"Cijena: "; cin>>novi.cijena; cout<<"Datum dolaska (GGGGMMDD): "; cin>>novi.datum; InsertL(novi,p,L); cout<<endl; } void ispis_silazno(lista *L){ if(p<=0) return; int pom=EndL(L); pom = PreviousL(pom,L); while (1){ podaci novi = RetrieveL(pom,L); cout<<"Sifra: "<<novi.sifra<<endl; cout<<"Vrsta: "<<novi.vrsta<<endl; cout<<"Naziv: "<<novi.naziv<<endl; cout<<"Cjena: "<<novi.cijena<<endl; cout<<"Datum: "<<novi.datum<<endl; cout<<"---------------------"<<endl; if(pom == FirstL(L)) break; pom = PreviousL(pom,L); } }; void ispis_svi(lista *L){ lista *k = L -> slijedeci; while (k){ cout<<"Sifra: "<<k->zapis.sifra<<endl; cout<<"Vrsta: "<<k->zapis.vrsta<<endl; cout<<"Naziv: "<<k->zapis.naziv<<endl; cout<<"Cijena: "<<k->zapis.cijena<<endl; cout<<"Datum: "<<k->zapis.datum<<endl; cout<<"---------------------"<<endl; k = k -> slijedeci; } }; void ispis_datum(lista *L){ int brojac=0; lista *k = L -> slijedeci; while(k){ if(k -> zapis.datum >20120923){ cout<<"\nSifra: "<<k->zapis.sifra<<endl; cout<<"Vrsta: "<<k->zapis.vrsta<<endl; cout<<"Naziv: "<<k->zapis.naziv<<endl; cout<<"Cijena: "<<k->zapis.cijena<<endl; cout<<"Datum: "<<k->zapis.datum<<endl; brojac++; } k = k -> slijedeci; } cout<<"Broj zivotinja dodanih poslije 23.09.2012: "<<brojac<<endl<<endl; } void obrisi(lista *L){ int odb; do{ cout<<"Zelite obrisati zivotinju po:\n1. nazivu\n2. vrsti\nVas odabir: "; cin>>odb; }while(odb<1 && odb>2); if(odb==1){ char nzv[50]; cin.ignore(); cout<<"Upisite naziv: "; cin.getline(nzv,50); DeleteL(nzv,L); if(DeleteL(nzv,L)==1){ cout<<"Uspjesno obrisano!"<<endl<<endl; p--; } } else{ char nzv[50]; cin.ignore(); cout<<"Upisite vrstu: "; cin.getline(nzv,50); int pom=sifra; for(int i=sifra;i>0;i--){ if(DeleteL(nzv,L)) p--; } if(DeleteL(nzv,L)==1){ cout<<"Uspjesno obrisano!"<<endl<<endl; } } } void sort(lista *L){ if(!L->slijedeci)return; lista *prije , *trenutni, *poslije; bool sortiram; do { sortiram = false; trenutni=L->slijedeci; prije=L; while (trenutni->slijedeci) { poslije=trenutni->slijedeci; if (int(trenutni->zapis.cijena) < int(poslije->zapis.cijena)) { prije->slijedeci=poslije; trenutni->slijedeci=poslije->slijedeci; poslije->slijedeci=trenutni; sortiram=true; } prije=prije->slijedeci; trenutni=prije->slijedeci; } } while (sortiram); ispis_svi(L); return; } int main(){ int izbor=0; L=new lista; InitL(L); do{ cout<<"Izbornik - evidencija zivotinja"<<endl; cout<<"1. Novi zapis"<<endl; cout<<"2. Ispis sadrzaja liste"<<endl; cout<<"3. Ispis svih poslje 23.9.2012"<<endl; cout<<"4. Brisanje unosa"<<endl; cout<<"5. Sortiranje prema cijeni (silazno)"<<endl; cout<<"9. IZLAZ"<<endl; cout<<"Vas izbor: "; cin>>izbor; switch(izbor){ case 1: ++sifra; novi_zapis(); break; case 2: ispis_silazno(L); break; case 3: ispis_datum(L); break; case 4: obrisi(L); break; case 5: sort(L); break; case 9: break; default: cout<<"Pogresan unos!"<<endl; } }while(izbor!=9); system("pause"); return 0; }