/ Published in: C++
glavni program
Expand |
Embed | Plain Text
#include <iostream> #include <cstdlib> #include <cstring> //#include "Lista_Polje.h" #include "lista_pokazivac.h" using namespace std; int Sifra = 1; bool valjano(char datum[]){ int d = datum[1]-48 + (10*(datum[0]-48)); int m = datum[4]-48 + (10*(datum[3]-48)); int g = datum[9]-48 + (10*(datum[8]-48)) + (100*(datum[7]-48)) + (1000*(datum[6]-48)); if (datum[2] != '.' || datum[5] != '.' || datum[10] != '.') return false; else if (strlen(datum) != 11) return false; else if (d <=0 || m <=0 || g <= 0) return false; else if (g%4 == 0 && m == 2 && d>29) return false; else if (g%4 != 0 && m == 2 && d>28) return false; else if((m == 4 || m == 6 || m == 9 || m == 11) && d > 30) return false; else if ((m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) && d > 31) return false; return true; }// valjano() int dodajP(){ char datum[20]; int pos; pos = LastL(); podaci Pod; cin.ignore(); cout << "Naziv zivotinje: "; cin.getline(Pod.naziv, 50); cout << "Vrsta: "; cin.getline(Pod.vrsta, 60); cout << "Cijena: "; cin >> Pod.cijena; if (Pod.cijena <= 0){ cout << "Nevazeca cijena! "; return 0; } cout << "Datum dostave: "; cin >> datum; if (!valjano(datum)){ cout << "Krivi unos!\n"; return 0; } Pod.dan = datum[1]-48 + (10*(datum[0]-48)); Pod.mj = datum[4]-48 + (10*(datum[3]-48)); Pod.god = datum[9]-48 + (10*(datum[8]-48)) + (100*(datum[7]-48)) + (1000*(datum[6]-48)); Pod.sifra = Sifra; InsertL(pos, Pod); Sifra++; return 1; }// dodajP() void ispis_kr(){ int i = LastL()-1; for (i; i>=0; i--){ podaci P; P = RetreiveL(i); cout << "Sifra: " << P.sifra << "\nNaziv zivotinje: " << P.naziv << "\nVrsta: " <<P.vrsta << "\nCijena: " << P.cijena << "\nDatum dostave: "<< P.dan <<"."<< P.mj << "." << P.god << "." <<endl; if (i>0) cout << "----------------------------------------------------" << endl; } } void ispisi_odg(){ int broj_ispisanih = 0; int i = LastL()-1; for (i; i>=0; i--){ podaci P; P = RetreiveL(i); if (P.god > 2012){ cout << "Sifra: " << P.sifra << "\nNaziv zivotinje: " << P.naziv << "\nVrsta: " << P.vrsta << "\nCijena: " << P.cijena << "\nDatum dostave: "<< P.dan <<"."<< P.mj << "." << P.god << "." << endl << endl; broj_ispisanih++; } else if (P.god == 2012){ if (P.mj > 9){ cout << "Sifra: " << P.sifra << "\nNaziv zivotinje: " << P.naziv << "\nVrsta: " << P.vrsta << "\nCijena: " << P.cijena << "\nDatum dostave: "<< P.dan <<"."<< P.mj << "." << P.god << "." << endl << endl; broj_ispisanih++; } else if(P.mj == 9 && P.dan > 23){ cout << "Sifra: " << P.sifra << "\nNaziv zivotinje: " << P.naziv << "\nVrsta: " << P.vrsta << "\nCijena: " << P.cijena << "\nDatum dostave: "<< P.dan <<"."<< P.mj << "." << P.god << "." << endl << endl; broj_ispisanih++; } } } cout << "\n\t Ukupno stavaka: " << broj_ispisanih++ << endl; } int brisi_naziv(){ char ime[50]; cout << "Ime zivotinje: " ; cin.ignore(); cin.getline(ime, 50); if(LocateL1(ime) == -1){ cout << "\n\tElement nije pronadjen!\n" << endl; return 0; } else{ DeleteL1(ime); cout << "\n\tElement je uspjesno obrisan.\n" << endl; return 1; } }// brisi_naziv() int brisi_vrstu(){ int brojac, i, j; i = FirstL(); j = LastL()-1; char naziv[50]; cout << "Naziv vrste: " ; cin.ignore(); cin.getline(naziv, 50); if(LocateL2(naziv) == -1){ cout << "\n\tElement nije pronadjen!\n" << endl; return 0; } else{ podaci P; for (i; i<=j; i++){ P = RetreiveL(i); if(strcmp(P.vrsta, naziv) == 0) brojac++; } for (i = 0; i <brojac; i++) DeleteL2(naziv); } cout << "\n\tVrsta je uspjesno obrisana. \n" << endl; return 1; }// brisi_vrstu() /********* MAIN *********/ int main(){ InitL(); char odg; do{ cout << "1: Dodavanje nove zivotinje i ispis cijele liste\ \n2: Ispis zivotinja dostavljenih nakon 23. rujna 2012.\ \n3: Brisanje zivotinja prema nazivu\n4: Brisanje zivotinja prema vrsti\ \n5: Silazno sortiranje\n0: Izlaz " <<endl; do{ cout << "\n\tOdabir: "; cin >> odg; }while(odg < '0' && odg > '5'); system ("cls"); switch(odg){ case '0': return 0; case '1': dodajP(); system ("cls"); ispis_kr(); break; case '2': if (LastL() > 0) ispisi_odg(); else cout << "Lista je prazna! " << endl; break; case '3': if (LastL() > 0){ brisi_naziv(); ispis_kr(); } else cout << "Lista je prazna! "<< endl; break; case '4': if (LastL() > 0){ brisi_vrstu(); ispis_kr(); } else cout << "Lista je prazna! "<< endl; break; case '5': break; default: cout << "\nKrivi izbor! "; } cout <<"\t" << endl; system ("pause"); system ("cls"); }while(1); return 0; }
You need to login to post a comment.
