/ Published in: C++
Expand |
Embed | Plain Text
#include <iostream> #include <cstdlib> using namespace std; struct tBanka { char ime_prezime[30]; int godina; int saldo; int trans; }; typedef tBanka elementtype; #include "red_polje.h" //#include "red_pokazivac.h" void cunos(char *znakovni_niz){ cin.getline(znakovni_niz, 30); if (cin.gcount()==1) cin.getline(znakovni_niz, 30); }; // UNOS PODATAKA ********************************************************************************************** void unos(qu *red){ char novi_unos; elementtype temp; cout << "============================================== \n"; cout << " *** Unos podataka *** \n"; cout << "============================================== \n\n"; do { cout << "Ime i prezime: "; cunos(temp.ime_prezime); cout << "\nGodina rodjenja: "; cin >> temp.godina; cout << "\nStanje racuna: "; cin >> temp.saldo; do{ cout << "\nVrsta transakcije: \n\n 1. Uplata/isplata"; cout << "\n 2. Placanje racuna\n 3. Zahtjev za kredit "; cout << "\n\nIzbor: "; cin >> temp.trans; if (temp.trans > 0 && temp.trans < 4){break;} else cout << "\n Pogresan odabir ! Molimo ponovite unos ! \n\n"; }while(true); cout << "---------------------------------------------- \n\n\n"; EnQueueQ(temp,red); cout << " Zelite novi unos: (d/n)? "; cin >> novi_unos; cout << "\n\n"; }while(novi_unos == 'd'); cout << " Zahvaljujemo na unosu. \n\n\n\n "; }; // ISPIS REDA ************************************************************************************************* void ispis(qu *red){ elementtype temp; qu *red_temp = new qu; InitQ(red_temp); if(IsEmptyQ(red)){ cout << "\n\n\n\n Molimo unesite podatke o klijentima ! \n"; cout << "\n\n (Odaberite mogucnost 1 u glavnom izborniku.) \n\n\n\n\n"; } while(!IsEmptyQ(red)){ EnQueueQ(FrontQ(red),red_temp); temp = FrontQ(red); DeQueueQ(red); cout << "\nIme i prezime: " << temp.ime_prezime; cout << "\nGodina rodjenja: " << temp.godina; cout << "\nStanje racuna: " <<temp.saldo << " kn "; cout << "\nVrsta transakcije: " ; if(temp.trans==1)cout << "Uplata/isplata \n"; else if(temp.trans==2)cout << "Placanje racuna \n"; else cout << "Zahtjev za kredit \n"; cout << "----------------------------------------------\n\n"; }; while(!IsEmptyQ(red_temp)){ EnQueueQ(FrontQ(red_temp),red); DeQueueQ(red_temp); }; }; // ISPIS SVIH KLIJENATA U REDU ******************************************************************************** void ispis_red(qu *red){ cout << "\n==============================================\n"; cout << " *** Ispis klijenata u redu cekanja *** \n"; cout << " (prema redoslijedu dolaska u banku) \n"; cout << "==============================================\n"; ispis (red); }; // BRISANJE REDA ********************************************************************************************** void brisanje(qu *red){ char brisi; cout << " Jeste li sigurni da zelite obrisati popis klijenata: (d/n)? "; cin >> brisi; cout << "\n\n\n\n\n"; while(!IsEmptyQ(red)){ if (brisi == 'd') DeQueueQ(red); else break; }; }; // PROPUĊ TANJE STARIJIH KLIJENATA ***************************************************************************** void prednost(qu *red,qu *red_back){ elementtype temp; qu *red_temp = new qu; qu *red_temp1 = new qu; InitQ(red_temp); InitQ(red_temp1); cout << "\n==============================================\n"; cout << " *** Popis klijenata starijih od 65 godina ***\n"; cout << " (propustaju se na pocetak reda) \n"; cout << "==============================================\n"; while(!IsEmptyQ(red)){ EnQueueQ(FrontQ(red),red_back); temp = FrontQ(red); do{ if (temp.godina < 1945){ EnQueueQ(FrontQ(red),red_temp); DeQueueQ(red); cout << "\n\t\t " << temp.ime_prezime; } else{ EnQueueQ(FrontQ(red), red_temp1); DeQueueQ(red);} }while(false); }; cout << "\n\n\n\n==============================================\n"; cout << " *** Ispis novog reda cekanja *** \n"; cout << " (stariji od 65 godina su propusteni naprijed)\n"; cout << "==============================================\n\n"; while(!IsEmptyQ(red_temp)){ EnQueueQ(FrontQ(red_temp),red); DeQueueQ(red_temp); } while(!IsEmptyQ(red_temp1)){ EnQueueQ(FrontQ(red_temp1),red); DeQueueQ(red_temp1); } ispis (red); while(!IsEmptyQ(red)){ DeQueueQ(red); } while(!IsEmptyQ(red_back)){ EnQueueQ(FrontQ(red_back),red); DeQueueQ(red_back); } }; // KREDITNA SPOSOBNOST **************************************************************************************** void kredit(qu *red, qu *red_back){ elementtype temp; qu *red_temp = new qu; InitQ(red_temp); cout << "\n==============================================\n"; cout << " *** Klijenti koji ne mogu dobiti kredit *** \n"; cout << " (stanje racuna je ispod 100 kn) \n"; cout << "==============================================\n\n"; while(!IsEmptyQ(red)){ EnQueueQ(FrontQ(red),red_back); temp = FrontQ(red); do{ if (temp.saldo < 100 && temp.trans == 3){ DeQueueQ(red); cout << "\n\t\t " << temp.ime_prezime; } else{ EnQueueQ(FrontQ(red), red_temp); DeQueueQ(red);} }while(false); }; cout << "\n\n\n\n==============================================\n"; cout << " *** Ispis novog reda cekanja *** \n"; cout << " (Samo kreditno sposobne osobe) \n"; cout << "==============================================\n\n"; while(!IsEmptyQ(red_temp)){ EnQueueQ(FrontQ(red_temp),red); DeQueueQ(red_temp); } ispis (red); while(!IsEmptyQ(red)){ DeQueueQ(red); } while(!IsEmptyQ(red_back)){ EnQueueQ(FrontQ(red_back),red); DeQueueQ(red_back); } }; // ISPIS REDA U OBRNUTOM SLIJEDU ****************************************************************************** void ispis2(qu *red, qu *red_back){ elementtype temp; while(!IsEmptyQ(red)){ EnQueueQ(FrontQ(red),red_back); temp = FrontQ(red); DeQueueQ(red); ispis2(red, red_back); // rekurzija cout << "\nIme i prezime: " << temp.ime_prezime; cout << "\nGodina rodjenja: " << temp.godina; cout << "\nStanje racuna: " <<temp.saldo << " kn "; cout << "\nVrsta transakcije: " ; if(temp.trans==1)cout << "Uplata/isplata \n"; else if(temp.trans==2)cout << "Placanje racuna \n"; else cout << "Zahtjev za kredit \n"; cout << "----------------------------------------------\n\n"; }; }; // MAIN ******************************************************************************************************* int main () { qu *red = new qu; qu *red_back = new qu; InitQ(red); InitQ(red_back); int izbor; do{ cout << "\n\n**********************************************************************\n\n"; cout << " B A N K A V.1.0. \n\n"; cout << " Autor: Anja Petrovic, 2010. \n\n"; cout << "**********************************************************************\n\n\n"; cout << "======================================================================\n"; cout << "1. Unos podataka o klijentima \n"; cout << "2. Ispis svih klijenata u redu cekanja \n"; cout << "3. Brisanje popisa klijenata \n"; cout << "4. Propustanje klijenata starijih od 65 godina \n"; cout << "5. Popis klijenata prema kreditnoj sposobnosti \n"; cout << "6. Ispis reda cekanja na novom salteru \n"; cout << "0. Izlaz iz programa \n"; cout << "======================================================================\n\n\n"; cout << "Izbor: "; cin >> izbor; cout << "\n\n"; switch(izbor){ case 1:unos(red);break; case 2:ispis_red(red);break; case 3:brisanje(red);break; case 4:prednost(red, red_back);break; case 5:kredit(red, red_back);break; case 6:cout << "\n==============================================\n"; cout << " *** Ispis novog reda cekanja *** \n"; cout << " (Nakon otvaranja novog saltera u banci) \n"; cout << "==============================================\n;"; ispis2(red, red_back); while(!IsEmptyQ(red_back)){ EnQueueQ(FrontQ(red_back),red); DeQueueQ(red_back);}break; case 0:while(!IsEmptyQ(red)){ DeQueueQ(red);};break; default: cout << "Pogresan odabir ! Molimo ponovite unos ! \n\n" << endl << endl; system ("pause"); }; }while(izbor!=0); delete red; return 0; };
You need to login to post a comment.
