Advertisement
naskedvi

T9 - zad.3.

May 10th, 2014
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.52 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <stdexcept>
  4.  
  5. class Sat
  6. {
  7.     int sati, minute, sekunde;
  8.     public:
  9.     void Postavi(int sati, int minute, int sekunde);
  10.     void Sljedeci() { PomjeriZa(1); };
  11.     void Prethodni() { PomjeriZa(-1); };
  12.     void PomjeriZa(int pomak);
  13.     int DajSate() const { return sati; };
  14.     int DajMinute() const { return minute; };
  15.     int DajSekunde() const { return sekunde; };
  16.     void Ispisi() const { std::cout<<sati<<":"<<minute<<":"<<sekunde<<std::endl; };
  17. };
  18.  
  19. void Sat::Postavi(int sati, int minute, int sekunde)
  20. {
  21.     if(sekunde>=60 || minute>=60 || sati>24)
  22.         throw std::domain_error("Neispravan unos");
  23.     this->sati=sati; this->minute=minute; this->sekunde=sekunde;
  24. }
  25.  
  26. void Sat::PomjeriZa(int pomak)
  27. {
  28.     int s(sekunde), m(minute);
  29.     s+=pomak;
  30.     if(s>=60)
  31.     {
  32.         sekunde%=s;
  33.         m+=s/60;
  34.         if(m>=60)
  35.         {
  36.             minute%=m;
  37.             sati+=m/60;
  38.         }
  39.         else minute=m;
  40.     }
  41.     else sekunde=s;
  42. }
  43.  
  44. int main()
  45. {
  46.     Sat vrijeme;
  47.     try{
  48.       vrijeme.Postavi(12, 8, 13);
  49.     }
  50.     catch(std::domain_error izuzetak){
  51.         std::cout<<izuzetak.what()<<std::endl;
  52.         return 0;
  53.     }
  54.  
  55.     vrijeme.Ispisi();
  56.     std::cout<<std::endl<<"Pomjereno za 5 s: ";
  57.     vrijeme.PomjeriZa(5);
  58.     vrijeme.Ispisi();
  59.     std::cout<<std::endl<<"Sljedece: ";
  60.     vrijeme.Sljedeci();
  61.     vrijeme.Ispisi();
  62.     std::cout<<std::endl<<"Prethodno: ";
  63.     vrijeme.Prethodni();
  64.     vrijeme.Ispisi();
  65.  
  66. return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement