Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.63 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using std::cout; using std::endl; using std::ostream;
  4.  
  5. //CLASSE ORARIO
  6.  
  7. class orario {
  8.   public:
  9.     orario();
  10.     orario(int);
  11.     orario(int, int);
  12.     orario(int, int, int);
  13.     int Ore() const;
  14.     int Minuti() const ;
  15.     int Secondi() const;
  16.     //metodi const
  17.     orario UnOraPiuTardi() const;
  18.     void AvanzaUnOra();
  19.     //overloading operatore somma
  20.     orario operator+(orario);
  21.     orario operator++(int);
  22.     //overloading ==
  23.     bool operator==(orario);
  24.     //overloading >
  25.     bool operator>(orario);
  26.  
  27.   private:
  28.     int sec;
  29. };
  30.  
  31. //COSTRUTTORI CLASSE ORARIO
  32.  
  33. orario::orario() { sec=0; }
  34.  
  35. orario::orario(int o){
  36.   if(o < 0 || o > 23) sec = 0;
  37.   else sec = o*3600;
  38. }
  39.  
  40. orario::orario(int o, int m) {
  41.   if(o < 0 || o > 23 || m < 0 || m > 59) sec = 0;
  42.   else sec = o*3600 + m*60;
  43. }
  44.  
  45. orario::orario(int o, int m, int s) {
  46.   if(o < 0 || o > 23 || m < 0 || m > 59 || s < 0 || s > 59) sec = 0;
  47.   else sec = o*3600 + m*60 + s;
  48. }
  49.  
  50. //METODI CLASSE ORARIO
  51.  
  52. orario orario::UnOraPiuTardi() const{
  53.   orario aux;
  54.   aux.sec=(sec + 3600) % 86400;
  55.   return aux;
  56. }
  57.  
  58. void orario::AvanzaUnOra(){
  59.   sec = (sec + 3600) % 86400;
  60. }
  61.  
  62. orario orario::operator+(orario o) {
  63.   orario aux;
  64.   aux.sec=(sec + o.sec) % 86400;
  65.   return aux;
  66. }
  67.  
  68. orario orario::operator++(int) {
  69.   sec = (sec + 3600) % 86400;
  70.   return *this;
  71. }
  72.  
  73. bool orario::operator==(orario o) {
  74.   if(sec == o.sec) return true;
  75.   else return false;
  76. }
  77.  
  78. bool orario::operator>(orario o) {
  79.   if(sec > o.sec) return true;
  80.   else return false;
  81. }
  82.  
  83. //overloading operatore output
  84. ostream& operator<<(ostream& os, const orario& o) {
  85.   return os <<o.Ore() <<":"<<o.Minuti()<<":"<<o.Secondi();
  86. }
  87.  
  88.  
  89. //CLASSE TELEFONATA
  90.  
  91. class telefonata {
  92.   private:
  93.     const orario inizio, fine;
  94.     const int numero;
  95.  
  96.   public:
  97.     telefonata(orario, orario, int);
  98.     telefonata();
  99.     orario Inizio() const;
  100.     orario Fine() const;
  101.     int Numero() const;
  102.     bool operator==(const telefonata&) const;
  103. };
  104.  
  105. ostream& operator<<(ostream&, const telefonata);
  106.  
  107. telefonata::telefonata(orario i, orario f, int n) : inizio(i), fine(f), numero(n) {}
  108.  
  109.  
  110. telefonata::telefonata() : numero(0) {}
  111.  
  112. orario telefonata::Inizio() const {return inizio; }
  113. orario telefonata::Fine() const {return fine; }
  114. int telefonata::Numero() const {return numero; }
  115.  
  116. bool telefonata::operator==(const telefonata& t) const {
  117.   return inizio==t.inizio && fine==t.fine && numero==t.numero;
  118. }
  119.  
  120. ostream& operator<<(ostream& os, const telefonata& t) {
  121.   return os <<"INIZIO "<<t.Inizio()<<"FINE "<<t.Fine()<<"NUMERO CHIAMATO "<<t.Numero();
  122. }
  123.  
  124.  
  125. int main() {
  126.  
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement