Upload
hasan-bapic
View
231
Download
1
Embed Size (px)
Citation preview
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
1/21
Tehniki fakultet Biha
Elektrotehnika
Informatika
OBJEKTNO-ORJENTISANO PROGRAMIRANJE
ZADAA 1
Asistent: Student:
Adnan Ramaki, mr.ra. i inf. Hasan Bapi 748
Biha, Decembar 2014.
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
2/21
Napisati program (konzolnu aplikaciju) koja e simulirati bankarske usluge. Program
napraviti koristei mehanizam klasa u C++ programskom jeziku.
Opis:
Prilikom pokretanja programa otvara se okvir sa izbornikom koji nudi sljedee opcije:
1. Administrator
2. Klijent
3. Izlaz
Odabirom opcije 1., tj. Administrator omoguuje se administratoru sljedee:
1. Pregled svih korisnika
2. Upis novih klijenata
3. Brisanje postojeih klijenata
4. Izlaz
Administrator da bi pristupio administratorskom dijelu potrebno je da unese korisniko ime i
ifru. Ti podaci se uvaju u tekstualnoj datoteci admin.txtkoja ima sljedeu strukturu:
Ime
Prezime
KorisnikoIme( Username)
ifra(Password)
Podaci o klijentima se uvaju u tekstualnoj datoteci klijenti.txt. Struktura datoteke je :
Redni broj
Ime
Prezime
Adresa
Broj rauna
Stanje na raunu
Korisniko ime
ifra
Ukoliko administrator odabere opciju 1., program treba da ispie sve klijente koji se nalaze u
datoteci klijenti.txti to u sljedeem formatu:
Redni broj_Ime_Prezime_Adresa_Broj Racuna_Stanje na racunu.
Druga opcija treba da omogui unos novog klijenta. Trea opcija treba da unosom imena
klijenta ili broja rauna izvri njegovo uklonjanje iz datoteke.
Da bi klijent pristupio klijentskom dijelu , takoer treba da unese korisniko ime i ifru koji seuvaju u datoteci klijenti.txt.
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
3/21
Klijent treba da ima sljedee opcije:
1. Pregled stanja svog rauna
2. Polaganje depozita na raun
3. Podizanje novca sa rauna
4. Izlaz
Klikom na opciju 1., potrebno je ispisati stanje rauna klijenta koji je zatraio tu operaciju.
Ukoliko se odabere opcija 2., treba da se izbaci stanje rauna i omogui unos koji eli da
uloi. Ukoliko klijent uloi neki iznostreba da se stanje aurira u datoteci klijenti.txt. Ukoliko
odabere 3., opciju treba ispisati stanje te da se omogui podizanje iznosa novca do iznosa koji
posjeduje.
Funkcionalnost programa popratiti odgovarajuim porukama u smislu da ako korisnik unese
pogreno korisniko ime ili ifru, omogui unos ponovo.
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
4/21
#include
#include
#include
#include
using namespace std;
class Banka{
public:
bool Administrator1(string&);
bool Administrator2(string&);
void IspisKlijenata();
void UnosKlijenta();
int RedniBroj();
int BrojKlijenta(string&);
int BrojKlijentaPoImenu(string&);
int BrojKlijentaPoRacunu(string&);
void BrisiKlijenta1();
void BrisiKlijenta2();
bool Klijent1(string&);
bool Klijent2(string&);
void StanjeRacuna(string&);
void PolaganjeDepozita(string&);
void PodizanjeNovca(string&);
};
bool Banka::Administrator1(string & username){
fstream d;
string s[4];
d.open("admin.txt", ios_base::in);
while(d.eof()!=true)
{
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
5/21
for(int i=0; i
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
6/21
int Banka::RedniBroj(){
fstream d;
string s[8];
int br=0;
int rbr;
d.open("klijenti.txt", ios_base::in);
while(d.eof()!=true) {
for(int i=0; i
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
7/21
for(int i=0; i
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
8/21
d.open("klijenti.txt",ios_base::out|ios_base::app);
d
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
9/21
cout
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
10/21
string s1[br];
d.open("klijenti.txt", ios_base::in);
int i=0;
while(d.eof()!=true){
getline(d,s1[i]);
i++; }
d.close();
for(int i=0; i
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
11/21
goto F;}}
void Banka::BrisiKlijenta2(){
fstream d;
string BrojRacuna;
string st;
int zastava=0;
Banka b;
T: cout
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
12/21
getline(d,s1[i]);
i++; }
d.close();
for(int i=0; i
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
13/21
d.open("klijenti.txt",ios_base::in);
while(d.eof()!=true){
for(int i=0; i
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
14/21
int b;
cout
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
15/21
s1[j]=strg; }}
d.open("klijenti.txt", ios_base::out|ios_base::trunc);
for(int i=0; i
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
16/21
string s1[br];
itoa(ostatak,strg,10);
int i=0;
d.open("klijenti.txt",ios_base::in);
while(d.eof()!=true){
getline(d,s1[i]);
i++; }
d.close();
int broj=c.BrojKlijenta(username);
for(int j=0; j
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
17/21
cout
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
18/21
if(a==1){
goto B; }}
else if(odgovor1==2){
cout
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
19/21
cout
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
20/21
b.StanjeRacuna(username);
cout
8/10/2019 Objektno-orjentisano programiranje Zadaca 1 (C ++)
21/21
else{
cout