Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ComentariosDeFunciones #30

Merged
merged 2 commits into from
Jun 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified BotellasFrigo.dat
Binary file not shown.
Binary file modified Comidas.dat
Binary file not shown.
Binary file modified bin/Debug/tmphotel.exe
Binary file not shown.
54 changes: 44 additions & 10 deletions botellas.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,8 @@ int menuBotellas()
{
int op = 0;
char decision = 's';
int dniTmp = 0;
int decisionDeBusqueda = 0;
char marcaTemporal[50];
int retornableTemporal;
int idTemporal;
char marcaTemporal[50]; ///Case 5. String temporal que busca el nombre de la botella
int idTemporal; ///Case 6. Variable temporal para buscar el ID de la botella y luego modificarlo

do
{
Expand Down Expand Up @@ -78,12 +75,16 @@ int menuBotellas()
return 0;
}

///Funcion que carga una botella


// Carga de botellas

botellita cargarBotellas(botellita botellaTemporal)
{
printf("Ingrese la marca de la botella: ");
fflush(stdin);
gets(&botellaTemporal.marca);
gets(botellaTemporal.marca);

printf("Es retornable? (0 para si / 1 para no): ");
scanf("%i", &botellaTemporal.retornable);
Expand All @@ -93,7 +94,11 @@ botellita cargarBotellas(botellita botellaTemporal)
return botellaTemporal;
}

///Función que verifica si ya existe el ID de una botella


// Comprobación de ID existente

int verificarIDExistente(char nombre[], int id)
{
FILE* archivo = fopen(nombre, "rb");
Expand All @@ -116,10 +121,14 @@ int verificarIDExistente(char nombre[], int id)
return idExistente; // 0 si el ID no existe, 1 si existe
}


///Funcion que carga en el archivo y verifica al momento de cargar si ya existe un ID

// Carga de botellas de archivo

void cargarBotellasArchivo(char nombre[])
{
FILE* Archi = fopen(nombre, "ab");
FILE* Archi = fopen(nombre, "wb");
char decision = 's';
int idExistente = 0;
botellita temp;
Expand All @@ -133,11 +142,11 @@ void cargarBotellasArchivo(char nombre[])
// Verificar si el ID ya existe en el archivo
idExistente = verificarIDExistente(nombre, temp.id);

if (idExistente)
if (idExistente) ///Si retorna 1, existe el ID
{
printf("El ID de botella ya existe. No se puede agregar.\n");
}
else
else ///Sino, carga normalmente
{
temp = cargarBotellas(temp);
fwrite(&temp, sizeof(botellita), 1, Archi);
Expand All @@ -154,10 +163,15 @@ void cargarBotellasArchivo(char nombre[])
}
}

///Función que muestra la botella


// Impresión de una botellas

void mostrarBotella(botellita deMuestra)
{
char textoRetornable[50];

if(deMuestra.retornable == 0)
{
strcpy(textoRetornable, "si, es retornable");
Expand All @@ -178,7 +192,11 @@ void mostrarBotella(botellita deMuestra)

}

///Función que muestra las botellas en un archivo


// Muestreo de todo el archivo de todas las botellas

void mostrarTodoElArchivoDeBotellas(char nombre[])
{
FILE* buffer = fopen(nombre, "rb");
Expand All @@ -197,7 +215,11 @@ void mostrarTodoElArchivoDeBotellas(char nombre[])

}

///Ordena por inserccion La marca de las botellas


// Ordenamiento por inserción

void ordenarBotellasPorMarca(char nombre[])
{
FILE* archivo = fopen(nombre, "rb+");
Expand Down Expand Up @@ -227,7 +249,7 @@ void ordenarBotellasPorMarca(char nombre[])
rewind(archivo);
fwrite(botellas, sizeof(botellita), totalBotellas, archivo);

free(botellas);
free(botellas); ///Liberamos memoria que usaba botellas
fclose(archivo);
printf("Botellas ordenadas por marca.\n");
}
Expand All @@ -242,7 +264,11 @@ void ordenarBotellasPorMarca(char nombre[])
}
}

///Función que ordena por selección el ID de las botellas


// Ordenamiento por selección

void ordenarBotellasPorID(char nombre[])
{
FILE* archivo = fopen(nombre, "rb+");
Expand Down Expand Up @@ -293,7 +319,11 @@ void ordenarBotellasPorID(char nombre[])
}
}


///Función que busca una botella según la marca

// Búsqueda de las botellas por marca

void buscarBotellasPorMarca(char nombre[], const char* marcaBuscada)
{
FILE* archivo = fopen(nombre, "rb");
Expand Down Expand Up @@ -324,7 +354,11 @@ void buscarBotellasPorMarca(char nombre[], const char* marcaBuscada)
}
}

///Función que permite modificar Algún campo de la botella


// Modificación según el usuario, modifica pidiendo el ID

void ModificarSegunUsuario(char nombre[], int id)
{
FILE* Archi;
Expand Down
33 changes: 22 additions & 11 deletions comidas.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,14 @@ const int DIM_F = 15;

int op = 0;
char decision;
char Comidas[15][MATRIZ_C];
char comidaEliminar[MATRIZ_C];
char comidaModificar[MATRIZ_C];
char nuevaComida[MATRIZ_C];
char Comidas[15][MATRIZ_C]; ///Arreglo de palabras que sera cargado en el archivo
char comidaEliminar[MATRIZ_C]; ///Case 6. Nombre de comida que vamos a buscar para luego eliminarlo
char comidaModificar[MATRIZ_C]; ///Case 4. Nombre de comida que vamos a querer modificar
char nuevaComida[MATRIZ_C]; /// Case 4. Nombre de comida nuevo que será modificado



///Menu para elegir las distintas opciones
int menuComidas()
{
do
Expand Down Expand Up @@ -80,6 +83,8 @@ int menuComidas()
return 0;
}


///Funcion que carga comidas
int CargarComidas(char Comidas[][MATRIZ_C], int dimF)
{
int f = 0;
Expand All @@ -94,12 +99,13 @@ int CargarComidas(char Comidas[][MATRIZ_C], int dimF)
gets(Comidas[f]);

int len = strlen(Comidas[f]);
int esPalabra = 1;
int esPalabra= 1;

for (int i = 0; i < len; i++)
{
if (!isalpha(Comidas[f][i]) && Comidas[f][i] != ' ')
{
///isalpha sirve para validar si los caracteres son letras alfabéticas
esPalabra = 0;
break;
}
Expand All @@ -119,7 +125,7 @@ int CargarComidas(char Comidas[][MATRIZ_C], int dimF)

return f;
}

///Función que muestra todas las comidas
void mostrarComidas(char Comidas[][MATRIZ_C], int validos)
{
puts("|------------------------|");
Expand All @@ -129,7 +135,7 @@ void mostrarComidas(char Comidas[][MATRIZ_C], int validos)
}
puts("|------------------------|");
}

///Función que carga las comidas en un archivo
void CargarComidasArchivo(char nombre[], char Comidas[][MATRIZ_C], int dimF)
{
FILE *Archi;
Expand All @@ -145,6 +151,7 @@ void CargarComidasArchivo(char nombre[], char Comidas[][MATRIZ_C], int dimF)
}
}

///Función que muestra las comidas que están en el archivo
void mostrarComidasArchivo(char nombre[], char Comidas[][MATRIZ_C])
{
FILE *Archi;
Expand All @@ -162,6 +169,7 @@ void mostrarComidasArchivo(char nombre[], char Comidas[][MATRIZ_C])
}
}

///Función que Comunica si existe una comida especifica en el archivo
char VerificarSiExisteComidas(char nombreArchivo[], char Comidas[][MATRIZ_C])
{
FILE *Archi;
Expand Down Expand Up @@ -202,14 +210,15 @@ char VerificarSiExisteComidas(char nombreArchivo[], char Comidas[][MATRIZ_C])
}
}

///Funcion que borra una comida en el archivo
void BorrarComidaEspecifica(char Comidas[][MATRIZ_C], int dimF, char comida[])
{
int encontrada = 0;
for (int f = 0; f < dimF; f++)
{
if (strcmp(Comidas[f], comida) == 0)
{
strcpy(Comidas[f], "");
strcpy(Comidas[f], ""); ///Se copia una cadeva vacia en la fila correspondiente y esto hace que borre el contenido que habia antes
printf("Comida '%s' eliminada correctamente.\n", comida);
encontrada = 1;
break;
Expand All @@ -223,7 +232,7 @@ void BorrarComidaEspecifica(char Comidas[][MATRIZ_C], int dimF, char comida[])
GuardarCambiosArchivo("Comidas.dat", Comidas, dimF);
}


///Funcion que permite modificar el nombre de la comida en el archivo
void modificarComida(char Comidas[][MATRIZ_C], int dimF, char comida[], char nuevaComida[])
{
int encontrada = 0;
Expand All @@ -245,7 +254,7 @@ void modificarComida(char Comidas[][MATRIZ_C], int dimF, char comida[], char nue

GuardarCambiosArchivo(ArchC, Comidas, dimF);
}

///Función que borra todas las comidas del archivo
void BorrarTodasLasComidas(char Comidas[][MATRIZ_C], int dimF)
{
for (int f = 0; f < dimF; f++)
Expand All @@ -255,10 +264,12 @@ void BorrarTodasLasComidas(char Comidas[][MATRIZ_C], int dimF)
GuardarCambiosArchivo(ArchC, Comidas, dimF);
}


///Funcion que Guarda todos los cambios que hagamos, sea de modificar, borrar etc.
void GuardarCambiosArchivo(char nombre[], char Comidas[][MATRIZ_C], int dimF)
{
FILE* Archi;
Archi = fopen(nombre, "wb"); //
Archi = fopen(nombre, "wb");
int validos = 0;

if (Archi != NULL)
Expand Down
Binary file modified obj/Debug/botellas.o
Binary file not shown.
Binary file modified obj/Debug/comidas.o
Binary file not shown.
Loading