Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.82 KB | None | 0 0
  1.  
  2. #include<iostream>
  3. using namespace std;
  4. char * crt = "\n---------------------------\n";
  5. int ODG;
  6.  
  7. enum VrstaRacuna { TEKUCI, DEVIZNI, STEDNI };
  8. char *VrstaRacunaStringovi[] = { "TEKUCI", "DEVIZNI", "STEDNI" };
  9. enum VrstaTransakcije { UPLATA, ISPLATA };
  10. char *VrstaTransakcijeStringovi[] = { "UPLATA", "ISPLATA" };
  11.  
  12. struct Datum {
  13. int _dan, _mjesec, _godina;
  14. void Unos() {
  15. cout << "Unesite datum(dd-mm-gggg): ";
  16. cin >> _dan >> _mjesec >> _godina;
  17. }
  18. void Unos(int d, int m, int g) { //funkcija koja prima parametre
  19. _dan = d, _mjesec = m, _godina = g;
  20. }
  21. void Ispis() {
  22. cout << "Datum: " << _dan << "." << _mjesec << "." << _godina << endl;
  23. }
  24. };
  25.  
  26. struct Transakcija {
  27. char _TO[20];
  28. float _iznos;
  29. VrstaTransakcije _vrstaTransakcije; // ako je isplata vrijednost _TO postaviti na brojRacuna sa koga se transakcija vrsi
  30. bool _aktivna; //u slucaju da se transakcija izbrise ona postaje neaktivna, ali je bitno da o njoj ostane zapis
  31. /* Unos / Ispis */
  32. void Unos() {
  33. int vrstaTransakcije;
  34. cout << "Unesite novcani iznos transakcije: ";
  35. cin >> _iznos;
  36. cout << "Unesite broj racuna: ";
  37. cin.ignore();
  38. cin.getline(_TO, 20);
  39. cout << "Unesite vrstu transakcije: ";
  40. for (size_t i = 0; i < 2; i++)
  41. cout << i + 1 << " " << VrstaTransakcijeStringovi[i] << endl;
  42. cin >> vrstaTransakcije;
  43. _vrstaTransakcije = (VrstaTransakcije)vrstaTransakcije;
  44. _aktivna = true;
  45. }
  46. void Unos(Transakcija tempTransakcija) {
  47. strcpy_s(_TO, 20, tempTransakcija._TO);
  48. _iznos = tempTransakcija._iznos;
  49. _vrstaTransakcije = tempTransakcija._vrstaTransakcije;
  50. _aktivna = tempTransakcija._aktivna;
  51. }
  52. void Ispis() {
  53. if (_aktivna)
  54. cout << "Transakcija je aktivna!" << endl;
  55. else
  56. cout << "Transakcija nije aktivna!" << endl;
  57. cout << "Vrsta transakcije: " << VrstaTransakcijeStringovi[(int)_vrstaTransakcije] << endl;
  58. cout << "Novcana vrijednost transakcije: " << _iznos << endl;
  59. cout << "Broj racuna za uplatu: " << _TO << endl;
  60. }
  61. };
  62.  
  63. struct Racun {
  64. Datum datumIzvrsenjaTransakcije;
  65. VrstaRacuna _vrstaRacuna;
  66. char _brojRacuna[20];
  67. Transakcija * _transakcije; //za svaki racun ce se evidentirati transakcije
  68. int _brojTransakcija;
  69. bool _aktivan;
  70. /*
  71. Unos / Ispis / Dealociraj / DodajTransakciju / UkloniTransakciju
  72. */
  73.  
  74. void Unos() {
  75. int izbor;
  76. cout << "Vrste racuna: " << endl;
  77. for (size_t i = 0; i < 3; i++)
  78. cout << i + 1 << ". " << VrstaRacunaStringovi[i] << endl;
  79. cin >> izbor;
  80. _vrstaRacuna = (VrstaRacuna)izbor;
  81.  
  82. cout << "Unesite vas broj racuna: ";
  83. cin.ignore();
  84. cin.getline(_brojRacuna, 20);
  85. _brojTransakcija = 0;
  86. _aktivan = true;
  87. }
  88. void Ispis() {
  89. cout << "Vas broj racuna: " << _brojRacuna << endl;
  90. if (_aktivan)
  91. cout << "Racuna je aktivan!" << endl;
  92. else
  93. cout << "Racun nije aktivan" << endl;
  94. }
  95. void Dealociraj() {
  96. delete[] _transakcije;
  97. _transakcije = nullptr;
  98. }
  99. void DodajTransakciju(Transakcija tempTransakcija) {
  100. Transakcija *tempNizTransakcija = new Transakcija[_brojTransakcija + 1]; //prosiri se samo
  101. for (size_t i = 0; i < _brojTransakcija; i++)
  102. tempNizTransakcija[i].Unos(_transakcije[i]);
  103. tempNizTransakcija[_brojTransakcija].Unos(tempTransakcija);
  104. delete[] _transakcije; //obrisi staro i dodaj pokazivacu novo
  105. _transakcije = tempNizTransakcija;
  106. tempNizTransakcija = nullptr;
  107. _brojTransakcija++;
  108. }
  109.  
  110. void UkloniTransakcijuByIznos() {
  111. for (size_t i = 0; i < _brojTransakcija; i++)
  112. {
  113.  
  114. }
  115. }
  116.  
  117. void UkloniTransakcijuByIznos() {
  118. for (size_t i = 0; i < _brojTransakcija; i++)
  119. {
  120.  
  121. }
  122. }
  123.  
  124.  
  125. };
  126. struct Korisnik {
  127. char _JMBG[14];
  128. char * _imePrezime;
  129. Racun * _racuni;
  130. int _trenutnoRacuna; //brojac
  131. bool _aktivan;
  132.  
  133. /*
  134. Unos / Ispis / Dealociraj / DodajRacun / UkloniRacun /
  135. 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
  136. GetTransakcijeByIznos - vraca niz transakcija koje su imale iznos veci od trazenog
  137. GetTransakcije - vraca listu transakcija koje su izvrsena prema odredjenom racunu(_TO), ukljucujuci i neaktivne
  138. GetTransakcijeByDatum - vraca listu svih transakcija koje su obavljene
  139. */
  140. };
  141.  
  142. int PrikaziMenu() {
  143. int izbor;
  144. cout << crt << "\t::MENU::" << crt;
  145. cout << "1. Dodaj korisnika" << endl;
  146. cout << "2. Dodaj racun" << endl;
  147. cout << "3. Pretraga" << endl;
  148. cout << "4. Deaktiviranje korisnika" << crt; // racuna ili korisnika
  149. cout << "5. Kraj" << crt;
  150. do {
  151. cout << "Vas izbor -> ";
  152. cin >> izbor;
  153. } while (izbor < 1 || izbor>5);
  154. system("cls");
  155. return izbor;
  156. }
  157. void main() {
  158. int trenutnoKorisnika = 0, izborMenu = 0;
  159. Korisnik * korisnici = nullptr;
  160.  
  161.  
  162. do {
  163. izborMenu = PrikaziMenu();
  164. if (izborMenu == 3) { //pretrage
  165.  
  166. }
  167.  
  168. } while (izborMenu != 5);
  169.  
  170.  
  171. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement