miércoles, 2 de abril de 2025

01.- Programación I - Parcial Nro. 1 - Semestre 2025 - II (Solución del Profesor)

 

Programa

/* Programa: Este programa verifica si el restaurant
   de Aníbal Lecter esta abierto para una fecha 
   especifica ingresada por el usuario según lo 
   indicado en las instrucciones del parcial Nro. 1
   2025-I
   
   Elaborado por Carlos Ferrer
   Fecha 2 abril del 2025
   Rev. 0
*/

#include <iostream>
#include <locale.h> //Biblioteca de idiomas
using namespace std;

main() 

{

    //Seteamos el lenguaje en español para que los cout puedan imprimir áéíóú y ñ

    setlocale(LC_ALL, "spanish");

    // Limpiamos Pantalla

    system("cls");

    // Establecemos la fecha de apertura del restaurant

    int dia = 1;
    int mes = 6;  
    int anio = 1995;
    
    // Establecemos una variable que nos indica si el restaurant esta abierto
    
    bool turno=true;

    // Establecemos la fecha a buscar
    int dia_b;
    int mes_b;  
    int anio_b; 
    // Contador para establecer cuando esta de turno el restaurant
    int Contador_6_dias=0;

    // Detector de año bisiesto

    bool Bisiesto=true;
    
    // Arreglo para favorecer la impresión
    
      string meses [12] = {"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"};

      do
  {
        cout << "Ingrese día a buscar = ";
        cin >> dia_b;
        if (dia_b < 1 or dia_b > 31) 
{
            system("cls");
            cout << "Alerta día fuera de rango!!"<<endl;
            cout << "Los días deben estar en el rango de 1 a 31"<<endl;         
            cout << endl;  
        }  
      }
      while (dia_b < 1 or dia_b > 31);

    do 
{
        cout << "Ingrese mes a buscar (Enero=1 a Diciembre=12)= ";
        cin >> mes_b;
        if (mes_b < 1 or mes_b > 12) 
{
            system("cls");
            cout << "Alerta mes fuera de rango!!"<<endl;
            cout << "El mes estar en el rango de 1 a 12"<<endl;         
            cout << endl;
        }  
    }
    while (mes_b < 1 or mes_b > 12);

    do
{
        cout << "Ingrese año a buscar (>=1995)= ";
        cin >> anio_b;
        if (anio_b < 1995 or (anio_b == 1995 and mes_b<6)) 
{
            system("cls");
            cout << "Alerta mes fuera de rango!!"<<endl;
            cout << "La fecha es anterior al 01 de Junio de 1995"<<endl;         
            cout << endl;
        }  
    }
    while (anio_b < 1995 or (anio_b == 1995 and mes_b<6));    
    
while (dia!=dia_b or mes!=mes_b or anio!=anio_b) 
{
        // Determinamos si el año en movimiento es bisiesto
        if ((anio % 4 == 0 and anio % 100 != 0) or (anio % 4 == 0 and anio % 100 == 0 and anio % 400 == 0))
        {
        Bisiesto=true;
}
else
{
Bisiesto=false;
}

        // Si la fecha no es igual a la buscada incrementamos el contador y el día

        if (dia==dia_b and mes==mes_b and anio==anio_b) 
{
            break;
        }
        
Contador_6_dias=Contador_6_dias+1;
        dia=dia+1;

       // Verificamos un cambio de mes

        if ((dia == 31 and (mes == 11 or mes == 6 or mes == 4 or mes == 9)) or 
            (dia == 29 and mes == 2 and Bisiesto==false) or 
            (dia == 30 and mes == 2 and Bisiesto==true) or
            (dia == 32)) 
{

            dia = 1;
            mes = mes+1;
        }
     
        // Verificamos un cambio de año

        if (mes == 13) 
{
            mes = 1;    
            anio=anio+1;
        }
     
       // Verificamos si el restaurant esta de turno
     
        if (Contador_6_dias == 6) 
{
            Contador_6_dias = 0;    
            turno=true;
            }
        else    
            {
            turno=false;
}
    }

     // Imprimimos el resultado

    cout << endl;                           

    cout << "El " << dia << " de " << meses[mes-1]<< " de "<<anio;
cout <<". The Hannibal Restaurant "<<endl;
    if (turno==true)
    {
    cout <<"se encuentra ABIERTO!!!"<<endl<<endl;
}
else
{
cout <<"se encuentra CERRADO!!!"<<endl<<endl;
}
    cout << endl;  
    system("pause");

}

RESULTADOS






No hay comentarios.:

Publicar un comentario