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.
|
#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< Objeto > | loadObjects (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. |
void addObject | ( | const string & | filename | ) |
Permite crear un nuevo objeto nutricional, solicitando sus datos, calculando sus calorías y guardándolo en el archivo.
filename | Archivo donde se almacenan los objetos. |
Definición en la línea 212 del archivo Functions.cpp.
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.
maintenanceCal | Calorías de mantenimiento. |
targetProtein | Referencia donde se guarda la proteína objetivo. |
targetFat | Referencia donde se guarda la grasa objetivo. |
targetCarb | Referencia donde se guarda el carbohidrato objetivo. |
Definición en la línea 369 del archivo Functions.cpp.
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.
peso | Peso del usuario. |
altura | Altura del usuario. |
edad | Edad del usuario. |
formulaOption | Opción de fórmula elegida. |
Definición en la línea 129 del archivo Functions.cpp.
int chooseCalorieFormula | ( | ) |
Permite seleccionar la fórmula para el cálculo de calorías.
Se muestran las siguientes opciones:
Definición en la línea 116 del archivo Functions.cpp.
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.
objFile | Archivo de objetos. |
userFile | Archivo de datos del usuario. |
user | Estructura Usuario que contiene los datos del usuario. |
Definición en la línea 271 del archivo Functions.cpp.
void deleteObject | ( | const string & | filename | ) |
Elimina un objeto nutricional existente. Se muestran los objetos actuales y se pide seleccionar el objeto a eliminar.
filename | Archivo donde se almacenan los objetos. |
Definición en la línea 246 del archivo Functions.cpp.
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:
user | Estructura Usuario que contiene los datos del usuario. |
filename | Archivo donde se guardan los datos. |
Definición en la línea 75 del archivo Functions.cpp.
void imprimirObjetos | ( | const vector< Objeto > & | objetos | ) |
Imprime los objetos nutricionales en consola.
objetos | Vector de objetos nutricionales a imprimir. |
Definición en la línea 407 del archivo Functions.cpp.
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.
etiqueta | Etiqueta descriptiva del valor. |
valor | Valor a imprimir. |
unidad | Unidad del valor (ej. "Kcal", "g"). |
Definición en la línea 347 del archivo Functions.cpp.
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
filename | Archivo donde están almacenados los objetos. |
Definición en la línea 156 del archivo Functions.cpp.
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):
filename | Archivo donde se encuentran los datos. |
user | Estructura Usuario que contiene los datos del usuario. |
Definición en la línea 14 del archivo Functions.cpp.
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.
remainingCal | Calorías restantes. |
remainingProtein | Gramos de proteína restantes. |
remainingFat | Gramos de grasa restantes. |
remainingCarb | Gramos de carbohidratos restantes. |
Definición en la línea 355 del archivo Functions.cpp.
int pedirIndiceValido | ( | int | max, |
const string & | mensaje ) |
Solicita un índice válido al usuario, asegurándose de que esté dentro del rango [0, max).
max | Valor máximo (exclusivo) para el índice. |
mensaje | Mensaje a mostrar al usuario. |
Definición en la línea 391 del archivo Functions.cpp.
double pedirNumero | ( | const string & | mensaje | ) |
Solicita un número al usuario y valida la entrada.
mensaje | Mensaje a mostrar. |
Definición en la línea 375 del archivo Functions.cpp.
void resetDailyMarker | ( | const string & | userFile, |
Usuario & | user ) |
Reinicia el marcador diario: reestablece las calorías y macros restantes a sus valores target.
userFile | Archivo de datos del usuario. |
user | Estructura Usuario que contiene los datos del usuario. |
Definición en la línea 144 del archivo Functions.cpp.
void saveObjects | ( | const string & | filename, |
const vector< Objeto > & | objetos ) |
Guarda la lista de objetos en el archivo.
filename | Archivo destino. |
objetos | Vector de objetos nutricionales. |
Definición en la línea 194 del archivo Functions.cpp.
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.
filename | Archivo en el que se guardarán los datos. |
user | Estructura Usuario que contiene los datos del usuario. |
Definición en la línea 52 del archivo Functions.cpp.