El dilema del Planificador
El jefe de la empresa para la cual ustedes trabajan es un adicto a la planificación, él desea que el grupo al cual Ud. pertenece elabore un programa que presente en pantalla cual día de la semana corresponde una fecha ingresada entre el 26 de marzo de 2026 y el 31 de diciembre de 2040, tal como se indica en las siguientes graficas:
El profesor seleccionara a uno de los integrantes del grupo para que pase al laboratorio y defienda el programa, la defensa consistirá en modificar el programa según instrucciones del profesor. La calificación del estudiante será la calificación del grupo.
El Programa final
(Según cambio a ultima hora del profesor)
1ro de enero de 1900 a 31 de diciembre de 2036
/*
Programa del Planificador
elaborado por: Carlos Ferrer
Rev. del 30 de marzo de 2026
*/
#include<iostream>
#include<locale.h>
using namespace std;
main()
{
int dia_b,mes_b,anio_b;
int dia_s=1; //lunes = 1 hasta domingo = 7 (día de inicio Jueves)
int dia=1,mes=1,anio=1900; //fecha de inicio
int bisiesto; // bisiesto = 1 No Bisiesto = 0
int aux; //variable de uso general
string aux2[13]={"","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septimbre","Octubre","Noviembre","Diciembre"};
string aux1[8]={"","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo"};
setlocale(LC_ALL,"spanish");
//Validación de datos de entrada
do
{
cout <<"Ingrese el año a buscar (1900 a 2036) = ";
cin >>anio_b;
if (anio_b<1900 or anio_b>2036)
{
cout <<endl<<"Valor fuera de rango!!!"<<endl<<endl;
}
}
while (anio_b<1900 or anio_b>2036);
do
{
cout <<"Ingrese el mes a buscar (1 a 12) = ";
cin >>mes_b;
if (mes_b<1 or mes_b>12)
{
cout <<endl<<"Valor fuera de rango!!!"<<endl<<endl;
}
}
while (mes_b<1 or mes_b>12);
if ((anio_b%4==0 and anio_b%100!=0 ) or (anio_b%4==0 and anio_b%100==0 and anio_b%400==0))
{
bisiesto=1;
}
else
{
bisiesto=0;
}
if (mes_b==2 and bisiesto==1)
{
aux=29;
}
else if (mes_b==2 and bisiesto==0)
{
aux=28;
}
else if (mes_b==11 or mes_b==6 or mes_b==4 or mes_b==9)
{
aux=30;
}
else
{
aux=31;
}
do
{
cout <<"Ingrese el día a buscar (1 a "<<aux<<") = ";
cin >>dia_b;
if (dia_b<1 or dia_b>aux)
{
cout <<endl<<"Valor fuera de rango!!!"<<endl<<endl;
}
}
while (dia_b<1 or dia_b>aux);
/*
Buscamos el día de la semana de la fecha a buscar, no movemos en el calendario
hasta conseguir la fecha solicitada
*/
while (dia!=dia_b or mes!=mes_b or anio!=anio_b )
{
dia_s=dia_s+1;
if (dia_s==8)
{
dia_s=1;
}
if ((anio%4==0 and anio%100!=0 ) or (anio%4==0 and anio%100==0 and anio%400==0))
{
bisiesto=1;
}
else
{
bisiesto=0;
}
dia=dia+1;
if (mes==2 and bisiesto==1 and dia==30)
{
dia=1;
mes=mes+1;
}
if (mes==2 and bisiesto==0 and dia==29)
{
dia=1;
mes=mes+1;
}
if ((mes==11 or mes==6 or mes==4 or mes==9) and dia==31)
{
dia=1;
mes=mes+1;
}
if (dia==32)
{
dia=1;
mes=mes+1;
}
if (mes==13)
{
mes=1;
anio=anio+1;
}
}
//Presentamos el resultado
cout <<endl<<endl<<"Solución = El "<<día<<" del mes de "<<aux2[mes];
cout <<" de "<<anio<<" corresponderá a un día = "<<aux1[dia_s]<<endl<<endl;
}




No hay comentarios.:
Publicar un comentario