Buenas tengo un proyecto final de programacion de c++ y no se donde empezar o como hacerlo me confunde alguien me puede ayudar? el problema es el siguiente :
Especificaciones del Proyecto:
1. El programa calculara la edad de una persona en día, mes y año.
2. Se utilizara como fecha de comparación el 21 de agosto del 2018.
3. Se deberán controlar TODOS los posibles eventos que se den el calculo de la fecha
4. Criterios a controlar:
⦁ El año de nacimiento no puede ser mayor al año 2018.
⦁ Si el año de nacimiento es igual, el mes de nacimiento no puede ser mayor.
⦁ Si el año y mes son iguales, el día no puede ser mayor, pero si iguales.
⦁ Debe validar los meses de 30, 31 y 28 días. Ejemplo si introduce mes 09 (septiembre) el día no pueden ser mayores a 30.
⦁ Deberá validar los números negativos. Nadie nace en un año, mes o día negativo.
⦁ Los rangos de los años deberán ser del 1850 al 2018.
⦁ Los rangos de los meses deberán ser del 1 al 12.
⦁ Los rangos de los días puede variar del 1 al 28, 30 o 31.
Ejemplo de entrada y salida de datos:
Fecha Actual: son valores constantes. NO SE LEEN
Día: 21
Mes: 08
Año: 2018
Fecha de Nacimiento:
Día: 31
Mes: 01
Año: 1990
Usted tiene 28 años con 6 meses y 21 días.
* Faltan 5 meses y 10 días para su próximo cumpleaños.
No se hacen tareas.
Expón lo que tienes y te aclaramos dudas puntuales.
el detalle es el siguiente, lo tengo pero en c, solo que nose como pasarlo a c++, nose si cuente como hacerme la tarea.
Hombre, es un proyecto final. Pasar de C a C++ debería ser lo más sencillo.
Por cierto: de nada.
P.D.: se quedó un error en el código de cuándo hacía comprobaciones. La primera versión que subí no cumple con las especificaciones del enunciado. Ya está arreglado.
Puedes usar el tda fecha y algun calculo para realizar el calculo exacto de la edad de una persona
TDA FECHA
#include <iostream>
#include <math.h>
using namespace std;
const int MAX=3;
typedef int t_fecha[MAX];
void crear_fecha(t_fecha &n);
bool VALIDAR(t_fecha n);
void mostrar_fecha(t_fecha n);
void comparar_fechas(t_fecha n, t_fecha m);
void mayor_fechas(t_fecha n, t_fecha m);
int main()
{
t_fecha a, b;
crear_fecha(a);
crear_fecha(b);
comparar_fechas(a, b);
mayor_fechas(a, b);
system("pause");
return 0;
}
void crear_fecha(t_fecha &n)
{
do{
cout << "Ingrese dia: "; cin >> n[0];
cout << "Ingrese mes: "; cin >> n[1];
cout << "Inrese año : "; cin >> n[2];
}while(VALIDAR(n)==false);
mostrar_fecha(n);
}
bool VALIDAR(t_fecha n)
{
if(n[1]>=1 && n[1]<=12){
switch(n[1]){
case 1: if(n[0]>0 && n[0]<32){return true;}else{return false;}; break;
case 2: if(n[2]%4==0){
if(n[0]>0 && n[0]<30){return true;}else{return false;}
}
else{
if(n[0]>0 && n[0]<29){return true;}else{return false;}
}; break;
case 3: if(n[0]>0 && n[0]<32){return true;}else{return false;}; break;
case 4: if(n[0]>0 && n[0]<31){return true;}else{return false;}; break;
case 5: if(n[0]>0 && n[0]<32){return true;}else{return false;}; break;
case 6: if(n[0]>0 && n[0]<31){return true;}else{return false;}; break;
case 7: if(n[0]>0 && n[0]<32){return true;}else{return false;}; break;
case 8: if(n[0]>0 && n[0]<32){return true;}else{return false;}; break;
case 9: if(n[0]>0 && n[0]<31){return true;}else{return false;}; break;
case 10: if(n[0]>0 && n[0]<32){return true;}else{return false;}; break;
case 11: if(n[0]>0 && n[0]<31){return true;}else{return false;}; break;
case 12: if(n[0]>0 && n[0]<32){return true;}else{return false;}; break;
default: return false;
}
}
else{
return false;
}
}
void mostrar_fecha(t_fecha n)
{
cout << n[0] << "/" << n[1] << "/" << n[2] << endl;
}
void comparar_fechas(t_fecha n, t_fecha m)
{
if(n[0]==m[0] && n[1]==m[1] && n[2]==m[2]){
cout << "Las fechas son iguales" << endl;
}
else{
cout << "Las fechas son diferentes" << endl;
}
}
void mayor_fechas(t_fecha n, t_fecha m)
{
if(n[2]>m[2]){
cout << "Es mayor "; mostrar_fecha(n);
}
else{
if(n[2]<m[2]){
cout << "Es mayor "; mostrar_fecha(m);
}
else{
if(n[1]>m[1]){
cout << "Es mayor "; mostrar_fecha(n);
}
else{
if(n[1]<m[1]){
cout << "Es mayor "; mostrar_fecha(m);
}
else{
if(n[0]>m[0]){
cout << "Es mayor "; mostrar_fecha(n);
}
else{
if(n[0]<m[0]){
cout << "Es mayor "; mostrar_fecha(m);
}
else{
cout << "Son iguales" << endl;
}
}
}
}
}
}
}
CALCULO EDAD
[int d, m ,a, edad;
cout << "8/8/2014 << endl;
cout << "COLOQUE FECHA DE NACIMIENTO EN FORMATO DD/MM/AAAA:" << endl;
cin >> d >> m >> a;
edad=2014-a;
if(m==8){
if(d<8){
edad++;
}
else{
if(d>8){
edad--;
}
}
}
else{
if(m<8){
edad++;
}
else{
edad--;
}
}