Last active
June 25, 2021 02:09
-
-
Save efturtle/a995830022e1c22350fb8242b97262ba to your computer and use it in GitHub Desktop.
crud with struct in C language
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #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; | |
| } | |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
funciona solo el leer y mostrar
tambien muestra el conteo.
Las opciones del menu estan a partir de la linea 117 - 148