Está en la página 1de 4

Examen Recuperación Evaluación 2 -

Programación

QUÉ DEBE ENTREGAR

Cuando acabe su examen debe entregar todos los ficheros de código


fuente con extensión .java.

NO SE RESOLVERÁN DUDAS DE ENUNCIADO DURANTE EL


EXAMEN. Si algún enunciado no está claro o es ambiguo, debe
interpretarlo y resolverlo como crea conveniente. Puede incluir
comentarios que justifiquen su elección, pero esto no garantiza que se
le corrija positivamente si se estima que su interpretación es errónea.
Ejercicio 1 (5 puntos)

Se desea implementar en Java las diferentes funcionalidades de un


centro académico. En el centro habrá distintos alumnos y asignaturas
que se tendrán que registrar. Para los alumnos hay dni, nombre y
apellidos. Y para las asignaturas código de asignatura, nombre y
créditos. Hay que tener en cuenta que un alumno puede estar
matriculado de muchas asignaturas (10 como máximo). Y las
asignaturas tendrán alumnos (30 como máximo). El centro académico
debe implementar la siguiente funcionalidad:

- crearAlumno: crea y añade un alumno al centro escolar. No puede haber


dos alumnos con el mismo dni. Devolverá falso si no se pudo registrar el
alumno, y verdadero en caso contrario.

- crearAsignatura: crea y añade una asignatura al centro escolar. No puede


haber dos asignaturas con el mismo código. Devolverá falso si no se pudo
registrar la asignatura, y verdadero en caso contrario.

- matricular: matriculará a un alumno en concreto en una asignatura en


concreto. El método devolverá falso si no se encuentra el alumno o
asignatura o si ya estaba el alumno matriculado en ella.

- imprimirAlumno: imprime en pantalla la información de un alumno:


Nombre y apellidos:[nombreCompletoAlumno]
DNI:[dni]
[nombreAsignatura1]
[nombreAsignatura2]

- imprimirAlumnos: imprime todos los alumnos registrados en el centro.

- imprimirAsignatura: imprime la asignatura requerida. Elija el formato.

- imprimirAsignaturas: imprime todas las asignaturas registradas en el


centro.

Debe pensar el número y tipo de los argumentos de los métodos e


implementarlos en la clase que corresponda. Debe introducir código de
validación en las clases para los alumnos y asignaturas, que lancen
excepciones en caso de que se proporcionen datos inválidos para el
alumno/asignatura. No permita que se cambien los datos de un alumno
o asignatura una vez que esté creado/a. Debe ser usted quien considere
qué es un dato inválido. Los seis métodos de arriba NO DEBEN
lanzar excepciones, sino capturarlas en caso de que dentro de su
código se lance alguna, y actuar en consecuencia.
Cree en el main un menú con seis opciones que permita probar lo seis
métodos que debe implementar. Por ejemplo, si en el menú se lee la
opción 1 se probará el método crearAlumno, y se le pedirá al usuario
por teclado el dni, nombre y apellidos del alumno que se quiere crear.

Ejercicio 2 (2.5 puntos)

Cree un método estático que reciba dos arrays 2D de enteros y que


intercambie el contenido interior de ambos, dejando sus marcos sin
alterar:

Si se reciben estos dos arrays…

Array 1 Array 2
3463 4579
9223 7661
8960 9201

…tras ejecutarse el método tendrán el siguiente contenido (únicamente


han intercambiado las partes coloreadas)

Array 1 Array 2
3463 4579
9663 7221
8960 9201

Pruebe su método en el main: imprima inicialmente los dos arrays antes


de la llamada al método, tras eso realice la llamada al método estático y
cuando finalice la llamada, vuelva a imprimir los arrays.

Ejercicio 3 (2.5 puntos)

Crear un método estático que reciba una cadena y devuelva otra con el
texto bien formateado:

la cadena recibida no contiene saltos de línea, por lo que por cada


punto
que encuentre debe introducir un salto de línea. Si existen varios
espacios en blanco seguidos, debe eliminarlos y sustituirlos por uno
solo. También debe eliminar todos los espacios en blanco al principio y
final de la cadena. Tenga en cuenta que, si una frase no comienza con
una maýuscula, debe convertir dicha letra a mayúscula. Es decir,
después de cada punto la palabra que le sigue debe comenzar en
mayúsculas.
Pruebe su método en el main.

También podría gustarte