macro-tracker v1.0.3
Simple Macro Tracker made (in C++) because all the apps have tons of ads and limited custom foods, so you need to enter all the macros every time you eat anything and that is a pain in the ass.
Cargando...
Buscando...
Nada coincide
Referencia del archivo funciones.h
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <cstdlib>
#include <string>

Ir al código fuente de este archivo.

Clases

struct  Objeto
 Estructura que define un objeto nutricional. Más...
struct  Usuario
 Estructura que define un usuario con sus datos nutricionales. Más...

Funciones

bool loadUserData (const string &filename, Usuario &user)
 Carga los datos del usuario desde el archivo.
bool saveUserData (const string &filename, Usuario &user)
 Guarda los datos del usuario en el archivo.
void editUserData (Usuario &user, const string &filename)
 Permite editar los datos del usuario y recalcular las calorías y macros.
int chooseCalorieFormula ()
 Permite seleccionar la fórmula para el cálculo de calorías.
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.
void resetDailyMarker (const string &userFile, Usuario &user)
 Reinicia el marcador diario: reestablece las calorías y macros restantes a sus valores target.
vector< ObjetoloadObjects (const string &filename)
 Carga la lista de objetos desde el archivo.
void saveObjects (const string &filename, const vector< Objeto > &objetos)
 Guarda la lista de objetos en el archivo.
void addObject (const string &filename)
 Permite crear un nuevo objeto nutricional, solicitando sus datos, calculando sus calorías y guardándolo en el archivo.
void deleteObject (const string &filename)
 Elimina un objeto nutricional existente. Se muestran los objetos actuales y se pide seleccionar el objeto a eliminar.
void consumeObjects (const string &objFile, const string &userFile, Usuario &user)
 Permite "consumir" objetos nutricionales. Se muestran los objetos existentes y el usuario puede seleccionar (repetidamente) cuáles consumir hasta que ingrese "f". Se actualizan las calorías y macros restantes y se informa al usuario.
void imprimirValor (const string &etiqueta, double &valor, const string &unidad)
 Imprime un valor con su etiqueta y unidad, usando colores para indicar si es positivo o negativo.
void mostrarRestante (double &remainingCal, double &remainingProtein, double &remainingFat, double &remainingCarb)
 Muestra por pantalla las calorías y macros restantes del día.
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 mantenimiento.
double pedirNumero (const string &mensaje)
 Solicita un número al usuario y valida la entrada.
int pedirIndiceValido (int max, const string &mensaje)
 Solicita un índice válido al usuario, asegurándose de que esté dentro del rango [0, max).
void imprimirObjetos (const vector< Objeto > &objetos)
 Imprime los objetos nutricionales en consola.

Documentación de funciones

◆ addObject()

void addObject ( const string & filename)

Permite crear un nuevo objeto nutricional, solicitando sus datos, calculando sus calorías y guardándolo en el archivo.

Parámetros
filenameArchivo donde se almacenan los objetos.

Definición en la línea 212 del archivo Functions.cpp.

◆ calcularMacrosObjetivo()

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 mantenimiento.

Parámetros
maintenanceCalCalorías de mantenimiento.
targetProteinReferencia donde se guarda la proteína objetivo.
targetFatReferencia donde se guarda la grasa objetivo.
targetCarbReferencia donde se guarda el carbohidrato objetivo.

Definición en la línea 369 del archivo Functions.cpp.

◆ calculateCalories()

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.

Parámetros
pesoPeso del usuario.
alturaAltura del usuario.
edadEdad del usuario.
formulaOptionOpción de fórmula elegida.
Devuelve
Calorías calculadas.

Definición en la línea 129 del archivo Functions.cpp.

◆ chooseCalorieFormula()

int chooseCalorieFormula ( )

Permite seleccionar la fórmula para el cálculo de calorías.

Se muestran las siguientes opciones:

  1. Fórmula Hombres: Calorías = (10 × peso en kg) + (6.25 × altura en cm) − (5 × edad) + 5
  2. Fórmula Mujeres: Calorías = (10 × peso en kg) + (6.25 × altura en cm) − (5 × edad) − 161
Devuelve
La opción elegida (1 o 2).

Definición en la línea 116 del archivo Functions.cpp.

◆ consumeObjects()

void consumeObjects ( const string & objFile,
const string & userFile,
Usuario & user )

Permite "consumir" objetos nutricionales. Se muestran los objetos existentes y el usuario puede seleccionar (repetidamente) cuáles consumir hasta que ingrese "f". Se actualizan las calorías y macros restantes y se informa al usuario.

Parámetros
objFileArchivo de objetos.
userFileArchivo de datos del usuario.
userEstructura Usuario que contiene los datos del usuario.

Definición en la línea 271 del archivo Functions.cpp.

◆ deleteObject()

void deleteObject ( const string & filename)

Elimina un objeto nutricional existente. Se muestran los objetos actuales y se pide seleccionar el objeto a eliminar.

Parámetros
filenameArchivo donde se almacenan los objetos.

Definición en la línea 246 del archivo Functions.cpp.

◆ editUserData()

