Advertisement
Guest User

drugi

a guest
May 21st, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdexcept>
  3.  
  4. class StedniRacun {
  5. double stanje_racuna;
  6. static int br_kreiranih;
  7. static int br_aktivnih;
  8.  
  9.  
  10.  
  11. public:
  12.  
  13. StedniRacun() { stanje_racuna = 0; br_aktivnih++; br_kreiranih++; }
  14. StedniRacun(double x) { if(x < 0) throw std::logic_error("Nedozvoljeno pocetno stanje");
  15. stanje_racuna = x;
  16. br_aktivnih++; br_kreiranih++;
  17. }
  18.  
  19. ~StedniRacun() { br_aktivnih--; }
  20.  
  21. static int DajBrojKreiranih() { return br_kreiranih; }
  22. static int DajBrojAktivnih() { return br_aktivnih; }
  23.  
  24. double DajStanje() const { return stanje_racuna; }
  25. void Ulozi(double x);
  26. void Podigni(double x);
  27. void ObracunajKamatu(double kamata);
  28.  
  29. };
  30.  
  31. int StedniRacun::br_kreiranih(0);
  32. int StedniRacun::br_aktivnih(0);
  33.  
  34. void StedniRacun::Ulozi(double x) {
  35.  
  36. if(x<0) Podigni(-x);
  37. else stanje_racuna+=x;
  38. }
  39.  
  40. void StedniRacun::Podigni(double x) {
  41. if(x>stanje_racuna) throw std::domain_error("Transakcija odbijena");
  42. stanje_racuna -= x;
  43. }
  44.  
  45. void StedniRacun::ObracunajKamatu(double kamata) {
  46. if(kamata < 0) throw std::logic_error("Nedozvoljena kamatna stopa");
  47. stanje_racuna += stanje_racuna*(kamata/100);
  48. }
  49.  
  50.  
  51.  
  52.  
  53. int main ()
  54. {
  55.  
  56. StedniRacun s1(100), s2, s3(200), s4, s5;
  57.  
  58. s1.Podigni(50);
  59. s2.Ulozi(555);
  60. s3.Podigni(200);
  61.  
  62. try {
  63. s1.Podigni(50);
  64. s2.Podigni(555);
  65. s4.Ulozi(-10);
  66. s3.Ulozi(555);
  67. s1.Ulozi(50000);
  68. s4.Ulozi(33);
  69. s5.Ulozi(666);
  70. }
  71. catch(std::logic_error e)
  72. {
  73. std::cout << e.what() << std::endl;
  74. }
  75.  
  76. std::cout << s1.DajStanje() << " " << s2.DajStanje() << " " << s3.DajStanje() << " " << s4.DajStanje() << " " << s5.DajStanje() << std::endl;
  77. std::cout << "Broj kreiranih: " << StedniRacun::DajBrojKreiranih() << std::endl;
  78. std::cout << "Broj aktivnih: " << StedniRacun::DajBrojAktivnih() << std::endl;
  79.  
  80.  
  81. return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement