Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- char * crt = "\n---------------------------\n";
- int ODG;
- enum VrstaRacuna { TEKUCI, DEVIZNI, STEDNI };
- char *VrstaRacunaStringovi[] = { "TEKUCI", "DEVIZNI", "STEDNI" };
- enum VrstaTransakcije { UPLATA, ISPLATA };
- char *VrstaTransakcijeStringovi[] = { "UPLATA", "ISPLATA" };
- struct Datum {
- int _dan, _mjesec, _godina;
- void Unos() {
- cout << "Unesite datum(dd-mm-gggg): ";
- cin >> _dan >> _mjesec >> _godina;
- }
- void Unos(int d, int m, int g) { //funkcija koja prima parametre
- _dan = d, _mjesec = m, _godina = g;
- }
- void Ispis() {
- cout << "Datum: " << _dan << "." << _mjesec << "." << _godina << endl;
- }
- };
- struct Transakcija {
- char _TO[20];
- float _iznos;
- VrstaTransakcije _vrstaTransakcije; // ako je isplata vrijednost _TO postaviti na brojRacuna sa koga se transakcija vrsi
- bool _aktivna; //u slucaju da se transakcija izbrise ona postaje neaktivna, ali je bitno da o njoj ostane zapis
- /* Unos / Ispis */
- void Unos() {
- int vrstaTransakcije;
- cout << "Unesite novcani iznos transakcije: ";
- cin >> _iznos;
- cout << "Unesite broj racuna: ";
- cin.ignore();
- cin.getline(_TO, 20);
- cout << "Unesite vrstu transakcije: ";
- for (size_t i = 0; i < 2; i++)
- cout << i + 1 << " " << VrstaTransakcijeStringovi[i] << endl;
- cin >> vrstaTransakcije;
- _vrstaTransakcije = (VrstaTransakcije)vrstaTransakcije;
- _aktivna = true;
- }
- void Unos(Transakcija tempTransakcija) {
- strcpy_s(_TO, 20, tempTransakcija._TO);
- _iznos = tempTransakcija._iznos;
- _vrstaTransakcije = tempTransakcija._vrstaTransakcije;
- _aktivna = tempTransakcija._aktivna;
- }
- void Ispis() {
- if (_aktivna)
- cout << "Transakcija je aktivna!" << endl;
- else
- cout << "Transakcija nije aktivna!" << endl;
- cout << "Vrsta transakcije: " << VrstaTransakcijeStringovi[(int)_vrstaTransakcije] << endl;
- cout << "Novcana vrijednost transakcije: " << _iznos << endl;
- cout << "Broj racuna za uplatu: " << _TO << endl;
- }
- };
- struct Racun {
- Datum datumIzvrsenjaTransakcije;
- VrstaRacuna _vrstaRacuna;
- char _brojRacuna[20];
- Transakcija * _transakcije; //za svaki racun ce se evidentirati transakcije
- int _brojTransakcija;
- bool _aktivan;
- /*
- Unos / Ispis / Dealociraj / DodajTransakciju / UkloniTransakciju
- */
- void Unos() {
- int izbor;
- cout << "Vrste racuna: " << endl;
- for (size_t i = 0; i < 3; i++)
- cout << i + 1 << ". " << VrstaRacunaStringovi[i] << endl;
- cin >> izbor;
- _vrstaRacuna = (VrstaRacuna)izbor;
- cout << "Unesite vas broj racuna: ";
- cin.ignore();
- cin.getline(_brojRacuna, 20);
- _brojTransakcija = 0;
- _aktivan = true;
- }
- void Ispis() {
- cout << "Vas broj racuna: " << _brojRacuna << endl;
- if (_aktivan)
- cout << "Racuna je aktivan!" << endl;
- else
- cout << "Racun nije aktivan" << endl;
- }
- void Dealociraj() {
- delete[] _transakcije;
- _transakcije = nullptr;
- }
- void DodajTransakciju(Transakcija tempTransakcija) {
- Transakcija *tempNizTransakcija = new Transakcija[_brojTransakcija + 1]; //prosiri se samo
- for (size_t i = 0; i < _brojTransakcija; i++)
- tempNizTransakcija[i].Unos(_transakcije[i]);
- tempNizTransakcija[_brojTransakcija].Unos(tempTransakcija);
- delete[] _transakcije; //obrisi staro i dodaj pokazivacu novo
- _transakcije = tempNizTransakcija;
- tempNizTransakcija = nullptr;
- _brojTransakcija++;
- }
- void UkloniTransakcijuByIznos() {
- for (size_t i = 0; i < _brojTransakcija; i++)
- {
- }
- }
- void UkloniTransakcijuByIznos() {
- for (size_t i = 0; i < _brojTransakcija; i++)
- {
- }
- }
- };
- struct Korisnik {
- char _JMBG[14];
- char * _imePrezime;
- Racun * _racuni;
- int _trenutnoRacuna; //brojac
- bool _aktivan;
- /*
- Unos / Ispis / Dealociraj / DodajRacun / UkloniRacun /
- DodajTransakciju - pored iznosa, korisnik vrsi odabir vrste transakcije, te racuna koji zeli koristiti za tu transakciju; onemoguciti isplate vece kolicine novca nego sto korisnik posjeduje na racunu
- GetTransakcijeByIznos - vraca niz transakcija koje su imale iznos veci od trazenog
- GetTransakcije - vraca listu transakcija koje su izvrsena prema odredjenom racunu(_TO), ukljucujuci i neaktivne
- GetTransakcijeByDatum - vraca listu svih transakcija koje su obavljene
- */
- };
- int PrikaziMenu() {
- int izbor;
- cout << crt << "\t::MENU::" << crt;
- cout << "1. Dodaj korisnika" << endl;
- cout << "2. Dodaj racun" << endl;
- cout << "3. Pretraga" << endl;
- cout << "4. Deaktiviranje korisnika" << crt; // racuna ili korisnika
- cout << "5. Kraj" << crt;
- do {
- cout << "Vas izbor -> ";
- cin >> izbor;
- } while (izbor < 1 || izbor>5);
- system("cls");
- return izbor;
- }
- void main() {
- int trenutnoKorisnika = 0, izborMenu = 0;
- Korisnik * korisnici = nullptr;
- do {
- izborMenu = PrikaziMenu();
- if (izborMenu == 3) { //pretrage
- }
- } while (izborMenu != 5);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement