Skip to content

Instantly share code, notes, and snippets.

@efturtle
Last active June 25, 2021 02:09
Show Gist options
  • Select an option

  • Save efturtle/a995830022e1c22350fb8242b97262ba to your computer and use it in GitHub Desktop.

Select an option

Save efturtle/a995830022e1c22350fb8242b97262ba to your computer and use it in GitHub Desktop.
crud with struct in C language
#include <stdio.h>
#include <string.h>
//definir variable global, aqui puedes incrementar o disminuir
#define USUARIOS 20
#define LIMITECHAR 20
/* */
struct Usuario {
int folio;
char fecha[20];
char hora[20];
float costo;
int tipo;
};
struct Usuario users[USUARIOS];
void mostrar(int iterador){
printf("Consultar Registro\n\n");
printf("Numero de usuarios: %i\n", iterador);
printf("%i\n", users[iterador].folio);
}
/* Muestra alumnos y retorna el id del elegido */
int indexUsuarios(int iterador){
int eleccionUsuario;
printf("Consultar Registro\n\n");
// retorna 0 en caso de que no halla registros
if(iterador == 0){
return 0;
}
//corre un loop de la cantidad total de registros
for (int i = 1; i < iterador; i++)
{
printf("Folio: %i\tFecha: %s\tHora: %s\tCosto: %.6f\t",
users[iterador].folio, users[iterador].fecha, users[iterador].hora, users[iterador].costo);
printf("Tipo: ");
switch (users[iterador].tipo)
{
case 1:
printf("Infantil\n");
break;
case 2:
printf("Adulto\n");
break;
default:
printf("Tipo de usuario no respetado\n");
break;
}
}
printf("Elija el usuario a editar\n");
scanf("%d", &eleccionUsuario);
return eleccionUsuario;
}
void editar(int idUsuario){
printf("Edicion\n\n");
printf("%d\t", idUsuario);
return;
}
void guardar(int i){
//si ya hay 20 no registrar mas y salir
if(i == 20){
//mensaje de error
printf("Numero maximo de registros alcanzado\n");
//salir de la funcion
return;
}
printf("Registro\n\n");
printf("ingrese folio:\n");
scanf("%i", &(users[i].folio));
printf("ingrese fecha:\n");
scanf("%s", (users[i].fecha));
//fgets(users[i].fecha, LIMITECHAR, stdin);
printf("ingrese hora:\n");
scanf("%s", (users[i].hora));
//fgets(users[i].hora, LIMITECHAR, stdin);
printf("ingrese costo:\n");
scanf("%f", &(users[i].costo));
printf("ingrese tipo:\n 1:Infantil 2:Adulto\n");
scanf("%i", &(users[i].tipo));
return;
}
int main(void){
/* Declaracion de variables */
int seleccionMenuUsuario;
//para arreglar algunos problemas de memoria, use punteros (quien sabe que rollo)
int* iteradorUsuarios;
//normalize iterator
*iteradorUsuarios = *iteradorUsuarios - 1;
/* Menu */
while(1){
printf("1.Registro\n2.Edicion\n3.Consultar Registros\n4.Salir\n\n");
scanf("%d", &seleccionMenuUsuario);
switch (seleccionMenuUsuario)
{
case 1:
//guardar(*iteradorUsuarios);
printf("%d", );
*iteradorUsuarios = *iteradorUsuarios + 1;
break;
case 2:
editar(indexUsuarios(*iteradorUsuarios));
break;
case 3:
if(*iteradorUsuarios == 0){
printf("Sin registros capturados\n\n");
break;
}
printf("%d", );
//mostrar(*iteradorUsuarios);
break;
case 4:
printf("Hasta luego\n\n");
return 0;
break;
case 5:
printf("\n\n\niterador = %d\n", *iteradorUsuarios);
break;
case 6:
*iteradorUsuarios = *iteradorUsuarios + 1;
break;
default:
break;
}
}
return 0;
}
@efturtle
Copy link
Copy Markdown
Author

funciona solo el leer y mostrar
tambien muestra el conteo.
Las opciones del menu estan a partir de la linea 117 - 148

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment