3. Caso de Estudio Nº 1: Las Notas de un Curso
Considere el problema de administrar las calificaciones de los alumnos de un curso, en el cual hay doce estudiantes, de cada uno de los cuales se tiene la nota definitiva que obtuvo (un valor entre 0,0 y 5,0).
Se quiere construir un programa que permita:
- Cambiar la nota de un estudiante.
- Calcular el promedio del curso.
- Establecer el número de estudiantes que está por encima de dicho promedio.
En la figura 3.1 aparece la interfaz de usuario que se quiere que tenga el programa.
Fig. 3.1 Interfaz de usuario del programa del primer caso de estudio |
---|
- En la ventana del programa aparece la nota de cada uno de los doce estudiantes del curso. La nota con la que comienzan es siempre cero.
- Con el respectivo botón es posible modificar la nota. Al oprimirlo, aparece una ventana de diálogo en la que se pide la nueva nota.
- En la parte de abajo de la ventana se encuentran los botones que implementan los requerimientos funcionales: calcular el promedio e indicar el número de estudiantes que están por encima de dicha nota.
3.1. Comprensión de los Requerimientos
Nombre | R1 – Cambiar nota. |
---|---|
Resumen | Cambia la nota de uno de los estudiantes que pertenece a la lista del curso. |
Entradas | (1) Número del estudiante, (2) nota del estudiante |
Resultado | Se muestra la nueva nota del estudiante. En caso de que no cumpla el formato de número decimal con punto como separador, se muestra un mensaje de error. |
Nombre | R2 – Calcular promedio de notas. |
---|---|
Resumen | Calcula el promedio de notas de la lista de estudiantes. |
Entradas | Ninguna. |
Resultado | Se muestra un mensaje con el promedio calculado. |
Nombre | R3 – Calcular la cantidad de estudiantes por encima del promedio. |
---|---|
Resumen | Calcula la cantidad de estudiantes que tienen una nota registrada mayor al promedio calculado. |
Entradas | Ninguna. |
Resultado | Se muestra un mensaje con la cantidad de estudiantes por encima del promedio. |
3.2. Comprensión del Mundo del Problema
Dado el enunciado del problema, el modelo conceptual se puede definir con una clase llamada Curso, la cual tendría doce atributos de tipo double
para representar las notas de cada uno de los estudiantes, tal como se muestra en la figura 3.2.
Fig. 3.2 Modelo conceptual de las calificaciones de los estudiantes |
---|
Aunque este modelado es correcto, los métodos necesarios para resolver el problema resultarían excesivamente largos y dispendiosos. Cada expresión aritmética para calcular cualquier valor del curso tomaría muchas líneas de código. Además, imagine si en vez de 12 notas tuviéramos que manejar 50 ó 100. Terminaríamos con algoritmos imposibles de leer y de mantener. Necesitamos una manera mejor de hacer este modelado y ésta es la motivación de introducir el concepto de estructura contenedora.