#include class Reloj { int hora; int minuto; int segundo; public: Reloj(int h=0, int m=0, int s=0); void DefineTiempo(int, int, int); void DefineHora(int); void DefineMinuto(int); void DefineSegundo(int); int Hora(void); int Minuto(void); int Segundo(void); void IncTiempo(void); }; Reloj::Reloj(int h, int m, int s) { hora=h; minuto=m; segundo=s; } void Reloj::DefineTiempo(int h, int m, int s) { hora=h; minuto=m; segundo=s; } void Reloj::DefineHora(int h) { hora = h; } void Reloj::DefineMinuto(int m) { minuto = m; } void Reloj::DefineSegundo(int s) { segundo = s; } int Reloj::Hora(void) { return hora; } int Reloj::Minuto(void) { return minuto; } int Reloj::Segundo(void) { return segundo; } void Reloj::IncTiempo(void) { if (segundo < 59) segundo++; else if(minuto<59) { minuto++; segundo = 0; } else if (hora<23) { hora++; minuto = segundo = 0; } else hora = minuto = segundo = 0; } enum bool {false,true}; enum TipoDeBanda {AM, FM}; class Radio { float frecuencia; TipoDeBanda banda; bool prendido; public: Radio(float f=95.5, TipoDeBanda b=FM, bool p=false); void CambiaBanda(TipoDeBanda); void CambiaFrecuencia(float); void On_Off(void); float Frecuencia(void); TipoDeBanda Banda(void); bool Prendido(void); }; Radio::Radio(float f, TipoDeBanda b, bool p) { frecuencia = f; banda = b; prendido = p; } void Radio::CambiaBanda(TipoDeBanda b) { banda = b; } void Radio::CambiaFrecuencia(float f) { frecuencia = f; } void Radio::On_Off(void) { prendido= bool(!prendido); } float Radio::Frecuencia(void) { return frecuencia; } TipoDeBanda Radio::Banda(void) { return banda; } bool Radio::Prendido(void) { return prendido; } enum TipoAlarma {Musica, Timbre}; class RadioReloj: public Radio, public Reloj { int alarmaHora; int alarmaMinuto; int alarmaSegundo; TipoAlarma tipo; bool alarma; public: RadioReloj(int h=0, int m=0, int s=0, float f=100.1, TipoDeBanda b=FM, bool p=false, int ah=0, int am=0, int as=0, TipoAlarma t=Timbre, bool a=false); void FijaAlarma(int, int, int, TipoAlarma); void On_Off_Alarma(void); int AlarmaHora(void); int AlarmaMinuto(void); int AlarmaSegundo(void); TipoAlarma Tipo(void); bool Alarma(void); bool VerificaAlarma(void); void SuenaAlarma(void); }; RadioReloj :: RadioReloj(int h, int m, int s, float f, TipoDeBanda b, bool p, int ah, int am, int as, TipoAlarma t, bool a): Radio(f,b,p),Reloj(h,m,s) { alarmaHora = ah; alarmaMinuto = am; alarmaSegundo = as; tipo = t; alarma = a; } void RadioReloj::FijaAlarma(int ah , int am, int as, TipoAlarma t) { alarmaHora = ah; alarmaMinuto = am; alarmaSegundo = as; tipo = t; alarma = true; } void RadioReloj::On_Off_Alarma(void) { alarma = bool(!alarma); } int RadioReloj::AlarmaHora(void) { return alarmaHora; } int RadioReloj::AlarmaMinuto(void) { return alarmaMinuto; } int RadioReloj::AlarmaSegundo(void) { return alarmaSegundo; } TipoAlarma RadioReloj::Tipo(void) { return tipo; } bool RadioReloj::Alarma(void) { return alarma ; } bool RadioReloj::VerificaAlarma(void) { if (Hora()==alarmaHora && Minuto()==alarmaMinuto && Segundo()==alarmaSegundo) return true; return false; } void RadioReloj::SuenaAlarma(void) { if (tipo == Timbre || Prendido()) { const char BEEP=7; for (int i =0; i<10; i++) cout<> h >> m >> s; casio.DefineTiempo(h,m,s); cout << "Ingrese la hora de Aviso : "; cin >> ah >> am >> as; casio.FijaAlarma(ah,am,as,Musica); casio.CambiaFrecuencia(95.5); while (1) { casio.IncTiempo(); if (casio.VerificaAlarma()) { casio.SuenaAlarma(); break; } } }