/ Published in: C++
Programski kod main funkcije zadatka 1 iz struktura podataka.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include<iostream> #include "lista_polje.h" //#include "lista_pokazivac.h" using namespace std; int sif=1; element unos(lista *novi) { zivotinja unos, sad; int brojac_liste=0; element lokacija=FirstL(novi); cout<<"Sifra zivotinje: "; cout<<sif<<endl; unos.sifra=sif; cin.ignore(); cout<<"Vrsta zivotinje: "; cin.getline(unos.vrsta,35); cout<<"Naziv zivotinje: "; cin.getline(unos.naziv,35); do { cout<<"Dan dostave: "; cin>>unos.datum[0]; if(unos.datum[0]<1 || unos.datum[0]>31) cout << "Unjeli ste krivi datum, unesite ponovno!" << endl; }while(unos.datum[0]<1 || unos.datum[0]>31); do { cout<<"Mjesec dostave: "; cin>>unos.datum[1]; if(unos.datum[1]<1 || unos.datum[1]>12) cout << "Unjeli ste krivi mjesec, unesite ponovno!" << endl; }while(unos.datum[1]<1 || unos.datum[1]>12); do { cout<<"Godina dostave: "; cin>>unos.datum[2]; if(unos.datum[2]<1900) cout << "Unjeli ste krivu godinu, unesite ponovno!" << endl; }while(unos.datum[2]<1900); cout<<"Cijena zivotinje: "; cin>>unos.cijena; brojac_liste=InsertL(unos,EndL(novi),novi); if(brojac_liste==1) { cout<<endl<<"Element je uspjesno dodan! "<<endl<<endl; sif++; } else cout<<"Element nije dodan! "<<endl<<endl; } void ispis(lista *ispis) { element lokacija=EndL(ispis); lokacija=PreviousL(lokacija,ispis); if(EndL(ispis)!=FirstL(ispis)) { while(5) { zivotinja sad=RetreiveL(lokacija,ispis); cout<<"Sifra "<<sad.sifra<<endl; cout<<"Vrsta "<<sad.vrsta<<endl; cout<<"Naziv "<<sad.naziv<<endl; cout<<"Datum "<<sad.datum[0]<<"."<<sad.datum[1]<<"."<<sad.datum[2]<<endl; cout<<"Cijena "<<sad.cijena<<endl; cout<<"\t\t\t\t\t\t\t\t"<<endl; if(lokacija==FirstL(ispis))break; lokacija=PreviousL(lokacija,ispis); } } } void datum(lista *pretraga) { int broj=0; element lokacija=EndL(pretraga); lokacija=PreviousL(lokacija,pretraga); if(EndL(pretraga)!=FirstL(pretraga)) { while(1) { zivotinja sad=RetreiveL(lokacija,pretraga); if(sad.datum[2]==2012) { if((sad.datum[1]>=9)) { if(sad.datum[1]==9) { if(sad.datum[0]>23) { cout<<"Sifra "<<sad.sifra<<endl; cout<<"Naziv "<<sad.naziv<<endl; cout<<"Datum "<<sad.datum[0]<<"."<<sad.datum[1]<<"."<<sad.datum[2]<<endl; cout<<"Vrsta "<<sad.vrsta<<endl; cout<<"Cijena "<<sad.cijena<<endl; cout<<"\t\t\t\t\t\t"<<endl; broj++; } } else { cout<<"Sifra "<<sad.sifra<<endl; cout<<"Naziv "<<sad.naziv<<endl; cout<<"Datum "<<sad.datum[0]<<"."<<sad.datum[1]<<"."<<sad.datum[2]<<endl; cout<<"Vrsta "<<sad.vrsta<<endl; cout<<"Cijena "<<sad.cijena<<endl; cout<<"\t\t\t\t\t\t"<<endl; broj++; } } } else if(sad.datum[2]>2012) { cout<<"Sifra "<<sad.sifra<<endl; cout<<"Naziv "<<sad.naziv<<endl; cout<<"Datum "<<sad.datum[0]<<"."<<sad.datum[1]<<"."<<sad.datum[2]<<endl; cout<<"Vrsta "<<sad.vrsta<<endl; cout<<"Cijena "<<sad.cijena<<endl; cout<<"\t\t\t\t\t\t"<<endl; broj++; } if(lokacija==FirstL(pretraga))break; lokacija=PreviousL(lokacija,pretraga); } cout<<endl<<"Broj "<<broj<<endl; } } void brisanje(lista *brisi) { int potvrda; if(FirstL(brisi)==EndL(brisi))return; zivotinja sad; element lokacija=EndL(brisi); lokacija=PreviousL(lokacija,brisi); cout<<"Unesite naziv: "<<endl; cin.ignore(); cin.getline(sad.naziv,35); element pozicija=LocateL(sad,brisi); potvrda=DeleteL(pozicija,brisi); if(potvrda==1) cout<<"Element uspjesno ukonjen! "<<endl; else cout<<"Element nije obrisan! "<<endl; } void brisanje_vrsta(lista *ukloni) { zivotinja e; bool potvrda=false; if(FirstL(ukloni)==EndL(ukloni)) { cout<<"Lista je prazna "<<endl; return; } cout<<"Unesite vrstu "<<endl; cin.ignore(); cin.getline(e.vrsta,35); element lokacija=LocateL(e,ukloni); if(lokacija==0) { DeleteL(lokacija,ukloni); potvrda=true; return; } else while(lokacija!=EndL(ukloni)) { DeleteL(lokacija,ukloni); potvrda=true; lokacija=LocateL(e,ukloni); } if(potvrda==true) cout<<"Elementi uspjesno obrisani "<<endl<<endl; else cout<<"Elementi nisu obrisani "<<endl<<endl; } int main() { int select; lista *L=InitL(L); do { cout<<"------------------------IZBORNIK------------------------"<<endl; cout<<"1. Dodaj zapis u listu po rastucoj sifri "<<endl; cout<<"2. Ispis svih unesenih elemenata (od zadnjeg do prvog unesenog) "<<endl; cout<<"3. Svi elementi novijeg datuma od 23.9.2012"<<endl; cout<<"4. Brisanje elementa sa odredenim nazivom "<<endl; cout<<"5. Brisanje svih elemenata odredene vrste "<<endl; cout<<"6. Merge sort elemenata liste (silazno po cijeni i silazno po nazivu)"<<endl; cout<<"9. Kraj programa "<<endl; cout<<"VAS ODABIR: "; cin>>select; switch(select) { case 1: unos(L); break; case 2: ispis(L); break; case 3: datum(L); break; case 4: brisanje(L); break; case 5: brisanje_vrsta(L); break; case 6: element kraj=PreviousL(EndL(L),L); MSort(L,FirstL(L),EndL(L)-1); break; } }while(select!=9); return 0; }