Revision: 36493
Updated Code
at November 22, 2010 09:05 by hjurica
Updated Code
// MAIN PROGRAM - BANKA
#include <iostream>
#include <cstdlib>
#include "red_polje.h"
//#include "red_pokazivac.h" // NE RADI!!!
using namespace std;
void dodaj_zapis (RED *Q) {
klijent k;
cout << "Ime i prezime: ";
cin.ignore();
cin.getline(k.ime,40);
cout << "Godina rodjenja: ";
cin >> k.god;
cout << "Stanje racuna (kn): ";
cin >> k.stanje;
cout << "Transakcija (uplata, isplata, placanje ili kredit): ";
cin.ignore();
cin.getline(k.trans,10);
ENQUEUEQ (k, Q);
}
void provjeri (RED *Q, RED *pom) {
klijent k;
RED *pomoc = new RED;
INITQ (pomoc);
while (! ISEMPTYQ (Q)) {
k = FRONTQ (Q);
if (k.god < 1945){
ENQUEUEQ (k, pomoc);
DEQUEUEQ (Q);
}
else {
ENQUEUEQ(k, pom);
DEQUEUEQ (Q);
}
}
while (! ISEMPTYQ (pomoc)){
k = FRONTQ (pomoc);
ENQUEUEQ (k, Q);
DEQUEUEQ (pomoc);
}
while (! ISEMPTYQ (pom)) {
k = FRONTQ (pom);
ENQUEUEQ (k, Q);
DEQUEUEQ (pom);
}
cout << "Stanje u redu: " << endl;
cout << "-------------------------------------" << endl;
while (! ISEMPTYQ (Q)) {
k = FRONTQ (Q);
cout << "Ime i prezime: " << k.ime << endl;;
cout << "Godina rodjenja: "<< k.god << endl;
cout << "Stanje racuna (HRK): "<< k.stanje << endl;
cout << "Vrsta transakcije: "<< k.trans << endl;
cout << "---------------------------------------" << endl;
ENQUEUEQ (k, pom);
DEQUEUEQ (Q);
};
delete pomoc;
}
void izbaci (RED *Q, RED *pom) {
klijent k;
while (! ISEMPTYQ (Q)) {
k = FRONTQ (Q);
if (k.stanje < 100 && (!(strcmp (k.trans, "kredit")))) {
DEQUEUEQ (Q);
}
else {
ENQUEUEQ (k, pom);
DEQUEUEQ (Q);
}
}
cout << "Stanje u redu: " << endl;
cout << "----------------------------" << endl;
while (! ISEMPTYQ (pom)) {
k = FRONTQ (pom);
cout << "Ime i prezime: " << k.ime << endl;;
cout << "Godina rodjenja: "<< k.god << endl;
cout << "Stanje racuna (HRK): "<< k.stanje << endl;
cout << "Vrsta transakcije: "<< k.trans << endl;
cout << "---------------------------------------" << endl;
ENQUEUEQ (k, Q);
DEQUEUEQ (pom);
};
}
void simuliraj (RED *Q) {
klijent k;
k = FRONTQ (Q);
DEQUEUEQ (Q);
if (! ISEMPTYQ (Q)) simuliraj (Q);
ENQUEUEQ (k, Q);
RED *pom = INITQ (pom);
while (! ISEMPTYQ (Q)) {
k = FRONTQ (Q);
cout << "Ime i prezime: " << k.ime << endl;;
cout << "Godina rodjenja: "<< k.god << endl;
cout << "Stanje racuna (HRK): "<< k.stanje << endl;
cout << "Vrsta transakcije: "<< k.trans << endl;
cout << "---------------------------------------" << endl;
ENQUEUEQ (k, pom);
DEQUEUEQ (Q);
};
}
int main () {
RED *Q = INITQ (Q);
RED *pom = INITQ (pom);
int izbor;
do {
cout << "\nIZBORNIK" << endl;
cout << "====================================================" << endl;
cout << "1. Dodavanje zapisa o klijentima." << endl;
cout << "2. Pusti starije od 65 na pocetak reda." << endl;
cout << "3. Izbaci iz reda klijente sa stanjem ispod 100 kn." << endl;
cout << "4. Simuliraj zatvaranje saltera i otvaranje novog." << endl;
cout << "0. Izlaz iz programa!" << endl;
cout << "====================================================" << endl;
do {
cout << "IZBOR: ";
cin >> izbor;
cout << endl;
} while (izbor < 0 || izbor > 4);
switch (izbor) {
case 1:
dodaj_zapis (Q);
break;
case 2:
provjeri (Q, pom);
break;
case 3:
izbaci (Q, pom);
break;
case 4:
cout << "Stanje u redu: " << endl;
cout << "----------------------------" << endl;
simuliraj (Q);
break;
}
} while (izbor != 0);
return 0;
}
// IMPLEMENTACIJA REDA POMOCU POLJA
#include <iostream>
#include <cstdlib>
using namespace std;
struct klijent {
char ime [40];
int god;
float stanje;
char trans [10];
};
struct RED {
klijent zapis [1000];
int front;
int rear;
} Q;
int ADDONE(int n) {
return((n+1)%1000);
}
bool ISEMPTYQ (RED *Q) {
if (ADDONE (Q->rear) == Q->front) return 1;
else return 0;
}
klijent FRONTQ (RED *Q) {
if (ISEMPTYQ (Q)) cout << "Red je prazan!" << endl;
else {
return (Q->zapis [Q->front]);
}
}
klijent ENQUEUEQ (klijent x, RED *Q) {
if (ADDONE(ADDONE(Q->rear)) == (Q->front)) cout << "Red je pun!" << endl;
else {
Q->rear = ADDONE(Q->rear);
Q->zapis [Q->rear] = x;
}
}
void DEQUEUEQ (RED *Q) {
if (ISEMPTYQ (Q)) cout << "Red je prazan!" << endl;
else Q->front = ADDONE(Q->front);
}
RED* INITQ (RED *Q) {
Q = new RED;
Q->front = 0;
Q->rear = 999;
return Q;
}
// IMPLEMENTACIJA REDA POMOCU POKAZIVACA
#include <iostream>
#include <cstdlib>
using namespace std;
struct klijent {
char ime [40];
int god;
float stanje;
char trans [10];
};
struct tzapis {
klijent zapis;
tzapis *sljedeci;
};
struct RED {
tzapis *front, *rear;
} Q;
bool ISEMPTYQ (RED *Q) {
if (Q->front == Q->rear) return 1;
else return 0;
}
klijent FRONTQ (RED *Q) {
if (ISEMPTYQ (Q)) cout << "Red je prazan!" << endl;
else return Q->front->sljedeci->zapis;
}
klijent ENQUEUEQ (klijent x, RED *Q) {
tzapis *novi = new tzapis;
Q->rear->sljedeci = novi;
Q->rear = Q->rear->sljedeci;
Q->rear->zapis = x;
Q->rear->sljedeci = 0;
}
void DEQUEUEQ (RED *Q) {
tzapis *pom;
if (ISEMPTYQ (Q)) cout << "Red je prazan!" << endl;
else {
pom = Q->front;
Q->front = Q->front->sljedeci;
delete pom;
}
}
RED* INITQ (RED *Q) {
Q = new RED;
Q->front = 0;
Q->rear = 0;
return Q;
}
Revision: 36492
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 22, 2010 08:57 by hjurica
Initial Code
// MAIN PROGRAM - BANKA
#include <iostream>
#include <cstdlib>
#include "red_polje.h"
//#include "red_pokazivac.h" // NE RADI!!!
using namespace std;
void dodaj_zapis (RED *Q) {
klijent k;
cout << "Ime i prezime: ";
cin.ignore();
cin.getline(k.ime,40);
cout << "Godina rodjenja: ";
cin >> k.god;
cout << "Stanje racuna (kn): ";
cin >> k.stanje;
cout << "Transakcija (uplata, isplata, placanje ili kredit): ";
cin.ignore();
cin.getline(k.trans,10);
ENQUEUEQ (k, Q);
}
void provjeri (RED *Q, RED *pom) {
klijent k;
RED *pomoc = new RED;
INITQ (pomoc);
while (! ISEMPTYQ (Q)) {
k = FRONTQ (Q);
if (k.god < 1945){
ENQUEUEQ (k, pomoc);
DEQUEUEQ (Q);
}
else {
ENQUEUEQ(k, pom);
DEQUEUEQ (Q);
}
}
while (! ISEMPTYQ (pomoc)){
k = FRONTQ (pomoc);
ENQUEUEQ (k, Q);
DEQUEUEQ (pomoc);
}
while (! ISEMPTYQ (pom)) {
k = FRONTQ (pom);
ENQUEUEQ (k, Q);
DEQUEUEQ (pom);
}
cout << "Stanje u redu: " << endl;
cout << "-------------------------------------" << endl;
while (! ISEMPTYQ (Q)) {
k = FRONTQ (Q);
cout << "Ime i prezime: " << k.ime << endl;;
cout << "Godina rodjenja: "<< k.god << endl;
cout << "Stanje racuna (HRK): "<< k.stanje << endl;
cout << "Vrsta transakcije: "<< k.trans << endl;
cout << "---------------------------------------" << endl;
ENQUEUEQ (k, pom);
DEQUEUEQ (Q);
};
delete pomoc;
}
void izbaci (RED *Q, RED *pom) {
klijent k;
while (! ISEMPTYQ (Q)) {
k = FRONTQ (Q);
if (k.stanje < 100 && (strcmp (k.trans, "kredit"))) {
DEQUEUEQ (Q);
}
else {
ENQUEUEQ (k, pom);
DEQUEUEQ (Q);
}
}
cout << "Stanje u redu: " << endl;
cout << "----------------------------" << endl;
while (! ISEMPTYQ (pom)) {
k = FRONTQ (pom);
cout << "Ime i prezime: " << k.ime << endl;;
cout << "Godina rodjenja: "<< k.god << endl;
cout << "Stanje racuna (HRK): "<< k.stanje << endl;
cout << "Vrsta transakcije: "<< k.trans << endl;
cout << "---------------------------------------" << endl;
ENQUEUEQ (k, Q);
DEQUEUEQ (pom);
};
}
void simuliraj (RED *Q) {
klijent k;
k = FRONTQ (Q);
DEQUEUEQ (Q);
if (! ISEMPTYQ (Q)) simuliraj (Q);
ENQUEUEQ (k, Q);
RED *pom = INITQ (pom);
while (! ISEMPTYQ (Q)) {
k = FRONTQ (Q);
cout << "Ime i prezime: " << k.ime << endl;;
cout << "Godina rodjenja: "<< k.god << endl;
cout << "Stanje racuna (HRK): "<< k.stanje << endl;
cout << "Vrsta transakcije: "<< k.trans << endl;
cout << "---------------------------------------" << endl;
ENQUEUEQ (k, pom);
DEQUEUEQ (Q);
};
}
int main () {
RED *Q = INITQ (Q);
RED *pom = INITQ (pom);
int izbor;
do {
cout << "\nIZBORNIK" << endl;
cout << "====================================================" << endl;
cout << "1. Dodavanje zapisa o klijentima." << endl;
cout << "2. Pusti starije od 65 na pocetak reda." << endl;
cout << "3. Izbaci iz reda klijente sa stanjem ispod 100 kn." << endl;
cout << "4. Simuliraj zatvaranje saltera i otvaranje novog." << endl;
cout << "0. Izlaz iz programa!" << endl;
cout << "====================================================" << endl;
do {
cout << "IZBOR: ";
cin >> izbor;
cout << endl;
} while (izbor < 0 || izbor > 4);
switch (izbor) {
case 1:
dodaj_zapis (Q);
break;
case 2:
provjeri (Q, pom);
break;
case 3:
izbaci (Q, pom);
break;
case 4:
cout << "Stanje u redu: " << endl;
cout << "----------------------------" << endl;
simuliraj (Q);
break;
}
} while (izbor != 0);
return 0;
}
// IMPLEMENTACIJA REDA POMOCU POLJA
#include <iostream>
#include <cstdlib>
using namespace std;
struct klijent {
char ime [40];
int god;
float stanje;
char trans [10];
};
struct RED {
klijent zapis [1000];
int front;
int rear;
} Q;
int ADDONE(int n) {
return((n+1)%1000);
}
bool ISEMPTYQ (RED *Q) {
if (ADDONE (Q->rear) == Q->front) return 1;
else return 0;
}
klijent FRONTQ (RED *Q) {
if (ISEMPTYQ (Q)) cout << "Red je prazan!" << endl;
else {
return (Q->zapis [Q->front]);
}
}
klijent ENQUEUEQ (klijent x, RED *Q) {
if (ADDONE(ADDONE(Q->rear)) == (Q->front)) cout << "Red je pun!" << endl;
else {
Q->rear = ADDONE(Q->rear);
Q->zapis [Q->rear] = x;
}
}
void DEQUEUEQ (RED *Q) {
if (ISEMPTYQ (Q)) cout << "Red je prazan!" << endl;
else Q->front = ADDONE(Q->front);
}
RED* INITQ (RED *Q) {
Q = new RED;
Q->front = 0;
Q->rear = 999;
return Q;
}
// IMPLEMENTACIJA REDA POMOCU POKAZIVACA
#include <iostream>
#include <cstdlib>
using namespace std;
struct klijent {
char ime [40];
int god;
float stanje;
char trans [10];
};
struct tzapis {
klijent zapis;
tzapis *sljedeci;
};
struct RED {
tzapis *front, *rear;
} Q;
bool ISEMPTYQ (RED *Q) {
if (Q->front == Q->rear) return 1;
else return 0;
}
klijent FRONTQ (RED *Q) {
if (ISEMPTYQ (Q)) cout << "Red je prazan!" << endl;
else return Q->front->sljedeci->zapis;
}
klijent ENQUEUEQ (klijent x, RED *Q) {
tzapis *novi = new tzapis;
Q->rear->sljedeci = novi;
Q->rear = Q->rear->sljedeci;
Q->rear->zapis = x;
Q->rear->sljedeci = 0;
}
void DEQUEUEQ (RED *Q) {
tzapis *pom;
if (ISEMPTYQ (Q)) cout << "Red je prazan!" << endl;
else {
pom = Q->front;
Q->front = Q->front->sljedeci;
delete pom;
}
}
RED* INITQ (RED *Q) {
Q = new RED;
Q->front = 0;
Q->rear = 0;
return Q;
}
Initial URL
Initial Description
Initial Title
SP_Zadatak_3_red
Initial Tags
Initial Language
C++