/ Published in: C++
Glavni dio programa_Životinjsko carstvo
Expand |
Embed | Plain Text
#include <iostream> //#include "lista_polje.h" #include "lista_pokazivac.h" #include <string.h> using namespace std; tZivotinja * provjera = new tZivotinja; tSveZivotinje * zadnji2 = new tSveZivotinje; int br=0; bool dodaj(tSveZivotinje * glava) { int brojac=NumberL(glava); bool uspjesno=false; tZivotinja * novi = new tZivotinja; UnosL(novi); while(brojac>=0) { if(brojac==0) { InsertL(novi,0,glava); uspjesno=true; br=1; break; }//if provjera=RetrieveL(brojac,glava); if(novi->sifra>provjera->sifra) { InsertL(novi,brojac,glava); uspjesno=true; br=brojac+1; break; }//if else brojac--; }//while if(!uspjesno)return 0; return 1; }//dodaj void ispis(tSveZivotinje * glava) { tZivotinja * trenutno; int brojac= NumberL(glava); if(br==0)return; for(int i=br; i<=brojac; i++) { trenutno=RetrieveL(i,glava); IspisL(trenutno); }//for }//ispis void pretraga(tSveZivotinje * glava) { int brojac = NumberL(glava); tZivotinja * trenutno; int brojac2=0; for(int i=1; i<=brojac; i++) { trenutno=RetrieveL(i,glava); if(trenutno->godina>2012) { IspisL(trenutno); brojac2++; } else if(trenutno->godina==2012&&trenutno->mjesec>9) { IspisL(trenutno); brojac2++; } else if(trenutno->godina==2012&&trenutno->mjesec==9&&trenutno->dan>23) { IspisL(trenutno); brojac2++; } }//for cout<<"Ukupan broj zivotinja dostavljenih nakon 23. rujna 2012 je: "<<brojac2 <<endl; }//pretraga bool brisi(tSveZivotinje*glava) { bool obrisano=0; cout<<"Naziv zivotinje: "; char naziv[40]; cin.ignore(); cin.getline(naziv,40); int brojac=NumberL(glava); tZivotinja *trenutni; for(int i=1; i<=brojac; i++) { trenutni=RetrieveL(i,glava); if(strcmp(trenutni->naziv,naziv)==0) { DeleteL(i,glava); obrisano=1; } } return obrisano; } bool brisi_sve(tSveZivotinje*glava) { bool obrisano=0; cout<<"Naziv vrste: "; char naziv[40]; cin.ignore(); cin.getline(naziv,40); int brojac=NumberL(glava); tZivotinja*trenutni; for(int i=1; i<=brojac; i++) { trenutni=RetrieveL(i,glava); if(!strcmp(trenutni->vrsta,naziv)) { DeleteL(i,glava); brojac=NumberL(glava); i=1; obrisano=1; } } return obrisano; } // void merge(tZivotinja * a[],int low, int pivot, int high ) { int h,i,j,k; tZivotinja * 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(tZivotinja * 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(tSveZivotinje * glava) { int brojac = NumberL(glava); tZivotinja *novi[brojac]; for(int i=1; i<=brojac; i++) novi[i-1] = RetrieveL(i,glava); cout<<"Ispis uzlazno"; for(int i=0; i<brojac; i++) IspisL(novi[i]); mergesort(novi,0,brojac-1); cout<<"Sortirani elementi silazno"; for(int i=0; i<brojac; i++) { IspisL(novi[i]); } } // int main() { tSveZivotinje*glava; glava=InitL(glava); int izbor; do { system("cls"); cout<<"1. Dodavanje novog zapisa u listu prema rastucoj sifri zivotinje:"<< endl; cout<<"2. Ispis sadrzaja liste od sifre zivotinje koja je posljednja dodana:" << endl; cout<<"3. Pretraga i ispis svih zivotinja koje su dostavljene nakon 23.rujna 2012., njihov broj:" << endl; cout<<"4. Brisanje pojedinacnih unosa prema nazivu zivotinje:" << endl; cout<<"5. Brisanje svih zivotinja odredene vrste:" << endl; cout<<"6. Silazno sortiranje prema cijeni i nazivu:" << endl; cout<<"9. Izlaz iz programa:" << endl; cout<<"Vas izbor?: "; cin>>izbor; system("cls"); switch(izbor) { case 1: if(dodaj(glava)==1)cout<<"Zapis uspjesno dodan"; else cout << "Zapis nije uspjesno dodan."; break; case 2: ispis(glava); break; case 3: pretraga(glava); break; case 4: if(brisi(glava)==1)cout<<"Uspjesno obrisano."; else cout<<"Nije uspjesno obrisano-"; break; case 5: if(brisi_sve(glava)==1)cout<<"Uspjesno obrisano."; else cout<<"Nije uspjesno obrisano."; break; case 6: sortiraj(glava); } //switch system("pause"); }//do while(izbor!=9); return 0; }
You need to login to post a comment.
