jueves, 22 de noviembre de 2012

Reloj digital en C++

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