/ Published in: C++
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include <cstdlib> #include "red_polje.h" //#include "red_pokazivac.h" using namespace std; int broj=0; void dodaj_zapis(red *Q) { zapis klijent; int A,B; cout << "Koliko klijenata zelite unijeti? "; cin >> A; for(int i=0;i<A;i++) { cin.ignore(); cin.clear(); cout << "Ime i prezime: "; getline(cin,klijent.preime,'\n'); cout << "Godina rodjenja: "; cin >> klijent.god; cout << "Stanje na racunu: "; cin >> klijent.stanje_racuna; do { cout << "VRSTA TRANSAKCIJE:\n1. uplate/isplate\n2. placanje racuna\n3. krediti" << endl; cin >> B; } while(B<1&&B>3); if(B==1) klijent.transakcija=1; if(B==2) klijent.transakcija=2; if(B==3) klijent.transakcija=3; EnQueueQ(klijent,Q); cout << "Klijent je dodan u red!" << endl; broj++; } }; void prednost_umirovljenici(red *Q,red *stariji) { if (!IsEmptyQ(Q)) { int br_unosa=broj; while (br_unosa!=0) { zapis pom=FrontQ(Q); DeQueueQ(Q); if (pom.god>1945) EnQueueQ(pom,stariji); else EnQueueQ(pom,Q); br_unosa--; } while (!IsEmptyQ(stariji)) { zapis umirovljenik=FrontQ(stariji); DeQueueQ(stariji); EnQueueQ(umirovljenik,Q); } cout << endl; cout << "Ispis stanja reda:" << endl; while (br_unosa!=broj) { zapis klijent=FrontQ(Q); DeQueueQ(Q); cout << endl; cout << "Ime i prezime: " << klijent.preime << endl; cout << "Godina rodjena: " << klijent.god << endl; cout << "Stanje na racunu: " << klijent.stanje_racuna << endl; if (klijent.transakcija==1) cout << "Transakcija: uplata/isplata" << endl; else if (klijent.transakcija==2) cout << "Transakcija: placanje racuna" << endl; else cout << "Transakcija: kredit" << endl; EnQueueQ (klijent,Q); br_unosa++; } } else cout << "Red je prazan!" << endl; }; void krediti100(red *Q) { if (!IsEmptyQ(Q)) { int stanje_reda=broj; while (stanje_reda!=0) { zapis klijent=FrontQ(Q); DeQueueQ(Q); if (klijent.stanje_racuna<100&&klijent.transakcija==3) broj--; else EnQueueQ(klijent,Q); stanje_reda--; } while (broj!=stanje_reda) { zapis klijent=FrontQ(Q); DeQueueQ(Q); cout << endl; cout << "Ime i prezime: " << klijent.preime << endl; cout << "Godina rodjena: " << klijent.god << endl; cout << "Stanje racuna: " << klijent.stanje_racuna << endl; if(klijent.transakcija==1) cout << "Transakcija: uplata/isplata" << endl; else if (klijent.transakcija==2) cout << "Transakcija: placanje racuna" << endl; else cout << "Transakcija: kredit" << endl; EnQueueQ(klijent,Q); stanje_reda++; } } else cout << "Red je prazan!" << endl; }; int salterska_rekurzija(red *Q) { zapis klijent=FrontQ(Q); DeQueueQ(Q); if(!IsEmptyQ(Q)) salterska_rekurzija(Q); EnQueueQ(klijent,Q); cout << "Ime i prezime: " << klijent.preime << endl; cout << "Godina rodjena: " << klijent.god << endl; cout << "Stanje racuna: " << klijent.stanje_racuna << endl; if(klijent.transakcija==1) cout << "Transakcija: uplata/isplata" << endl; else if (klijent.transakcija==2) cout << "Transakcija: placanje racuna" << endl; else cout << "Transakcija: kredit" << endl; cout << endl; }; int main() { int A; red *Q=InitQ(Q); red *Qpom=InitQ(Qpom); do { cout << "1. Dodaj zapis o klijentu\n2. Propusti umirovljenike" << endl; cout << "3. Izbaci klijenate koji imaju manje od 100 kn na racunu i zele kredit" << endl; cout << "4. Otvaranje novog saltera\n9. Izlaz iz programa" << endl; cin >> A; switch(A) { case 1: dodaj_zapis(Q); break; case 2: prednost_umirovljenici(Q,Qpom); break; case 3: cout << "Izbacivanje klijenata koji imaju manje od 100 kn na racunu i zele kredit" << endl; krediti100(Q); break; case 4: cout << "Zatvranje jednog i otvaranje drugog saltera" << endl; salterska_rekurzija(Q); break; case 9: break; } } while (A!=9); system ("pause"); return 0; }