Despertador en C

Mario Asís Cánovas

/*Este programa da la hora actual y pide por pantalla otra hora que actuará como mecha. Cuando se alcanza la hora, el programa toca la campana en intervalos de 10. Es imprescindible para que el programa tenga alguna utilidad que en tu ordenador haga sonar la campana con el ‘\a’. Si usas linux, cambia el system(“cls”) por system(“clear”).*/

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main ()
{
    time_t tiempo;
    struct tm *hora;
    int h=0, m=0, n=0, i;
    bool stat=0;

    time(&tiempo);
    hora = localtime(&tiempo);

    printf ( "Esta es la hora: %s\n\n", asctime (hora) );
    printf ( "¿A que hora quieres que suene la alarma?: ");
    scanf ("%d %d",&h,&m);

    i=time(NULL);

    for(;;)
    {
        if(time(NULL)!=i && stat!=1)
        {
            system("cls");
            printf ( "%s\n", asctime (hora) );
            i=time(NULL);
        }

        time(&tiempo);
        hora = localtime( &tiempo);

        if((*hora).tm_hour==h && (*hora).tm_min==m && n<10)
        {
            printf("\a");
            printf("DESPIERTA!!\n");
            n++;
            stat=1;
        }
        else if (n==10)
        {
            i=time(NULL);
            while (n==10)
            {
                if (time(NULL)==i+4) n=0;
            }
        }
    }
}
Anuncios
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Una respuesta a Despertador en C

  1. Muy bien!!.. Quizás faltaría romper ese bucle infinito en caso de que pase la hora y que el usuario se olvide el despertador activado.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s