/ Published in: C++
Expand |
Embed | Plain Text
#include<iostream> #include<cstring> //#include "red_polje.h" #include "red_pokazivaci.h" using namespace std; int k=0; void ispis(red *A){ tbanka b; int broj=k; while(broj){ b=FrontQ(A); DeQueueQ(A); cout<<"\n Ime i prezime: "<<b.ime<<endl; cout<<" Godine rodenja: "<<b.god<<endl; cout<<" Bankovno stanje: "<<b.racun<<endl; cout<<" Transakcija: "<<b.tran<<endl; EnQueueQ(b,A); broj--; } } void upis(red *A){ char jos = 'd'; tbanka b; int u; while (jos == 'd'){ cout<<"\n Ime i prezime klijenta : "; cin.ignore(); cin.getline(b.ime, 50); cout<<" Godina rodenja : "; cin>>b.god; cout<<" Bankovno stanje: "; cin>>b.racun; cout<<" Transakcija: "<<endl; cout<<" 1. Uplata/isplata "<<endl; cout<<" 2. Placanje racuna "<<endl; cout<<" 3. Kredit "<<endl; cout<<" Vas odabir : "; cin>>u; if(u==1) strcpy(b.tran, "Uplata/isplata"); if(u==2) strcpy(b.tran, "Placanje racuna"); if(u==3) strcpy(b.tran, "Kredit"); EnQueueQ(b,A); k++; cout << "\Daljnji unos: (d/n) ? "; cin >> jos; } } void premjestaj(red *A){ red *pom = InitQ(pom); tbanka b; int broj=k; while(broj){ b=FrontQ(A); DeQueueQ(A); if(b.god >1945) EnQueueQ(b,pom); else{ EnQueueQ(b,A); } broj--; } while(!IsEmptyQ(pom)){ b=FrontQ(pom); DeQueueQ(pom); EnQueueQ(b,A); } ispis(A); } void izbaci(red *A){ if(IsEmptyQ(A)==0){ red *pom=InitQ(pom); tbanka b; int broj=k; while(broj){ b=FrontQ(A); DeQueueQ(A); if(b.racun<100 && strcmp(b.tran, "Kredit")==0 ) k--; else EnQueueQ(b,A); broj--; } ispis(A); } else cout<<"Red je prazan"<<endl; } void simulacija(red *A){ if(IsEmptyQ(A)==0){ tbanka b; b=FrontQ(A); DeQueueQ(A); if(!IsEmptyQ(A)) simulacija(A); EnQueueQ(b,A); } else cout<<"Red je prazan"<<endl; } int main(){ int izbor; red *A = InitQ(A); do{ cout<<"IZBORNIK"<<endl; cout<<"\n1. Upis klijenta "<<endl; cout<<"2. Izbacivanje klijenata koji ne zadovoljava uvjet kreditiranja "<<endl; cout<<"3. Simulacija zatvaranja saltera "<<endl; cout<<"9. Izlaz "<<endl; cout<<" Vas izbor: "; cin>>izbor; cout<<endl; switch(izbor){ case 1: { upis(A); premjestaj(A); break; } case 2: { izbaci(A); break; } case 3: { simulacija(A); ispis(A); break; } case 9: break; default: cout<<" Pogresan unos ! "<<endl; break; } }while(izbor!=9); system("pause"); return 0; } //red_polje.h #include <iostream> using namespace std; struct tbanka{ char ime[50]; int god; int racun; char tran[50]; }; tbanka ban; struct red{ tbanka elem[50]; int prvi, zadnji; } *A; int AddOne(int n){ return((n+1)%50); } red* InitQ(red *A){ A= new red; A->prvi=0; A->zadnji=49; return A; } tbanka FrontQ(red *A){ if (AddOne(A->zadnji)==(A->prvi)) { cout<<"Red je prazan "<<endl; } else{ int p; p=A->prvi; ban.god=A->elem[p].god; ban.racun=A->elem[p].racun; strcpy(ban.ime, A->elem[p].ime); strcpy(ban.tran, A->elem[p].tran); return ban; } } void DeQueueQ(red *A){ if (AddOne(A->zadnji) == (A->prvi)){ cout<<"Red je prazan "<<endl; } else{ A->prvi = AddOne(A->prvi); } } void EnQueueQ(tbanka x,red *A) { if (AddOne(AddOne(A->zadnji)) == (A->prvi)) cout<<"Red je pun "<<endl; else { A->zadnji=AddOne(A->zadnji); A->elem[A->zadnji]= x; } } int IsEmptyQ(red *A){ if (AddOne(A->zadnji) == (A->prvi)){ return 1; } else{ return 0; } } //red.pokazivaci.h #include<iostream> using namespace std; struct tbanka{ char ime[50]; char tran[50]; int god; int racun; }; struct tred{ tbanka elem; tred *iduci; }; struct red{ tred *prvi,*zadnji; }; typedef struct tbanka element; typedef struct red Queue; red* InitQ(red *A){ tred *novi=new tred; A = new red; A->prvi=novi; A->zadnji=novi; novi->iduci=NULL; return A; } tbanka FrontQ(red *A){ if(A->prvi==A->zadnji){ cout<<"Red je prazan "<<endl; } else return A->prvi->iduci->elem; } void DeQueueQ(red *A){ if(A->prvi==A->zadnji){ cout<<"Red je prazan "<<endl; } else{ tred *brisi = A->prvi; A->prvi = A->prvi->iduci; delete brisi;} } void EnQueueQ(tbanka x, red *A){ tred *novi=new tred; novi->elem = x; novi->iduci=NULL; A->zadnji->iduci=novi; A->zadnji=novi; } int IsEmptyQ(red *A){ if(A->prvi==A->zadnji){ return 1;} else{ return 0;} }
You need to login to post a comment.
