Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C++ (http://www.go4expert.com/forums/cpp/)
-   -   C++ program! classes (http://www.go4expert.com/forums/cpp-program-classes-t23654/)

andreacmt 24Oct2010 08:30

C++ program! classes
 
Hi!! Please I need on a program in C++. Well I have to complete the following program. The objective is that the program asks the user a number and the user writes 10 for example but the user must say if he wants to add this number to the hours, minutes or seconds. Another trouble is that if the user writes -10 the program must not add but subtract. Finally if we have set 9:30:56 and the user enters 10 the program must add 4 seconds to the seconds and the rest to the minutes, just as real life. Please help me!!!!

The program is right here!!
Code:

#include <iomanip>
#include <iostream>
using namespace std;
class Hora
{
private:
    int horas; // 0 - 23 (formato 24-horas )
    int minutos; // 0 - 59
  int segundos; // 0 -59
public:
 Hora(); // Constructor
 void setHoras( int h); //Fija Horas
 void setMinutos( int m); //Fija Minutos
 void setSegundos( int s); //Fija Segundos
 int  getHoras(); // Retorna las horas
 int  getMinutos(); // Retorna los minutos
 int  getSegundos(); // Retorna los segundos
 int  compara(Hora h); //Se compara con h
 void mostrar(); // Imprime la hora.
};
// Implementacion de la clase hora
Hora::Hora()
{ setHoras(0); setMinutos(0); setSegundos(0);
}
void Hora::mostrar() // Imprime la hora.
{    cout << setfill( '0' ) << setw( 2 ) << horas << ":";
  cout << setfill( '0' ) << setw( 2 ) << minutos << ":";
  cout << setfill( '0' ) << setw( 2 ) << segundos;
}
void Hora::setHoras(int h) // Fija Hora
{ horas = ( h >= 0 && h < 24 ) ? h : 0; // valida la hora
}
void Hora::setMinutos(int m) // Fija  Minuto
{ minutos = ( m >= 0 && m < 60 ) ? m : 0; // valida minutos
}
void Hora::setSegundos( int s) // Fija Segundos
{ segundos = ( s >= 0 && s < 60 ) ? s : 0; // valida segundos
}
int  Hora::getHoras() // Retorna las horas
{ return horas;
}
int  Hora::getMinutos() // Retorna los minutos
{ return minutos;
}
int  Hora::getSegundos() // Retorna los segundos
{ return segundos;
}
int  Hora::compara(Hora h) //Se compara con h
{ if (horas > h.getHoras()) return 1;
 if (horas < h.getHoras()) return -1;
 if (minutos > h.getMinutos()) return 1;
 if (minutos < h.getMinutos()) return -1;
 if (segundos > h.getSegundos()) return 1;
 if (segundos < h.getSegundos()) return -1;
 return 0;
}
int main()
{
 Hora x, y, a[100];
 
 x.setHoras(12); x.setMinutos(35); x.setSegundos(40);
 x.mostrar();
 cout << endl;
 y.setHoras(12); y.setMinutos(35); y.setSegundos(42);
 y.mostrar();
 cout << endl;
 if (x.compara(y)>0)
  cout << "mayor" << endl;
 if (x.compara(y)==0)
  cout << "igual" << endl;
 if (x.compara(y)<0)
  cout << "menor" << endl;
 cout << endl;
 system ("pause");
 return 0;
}


xpi0t0s 24Oct2010 21:54

Re: C++ program! classes
 
What frequently happens when writing programs to handle dates and times is that sooner or later you need a conversion to a serial number that uniquely represents a date, and that assumes zero=some specific date, e.g. 1st Jan 1970. And of course a conversion back again. This makes your program very easy: convert the start date/time to a serial number, add the number entered by the user, then convert it back again. It also makes the next project very easy, which will probably involve comparing dates, you just convert the dates to be compared to serial numbers, then compare those integers.


All times are GMT +5.5. The time now is 00:55.