Ejercicios Propuestos
Short Description
Descripción: ejercicios de programación propuestos...
Description
EJERCICIOS PROPUESTOS POO
JAIME DANIEL BARROS MENDOZA LEONARDO CASTILLA DEIMER ARIAS
Prof. Jairo Seoanes
UNIVERSIDAD POPULAR DEL CESAR VALLEDUPAR- CESAR 2015
EJERCICIOS PROPUESTOS
1. Instalaciones Se plantea desarrollar un programa Java que permita representar la siguiente situación. Una instalación deportiva es un recinto delimitado donde se practican deportes, en Java interesa disponer de un método int getTipoDeInstalacion(). Un edificio es una construcción cubierta y en Java interesa disponer de un método double getSuperficieEdificio(). Un polideportivo es al mismo tiempo una instalación deportiva y un edificio; en Java interesa conocer la superficie que tiene y el nombre que tiene. Un edificio de oficinas es un edificio; en Java interesa conocer el número de oficinas que tiene. Definir dos interfaces y una clase que implemente ambas interfaces para representar la situación anterior. En una clase test con el método main, crear un ArrayList que contenga tres polideportivos y dos edificios de oficinas y utilizando un iterator, recorrer la colección y mostrar los atributos de cada elemento. 2. Empleado Vamos a informatizar los datos de los empleados de una empresa, todos los empleados tienen un identificador dentro la empresa, este identificador se asigna al usuario cuando se da de alta en la empresa por un proceso que no vamos a implementar en este programa. Cuando damos de alta un nuevo empleado, le asignamos la fecha de alta actual y la mostramos por pantalla, también podemos dar de alta un empleado en una fecha determinada, y por supuesto cuando creamos un empleado podemos asignarle nombre, apellidos y ciudad de residencia en este caso la fecha de alta será la actual. Tenemos una función que nos devuelve la fecha de alta del empleado La aplicación nos tiene que permitir asignarle el DNI a un empleado ya creado. Herencias.... Cuando calculamos los incentivos para un empleado, lo hacemos asignándole la decimal parte del sueldo. Cuando consultamos estos incentivos nos muestra: Los incentivos de “Nombre” son “Incentivos” Cuando consultamos los datos de los empleados nos muestra: Datos del empleado: “Identificador” - “Nombre” Cuando consultamos el alta de un empleado nos muestra: El empleado “Nombre” se incorporó el “FechadeCreacion”.
Tenemos un tipo especial de empleados que son los administrativos de la empresa, de estos podemos consultar sus Datos y se nos muestra: Datos del empleado ================== Código: "Identificador” Nombre: "Nombre” (en mayusculas) El calculo de los incentivos para un administrativo se realiza de la misma manera que a un empleado normal pero además se le suma 15 € por hora trabajada. Si al consultar la fecha de alta indicamos “Mes” nos muestra el mes en formato “MMMM”, si indicamos “DiaSemana” nos muestra el día en formato “dddd”, nos lo muestra de la siguiente manera: Empleado “Nombre” Incorporado “mes-dia” Encapsulación La categoría de los empleados puede variar de 1 a 3, según esta categoría el sueldo varía de la siguiente forma: Categoria Sueldo 1 500 – 1000 2 1001- 1500 3 + 1500 Si se introduce una categoría incorrecta se muestra: Categoria incorrecta y se asigna la Categoria 0. Si se introduce un sueldo no válido se muestra: Sueldo incorrecto, y se asigna Sueldo 0. Pero si se introduce un sueldo a un empleado que no corresponde con su categoría se muestra: Categoria no corresponde con sueldo, y se asigna Sueldo 0 Vamos a guardar el valor del código de cuenta bancaria del empleado en el objeto, pero sin permitir que dicha información sea accesible. Igualmente y en función de los primeros dígitos de la cuenta bancaria, necesitamos mostrar el nombre de la entidad, pero sin permitir la modificación de la entidad. Sabemos que la entidad “1111” se corresponde con el “Banco Universal”, “2222” con el “Banco General” y “3333” con “Caja Metropolitana” en cualquier otro caso asignamos Entidad sin catalogar.
3. Inmobiliaria Se quiere modelar una agencia inmobiliaria para lo cual se deben tener en cuenta las siguientes entidades e informaciones asociadas: Un inmueble viene dado por su ubicación y los metros cuadrados que ocupa. Hay dos tipos de inmuebles: superficies y construcciones. Los primeros tienen su precio por metro cuadrado. A su vez, hay dos tipos de superficies: solares y plazas de garaje. Los solares pueden estar en zona rústica o urbana. Las plazas de garaje pueden formar parte de un garaje público o de uno privado. Por su parte, las construcciones pueden ser nuevas o de segunda mano. Hay dos tipos de construcciones: viviendas y locales comerciales. Las viviendas tienen precio, número de habitaciones y piso. Los locales tienen precio por metro cuadrado. La agencia que queremos modelar se dedica a la venta y alquiler de inmuebles. Ahora bien, solamente alquila plazas de garaje y locales comerciales, mientras que solo vende solares y viviendas. La agencia inmobiliaria viene dada por sendas secuencias de alquileres y ventas. Se pide: Definir la jerarquía de clases de forma que se cumplan los requisitos anteriores. Para cada una de las clases, definir su(s) constructora(s), métodos de acceso a cada uno de los atributos y un método muestra() que escriba, de la manera que consideres más conveniente, la información de la entidad de que se trate. Definir un método público precio() que calcula el precio que tiene una superficie. Definir un método añadeVentaInmueble(in) , que añade el inmueble dado por el parámetro a la secuencia de inmuebles en venta de la agencia, siempre que no estuviera ya antes en venta. Definir un método añadeAlquilerInmueble(in) , que añade el inmueble dado por el parámetro a la secuencia de inmuebles en alquiler de la agencia, siempre que no estuviera ya antes en alquiler. Definir métodos que respondan a los siguientes servicios: inmueblesVenta(p) , que muestra los inmuebles con un precio de venta inferior al parámetro. localesSegundaMano(m) , que muestra los locales comerciales de segunda mano con una superficie superior al parámetro. solaresRusticos() , que averigua cuántos solares no urbanos están en venta. Define el método equals() y toString() para las clases AgenciaInmobiliaria, Inmueble, Superficie y Solar . Dos agencias inmobiliarias han decidido fusionarse. Define un método fusion(ag) dentro de la clase de las agencias inmobiliarias, que permita crear una agencia nueva a partir de la agencia que invoca el método y la del parámetro dado.
4. Empleados El departamento de Informática de un hospital está realizando un nuevo registro de datos de todas las personas que tienen relación con esa institución, que son: los empleados, los médicos y los pacientes. Los empleados son categorizados en función de si son contratados por Planilla o de forma Eventual y son los encargados de los procesos administrativos. Los médicos (que podrían considerarse un tipo especial de empleados contratados por Planilla) se encargan de las atenciones de las consultas médicas. Para solicitar una cita, el paciente es atendido por un empleado. El paciente indica el servicio en el cual quiere pasar consulta y el empleado le indica el nombre del médico, la fecha y la hora de la cita. Los
atributos
de
cada
uno
de
ellos
se
indican
a
continuación:
Persona: número de DNI, nombre, apellido, fecha de nacimiento, dirección, ciudad de procedencia. Paciente: número de historia clínica, sexo, grupo sanguíneo, lista de medicamentos a los que es alérgico. Empleado: código de Empleado, número de horas extras, fecha de ingreso, área, cargo. Empleado por Planilla: salario mensual, porcentaje adicional por hora extra. Empleado Eventual: honorarios por hora, número de horas totales (normales + extras) trabajadas, fecha de término del contrato. Médico: especialidad (cirujano, oftalmólogo, etc.), servicio (cirugía, oftalmología, etc.), número de consultorio. Las operaciones que involucren algún cálculo, deben desarrollarse a través de interfaces. La aplicación a desarrollar debe permitir: a) Registrar los datos de los empleados, los pacientes y los médicos. b) Registrar los datos de una cita médica. c) Listar los datos de los médicos ordenados en forma descendente por la especialidad. d) Listar los datos (nombres y apellidos) de los pacientes atendidos por un médico determinado (ingresando su código). Nota: En el diagrama y en la codificación deben mostrarse e implementarse los aspectos de ocultación, composición y/o agregación, herencia (simple y múltiple) y polimorfismo.
View more...
Comments