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++