35 const string userDataFile =
"datos.txt";
36 const string objDataFile =
"objetos.txt";
43 cout <<
"Ingrese su nombre (sin tildes ni valores especiales): ";
45 cout <<
"Bienvenido, " << user.
nombre << endl;
48 cout <<
"Altura procesada y guardada con exito." << endl;
51 cout <<
"Peso procesado y guardado con exito." << endl;
53 user.
edad =
static_cast<int>(
pedirNumero(
"Ingrese su edad en anhos: "));
54 cout <<
"Edad procesada y guardada con exito." <<endl;
57 cout <<
"Formula procesada y guardada con exito." << endl;
61 cout <<
"\nSu requerimiento de calorias de mantenimiento es: "
82 cout <<
"Bienvenido de nuevo, " << user.
nombre <<
"!" << endl;
86 cout <<
"\nMenu de opciones:" << endl;
87 cout <<
"0. Editar datos de usuario (nombre, altura, peso, edad, formula)" << endl;
88 cout <<
"1. Crear un objeto nutricional" << endl;
89 cout <<
"2. Eliminar un objeto nutricional" << endl;
90 cout <<
"3. Consumir objetos nutricionales" << endl;
91 cout <<
"4. Reiniciar marcador diario (nuevo dia)" << endl;
92 cout <<
"5. Mostrar calorias y macros restantes" << endl;
93 cout <<
"6. Salir" << endl;
94 cout <<
"Ingrese una opcion: ";
117 cout <<
"Saliendo del programa. Hasta luego!" << endl;
120 cout <<
"Opcion invalida, intente de nuevo." << endl;
122 }
while(opcion != 6);
void resetDailyMarker(const string &userFile, Usuario &user)
Reinicia el marcador diario: reestablece las calorías y macros restantes a sus valores target.
void editUserData(Usuario &user, const string &filename)
Permite editar los datos del usuario y recalcular las calorías y macros.
double calculateCalories(double peso, double altura, int edad, int formulaOption)
Calcula las calorías de mantenimiento en función del peso, altura, edad y fórmula.
double pedirNumero(const string &mensaje)
Solicita un número al usuario y valida la entrada.
void consumeObjects(const string &objFile, const string &userFile, Usuario &user)
Permite "consumir" objetos nutricionales. Se muestran los objetos existentes y el usuario puede selec...
void calcularMacrosObjetivo(double maintenanceCal, double &targetProtein, double &targetFat, double &targetCarb)
Calcula los valores objetivo de proteína, grasa y carbohidratos a partir de las calorías de mantenimi...
void mostrarRestante(double &remainingCal, double &remainingProtein, double &remainingFat, double &remainingCarb)
Muestra por pantalla las calorías y macros restantes del día.
int chooseCalorieFormula()
Permite seleccionar la fórmula para el cálculo de calorías.
void deleteObject(const string &filename)
Elimina un objeto nutricional existente. Se muestran los objetos actuales y se pide seleccionar el ob...
bool saveUserData(const string &filename, Usuario &user)
Guarda los datos del usuario en el archivo.
void addObject(const string &filename)
Permite crear un nuevo objeto nutricional, solicitando sus datos, calculando sus calorías y guardándo...
bool loadUserData(const string &filename, Usuario &user)
Carga los datos del usuario desde el archivo.
Estructura que define un usuario con sus datos nutricionales.