ayudantia 8

Anuncio
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; }
Descargar