/ Published in: C++
1. Zadatak kolegija "Strukture podataka" na Fakultetu Organizacije i Informatike u Varaždinu. Trebalo je napraviti program koji služi za evidenciju kućnih ljubimaca u trgovini za kućne ljubimce, i to pomoću ATP liste implementirane poljem i pokazivaÄima. Ovo je glavna funkcija koja treba joÅ¡ ili "lista_pokazivaci.h", ili "lista_polje.h" kako bi radila
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
/* * glavna.cpp * * Created on: Nov 8, 2012 * Author: David Ante Macan */ #include <iostream> //#include "lista_pokazivaci.h" #include "lista_polje.h" bool polje = false; using namespace std; void unos(char *niz){ cin.getline(niz, 100); if(cin.gcount()==1) cin.getline(niz,100); } int sif=1; int mog_1(tlista *L){ tziv nova; nova.sifra = sif; cout<<"Sifra zivotinje: "<<nova.sifra<<endl; cout<<"Vrsta zivotinje: "; unos(nova.vrsta); cout<<"Naziv zivotinje: "; unos(nova.naziv); cout<<"Cijena zivotinje: "; cin>>nova.cijena; cout<<"Datum: "<<endl; do{ cout<<"\tGodina (YYYY): "; cin>>nova.datum[0]; }while(nova.datum[0]<1970 || nova.datum[0]>2020); do{ cout<<"\tMjesec (MM): "; cin>>nova.datum[1]; }while(nova.datum[1]<0 || nova.datum[1]>12); do{ cout<<"\tDan (DD): "; cin>>nova.datum[2]; }while(nova.datum[2]<0 || nova.datum[2]>30); int provjera_upisa = InsertL(nova, EndL(L), L); if(provjera_upisa){ cout<<"Upis je bio uspjesan!"<<endl; sif++; return 1; } else return 0; } void ispis(tziv tekuci){ cout<<"\n\n" <<"Sifra zivotinje: "<<tekuci.sifra<<endl <<"Vrsta zivotinje: "<<tekuci.vrsta<<endl <<"Naziv zivotinje: "<<tekuci.naziv<<endl <<"Cijena zivotinje: "<<tekuci.cijena<<endl <<"Datum dostave: "<<tekuci.datum[2]<<"."<<tekuci.datum[1]<<"."<<tekuci.datum[0]<<"."<<endl <<"-------------------------------------"<<endl<<endl; } int mog_2(tlista *L){ tziv z; tip zadnji = PreviousL(EndL(L),L); while(EndL(L)!=FirstL(L)){ z = RetrieveL(zadnji, L); ispis(z); if(zadnji == FirstL(L)) break; zadnji = PreviousL(zadnji,L); } return 1; } int mog_3(tlista *L){ tziv z; tip iduci = FirstL(L); cout<<"Ispis: "<<endl; while(1){ z = RetrieveL(iduci,L); if(z.datum[0]>2012) ispis(z); if(z.datum[0]==2012){ if((z.datum[1]==9) && (z.datum[2]>=23)) ispis(z); else if(z.datum[1]>9) ispis(z); } if(iduci == PreviousL(EndL(L),L)) break; iduci = NextL(iduci, L); } return 1; } int mog_4(tlista *L){ tziv z; tip tekuci = FirstL(L); char vrsta[30]; cout<<"Unesite vrstu koju zelite obrisati: "; unos(vrsta); cout<<"\n\nBrisanje"<<endl<<endl; while(1){ z = RetrieveL(tekuci,L); if(strcmp(vrsta, z.vrsta)==0){ cout<<tekuci<<" | "; DeleteL(tekuci, L); if(tekuci==PreviousL(EndL(L),L)) break; } if(tekuci == NextL(EndL(L),L)) break; tekuci = NextL(tekuci,L); } return 1; } int mog_5(tlista *L){ tziv z; tip tekuci = FirstL(L); char naziv[30]; cout<<"Unesite koji naziv zelite obrisati: "; unos(naziv); cout<<"\n\nBrisanje"<<endl<<endl; while(1){ z = RetrieveL(tekuci,L); if(strcmp(naziv, z.naziv)==0){ DeleteL(tekuci,L); if(tekuci==PreviousL(EndL(L),L)) break; } if(tekuci == PreviousL(EndL(L),L)) break; tekuci = NextL(tekuci,L); } return 1; } int main(){ tlista *L = InitL(L); int odabir; do{ cout<<"\n\n\n----------------------------------------------------"<<endl <<"1. Zapis prema rastucoj sifri zivotinje"<<endl <<"2. Ispis svih zivotinja od posljednje unesene"<<endl <<"3. Ispis svih zivotinja sa datumom nakon 23.09.2012."<<endl <<"4. Brisanje pojedinacnih unosa prema vrsti"<<endl <<"5. Brisanje pojedinacnih unosa prema nazivu"<<endl <<"6. Silazno sortiranje sadrzaja liste prema cijeni i nazivu"<<endl <<"7. {TEST} DeleteAllL(L)"<<endl <<"9. Izlaz iz programa"<<endl <<"----------------------------------------------------------"<<endl <<"\nOdabir: "; cin>>odabir; switch(odabir){ case 1: mog_1(L); break; case 2: mog_2(L); break; case 3: mog_3(L); break; case 4: mog_4(L); break; case 5: mog_5(L); break; case 6: MSort(L,FirstL(L),EndL(L)-1); break; case 7: DeleteAllL(L); break; case 9: cout<<"\n\n\n\t\t--- KRAJ PROGRAMA ---"<<endl; break; default: cout<<"\n\nPogresan unos! Odaberite jedan od ponudjenih!"<<endl; break; } }while(odabir!=9); return 0; }