void editUserData ( Usuario & user,
const string & filename )

Permite editar los datos del usuario y recalcular las calorías y macros.

Tras cada input se muestra un mensaje de confirmación y se recalculan:

  • Calorías de mantenimiento (usando calculateCalories)
  • Macros target: 25% de las calorías en proteína (4 cal/g), 20% en grasa (9 cal/g) y 55% en carbohidratos (4 cal/g)
  • Además, se reinician los marcadores diarios (restantes) con los valores target.
Parámetros
userEstructura Usuario que contiene los datos del usuario.
filenameArchivo donde se guardan los datos.

Definición en la línea 75 del archivo Functions.cpp.

◆ imprimirObjetos()

void imprimirObjetos ( const vector< Objeto > & objetos)

Imprime los objetos nutricionales en consola.

Parámetros
objetosVector de objetos nutricionales a imprimir.

Definición en la línea 407 del archivo Functions.cpp.

◆ imprimirValor()

void imprimirValor ( const string & etiqueta,
double & valor,
const string & unidad )

Imprime un valor con su etiqueta y unidad, usando colores para indicar si es positivo o negativo.

Parámetros
etiquetaEtiqueta descriptiva del valor.
valorValor a imprimir.
unidadUnidad del valor (ej. "Kcal", "g").

Definición en la línea 347 del archivo Functions.cpp.

◆ loadObjects()

vector< Objeto > loadObjects ( const string & filename)

Carga la lista de objetos desde el archivo.

Cada línea en el archivo debe tener el formato: nombre,proteina,carbohidratos,grasa,calorias

Parámetros
filenameArchivo donde están almacenados los objetos.
Devuelve
Vector de objetos leídos.

Definición en la línea 156 del archivo Functions.cpp.

◆ loadUserData()

bool loadUserData ( const string & filename,
Usuario & user )

Carga los datos del usuario desde el archivo.

El archivo debe tener esta estructura (una entrada por línea):

  1. Nombre
  2. Altura (cm)
  3. Peso (kg)
  4. Edad (anhos)
  5. Fórmula elegida (int)
  6. Calorías de mantenimiento calculadas
  7. Calorías restantes (marcador diario)
  8. Gramos de proteína target
  9. Gramos de grasa target
  10. Gramos de carbohidratos target
  11. Gramos de proteína restantes
  12. Gramos de grasa restantes
  13. Gramos de carbohidratos restantes
Parámetros
filenameArchivo donde se encuentran los datos.
userEstructura Usuario que contiene los datos del usuario.
Devuelve
true si se cargaron correctamente los datos, false en caso contrario.

Definición en la línea 14 del archivo Functions.cpp.

◆ mostrarRestante()

void mostrarRestante ( double & remainingCal,
double & remainingProtein,
double & remainingFat,
double & remainingCarb )

Muestra por pantalla las calorías y macros restantes del día.

Imprime en consola el estado actual de las calorías, proteína, grasa y carbohidratos restantes, es decir, los valores que aún puede consumir el usuario en el día según su objetivo y lo que ya ha consumido.

Parámetros
remainingCalCalorías restantes.
remainingProteinGramos de proteína restantes.
remainingFatGramos de grasa restantes.
remainingCarbGramos de carbohidratos restantes.

Definición en la línea 355 del archivo Functions.cpp.

◆ pedirIndiceValido()

int pedirIndiceValido ( int max,
const string & mensaje )

Solicita un índice válido al usuario, asegurándose de que esté dentro del rango [0, max).

Parámetros
maxValor máximo (exclusivo) para el índice.
mensajeMensaje a mostrar al usuario.
Devuelve
int Índice válido introducido por el usuario.

Definición en la línea 391 del archivo Functions.cpp.

◆ pedirNumero()

double pedirNumero ( const string & mensaje)

Solicita un número al usuario y valida la entrada.

Parámetros
mensajeMensaje a mostrar.
Devuelve
double Valor introducido.

Definición en la línea 375 del archivo Functions.cpp.

◆ resetDailyMarker()

void resetDailyMarker ( const string & userFile,
Usuario & user )

Reinicia el marcador diario: reestablece las calorías y macros restantes a sus valores target.

Parámetros
userFileArchivo de datos del usuario.
userEstructura Usuario que contiene los datos del usuario.

Definición en la línea 144 del archivo Functions.cpp.

◆ saveObjects()

void saveObjects ( const string & filename,
const vector< Objeto > & objetos )

Guarda la lista de objetos en el archivo.

Parámetros
filenameArchivo destino.
objetosVector de objetos nutricionales.

Definición en la línea 194 del archivo Functions.cpp.

◆ saveUserData()

bool saveUserData ( const string & filename,
Usuario & user )

Guarda los datos del usuario en el archivo.

Se guardan los 13 elementos según la estructura definida en loadUserData.

Parámetros
filenameArchivo en el que se guardarán los datos.
userEstructura Usuario que contiene los datos del usuario.
Devuelve
true si se guardaron correctamente los datos, false en caso contrario.

Definición en la línea 52 del archivo Functions.cpp.