PRACTICA 2: POO
1) Siguiendo el método y técnica CRC, clasificar los objetos del espacio del problema con vistas a
seleccionar potenciales clases del espacio de la solución. Definir comportamientos o
responsabilidades para cada clase; iden ficar y precisar las clases del sistema. Descubrir
atributos y métodos y asignarlos conforme a las responsabilidades descubiertas. U lizar un
diagrama de clases en UML para representar las clases y relaciones jerárquicas encontradas.
Para los siguientes problemas:
a. Se requiere crear un sistema administrador de material audiovisual (similar a Ne lix,
HBO max, Disney +, Star +, etc.). El usuario registrado puede acceder al catálogo que
con ene películas, series, cortometrajes, documentales y conciertos. La
información provista por el inventario acerca de cada material audiovisual es tulo,
sinopsis, poster, duración, director, actores o intérpretes según el caso, fecha de
estreno, género, idioma original y doblajes con sub tulos (si están disponibles).
Adicionalmente, una serie consta de varios capítulos y pueden tener más de una
temporada.
b. En este consultorio odontológico trabajan varios profesionales que brindan sus
servicios. Cuando un paciente necesita atención, debe solicitar un turno
previamente. No se a ende a pacientes que no enen turno. El odontólogo para el
el paciente que solicita el turno es el que lo va a atender. Cada Odontólogo ene
una agenda con los días y horarios en los que puede atender, que se crea
mensualmente en función de la disponibilidad que el odontólogo informa, con
turnos de 30 minutos de duración. Esta agenda genérica representa los días y
horarios de atención que ene disponible ese odontólogo en términos generales y
la duración de su consulta. Esta información se tomará como base para crear la
agenda cada mes, considerando para cada mes los días y/u horarios que en ese mes
no podrá atender. Cuando el paciente llama por teléfono, se le pregunta el mo vo
de la consulta y en función de eso se le asigna uno o más turnos. Por ejemplo, si lo
que debe hacerse es un tratamiento de conducto, se le asignan dos turnos de media
hora, consecu vos.
2) Construya una clase rectángulo que tenga dos atributos: base y altura, y dos métodos:
perímetro y área.
3) Construya una clase cuadrado que herede de rectángulo y ajuste las diferencias.
4) Cree una clase Complejo que permita trabajar con números complejos (parte real y parte
imaginaria). Incluye los siguientes métodos: constructores (por defecto y parametrizado),
accedentes, mutadores, suma, resta, mul plicación, división, y print().
5) Crear las siguientes clases y crear una aplicación que permita ges onar(ABM), arrancar y
apagar coches:
a. Motor: con Numero, detalle y métodos para arrancar el motor y apagarlo.
b. Rueda: con Numero, detalle y métodos para inflar la rueda y desinflarla.
c. Puerta: con Numero, detalle y métodos para abrir la puerta y cerrar la puerta.
d. Coche: con un motor, Numero de chasis, Estado de una radio (On/off) cuatro ruedas
, dos puertas y con los métodos abrirTodasLasPuertas y desinflarTodasLasRuedas,
parar y arrancar. El método arrancar debe cerrarTodasLasPuertas
inflarTodasLasRuedas y Apagar la radio.
6) Crea una clase Cuenta (bancaria) con atributos para el número de cuenta, el DNI del cliente,
el saldo actual y el interés anual que se aplica a la cuenta. Define en la clase los siguientes
métodos: Constructor por defecto y constructor con DNI, saldo e interés Accedentes y
mutadores. Para el número de cuenta no habrá mutador. actualizarSaldo(): actualizará el
saldo de la cuenta aplicándole el interés diario (interés anual dividido entre 365 aplicado al
saldo actual). ingresar(double): permi rá ingresar una can dad en la cuenta.
re rar(double): permi rá sacar una can dad de la cuenta (si hay saldo). Método que nos
permita mostrar todos los datos de la cuenta. El número de cuenta se asignará de forma
correla va a par r de 100001, asignando el siguiente número al úl mo asignado.
7) Desarrolla una clase Cafetera con atributos _capacidadMaxima (la can dad máxima de café
que puede contener la cafetera) y _can dadActual (la can dad actual de café que hay en la
cafetera). Implementa, al menos, los siguientes métodos: Constructor predeterminado:
establece la capacidad máxima en 1000 (c.c.) y la actual en cero (cafetera vacía). Constructor
con la capacidad máxima de la cafetera; inicializa la can dad actual de café igual a la
capacidad máxima. Constructor con la capacidad máxima y la can dad actual. Si la can dad
actual es mayor que la capacidad máxima de la cafetera, la ajustará al máximo. Accedentes
y mutadores. llenarCafetera(): pues eso, hace que la can dad actual sea igual a la capacidad.
servirTaza(int): simula la acción de servir una taza con la capacidad indicada. Si la can dad
actual de café “no alcanza” para llenar la taza, se sirve lo que quede. vaciarCafetera(): pone
la can dad de café actual en cero. agregarCafe(int): añade a la cafetera la can dad de café
indicada.
8) Una empresa ene muchos empleados y requiere un sistema para modelar esta relación.
Tanto empresas como empleados son personas jurídicas. Los datos de la empresa son:
CUIT/CUIL, Nombre, Dirección, TE., Rubro y Can dad de Empleados.
Los datos del empleado son:
CUIT/CUIL, Nombre, Dirección, TE. y Profesión y sueldo .
a. Diseñe un diagrama de clases que modele esta relación y agregue los atributos y
métodos necesarios para que el sistema permita:
Alta, baja listado y modificación de empresas
Alta, baja listado y modificación de empleados
Dada una empresa (Cuit), listado de sus empleados con sus sueldos y el total
Dado un empleado buscar en qué empresa trabaja.
b. Implemente un sistema con POO, que dé solución a este problema.