Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.80 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <iostream>
  4. #include <iomanip>
  5. #include <string>
  6. #include <vector>
  7.  
  8. using namespace std;
  9.  
  10. class BankRacun
  11. {
  12. private:
  13. string BrojRacuna;
  14. string VlasnikImePrezime;
  15. double StanjeRacuna;
  16. static double KamatnaStopa;
  17. public:
  18. BankRacun(string broj, string imeP, double stanje = 0.00);
  19. BankRacun(const BankRacun&);
  20. BankRacun& operator = (const BankRacun& r);
  21. ~BankRacun();
  22. static void SetKamatnuStopu(double);
  23. static double GetKamatnuStopu();
  24. double PripisKamate();
  25. double GetStanjeRacuna();
  26. const string GetBrojRacuna();
  27. const string GetImeVlasnika();
  28. void Uplata(double);
  29. void Isplata(double);
  30. };
  31.  
  32. double BankRacun::KamatnaStopa = 0.01;
  33. vector<BankRacun> br;
  34.  
  35. BankRacun::BankRacun(string broj, string imeP, double stanje)
  36.  
  37. {
  38. BrojRacuna = broj;
  39. VlasnikImePrezime = imeP;
  40. StanjeRacuna = stanje;
  41. cout << "\nPoruka> Za racun broj " << BrojRacuna
  42. << " izvrsen konstruktor sa parametrima!" << endl;
  43. }
  44.  
  45. BankRacun::BankRacun(const BankRacun& rac)
  46.  
  47. {
  48. //delete[] VlasnikImePrezime;
  49. BrojRacuna = rac.BrojRacuna;
  50. VlasnikImePrezime = rac.VlasnikImePrezime;
  51. StanjeRacuna = rac.StanjeRacuna;
  52. cout << "\nPoruka> Za racun broj " << BrojRacuna
  53. << " izvrsen konstruktor kopije!" << endl;
  54. }
  55.  
  56. BankRacun& BankRacun::operator=(const BankRacun& br)
  57. {
  58. if (this != &br)
  59. {
  60. //delete[] VlasnikImePrezime;
  61. BrojRacuna = br.BrojRacuna;
  62. VlasnikImePrezime = br.VlasnikImePrezime;
  63. StanjeRacuna = br.StanjeRacuna;
  64.  
  65. }
  66. cout << "\nPoruka> Za racun broj " << BrojRacuna
  67. << " izvrsen operator dodele!" << endl;
  68. return *this;
  69. }
  70.  
  71. BankRacun::~BankRacun()
  72.  
  73. {
  74. //delete[] VlasnikImePrezime;
  75. cout << "\nPoruka> Za racun broj: " << BrojRacuna
  76. << " izvrsen destruktor!" << endl;
  77. }
  78.  
  79. //staticki metod kojim se dodeljuje vrednost privatnoj statickoj promnljivoj
  80.  
  81. void BankRacun::SetKamatnuStopu(double kam)
  82. {
  83. KamatnaStopa = kam;
  84. }
  85.  
  86. double BankRacun::GetKamatnuStopu()
  87. {
  88. return KamatnaStopa;
  89. }
  90.  
  91. double BankRacun::PripisKamate()
  92.  
  93. {
  94. double iznosKamate = StanjeRacuna*KamatnaStopa;
  95. StanjeRacuna += iznosKamate;
  96. return iznosKamate;
  97. }
  98. double BankRacun::GetStanjeRacuna()
  99. {
  100. return StanjeRacuna;
  101. }
  102. const string BankRacun::GetBrojRacuna()
  103. {
  104. return BrojRacuna;
  105. }
  106. const string BankRacun::GetImeVlasnika()
  107. {
  108. return VlasnikImePrezime;
  109. }
  110. void BankRacun::Uplata(double x)
  111. {
  112. StanjeRacuna += x;
  113. }
  114. void BankRacun::Isplata(double x)
  115. {
  116. if ((GetStanjeRacuna() - x) > 100){
  117. StanjeRacuna -= x;
  118. return;
  119. }
  120. else
  121. {
  122. cout << "Isplata nije moguca";
  123. return;
  124. }
  125. }
  126. void OtvoriRacun(string rac)
  127. {
  128. string buferVlas;
  129. double stanje;
  130. //BankRacun temp;
  131.  
  132. for (int i = 0; i < br.size(); i++)
  133. {
  134. if (rac == br[i].GetBrojRacuna())
  135. {
  136. cout << "Ovakav racun vec postoji" << endl;
  137. return;
  138. }
  139. }
  140. cout << "\n Uneti ime vlasnika racuna> ";
  141. getline(cin, buferVlas);
  142. cout << "\n Uneti inicijalno stanje racuna> ";
  143. cin >> stanje;
  144. cout << endl << endl;
  145. BankRacun temp(rac, buferVlas, stanje);
  146. br.push_back(temp);
  147. return;
  148. }
  149.  
  150. int main(){
  151. int opcija;
  152. string racun;
  153. double kam;
  154. double iznos;
  155.  
  156. while (true){
  157. a: cout << "Odaberite opciju:" << endl;
  158. cout << "1: Unos - promena referentne kamatne stope" << endl;
  159. cout << "2: Otvaranje novog racuna:" << endl;
  160. cout << "3: Uplata sredstava na racun:" << endl;
  161. cout << "4: Isplata sredstva sa racuna:" << endl;
  162. cout << "5: Uvid u trenutno stanje racuna:" << endl;
  163. cout << "6: Pripis kamate na racun:" << endl;
  164. cout << "7: Gasenje postojeceg racuna:" << endl;
  165. cout << "8: Kraj rada:" << endl;
  166. cin >> opcija;
  167. if (opcija==1)
  168. {
  169. cout << "Uneti kamatnu stopu: ";
  170. cin >> kam;
  171. BankRacun::SetKamatnuStopu(kam);
  172. goto a;
  173. }
  174. cout << "Uneti broj racuna: ";
  175. getchar();
  176. getline(cin, racun);
  177. if (opcija == 2)
  178. {
  179. OtvoriRacun(racun);
  180. goto a;
  181. }
  182. if (opcija==3)
  183. {
  184. for (int i = 0; i < br.size(); i++)
  185. {
  186. if (br[i].GetBrojRacuna()==racun)
  187. {
  188. cout << "Unesite iznos za uplatu";
  189. cin >> iznos;
  190. goto a;
  191. }
  192. }
  193. cout << "Trazeni racun ne postoji. Pokrece se otvaranje racuna" << endl;
  194. OtvoriRacun(racun);
  195. }
  196. if (opcija == 4)
  197. {
  198. for (int i = 0; i < br.size(); i++)
  199. {
  200. if (br[i].GetBrojRacuna() == racun)
  201. {
  202. cout << "Unesite iznos za isplatu";
  203. cin >> iznos;
  204. goto a;
  205. }
  206. }
  207. cout << "Trazeni racun ne postoji" << endl;
  208. }
  209. if (opcija==5)
  210. {
  211. for (int i = 0; i < br.size(); i++)
  212. {
  213. if (br[i].GetBrojRacuna() == rac)
  214. {
  215. cout << "Ime i prezime vlasnika: " << br[i].GetImeVlasnika() << endl;
  216. cout << "Broj racuna: " << br[i].GetBrojRacuna() << endl;
  217. cout << "Trenutno stanje: " << br[i].GetStanjeRacuna() << endl;
  218. }
  219. }
  220. }
  221. if (opcija == 8){
  222. break;
  223. }
  224. }
  225.  
  226. system("pause");
  227. return 0;
  228. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement