/ Published in: C++
Smatram da je moj kod specifičniji i jednostavniji za shvatiti drugima pošto koristim imena varijable preko kojih se može lako zaključiti o čemu se radi. Kod je napisan tako da bude što kraći, a opet da bude kvalitetan, lako čitljiv te pouzdan. Izbornik i ostale stvari koje se ispisuju naredbom cout grafički su uređene tako da output window bude što čitljiviji i uredniji.
Expand |
Embed | Plain Text
#include<iostream> #include "lista_polje.h" using namespace std; int brojac=1; element unos(lista *novi){ zivotinja unos,tr; int uvecaj=0; element l=FirstL(novi); cout<<"Sifra (automatski generirana) : "; cout<<brojac<<endl; unos.sifra=brojac; cin.ignore(); cout<<"Vrsta : "; cin.getline(unos.vrsta,35); cout<<"Naziv : "; cin.getline(unos.naziv,35); do{ cout<<"Dan : "; cin>>unos.datum[0]; if(unos.datum[0]<=0 || unos.datum[0]>=31)cout<<"Krivo unesen dan!"<<endl; }while(unos.datum[0]<=0 || unos.datum[0]>=31); do{ cout<<"Mjesec : "; cin>>unos.datum[1]; if(unos.datum[1]<=0 || unos.datum[1]>12)cout<<"Krivo unesen mjesec!"<<endl; }while(unos.datum[1]<=0 || unos.datum[1]>12); do{ cout<<"Godina : "; cin>>unos.datum[2]; if(unos.datum[2]<=1950 || unos.datum[2]>2050)cout<<"Krivo unesena godina!"<<endl; }while(unos.datum[2]<=1950 || unos.datum[2]>=2050); cout<<"Cijena(kn) : "; cin>>unos.cijena; uvecaj=InsertL(unos,EndL(novi),novi); if(uvecaj==1){ cout<<endl<<"Element je uspjesno dodan u listu."<<endl<<endl; brojac++; } else cout<<"Element nije dodan u listu. "<<endl<<endl; } void ispis(lista *ispis){ element l=EndL(ispis); l=PreviousL(l,ispis); if(EndL(ispis)!=FirstL(ispis)){ while(1){ zivotinja tr=RetreiveL(l,ispis); cout<<"Sifra : "<<tr.sifra<<endl; cout<<"Vrsta : "<<tr.vrsta<<endl; cout<<"Naziv : "<<tr.naziv<<endl; cout<<"Datum : "<<tr.datum[0]<<"."<<tr.datum[1]<<"."<<tr.datum[2]<<endl; cout<<"Cijena : "<<tr.cijena<<endl; cout<<endl; if(l==FirstL(ispis))break; l=PreviousL(l,ispis); } } } void datum(lista *pretraga){ int broj=0; element l=EndL(pretraga); l=PreviousL(l,pretraga); if(EndL(pretraga)!=FirstL(pretraga)){ while(1){ zivotinja tr=RetreiveL(l,pretraga); if(tr.datum[2]==2012){ if((tr.datum[1]>=9)){ if(tr.datum[1]==9){ if(tr.datum[0]>23){ cout<<"Sifra : "<<tr.sifra<<endl; cout<<"Naziv : "<<tr.naziv<<endl; cout<<"Datum : "<<tr.datum[0]<<"."<<tr.datum[1]<<"."<<tr.datum[2]<<endl; cout<<"Vrsta : "<<tr.vrsta<<endl; cout<<"Cijena : "<<tr.cijena<<endl; cout<<endl; broj++; } } else{ cout<<"Sifra : "<<tr.sifra<<endl; cout<<"Naziv : "<<tr.naziv<<endl; cout<<"Datum : "<<tr.datum[0]<<"."<<tr.datum[1]<<"."<<tr.datum[2]<<endl; cout<<"Vrsta : "<<tr.vrsta<<endl; cout<<"Cijena : "<<tr.cijena<<endl; cout<<"\t\t\t\t\t\t"<<endl; broj++; } } } else if(tr.datum[2]>2012){ cout<<"Sifra "<<tr.sifra<<endl; cout<<"Naziv : "<<tr.naziv<<endl; cout<<"Datum : "<<tr.datum[0]<<"."<<tr.datum[1]<<"."<<tr.datum[2]<<endl; cout<<"Vrsta : "<<tr.vrsta<<endl; cout<<"Cijena : "<<tr.cijena<<endl; cout<<endl; broj++; } if(l==FirstL(pretraga))break; l=PreviousL(l,pretraga); } cout<<endl<<"Broj : "<<broj<<endl; } } void brisanje(lista *brisi){ int potvrda; if(FirstL(brisi)==EndL(brisi))return; zivotinja tr; element l=EndL(brisi); l=PreviousL(l,brisi); cout<<"Unesite naziv : "<<endl; cin.ignore(); cin.getline(tr.naziv,35); element pozicija=LocateL(tr,brisi); potvrda=DeleteL(pozicija,brisi); if(potvrda==1) cout<<"Element je uspjesno uklonjen. "<<endl; else cout<<"Element nije uklonjen. "<<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 l=LocateL(e,ukloni); if(l==0){ DeleteL(l,ukloni); potvrda=true; return; } else while(l!=EndL(ukloni)){ DeleteL(l,ukloni); potvrda=true; l=LocateL(e,ukloni); } if(potvrda==true) cout<<"Elementi su uspjesno obrisani. "<<endl<<endl; else cout<<"Elementi nisu uspjesno obrisani. "<<endl<<endl; } int main(){ int izbor; lista *L=InitL(L); do{ cout<<"______________________________IZBORNIK__________________________"<<endl; cout<<"----------------------------------------------------------------"<<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<<" 0.Izlaz"<<endl; cout<<"----------------------------------------------------------------"<<endl; cout<<" Unesite svoj izbor :"; cin>>izbor; cout<<"________________________________________________________________"<<endl; switch(izbor){ 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(izbor!=0); system("pause"); return 0; }
You need to login to post a comment.
