/ Published in: C++
Expand |
Embed | Plain Text
//red_polje.h struct bankovni_klijenti{ char imeprez[50]; int godiste; int stanje; char trans; }; struct red{ bankovni_klijenti e[10000]; int p, z; }; typedef struct red queue; typedef struct bankovni_klijenti element; red* InitQ(red *Q){ Q = new red; Q -> p = 0; Q -> z = 9999; return Q; } int AddOne(int n) { return ((n+1)%10000); } element FrontQ(red *Q) { return Q -> e[Q -> p]; } void EnQueueQ(element x, red *Q) { Q -> z = AddOne(Q -> z); Q -> e[Q -> z] = x; } void DeQueueQ(red *Q) { Q -> p = AddOne(Q -> p); } bool IsEmptyQ(red *Q) { if(AddOne(Q -> z) == Q -> p) return true; return false; } //red_pokazivac.h struct bankovni_klijenti { char imeprez[50]; int godiste; int stanje; char trans; }; struct elem { bankovni_klijenti e; elem *s; }; struct red { elem *p,*z; }; typedef struct bankovni_klijenti element; typedef struct red queue; red* InitQ(red *Q) { elem *novi = new elem; Q = new red; novi -> s = NULL; Q -> z = novi; Q -> p = novi; return Q; } bankovni_klijenti FrontQ(red *Q) { return Q -> p -> s -> e; } void EnQueueQ(element x, red *Q) { elem *novi = new elem; novi -> e = x; novi -> s = NULL; Q -> z -> s = novi; Q -> z = novi; } void DeQueueQ(red *Q) { elem *brisi = Q -> p; Q -> p = brisi -> s; delete brisi; } bool IsEmptyQ(red *Q) { if(Q -> z == Q -> p) return true; return false; } //banka.cpp #include<iostream> #include "red_polje.h" //#include "red_pokazivac.h" using namespace std; int brojac = 0; void ispis(red *Q) { bankovni_klijenti novi; int broj = brojac; while(broj) { novi = FrontQ(Q); DeQueueQ(Q); cout << "Ime i prezime klijenta: " << novi.imeprez << endl; cout << "Godina rodjenja: " << novi.godiste << endl; cout << "Stanje na racunu (u, i, p, k): " << novi.stanje << endl; if(novi.trans == 'u' || novi.trans == 'i') cout << "Vrsta transakcije: uplata/isplata." << endl; if(novi.trans == 'p') cout << "Vrsta transakcije: placanje racuna." << endl; if(novi.trans == 'k') cout << "Vrsta transakcije: kreditiranje." << endl; cout << "------------------------------" << endl; EnQueueQ(novi,Q); broj--; } } void dodavanje_klijenata(red *Q) { bankovni_klijenti novi; cout << "Ime i prezime klijenta: "; cin.ignore(); cin.getline(novi.imeprez, 50); cout << "Godina rodjenja: "; cin >> novi.godiste; cout << "Stanje racuna: "; cin >> novi.stanje; cout << "Vrsta transakcije: (u, i, p, k): " << endl; cout << "Vas izbor: "; do { cin >> novi.trans; if((novi.trans != 'u') && (novi.trans != 'i') && (novi.trans != 'p') && (novi.trans != 'k')) cout << "Pogresan unos." << endl; }while((novi.trans != 'u') && (novi.trans != 'i') && (novi.trans != 'p') && (novi.trans != 'k')); EnQueueQ(novi, Q); cout << "----------------------------------" << endl << endl; brojac++; } void stariji(red *Q) { red *pomocni = InitQ(pomocni); bankovni_klijenti novi; int broj = brojac; while(broj) { novi = FrontQ(Q); DeQueueQ(Q); if(novi.godiste > 1945) EnQueueQ(novi,pomocni); else EnQueueQ(novi,Q); broj--; } while(!IsEmptyQ(pomocni)) { novi = FrontQ(pomocni); DeQueueQ(pomocni); EnQueueQ(novi,Q); } ispis(Q); } void sredstva(red *Q) { red *pomocni = InitQ(pomocni); bankovni_klijenti novi; int broj = brojac; while(broj) { novi = FrontQ(Q); DeQueueQ(Q); if(!(novi.stanje < 100 && novi.trans == 'k')) EnQueueQ(novi,Q); else brojac--; broj--; } ispis(Q); } void salteri(red *Q) { bankovni_klijenti novi; novi = FrontQ(Q); DeQueueQ(Q); if(!IsEmptyQ(Q)) salteri(Q); EnQueueQ(novi,Q); } int main() { bool ima = false; red *Q = InitQ(Q); int izbor; do { cout << "Izbornik: " << endl; cout << "1. Dodavanje klijenata banke u red." << endl; cout << "2. Pustanje starijih klijenata." << endl; cout << "3. Izbacivanje klijenata s manjkom sredstava." << endl; cout << "4. Otvaranje / zatvaranje saltera." << endl; cout << "9. Kraj programa." << endl; cout << "Vas izbor: "; cin >> izbor; switch(izbor) { case 1: system("cls"); for(int i=0; i<15; i++) { cout << "Klijenata u redu: " << i << endl; cout << "U redu slobodno: " << 15-i << " mjesta." << endl << endl; dodavanje_klijenata(Q); } ima = true; break; case 2: system("cls"); if(!ima) { cout << "Nema podataka o klijentima." << endl; break; } stariji(Q); break; case 3: system("cls"); if(!ima) { cout << "Nema podataka o klijentima." << endl; break; } sredstva(Q); break; case 4: system("cls"); if(!ima) { cout << "Nema podataka o klijentima." << endl; break; } salteri(Q); ispis(Q); break; case 9: break; } }while(izbor != 9); system("pause"); }
You need to login to post a comment.
