ren811

ClasseTempo

Mar 16th, 2013
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.32 KB | None | 0 0
  1. /*
  2. 1) Escreva uma classe para conter três membros do tipo int chamados hora, mins e segs e chame-a de tempo.
  3.  
  4. a) Crie um construtor que inicialize os dados com zero e outro construtor que inicialize os dados com um valor fixo.
  5.  
  6. b) Crie uma função-membro para solicitar a hora, os minutos e os segundos para o usuário.
  7.  
  8. c) Crie uma função-membro para imprimir a hora no formato hh:mm:SS
  9. d) Crie uma função-membro para adicionar dois objetos da classe tempo passados como argumentos.
  10.  
  11. e) Crie uma função-membro que subtraia duas horas e retorne o numero de segundos entre elas. A função recebe dois objetos da classe tempo passados como argumentos.
  12. */
  13. #include <iostream>
  14. #include <stdio.h>
  15.  
  16. using namespace std;
  17.  
  18. class Tempo
  19. {
  20.     public:
  21.         int hora;
  22.         int min;
  23.         int seg;
  24.         Tempo() { hora = 0; min = 0; seg = 0; };
  25.         Tempo(int h, int m, int s){
  26.             if (s/60 >= 1){
  27.                 s = s - (s/60 * 60);
  28.                 m++;
  29.             }
  30.             if (m/60 >= 1){
  31.                 m = m - (m/60 * 60);
  32.                 h++;
  33.             }
  34.             hora = h; min = m; seg = s; }
  35.         ~Tempo() {}
  36.         int getTempo(){
  37.             cout << "Digite as horas: ";
  38.             cin >> hora;
  39.             cout << "Digite os minutos: ";
  40.             cin >> min;
  41.             cout << "Digite os segundos: ";
  42.             cin >> seg;
  43.             if (seg >= 60){
  44.                 min += (seg/60);
  45.                 seg = seg - (seg/60 * 60);
  46.             }
  47.             if (min >= 60){
  48.                 hora += (min/60);
  49.                 min = min - (min/60 * 60);
  50.             }
  51.         }
  52.  
  53.         void mostraTempo(){ cout << "Horario requisitado: " << hora << ":" << min << ":" << seg << endl; };
  54.  
  55.         int addTempo(Tempo t1, Tempo t2){
  56.             hora = t1.hora + t2.hora;
  57.             min  = t1.min + t2.min;
  58.             seg  = t1.seg + t2.seg;
  59.             if (seg/60 >= 1){
  60.                 seg = seg - (seg/60 * 60);
  61.                 min++;
  62.             }
  63.             if (min/60 >= 1){
  64.                 min = min - (min/60 * 60);
  65.                 hora++;
  66.             }
  67.         }
  68.  
  69.         int subTempo(Tempo t1, Tempo t2){
  70.             if (t1.hora < t2.hora) { cout << "Erro. t1 maior que t2." << endl; };
  71.             if (t1.hora >= t2.hora) { hora = t1.hora - t2.hora; };
  72.             if (t1.min < t2.min){
  73.                 hora--;
  74.                 t1.min += 60;
  75.             }
  76.             min = t1.min - t2.min;
  77.  
  78.             if (t1.seg < t2.seg){
  79.                 if (min == 0){
  80.                     hora--;
  81.                     min = 60;
  82.                 }
  83.                 min--;
  84.                 t1.seg += 60;
  85.             }
  86.             seg = t1.seg - t2.seg;
  87.             cout << "Diferenca entre as horas (segundos): " << hora * 3600 + min * 60 + seg << endl;
  88.         }
  89. };
  90.  
  91. int main()
  92. {
  93.     Tempo t1(3,0,0);
  94.     Tempo t2;
  95.     Tempo t3(0,0,1);
  96.     Tempo t4;
  97.     Tempo t5;
  98.  
  99.     cout << "Sobre T1: " << endl;
  100.     t1.mostraTempo();
  101.  
  102.     cout << "Sobre T2" << endl;
  103.     t2.mostraTempo();
  104.     t2.getTempo();
  105.     t2.mostraTempo();
  106.  
  107.     cout << "Sobre T3: " << endl;
  108.     t3.mostraTempo();
  109.  
  110.     cout << "Sobre T4: " << endl;
  111.     t4.addTempo(t1,t3);
  112.     t4.mostraTempo();
  113.  
  114.     cout << "Sobre T5: " << endl;
  115.     t5.subTempo(t1,t3);
  116.     t5.mostraTempo();
  117.     return 0;
  118. }
Advertisement
Add Comment
Please, Sign In to add comment