/ Published in: C++
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
struct tdata{ char ime[15]; char prezime[15]; int god; float stanje; int trans; }; //#include "red_polje.h" #include "red_pokazivac.h" #include <iostream> #include <iomanip> int br = 0; tdata zapis; void izbornik(){ cout << "\n---Izbornik---\n\n"; cout << "1. Dodavanje zapisa o klijentima banke u red" << endl; cout << "2. Izbacivanje kreditno nesposobnih klijenata iz reda" << endl; cout << "3. Simulacija zatvaranja jednog i otvaranja drugog saltera" << endl; cout << "9. Kraj programa" << endl; cout << "Vas izbor:"; } void unos(tred *Q){ cout << "\n---Unos---\n\n"; cout << "Ime klijenta: "; cin >> zapis.ime; cout << "Prezime klijenta: "; cin >> zapis.prezime; do{ cout << "Godina rodjenja klijenta: "; cin >> zapis.god; if(zapis.god < 1900 || zapis.god > 2000) cout << "Krivi unos!" << endl; }while(zapis.god < 1900 || zapis.god > 2000); cout << "Stanje na racunu klijenta: "; cin >> zapis.stanje; do{ cout << "Unesite vrstu transakcije:\n(1 = uplata/isplata, 2 = placanje racuna, 3 = krediti): "; cin >> zapis.trans; if(zapis.trans < 1 || zapis.trans > 3) cout << "Krivi unos." << endl; }while(zapis.trans < 1 || zapis.trans > 3); EnQueueQ(zapis, Q); br++; } void premjestaj(tred *Q){ tred pomocni; InitQ(&pomocni); int br2 = 0; for(int i=0; i<br; i++){ zapis = FrontQ(Q); if(zapis.god > 1945){//premjestaj u pomocni red EnQueueQ(zapis, &pomocni); DeQueueQ(Q); br2++; } else{ EnQueueQ(zapis, Q);//premjestaj god>65 na kraj reda DeQueueQ(Q); } }//for for(int i=0; i<br2; i++){//vracanje u originalni red zapis = FrontQ(&pomocni); DeQueueQ(&pomocni); EnQueueQ(zapis, Q); } } void ispis(tred *Q){ if(IsEmptyQ(Q)) cout << "Red je prazan." << endl; else{ cout << "\n---Ispis---\n\n"; for(int i=0; i<br; i++){ zapis = FrontQ(Q); cout << "----------------------------" << endl; cout << "Ime klijenta: " << zapis.ime << endl; cout << "Prezime klijenta. " << zapis.prezime << endl; cout << "Godina rodjenja klijenta: " << zapis.god << endl; cout << "Stanje na racunu: " << setprecision(2) << fixed << zapis.stanje << endl; cout << "Vrsta transakcije: "; if(zapis.trans == 1) cout << "uplata/isplata" << endl; else if(zapis.trans == 2) cout << "placanje racuna" << endl; else cout << "krediti" << endl; cout << "----------------------------" << endl; DeQueueQ(Q); EnQueueQ(zapis, Q); }//for }//else } void izbacivanje(tred *Q){ int br2 = 0; if(IsEmptyQ(Q)) cout << endl; else{ for(int i=0; i<br; i++){ zapis = FrontQ(Q); if(zapis.trans == 3 && zapis.stanje < 100){ DeQueueQ(Q); br2++; } else{ DeQueueQ(Q); EnQueueQ(zapis, Q);//premjestaj na kraj reda } }//for }//else br -= br2; } void simulacija(tred *Q){ if(!IsEmptyQ(Q)){ tdata holder = FrontQ(Q); DeQueueQ(Q); simulacija(Q); EnQueueQ(holder, Q); } } int main(){ tred Q; InitQ(&Q); int izbor; char jos; do{ izbornik(); cin >> izbor; switch(izbor){ case 1: do{ unos(&Q); cout << "\nJos (d/n): "; cin >> jos; }while(jos == 'd' || jos == 'D'); premjestaj(&Q); ispis(&Q); break; case 2: izbacivanje(&Q); ispis(&Q); break; case 3: simulacija(&Q); ispis(&Q); break; case 9: cout << "Kraj programa." << endl; break; default: cout << "Krivi unos!" << endl; }//switch }while(izbor != 9); cout << "Pritisnite ENTER za nastavak..."; cin.ignore(); cin.get(); return 0; }
URL: dekisanta_Z3_1