Skip to content

RA6 - CEd

< volver a actividades

Empaquetar actividades

Empaqueta las actividades, dentro de la carpeta ut07, en la carpeta actividades/ce6d.

Actividad 06

Paquete: A06_listaEspera

Deseamos mantener la lista de espera de pacientes de un hospital. Se quiere poder:

  • Añadir pacientes a la lista.

  • Mantener los pacientes por orden de inserción en la lista de espera.

  • Obtener el paciente más prioritario (al que hay que atender de la lista de espera), es decir, el que más tiempo lleva esperando, el que antes entró en el hospital.

a) Diseña la clase Paciente con los atributos nombre y gravedad. La gravedad es un valor aleatorio (entre 1: más grave y 5: menos grave) generado al crear el paciente.

b) Realiza la implementación de la clase ListaEspera con la estructura de datos elegida. Añade los métodos para:

  • insertar un paciente,
  • obtener de la lista de espera al más prioritario y
  • eliminar de la lista de espera al más prioritario.

¿Qué tipo de estructura de datos utilizaríamos para almacenar los pacientes, un List, Set o Map? Justifica la respuesta mediante un comentario arriba de la implementación de esta clase (puntos a favor de la que elijes y en contra de las que descartas).

c) Implementa una ListaEsperaPorGravedad, en la que se atienda primero a los pacientes más graves, independientemente de si llegaron antes o después.


Actividad 07

Paquete: A07_equipoDeFutbol

a) Crea una clase Futbolista con los siguientes atributos y métodos:

  • Atributos:

    • Nombre: nombre del futbolista.
    • Edad: edad del futbolista.
    • Posición: Posición que ocupa en el campo el futbolista. Será un tipo enumerado. Podrá ser cualquiera de las siguientes (cada posición tendrá asociada un salario máximo y un salario mínimo):
      - Portero: entre 2000 y 3000 euros.
      - Defensa: entre 2500 y 3500 euros.
      - Centrocampista: entre 3500 y 4000 euros.
      - Delantero: entre 4000 y 5000 euros.
  • Métodos:

    • getters y setters.
    • toString(): imprimirá la información asociada al Futbolista.

b) Además Futbolista implementará la interfaz Deportista. Esta interfaz poseerá los siguientes métodos:

  • getAnyosProfesional : retorna el número de años que un deportista ha estado compitiendo en nivel profesional.
  • getListadoEquipos : devuelve un listado con el nombre de todos los equipos en los que ha estado el deportista.
  • getTotalTrofeos : obtiene el total de trofeos conseguidos por el deportista.

c) También se debe crear una clase Equipo que tenga como atributos:

  • Nombre: nombre del equipo.
  • Listado de Futbolistas: Listado de futbolistas del equipo.
  • Y se deberá controlar el número máximo de futbolistas por posición. Que serán los que a continuación se definen:

    • Portero: 2 como máximo.
    • Defensa: 5 como máximo.
    • Centrocampista: 5 como máximo.
    • Delantero: 4 como máximo.

    Además, constará de los siguientes métodos:

  • agregarFutbolista : añadirá un futbolista al equipo siempre que la posición de este no esté completa. En caso contrario lanzará una excepción de tipo RegistroFutbolistaException.

  • listarFormaciónDelEquipo : listará todos los miembros del equipo ordenados por posición. Se mostrarán en el siguiente orden: Porteros, Defensas, Centrocampistas, Delanteros.

La gestión se hará en dos pasos:

  • Primero generaremos el listado ordenado, para ello utilizaréis el método sort asociado al ArrayList, y deberéis sobreescribir el método compare.
  • Luego recorreremos este con un iterator y mostraremos la información de cada elemento.

d) Respecto a la clase Aplicación TestEquipo, simplemente crear un equipo y añadir futbolistas de diferente tipo, generar una solución dónde se pruebe todo lo implementado. Es decir, el hecho de superar el número máximo de futbolistas en cada posición en cada equipo y también que se vea el funcionamiento del método que ordena.


Actividad 08

Paquete: A08_sistemaAnalisisTextos

Crear un sistema de análisis de texto que permita procesar y analizar cadenas de texto utilizando conceptos avanzados de colecciones en JAVA.

a) Crea una clase de nombre AnalizadoDeTexto que contenga los siguientes atributos y métodos:

  • atributos:

    • texto (String)
    • palabras (HashMap)
  • métodos:

    • constructor: que reciba el texto a analizar e inicialice el atributo texto.
    • contarPalabras(): método que procese el texto, cuente la frecuencia de cada palabra y almacene los resultado en el atributo palabras. Ignora las diferencias entre mayúsculas y minúsculas.
    • palabrasMasFrecuentes(int n): método que devuelva una lista de las n palabras más frecuentes en ele texto, junto con su frecuencia.
    • palabrasMenosFrecuentes(int n): método que devuelva una lista de las n palabras menos frecuentes en ele texto, junto con su frecuencia.
    • palabrasPorLongitud(): método que devuelva un mapa (HashMap) en el que las claves sean las longitudes de las palabras y los valores sean listas (ArrayList) de palabras que tengan esa longitud. Ordena las listas de palabras alfabéticamente.

b) Realiza pruebas en una clase TestAnalizadorDeTexto:

  • Crea una instancia de un objeto de la clase AnalizadoDeTexto con un texto de prueba.
  • Ejecuta el método contarPalabras() para procesar el texto.
  • Muestra las palabras más y menos frecuentes utilizando los métodos palabrasMasFrecuentes(int n) y palabrasMenosFrecuentes(int n).
  • Muestra las palabras agrupadas por su longitud utilizando el método palabrasPorLongitud().

Actividad 09

Paquete: A09_gestionPacientes

Desarrollar un sistema de gestión de pacientes. Tendremos un archivador donde iremos guardando todas las fichas de los pacientes. Las fichas contienen la siguiente información: nombre, apellidos y edad.

Todas las fichas que vayamos creando, se podrán guardar o eliminar del archivador. Al archivador también le podremos pedir un listado. Este listado consistirá en visualizar por pantalla el número de fichas guardadas, así como el contenido de las fichas.

La clase GestionPacientes tiene un método main en el que se crea un archivador, dos o tres fichas que se guardarán en el archivador, se listará el contenido, se eliminará alguna ficha y se volverá a listar su contenido. Todas las clases se guardarán en el paquete gestionpacientes.

< volver a actividades