Revision: 36470
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 22, 2010 05:20 by alsobodic
Initial Code
#include<iostream>
#include "red_pokazivac.h"
//#include "red_polje.h"
using namespace std;
int brojac=0;
void dodaj_klijenta(tRed *Q) {
tklijent novi;
cout << "Ime: ";
cin.ignore();
cin.getline(novi.ime,50);
cout << "Prezime: ";
cin.getline(novi.prez,50);
cout << "Godina rodjenja: ";
cin >> novi.god;
cout << "Stanje racuna: ";
cin >> novi.stanje;
cout << "Vrsta transakcije: "<<endl;
cout << "('u' = uplate/isplate,'p' =placanje racuna,'k' = krediti): "<<endl;
cout<< "Vas izbor je: ";
do{
cin >> novi.vrstatrans;
if((novi.vrstatrans != 'u') && (novi.vrstatrans != 'p') && (novi.vrstatrans != 'k'))
cout<<"Pogresan unos\nVas izbor: ";
}while((novi.vrstatrans != 'u') && (novi.vrstatrans != 'p') && (novi.vrstatrans != 'k'));
EnQueueQ(novi, Q);
cout<<"--------------------"<<endl<<endl;
brojac++;
};
void ispis_klijenata(tRed *Q) {
cout<< "Ispis klijenata u redu:" <<endl;
tklijent novi;
int br=brojac;
while (br) {
novi = FrontQ(Q);
DeQueueQ(Q);
cout << "Ime: " << novi.ime << endl;
cout << "Prezime: "<< novi.prez << endl;
cout << "Godina rodjenja: " << novi.god << endl;
cout << "Stanje na racunu: " << novi.stanje << endl;
if(novi.vrstatrans == 'u') cout<<"Vrsta transakcije: Uplata/Isplata"<<endl;
if(novi.vrstatrans == 'p') cout<<"Vrsta transakcije: Placanje racuna"<<endl;
if(novi.vrstatrans == 'k') cout<<"Vrsta transakcije: Kreditiranje"<<endl;
cout<<"-----------------"<<endl;
EnQueueQ(novi,Q);
br--;
};
};
void starijiod(tRed *Q) { //pomocni red
tRed *pomocni = InitQ(pomocni);
tklijent novi;
int br=brojac;
while (br) {
novi = FrontQ(Q);
DeQueueQ(Q);
if (novi.god > 1945)
EnQueueQ(novi,pomocni);
else
EnQueueQ(novi,Q);
br--;
};
while (!IsEmptyQ(pomocni)) {
novi = FrontQ(pomocni);
DeQueueQ(pomocni);
EnQueueQ(novi,Q);
};
//ispis_klijenata(Q);
};
void izbaciti(tRed *Q) {
tRed *pomocni = InitQ(pomocni);
tklijent novi;
int br=brojac;
while (br) {
novi = FrontQ(Q);
DeQueueQ(Q);
if (!(novi.stanje < 100 && novi.vrstatrans == 'k'))
EnQueueQ(novi,Q);
else brojac--;
br--;
};
//ispis_klijenata(Q);
};
void otvaranje_saltera(tRed *Q) { //rekurzija
tklijent novi;
novi = FrontQ(Q);
DeQueueQ(Q);
if (!IsEmptyQ(Q)) otvaranje_saltera(Q);
EnQueueQ(novi,Q);
};
int main(){
bool ima = false;
tRed *Q = InitQ(Q);
int zapis, iz,br=1;
do{
cout<<"-----------------\nIZBRONIK\n-----------------"<<endl;
cout<<"1. Dodavanje zapisa o klijentima banke u red."<<endl;
cout<<"2. Premjestiti klijente starije od 65 godine na pocetak reda (pomocni red)."<<endl;
cout<<"3. Izbaciti iz reda sve klijente koji imaju <100kn i zele transakciju kreditiranja."<<endl;
cout<<"4. Zatvaranje jednog saltera i otvaranje drugog - Zamjena mjesta u redu (rekurzija)."<<endl;
cout<<"5. Ispis stanja na redu."<<endl;
cout<<"9. Izlaz iz programa"<<endl;
cout<<"-----------------"<<endl;
cout<<"Vas izbor je: ";
cin>>iz;
switch(iz){
case 1:
cout<<"Kolko klijenata zelite dodati: ";
cin>>zapis;
for (int i=0;i<zapis;i++){
cout<<"Klijent broj "<<br<<". :"<<endl;
dodaj_klijenta(Q);
br++;
}//for
ima = true;
break;
case 2:
if(!ima){
cout<<"Nema podataka!"<<endl;
break;
}
starijiod(Q);
break;
case 3:
if(!ima){
cout<<"Nema podataka!"<<endl;
break;
}
izbaciti(Q);
break;
case 4:
if(!ima){
cout<<"Nema podataka!"<<endl;
break;
}
otvaranje_saltera(Q);
break;
case 5:
ispis_klijenata(Q);
break;
}//switch
}while(iz != 9);
system("pause");
return 0;
};
Initial URL
Initial Description
Initial Title
simulacija_reda_u_banci.cpp
Initial Tags
Initial Language
C++