Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 1) Escreva uma classe para conter três membros do tipo int chamados hora, mins e segs e chame-a de tempo.
- a) Crie um construtor que inicialize os dados com zero e outro construtor que inicialize os dados com um valor fixo.
- b) Crie uma função-membro para solicitar a hora, os minutos e os segundos para o usuário.
- c) Crie uma função-membro para imprimir a hora no formato hh:mm:SS
- d) Crie uma função-membro para adicionar dois objetos da classe tempo passados como argumentos.
- 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.
- */
- #include <iostream>
- #include <stdio.h>
- using namespace std;
- class Tempo
- {
- public:
- int hora;
- int min;
- int seg;
- Tempo() { hora = 0; min = 0; seg = 0; };
- Tempo(int h, int m, int s){
- if (s/60 >= 1){
- s = s - (s/60 * 60);
- m++;
- }
- if (m/60 >= 1){
- m = m - (m/60 * 60);
- h++;
- }
- hora = h; min = m; seg = s; }
- ~Tempo() {}
- int getTempo(){
- cout << "Digite as horas: ";
- cin >> hora;
- cout << "Digite os minutos: ";
- cin >> min;
- cout << "Digite os segundos: ";
- cin >> seg;
- if (seg >= 60){
- min += (seg/60);
- seg = seg - (seg/60 * 60);
- }
- if (min >= 60){
- hora += (min/60);
- min = min - (min/60 * 60);
- }
- }
- void mostraTempo(){ cout << "Horario requisitado: " << hora << ":" << min << ":" << seg << endl; };
- int addTempo(Tempo t1, Tempo t2){
- hora = t1.hora + t2.hora;
- min = t1.min + t2.min;
- seg = t1.seg + t2.seg;
- if (seg/60 >= 1){
- seg = seg - (seg/60 * 60);
- min++;
- }
- if (min/60 >= 1){
- min = min - (min/60 * 60);
- hora++;
- }
- }
- int subTempo(Tempo t1, Tempo t2){
- if (t1.hora < t2.hora) { cout << "Erro. t1 maior que t2." << endl; };
- if (t1.hora >= t2.hora) { hora = t1.hora - t2.hora; };
- if (t1.min < t2.min){
- hora--;
- t1.min += 60;
- }
- min = t1.min - t2.min;
- if (t1.seg < t2.seg){
- if (min == 0){
- hora--;
- min = 60;
- }
- min--;
- t1.seg += 60;
- }
- seg = t1.seg - t2.seg;
- cout << "Diferenca entre as horas (segundos): " << hora * 3600 + min * 60 + seg << endl;
- }
- };
- int main()
- {
- Tempo t1(3,0,0);
- Tempo t2;
- Tempo t3(0,0,1);
- Tempo t4;
- Tempo t5;
- cout << "Sobre T1: " << endl;
- t1.mostraTempo();
- cout << "Sobre T2" << endl;
- t2.mostraTempo();
- t2.getTempo();
- t2.mostraTempo();
- cout << "Sobre T3: " << endl;
- t3.mostraTempo();
- cout << "Sobre T4: " << endl;
- t4.addTempo(t1,t3);
- t4.mostraTempo();
- cout << "Sobre T5: " << endl;
- t5.subTempo(t1,t3);
- t5.mostraTempo();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment