Revision: 36447
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 22, 2010 02:23 by dekisanta
Initial Code
struct tdata{
char ime[15];
char prezime[15];
int god;
float stanje;
int trans;
};
//#include "red_polje.h"
#include "red_pokazivac.h"
#include <iostream>
#include <iomanip>
int br = 0;
tdata zapis;
void izbornik(){
cout << "\n---Izbornik---\n\n";
cout << "1. Dodavanje zapisa o klijentima banke u red" << endl;
cout << "2. Izbacivanje kreditno nesposobnih klijenata iz reda" << endl;
cout << "3. Simulacija zatvaranja jednog i otvaranja drugog saltera" << endl;
cout << "9. Kraj programa" << endl;
cout << "Vas izbor:";
}
void unos(tred *Q){
cout << "\n---Unos---\n\n";
cout << "Ime klijenta: ";
cin >> zapis.ime;
cout << "Prezime klijenta: ";
cin >> zapis.prezime;
do{
cout << "Godina rodjenja klijenta: ";
cin >> zapis.god;
if(zapis.god < 1900 || zapis.god > 2000) cout << "Krivi unos!" << endl;
}while(zapis.god < 1900 || zapis.god > 2000);
cout << "Stanje na racunu klijenta: ";
cin >> zapis.stanje;
do{
cout << "Unesite vrstu transakcije:\n(1 = uplata/isplata, 2 = placanje racuna, 3 = krediti): ";
cin >> zapis.trans;
if(zapis.trans < 1 || zapis.trans > 3) cout << "Krivi unos." << endl;
}while(zapis.trans < 1 || zapis.trans > 3);
EnQueueQ(zapis, Q);
br++;
}
void premjestaj(tred *Q){
tred pomocni;
InitQ(&pomocni);
int br2 = 0;
for(int i=0; i<br; i++){
zapis = FrontQ(Q);
if(zapis.god > 1945){//premjestaj u pomocni red
EnQueueQ(zapis, &pomocni);
DeQueueQ(Q);
br2++;
}
else{
EnQueueQ(zapis, Q);//premjestaj god>65 na kraj reda
DeQueueQ(Q);
}
}//for
for(int i=0; i<br2; i++){//vracanje u originalni red
zapis = FrontQ(&pomocni);
DeQueueQ(&pomocni);
EnQueueQ(zapis, Q);
}
}
void ispis(tred *Q){
if(IsEmptyQ(Q)) cout << "Red je prazan." << endl;
else{
cout << "\n---Ispis---\n\n";
for(int i=0; i<br; i++){
zapis = FrontQ(Q);
cout << "----------------------------" << endl;
cout << "Ime klijenta: " << zapis.ime << endl;
cout << "Prezime klijenta. " << zapis.prezime << endl;
cout << "Godina rodjenja klijenta: " << zapis.god << endl;
cout << "Stanje na racunu: " << setprecision(2) << fixed << zapis.stanje << endl;
cout << "Vrsta transakcije: ";
if(zapis.trans == 1) cout << "uplata/isplata" << endl;
else if(zapis.trans == 2) cout << "placanje racuna" << endl;
else cout << "krediti" << endl;
cout << "----------------------------" << endl;
DeQueueQ(Q);
EnQueueQ(zapis, Q);
}//for
}//else
}
void izbacivanje(tred *Q){
int br2 = 0;
if(IsEmptyQ(Q)) cout << endl;
else{
for(int i=0; i<br; i++){
zapis = FrontQ(Q);
if(zapis.trans == 3 && zapis.stanje < 100){
DeQueueQ(Q);
br2++;
}
else{
DeQueueQ(Q);
EnQueueQ(zapis, Q);//premjestaj na kraj reda
}
}//for
}//else
br -= br2;
}
void simulacija(tred *Q){
if(!IsEmptyQ(Q)){
tdata holder = FrontQ(Q);
DeQueueQ(Q);
simulacija(Q);
EnQueueQ(holder, Q);
}
}
int main(){
tred Q;
InitQ(&Q);
int izbor;
char jos;
do{
izbornik();
cin >> izbor;
switch(izbor){
case 1:
do{
unos(&Q);
cout << "\nJos (d/n): ";
cin >> jos;
}while(jos == 'd' || jos == 'D');
premjestaj(&Q);
ispis(&Q);
break;
case 2:
izbacivanje(&Q);
ispis(&Q);
break;
case 3:
simulacija(&Q);
ispis(&Q);
break;
case 9:
cout << "Kraj programa." << endl;
break;
default:
cout << "Krivi unos!" << endl;
}//switch
}while(izbor != 9);
cout << "Pritisnite ENTER za nastavak...";
cin.ignore();
cin.get();
return 0;
}
Initial URL
dekisanta_Z3_1
Initial Description
Initial Title
Glavni program (red)
Initial Tags
Initial Language
C++