PROGRAMACIÓN ORIENTADA A OBJETOS Curso: 2011/12 DEFINICIÓN DE TIPOS Versión: 1.0.0 Tipo Persona - Propiedades • • • • • Nombre – de tipo cadena, consultable. Apellidos – de tipo cadena, consultable. Dni – de tipo cadena, consultable. Sexo – de tipo Genero, consultable y modificable. Edad – de tipo entero, consultable y modificable. Representación como cadena: dni – apellidos, nombre (Ejemplo: 45231690S – Mateo Romero, Javier) Nota: El tipo Genero se implementará como un enumerado donde sus posibles valores son dos: HOMBRE y MUJER. Tipo Paciente - Propiedades Subtipo de Persona. Añade las siguientes propiedades: • Altura – de tipo real, consultable y modificable. • Peso – de tipo real, consultable y modificable. • Índice de masa corporal – de tipo real, consultable. o El índice de masa corporal se calcula como el peso partido por el cuadrado de la altura • Número de la seguridad social – de tipo cadena, consultable. • Es urgencia – de tipo lógico, consultable y modificable. Representación como cadena: dni – apellidos, nombre (índice de masa corporal) (Ejemplo: 45231690S – Mateo Romero, Javier (26.23)) Tipo Médico - Propiedades Subtipo de Persona. Añade las siguientes propiedades: • • • • Categoría profesional – de tipo Categoría, consultable y modificable. Subespecialidad – de tipo cadena, consultable. Trabaja en privado – de tipo lógico, consultable. Horas semanales – de tipo real, consultable. Representación como cadena: dni – apellidos, nombre – especialidad, categoría profesional(Ejemplo: 45231690S – Mateo Romero, Javier –neonatología, residente-) Nota: El tipo Categoría se implementará como un enumerado donde sus posibles valores son dos: RESIDENTE, ADJUNTO e INTERINO. Definición de tipos 2 Tipo Departamento - Propiedades • Nombre – de tipo cadena, consultable. • Médicos – de tipo array de médico, consultable. • Número de médicos – de tipo entero, consultable. Otros métodos del tipo: • getMedico(Integer pos): devuelve el médico que ocupa la posición pos del array. • trabajaEnDpto(Medico m): devuelve un lógico indicando si el médico m trabaja o no en el departamento. • numMedicos(String subesp): devuelve el número de médicos del departamento que trabajan en una determinada subespecialidad. • veterano(): devuelve el médico de mayor edad del departamento. Representación como cadena: Una cadena formada por el nombre del departamento seguida de la lista de médicos que trabajan en él. Tipo Hospital – Propiedades • • • • Nombre – de tipo cadena, consultable. Dirección – de tipo cadena, consultable. Departamentos – de tipo array de departamentos, consultable. Número de departamentos – de tipo entero, consultable. Otros métodos del tipo: • getDepartamento(Integer planta): devuelve el departamento de una determinada planta del hospital (la planta viene dada por la posición en el array). • getDepartamento(String nom): devuelve el departamento del hospital cuyo nombre coincida con el parámetro (null si no existe ninguno). • getMedicosVeteranos(): devuelve un array que contiene el médico más veterano de cada departamento. Representación como cadena: Una cadena formada por el nombre del hospital seguida de una lista con los nombres de los departamentos que lo forman.