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.

Entradas relacionadas: