Definir una clase que permita representar el tiempo, es decir horas, minutos y segundos. Desarrollar que permitan inicializar el tiempo en 0 horas, 0 minutos y 0 segundos; mostrar las horas, minutos y segundos en el siguiente formato hh:mm:ss; incrementar el tiempo en un segundo.
#include<iostream>
#include<cstdlib>
#include<windows.h>
using namespace std;
const int h=24;
const int m=60;
const int s=60;
class reloj
{
private:
int hora;
int minutos;
int segundos;
int formato;
public:
reloj(){};
reloj(int &, int &, int &);
void mostrar_hora();
friend void ajustar_hora(reloj &);
};
int menu();
int main()
{
int opc;
reloj tiempo;
do{
opc=menu();
switch(opc)
{
case 1:
{
ajustar_hora(tiempo);
system("cls");
break;
}
case 2:
{
tiempo.mostrar_hora();
break;
}
case 3:
{
exit(0);
break;
}
default:
{
cout<<"\n\n\t Opcion invalida"<<endl;
cin.get(); cin.get();
system("cls");
break;
}
}
}while(opc!=3);
cin.get(); cin.get();
return 0;
}
reloj::reloj(int &hr, int &min, int &seg)
{
hora=hr;
minutos=min;
segundos=seg;
}
int menu()
{
int opc;
cout<<"\n\n\t 1.- Ajustar hora"<<endl;
cout<<"\t 2.- Mostrar hora"<<endl;
cout<<"\t 3.- Salir"<<endl;
cout<<"\t indique opcion: ";
cin>>opc;
system("cls");
return opc;
}
void reloj::mostrar_hora()
{
while(1)
{
while (hora<h)
{
while (minutos<m)
{
while(segundos<s)
{
cout<<"\n\n\t"<<hora<<":"<<minutos<<":"<<segundos;
Sleep(1000);
system("cls");
segundos+=1;
}
segundos=0;
minutos+=1;
}
minutos=0;
hora+=1;
}
hora=0;
}
}
void ajustar_hora(reloj &tiempo)
{
int hr, min, seg;
do{
cout<<"\n\t Hora: ";
cin>>hr;
if(((hr<0)||(hr>h)))
{
cout<<"\n\t Hora invalida"<<endl;
cin.get(); cin.get();
system("cls");
}
}while((hr<0)||(hr>h));
do{
cout<<"\t Minutos: ";
cin>>min;
if(((min<0)||(min>m)))
{
cout<<"\n\t Minuto invalido"<<endl;
cin.get(); cin.get();
system("cls");
}
}while((min<0)||(min>m));
do{
cout<<"\t Segundos: ";
cin>>seg;
if(((seg<0)||(seg>s)))
{
cout<<"\n\t Segundoo invalido"<<endl;
cin.get(); cin.get();
system("cls");
}
}while((seg<0)||(seg>s));
reloj temp(hr, min, seg);
tiempo=temp;
}
Descargar Código
0 comentarios:
Publicar un comentario