Implementación de Gestión de Colecciones en Lenguaje C
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 2,04 KB
Definición de Estructuras
A continuación, se define el tipo de dato t_cromos para almacenar la información de cada elemento:
typedef struct {
int numero;
char nombre[MAX_CHAR];
char descripcion[MAX_CHAR];
int late;
int repe;
} t_cromos;Prototipos de Funciones
Declaraciones necesarias para la modularización del código:
void cargar_cromos(t_cromos *figus, int l);int cuenta_lineas(void);void imprimir(t_cromos *cr, int l);
Función Principal
El punto de entrada del programa gestiona el flujo de datos:
int main(void) {
t_cromos cromos[700];
int l = cuenta_lineas();
cargar_cromos(cromos, l);
printf("%s %d \n", "La cantidad de líneas es: ", l);
imprimir(cromos, l);
return EXIT_SUCCESS;
}Funciones Auxiliares
Carga de Datos
La función cargar_cromos procesa el archivo cromos.txt y asigna valores aleatorios a los campos late y repe:
void cargar_cromos(t_cromos *figus, int l) {
FILE *f = fopen("cromos.txt", "rt");
char linea[MAX_CHAR];
if (f == NULL) printf("%s\n", ERROR_MSG_OPTION);
for (int i = 0; i < l; i++) {
fgets(linea, MAX_CHAR, f);
sscanf(linea, "%d", &figus[i].numero);
strncpy(figus[i].nombre, linea + 4, 33);
figus[i].nombre[32] = '\0';
strncpy(figus[i].descripcion, linea + 38, 15);
figus[i].descripcion[15] = '\0';
figus[i].late = rand() % 2;
figus[i].repe = (figus[i].late != 0) ? (rand() % 6 + 5) : 0;
}
fclose(f);
}Conteo de Registros
La función cuenta_lineas determina la cantidad de registros existentes en el archivo.
Visualización de Resultados
La función imprimir muestra los datos cargados y calcula métricas como la cantidad de sobres y el gasto total.