Estadística de Notas de Alumnos en C: Lectura, Cálculo y Clasificación de Calificaciones
Clasificado en Otras lenguas extranjeras
Escrito el en
español con un tamaño de 4,29 KB
Estadística de notas de alumnos en lenguaje C
A continuación se presenta un programa en lenguaje C que permite leer, mostrar y calcular estadísticas sobre las calificaciones de un conjunto de alumnos. El código está organizado en funciones que cubren cada una de las tareas principales.
Definiciones y directivas
El programa comienza con la definición de constantes y la inclusión de las librerías necesarias:
#define _CRT_SECURE_NO_WARNINGS: evita avisos de seguridad de Visual Studio al usar funciones comoscanfostrcpy.#include <string.h>y#include <stdio.h>: librerías estándar para manejo de cadenas y entrada/salida.#include "estadistica.h": cabecera propia que define la estructuratAlumnoy las constantesMAX_CAD,MAX_DNIyNUM_NOTAS.#define FFLUSH while(getchar() != '\n'): macro para limpiar el búfer de entrada tras usarscanf.
Tabla de calificaciones
El array Calificaciones almacena los nombres de las categorías de nota:
- Matrícula
- Sobresaliente
- Notable
- Aprobado
- Suspenso
Lectura segura de cadenas
La función leeCadena utiliza fgets para leer una línea desde la entrada estándar de forma segura, evitando desbordamientos de búfer. Si la cadena introducida supera el tamaño permitido, se descartan los caracteres sobrantes mediante FFLUSH. Finalmente, se elimina el carácter de salto de línea ('\n') sustituyéndolo por '\0'.
Entrada de datos de alumnos
Se dispone de dos formas de cargar los datos:
Función LeeAlumno
Solicita por teclado el nombre, el DNI y la nota de un alumno, y devuelve una estructura tAlumno con esos valores.
Función PedirDatos
Pide al usuario el número de alumnos y, mediante un bucle, invoca a LeeAlumno para rellenar el array. Devuelve el número de alumnos introducidos.
Función PedirDatos2
Carga un conjunto de datos predefinidos (siete alumnos de ejemplo) directamente en el array, útil para pruebas sin necesidad de introducir información manualmente. Devuelve el número de registros cargados.
Visualización de datos
MuestraAlumno: imprime el nombre, DNI y nota de un alumno.MuestraAlumnos: recorre el array completo e invoca aMuestraAlumnopara cada elemento.
Cálculo de estadísticas
La función CalculaEstadistica realiza dos tareas fundamentales:
- Suma de notas: acumula todas las calificaciones para posteriormente calcular la media.
- Clasificación: cuenta cuántos alumnos caen en cada categoría según su nota:
- Matrícula: nota igual a 10.
- Sobresaliente: nota de 9 (incluido) a 10 (excluido).
- Notable: nota de 7 (incluido) a 9 (excluido).
- Aprobado: nota de 5 (incluido) a 7 (excluido).
- Suspenso: nota inferior a 5.
Al finalizar, llama a ImprimeEstadistica pasándole la suma, el array de contadores y el número total de alumnos.
Impresión de resultados
La función ImprimeEstadistica muestra:
- La nota media del grupo, calculada como suma dividida entre el número de alumnos.
- El porcentaje de alumnos en cada categoría de calificación, calculado como
(contador * 100.0) / num.
Conclusiones
Este programa ilustra conceptos fundamentales de la programación en C: el uso de estructuras, arrays de estructuras, paso de arrays a funciones, lectura segura de cadenas y organización modular del código. Además, sirve como base práctica para comprender el procesamiento de datos estadísticos simples en un entorno de consola.