Proyecto final C++

Iniciado por Antonio Smith, 23 Agosto 2018, 20:23 PM

0 Miembros y 1 Visitante están viendo este tema.

Antonio Smith

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.

MAFUS

No se hacen tareas.
Expón lo que tienes y te aclaramos dudas puntuales.

Antonio Smith

el detalle es el siguiente, lo tengo pero en c, solo que nose como pasarlo a c++, nose si cuente como hacerme la tarea.

MAFUS

#3
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.

Beginner Web

Puedes usar el tda fecha y algun calculo para realizar el calculo exacto de la edad de una persona

TDA FECHA

Código (cpp) [Seleccionar]
#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

Código (cpp) [Seleccionar]
[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--;
}
}
7w7