Pontificia Universidad Católica de Valparaíso Escuela de Ingeniería Industrial EII 210 – Arquitectura de Sistemas de Software Profesor: Claudio Cubillos Ayudantes: Pablo Donoso – Daniela Gaete – Carla Morales Segundo Semestre 2011 Ayudantía Nº8 Una Clínica se encuentra organizando una re-estructuración a su jerarquía, para ello contempla nuevas formas de organización. Dicho sistema utiliza una serie de estructuras de datos que se detallan a continuación: Clínica Posee el nombre de la clínica y una lista de especialidades de la clínica, la cual implementa la Coleccion1. Se sabe que no puede haber más de 25 especialidades en total. También posee un ABB de doctores ordenado por rut. Especialidad Posee el nombre de la especialidad, además de un ABB de salas ordenado por número. También posee un horario de turnos que corresponde a una matriz de 7 (días) x 6 (turnos) de punteros a doctor, que corresponde al doctor que está a cargo del turno. Sala Posee un código único de la sala (entero), un máximo de pacientes que puede tener esa sala (entero) y un ABB con sus pacientes. Doctor Almacena el rut y nombre del doctor, además del nombre de la universidad de proveniencia y una referencia a la especialidad que pertenece. Paciente Posee el rut de la persona, su nombre ,el nombre de la enfermedad que padece y una referencia al doctor que lo atiende. Se pide a usted que realice los siguientes métodos en la clase Clínica: a) Public Especialidad especialidadMasPacientes () Retorna la especialidad que tiene más pacientes. Para esto debe contar los pacientes que hay en cada sala para luego sumar en especialidad la cantidad de pacientes que tiene cada especialidad y luego en Clínica comparar cual es al especialidad que tiene mas pacientes. b) Public Doctor doctorMasTurnos() Retorna el Doctor que este a cargo de mas turnos. Para esto debe buscar el cada especialidad cual es el doctor que tengas mas turnos para luego en clínica comparar cual es el mayor. c) Public Coleccion1 eliminarSala(int codigoSala) Ingresa por parámetro el código de la sala a eliminar. Donde debo retornar todos los pacientes que estaban en esta sala. Para esto debe buscar en que especialidad esta la sala que desea eliminar, para luego recorrer los pacientes que hay en esa sala ya que estos deben ser retornados. Public interface Colección 1{ Public void add(Object o); Public void setFirst(); Public boolean eol (); Public void next (); Public boolean isEmpty(); Public object currValue(); Public void delete (Object o); } Public class ABB{ Public Nodobinario getRaiz(); Public void clear(); Public void insert (Object o); Public void remove(Object o); Public boolean isEmpty(); } Public class Clinica { Private String nombre; Private Coleccion1 especialidades; Private ABB doctores; } Public class Especialidad{ Private String nombre; Private ABB salas; Private Doctor [][] turnos; } Public class Sala{ Private int codigo; Private int maximo; Private ABB pacientes; } Public class Doctor{ Private int rut; Private String nombre; Private String universidad; Private Especialidad especialidad; } Public class Paciente{ Private String nombre; Private int rut; Private String enfermedad; Private Doctor doctor; }