Funciones
16. Ejercicio Pre-Parcial
Gestión de Alumnos con Historial de Notas
La estructura principal del programa será una lista, donde cada elemento es un diccionario cuya clave es el DNI del alumno, y el valor será otro diccionario con los datos del alumno:
[{ “DNI”: { "Nombre": <string>, "Edad": <entero>, "Carrera": <string>, "Historial_Notas": [lista de notas] } }, ...]
El campo Historial_Notas almacenará las notas del cursado.
Se deberán implementar un menú con las siguientes funciones:
1. (20 puntos) Cargar un alumno()
- Ingresar y validar TODOS los datos del alumno: DNI, nombre, edad y carrera.
- En caso de error o dato fuera de rango, se deberán reingresar todos los datos.
- El historial de notas debe inicializarse como lista vacía.
- Agregar el alumno a la estructura principal.
- La función debe retornar True si el alumno fue cargado correctamente.
2. (20 puntos) Mostrar alumnos()
- Mostrar todos los alumnos registrados, indicando DNI, nombre, edad y carrera.
- No mostrar las notas en esta función.
- La función no retorna nada.
3. (20 puntos) Agregar nota()
- Recibe el DNI de un alumno.
- Si el alumno existe, solicitar una nota float entre 0 y 10 (validar rango).
- Agregar la nota al historial del alumno.
- Retornar True si la nota fue agregada, o False si el alumno no existe. En el código principal mostrar un mensaje acorde al valor booleano retornado por la función.
4. (20 puntos) Modificar alumno()
Recibe el DNI de un alumno.
Si el alumno está registrado, mostrar un submenú:
a) Modificar datos personales (nombre, edad, carrera)
b) Modificar una nota del historial
c) Volver al menú principal
· En la opción (b), mostrar las notas con su índice y permitir modificar una.
· Si se modifica algún dato o nota, la función debe retornar el alumno y el valor modificado para luego mostrarlo en el código principal.
· Si no se modifica nada o el alumno no existe, retornar False.
5. (15 puntos) Eliminar nota()
- Recibe el DNI del alumno y se valida que exista en el diccionario, caso contrario devuelve False y muestra un mensaje en el código principal “Alumno no encontrado”
- Si existe, mostrar las notas con su índice y permitir eliminar una.
- Si la nota fue eliminada, retornar True y mostrar un mensaje en el código principal “Nota eliminada”
6. (15 puntos) Estadísticas()
Calcular y mostrar:
- Cantidad total de alumnos.
- Porcentaje de alumnos aprobados (promedio ≥ 6).
- Porcentaje de alumnos desaprobados (promedio < 6 o sin notas).
La función no retorna nada.
S) Salir
Finaliza la ejecución del programa.
Nota: No se pueden ingresar a las opciones 2, 3, 4, 5 y 6, sin ejecutarse la opción 1.