/ Published in: C++
glavni program
Expand |
Embed | Plain Text
#include <iostream> #include<string> using namespace std; #include "lista_polja.h" void unos(lista *popis,int brojac) { zivotinja pomocni; pomocni.sifra=brojac; cout<<"Naziv zivotinje: "<<endl; cin.ignore(); cin.getline(pomocni.naziv, 50); cout<<"Vrsta zivotinje: "<<endl; cin.getline(pomocni.vrsta, 50); cout<<"Unesite dan, mjesec i godinu dostave: "<<endl; cin>>pomocni.d; cin>>pomocni.m; cin>>pomocni.y; cout<<"Unesite cijenu: "<<endl; cin>>pomocni.cijena; element trenutni; trenutni=FirstL(popis); zivotinja trenutno; while(trenutni!=EndL(popis)) { trenutno=RetrieveL(trenutni, popis); if (trenutno.sifra<pomocni.sifra) break; trenutni=NextL(trenutni, popis); } InsertL(pomocni,trenutni,popis); cout<<"Podaci su uspjesno umetnuti u listu."<<endl<< endl; } void ispis(lista popis){ element trenutni; trenutni = FirstL(&popis); zivotinja trenutno; trenutno = RetrieveL(trenutni, &popis); cout<<"----------------------------------------------------------"<<endl; cout<<" LISTA ZAPISA " << endl; cout<<"----------------------------------------------------------"<<endl<<endl; while (trenutni!=EndL(&popis)) { cout<< "Sifra: "<<trenutno.sifra<<endl; cout<< "Naziv: "<<trenutno.naziv<<endl; cout<< "Vrsta zivotinje: "<<trenutno.vrsta<<endl; cout<< "Datum dostave: " << trenutno.d <<"."<<trenutno.m<<"."<<trenutno.y<<"."<<endl; cout<< "Cijena: "<<trenutno.cijena<<endl; trenutni=NextL(trenutni, &popis); if (trenutni==EndL(&popis)) break; trenutno = RetrieveL(trenutni, &popis); } } void datum(lista *popis) { element trenutni; trenutni=FirstL(popis); zivotinja trenutno; trenutno=RetrieveL(trenutni, popis); int brojac=0; while(trenutni!=EndL(popis)){ if(((trenutno.d > 23) && (trenutno.m >= 9) && (trenutno.y >= 2012))||((trenutno.y > 2012))||((trenutno.m > 9)&& (trenutno.y >= 2012))){ brojac=brojac+1; cout << "Naziv: " << trenutno.naziv << endl; cout << "Datum: " << trenutno.d <<"."<< trenutno.m <<"."<< trenutno.y <<"."<<endl; } trenutni=NextL(trenutni, popis); if(trenutni==EndL(popis)) break; trenutno=RetrieveL(trenutni,popis); } cout<< "---------------------------------------"<<endl; cout<< "Ukupno ���¾ivotinja dostavljenih nakon 23. rujna 2012. : "; if(brojac==0) cout<<"nema"; else cout<<brojac<< endl; cout<< "---------------------------------------"<<endl<<endl; } int brisanje_zivotinje(lista *popis, char naziv2[30]) { element trenutni; trenutni=FirstL(popis); zivotinja trenutno; while (trenutni!=EndL(popis)) { trenutno=RetrieveL(trenutni,popis); if (string(trenutno.naziv)==string(naziv2)){ DeleteL(trenutni, popis); return 1; } if (trenutni==EndL(popis))break; trenutni=NextL(trenutni,popis); } return 0; } int brisanje_vrste(lista *popis, char vrsta2[30]) { element trenutni; trenutni=FirstL(popis); zivotinja trenutno; bool za_obrisati=false; while (trenutni!=EndL(popis)) { trenutno=RetrieveL(trenutni,popis); if (string(trenutno.vrsta)==string(vrsta2)) { DeleteL(trenutni,popis); za_obrisati=true; continue; } trenutni=NextL(trenutni,popis); } return za_obrisati; } void merge(zivotinja * a[],int low, int pivot, int high ) { int h,i,j,k; zivotinja * b[500]; h=low; i=low; j=pivot+1; j=pivot+1; while((h<=pivot)&&(j<=high)) { if(a[h]->cijena>=a[j]->cijena) { b[i]=a[h]; h++; } else { b[i]=a[j]; j++; } i++; } if(h>pivot) { for(k=j; k<=high; k++) { b[i]=a[k]; i++; } } else { for(k=h; k<=pivot; k++ ) { b[i]=a[k]; i++; } } for(k=low; k<=high; k++) a[k]=b[k]; } void mergesort(zivotinja * a[], int low, int high) { int pivot; if(low<high) { pivot=(low+high)/2; mergesort(a,low,pivot); mergesort(a,pivot+1,high); merge(a,low,pivot,high); } } void sortiraj(lista *popis) { int brojac = NumberL(popis); element trenutni; zivotinja *novi[brojac]; for(int i=1; i<=brojac; i++) novi[i-1] = RetrieveL(trenutni,popis); } int main() { lista popis; InitL(&popis); int izbor; int brojac=0; char naziv2[50]; char vrsta2[50]; do{ cout<<"-------------------------IZBORNIK-------------------------"<<endl; cout<<"1. Dodavanje zapisa u listu."<<endl; cout<<"2. Ispis cijele liste."<< endl; cout<<"3. Ispis zivotinja dostavljenih nakon 23. rujna 2012. : "<<endl; cout<<"4. Brisanje ���¾ivotinje. "<<endl; cout<<"5. Brisanje svih zivotinja po vrsti. "<<endl; cout <<"9. IZLAZ."<< endl; cout<<"----------------------------------------------------------"<< endl; cout<<"Odaberite opciju "<<endl; cin>>izbor; cout << endl; switch(izbor){ case 1: brojac++; unos(&popis, brojac); break; case 2: ispis(popis); break; case 3: datum(&popis); break; case 4: cout<<"Koju zivotinju zelite obrisati? "<<endl; cin.ignore(); cin.getline(naziv2, 50); brisanje_zivotinje(&popis, naziv2); break; case 5: cout<<"Koju vrstu zivotinje zelite obrisati? "<<endl; cin.ignore(); cin.getline(vrsta2, 50); brisanje_vrste(&popis, vrsta2); case 6: sortiraj(&popis); } } while (izbor != 9); system("pause"); return 0; }
You need to login to post a comment.
