/ Published in: C++
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include<iostream> #include "red_pokazivac.h" //#include "red_polje.h" using namespace std; int brojac=0; void dodaj_klijenta(tRed *Q) { tklijent novi; cout << "Ime: "; cin.ignore(); cin.getline(novi.ime,50); cout << "Prezime: "; cin.getline(novi.prez,50); cout << "Godina rodjenja: "; cin >> novi.god; cout << "Stanje racuna: "; cin >> novi.stanje; cout << "Vrsta transakcije: "<<endl; cout << "('u' = uplate/isplate,'p' =placanje racuna,'k' = krediti): "<<endl; cout<< "Vas izbor je: "; do{ cin >> novi.vrstatrans; if((novi.vrstatrans != 'u') && (novi.vrstatrans != 'p') && (novi.vrstatrans != 'k')) cout<<"Pogresan unos\nVas izbor: "; }while((novi.vrstatrans != 'u') && (novi.vrstatrans != 'p') && (novi.vrstatrans != 'k')); EnQueueQ(novi, Q); cout<<"--------------------"<<endl<<endl; brojac++; }; void ispis_klijenata(tRed *Q) { cout<< "Ispis klijenata u redu:" <<endl; tklijent novi; int br=brojac; while (br) { novi = FrontQ(Q); DeQueueQ(Q); cout << "Ime: " << novi.ime << endl; cout << "Prezime: "<< novi.prez << endl; cout << "Godina rodjenja: " << novi.god << endl; cout << "Stanje na racunu: " << novi.stanje << endl; if(novi.vrstatrans == 'u') cout<<"Vrsta transakcije: Uplata/Isplata"<<endl; if(novi.vrstatrans == 'p') cout<<"Vrsta transakcije: Placanje racuna"<<endl; if(novi.vrstatrans == 'k') cout<<"Vrsta transakcije: Kreditiranje"<<endl; cout<<"-----------------"<<endl; EnQueueQ(novi,Q); br--; }; }; void starijiod(tRed *Q) { //pomocni red tRed *pomocni = InitQ(pomocni); tklijent novi; int br=brojac; while (br) { novi = FrontQ(Q); DeQueueQ(Q); if (novi.god > 1945) EnQueueQ(novi,pomocni); else EnQueueQ(novi,Q); br--; }; while (!IsEmptyQ(pomocni)) { novi = FrontQ(pomocni); DeQueueQ(pomocni); EnQueueQ(novi,Q); }; //ispis_klijenata(Q); }; void izbaciti(tRed *Q) { tRed *pomocni = InitQ(pomocni); tklijent novi; int br=brojac; while (br) { novi = FrontQ(Q); DeQueueQ(Q); if (!(novi.stanje < 100 && novi.vrstatrans == 'k')) EnQueueQ(novi,Q); else brojac--; br--; }; //ispis_klijenata(Q); }; void otvaranje_saltera(tRed *Q) { //rekurzija tklijent novi; novi = FrontQ(Q); DeQueueQ(Q); if (!IsEmptyQ(Q)) otvaranje_saltera(Q); EnQueueQ(novi,Q); }; int main(){ bool ima = false; tRed *Q = InitQ(Q); int zapis, iz,br=1; do{ cout<<"-----------------\nIZBRONIK\n-----------------"<<endl; cout<<"1. Dodavanje zapisa o klijentima banke u red."<<endl; cout<<"2. Premjestiti klijente starije od 65 godine na pocetak reda (pomocni red)."<<endl; cout<<"3. Izbaciti iz reda sve klijente koji imaju <100kn i zele transakciju kreditiranja."<<endl; cout<<"4. Zatvaranje jednog saltera i otvaranje drugog - Zamjena mjesta u redu (rekurzija)."<<endl; cout<<"5. Ispis stanja na redu."<<endl; cout<<"9. Izlaz iz programa"<<endl; cout<<"-----------------"<<endl; cout<<"Vas izbor je: "; cin>>iz; switch(iz){ case 1: cout<<"Kolko klijenata zelite dodati: "; cin>>zapis; for (int i=0;i<zapis;i++){ cout<<"Klijent broj "<<br<<". :"<<endl; dodaj_klijenta(Q); br++; }//for ima = true; break; case 2: if(!ima){ cout<<"Nema podataka!"<<endl; break; } starijiod(Q); break; case 3: if(!ima){ cout<<"Nema podataka!"<<endl; break; } izbaciti(Q); break; case 4: if(!ima){ cout<<"Nema podataka!"<<endl; break; } otvaranje_saltera(Q); break; case 5: ispis_klijenata(Q); break; }//switch }while(iz != 9); system("pause"); return 0; };