Revision: 36403
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 21, 2010 23:11 by Vanny9
Initial Code
Banka.cpp ________________ #include <iostream> #include <string> #include "red_polje.h" //#include "red_pokazivac.h" using namespace std; struct banka{ string ime; string prezime; int god_rodj; int stanje; int trans; }; void ispisi(banka *x){ cout<<endl<<"---KORISNIK---"<<endl; cout<<"Ime: "<<x->ime<<endl; cout<<"Prezime: "<<x->prezime<<endl; cout<<"Godina rodjenja: "<<x->god_rodj<<endl; cout<<"Stanje na racunu: "<<x->stanje<<endl; cout<<"Zeljena transakcija: "; if(x->trans==1)cout<<"uplata/isplata"<<endl; else if(x->trans==2)cout<<"Placanje"<<endl; else cout<<"Kredit"<<endl; } Red <banka *> glavni; void dodaj_u_red(){ glavni.InitQ(); cout<<"---Unos novih korisnika u red---"<<endl; char jos; for(;;){ cout<<endl<<"Zelite li unjeti novog korisnika u red? (d/n) "; cin>>jos; if(jos=='n')break; else if (jos!='n' && jos!='d')continue; banka *x=new banka;; cout<<endl<<"---Unos novog korisnika u red---"<<endl; cout<<endl<<"Unesi ime: "; cin>>x->ime; cout<<endl<<"Unesi prezime: "; cin>>x->prezime; cout<<endl<<"Unesi godinu rodjenja: "; cin>>x->god_rodj; cout<<endl<<"Unesi stanje klijenta na racunu: "; cin>>x->stanje; cout<<endl<<"Zeljena transakcija (1 za uplatu/isplatu, 2 za placanje, 3 za kredit): "; cin>>x->trans; glavni.EnQueueQ(x); } cout<<endl<<"---Kraj unosa novih korisnika---"<<endl; } void premjesti_starije(){ Red<banka*> pom,stariji; pom.InitQ(); stariji.InitQ(); banka *tren; while(!glavni.IsEmpty()){ tren=glavni.DeQueueQ(); if(tren->god_rodj<1945) stariji.EnQueueQ(tren); else pom.EnQueueQ(tren); } while(!stariji.IsEmpty()){ tren=stariji.DeQueueQ(); glavni.EnQueueQ(tren);} while(!pom.IsEmpty()){ tren=pom.DeQueueQ(); glavni.EnQueueQ(tren);} cout<<endl<<"---Stanje reda nakon premjestanja starijih korisnika---"<<endl; while(!glavni.IsEmpty())pom.EnQueueQ(glavni.DeQueueQ()); while(!pom.IsEmpty()){tren=pom.DeQueueQ(); ispisi(tren); glavni.EnQueueQ(tren);} } void izbaci_bezpare(){ Red<banka*> pom; pom.InitQ(); banka *tren; cout<<endl<<"-Izbacujem iz reda korisnike sa manje od 100kn na racunu koji zele kredit: "<<endl; while(!glavni.IsEmpty()){ tren=glavni.DeQueueQ(); if(!(tren->stanje<100&&tren->trans==3)) pom.EnQueueQ(tren); else{ cout<<endl<<"-IZBACUJEM:"; ispisi(tren);} } cout<<endl<<"U redu ostaju: "<<endl; while(!pom.IsEmpty()){ tren=pom.DeQueueQ(); ispisi(tren); glavni.EnQueueQ(tren);} } void rekurzija(){ banka *tren; tren=glavni.DeQueueQ(); if(!glavni.IsEmpty()) rekurzija(); glavni.EnQueueQ(tren); ispisi(tren); return; } int main(){ int izbor; do { system ("cls"); cout << "Izbornik " << endl; cout << "1. Dodavanje klijenata u red " << endl; cout << "2. Premjestanje klijenata starijih od 65 na pocetak reda " << endl; cout << "3. Izbacivanje iz reda klijenata koji zele kredit a imaju manje od 100 kn " << endl; cout << "4. Stanje nakon pretrcavanja u novi red " << endl; cin >> izbor; switch (izbor) { case 1: dodaj_u_red(); break; case 2: premjesti_starije(); break; case 3: izbaci_bezpare(); break; case 4: cout<<endl<<"Nakon pretrcavanja u novi red stanje je: "<<endl; rekurzija(); cout<<endl<<"KRAJ"<<endl; break; } system("pause"); }while (izbor!=9); return 0; } Red_polje.h __________ #include <string> #include <stdlib.h> #include <iostream> using namespace std; #define n 1000; template <typename mytype> class Red{ int in; int out; bool last_push; mytype *a; public: void InitQ(){ in=0; out=1; last_push=false; } mytype FrontQ(){ if(IsEmpty()){ cout<<"Red je prazan"; return;} else return a[out]; } bool IsEmpty(){ if((in==out-1)&&(!last_push)) return true; else return false; } void EnQueueQ(mytype x){ if((in==out-1)&&(last_push)){ //? cout<<"Red je prepunjen, prekid rada..."<<endl; system("pause"); exit(0);} last_push=true; in=(in+1)%n; a[in]=x; } mytype DeQueueQ(){ if(IsEmpty()){cout<<"Nema vise clanova u redu,prekid..."<<endl; system("pause"); exit(0);} last_push=false; mytype x=a[out]; out=(out+1)%n; return x; } Red(){ a=new mytype [1000]; } }; Red_pokazivac.h _________ #include <string> #include <stdlib.h> #include <iostream> using namespace std; template <typename type> struct OE{ type data; OE<type> *next; }; template <typename mytype> class Red{ OE<mytype> *zadnji; OE<mytype> *prvi; public: mytype FrontQ(){ if(prvi==NULL){ cout<<"Red je prazan..."<<endl; return;} else return prvi->data; } void InitQ(){ prvi=NULL; zadnji=NULL; } bool IsEmpty(){ if((zadnji==NULL)&&(prvi==NULL)) return true; else return false; } void EnQueueQ(mytype x){ OE<mytype> *novi=new struct OE<mytype>; novi->data=x; novi->next=NULL; if(IsEmpty()) {prvi=novi; zadnji=novi;} else{ zadnji->next=novi; zadnji=novi;} }; mytype DeQueueQ(){ if(IsEmpty()){cout<<"Nema vise clanova u redu,prekid..."<<endl; system("pause"); exit(0);} OE<mytype> *tren=new OE<mytype>; tren->data=prvi->data; struct OE<mytype> *brisanje=new struct OE<mytype>; brisanje=prvi; prvi=prvi->next; if(prvi==NULL) zadnji=NULL; delete []brisanje; return tren->data; } Red(){ zadnji=NULL; prvi=NULL; } };
Initial URL
Initial Description
Initial Title
Program i biblioteke
Initial Tags
Initial Language
C++