8.2 Alumnos y Curso

 
8.2.1 Defina las constantes y tipos de datos más adecuados para cada uno de los tipos siguientes:

A.      Tipo Alumno
·        DNI de tipo Cadena
·        Array de entero con los códigos de todas las asignaturas en las que el alumno se ha matriculado alguna vez.
·        Array de reales con las notas obtenidas en las asignaturas del array anterior. Ocupan las mismas posiciones que el array de asignaturas. Esto es, si la asignatura de código 345 ocupa la posición 3 en el array anterior, su nota estará en la posición 3 del array de notas.
·        Número de asignaturas en las que el alumno se ha matriculado: tamaño de los arrays anteriores. Máximo 50. 
B.      Tipo Curso
·         Código del curso de tipo Cadena
·         Array de tipo Alumno
·         Número de alumnos (tamaño del array anterior). Máximo 100.
 
 







8.2.2 Implemente una función que dado nomfich un argumento de tipo Cadena, lea de un fichero de texto los códigos y notas de un alumno, devolviendo un tipo Alumno que tenga como DNI el nombre del fichero (nomfich). El primer valor del fichero será el número de asignaturas y después cada código de asignatura con su nota.

Ejemplo fichero 12345678A
6 234 7.4 321 4.3 456 7.5 342 6.3 213 3.2 348 2.3 // el alumno 12345678A se ha matriculado de 6 asignaturas

Ejemplo fichero 87654321Z
8 233 3.4 311 6.2 454 9.2 342 8.1 232 4.2 349 5.3 754 7.5 456 3.4 // el alumno 87654321Z tiene 8 asignaturas











8.2.3 Implemente una función que reciba un Alumno y devuelva la nota mínima obtenida y el código de la asignatura donde se obtuvo (suponga que solo hay una). Por ejemplo para el alumno 12345678A la nota mínima es 2.3 en la asignatura 348.









8.2.4 Implemente una función que dado un Alumno y un valor de nota (vnota) devuelva un array con los códigos de las asignaturas  con nota mayor o igual a vnota. Por ejemplo, para el alumno 12345678A y nota de corte 6.0 debería devolver un array con los códigos 234, 456, 342.
 
 
 
 
 
 
 

8.2.5 Implemente una función que reciba un Alumno y un entero representando un código de asignatura y devuelva la nota de esa asignatura ó -1 si no ha estado matriculado. Por ejemplo, para el alumno 12345678A y asignatura 234 debe devolver 7.4 y para la asignatura 349 -1.0.

 






8.2.6 Implemente una función tal que dado un Alumno y un valor real (vnota) devuelva si todas las notas superan o no un valor mayor o igual a vnota. Deberá devolver un valor booleano de verdad (true) o falso (false).
 
 






8.2.7 Un alumno habrá terminado los estudios si se ha matriculado de al menos 40 asignaturas y las tiene todas aprobadas (nota mayor o igual a 5). Escriba una función tal que dado un Alumno devuelva si ha terminado o no los estudios. Use la función 8.2.6.
 
 




8.2.8 Implemente una función tal que dado un Alumno devuelva la nota media de las asignaturas en las que se ha matriculado.   







8.2.9 Implemente una función tal que dada un Curso y un valor real (vnota), devuelva cuántas asignaturas de todos los alumnos del Curso tienen notas mayores que vnota.

 
 
 
 
 
 
 
8.2.10 Implemente una función para el mismo problema anterior pero usando la función del apartado 8.2.4. 







8.2.11 Dado un Curso y el código de una asignatura, devuelva el dni del alumno de máxima nota en esa asignatura. Use la función del apartado 8.2.5.








8.2.12 Implemente una función que reciba un Curso c1 y un valor (vnota) de nota y devuelva otro Curso c2 con el mismo código añadiéndole un “2” al final del código y con sólo aquellos alumnos del Curso c1 que tengan todas las notas mayores o iguales que vnota. Use la función del apartado 8.2.6.








8.2.13 Implemente una función que reciba un Alumno y muestre en la consola para cada asignatura en la que está matriculado su nota:






8.2.14 Implemente una función que reciba una Cadena de caracteres nom y un Curso y guarde en un fichero de nombre nom, la información del curso, con el código del curso, los alumnos matriculados identificados con su DNI y para cada alumno las asignaturas en las que estaban matriculados y sus notas.

 




 
 

No hay comentarios:

Publicar un comentario