Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdexcept>
- class StedniRacun {
- double stanje_racuna;
- static int br_kreiranih;
- static int br_aktivnih;
- public:
- StedniRacun() { stanje_racuna = 0; br_aktivnih++; br_kreiranih++; }
- StedniRacun(double x) { if(x < 0) throw std::logic_error("Nedozvoljeno pocetno stanje");
- stanje_racuna = x;
- br_aktivnih++; br_kreiranih++;
- }
- ~StedniRacun() { br_aktivnih--; }
- static int DajBrojKreiranih() { return br_kreiranih; }
- static int DajBrojAktivnih() { return br_aktivnih; }
- double DajStanje() const { return stanje_racuna; }
- void Ulozi(double x);
- void Podigni(double x);
- void ObracunajKamatu(double kamata);
- };
- int StedniRacun::br_kreiranih(0);
- int StedniRacun::br_aktivnih(0);
- void StedniRacun::Ulozi(double x) {
- if(x<0) Podigni(-x);
- else stanje_racuna+=x;
- }
- void StedniRacun::Podigni(double x) {
- if(x>stanje_racuna) throw std::domain_error("Transakcija odbijena");
- stanje_racuna -= x;
- }
- void StedniRacun::ObracunajKamatu(double kamata) {
- if(kamata < 0) throw std::logic_error("Nedozvoljena kamatna stopa");
- stanje_racuna += stanje_racuna*(kamata/100);
- }
- int main ()
- {
- StedniRacun s1(100), s2, s3(200), s4, s5;
- s1.Podigni(50);
- s2.Ulozi(555);
- s3.Podigni(200);
- try {
- s1.Podigni(50);
- s2.Podigni(555);
- s4.Ulozi(-10);
- s3.Ulozi(555);
- s1.Ulozi(50000);
- s4.Ulozi(33);
- s5.Ulozi(666);
- }
- catch(std::logic_error e)
- {
- std::cout << e.what() << std::endl;
- }
- std::cout << s1.DajStanje() << " " << s2.DajStanje() << " " << s3.DajStanje() << " " << s4.DajStanje() << " " << s5.DajStanje() << std::endl;
- std::cout << "Broj kreiranih: " << StedniRacun::DajBrojKreiranih() << std::endl;
- std::cout << "Broj aktivnih: " << StedniRacun::DajBrojAktivnih() << std::endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement