Programación Avanzada Control 2 (Herencia) Profesor: Rodrigo

Transcripción

Programación Avanzada Control 2 (Herencia) Profesor: Rodrigo
Programación Avanzada
Control 2 (Herencia)
Profesor: Rodrigo Yunge
Ayudante: Osvaldo Ceballos
En un puerto se arriendan amarres para barcos de distinto tipo. Para cada
ARRIENDO se guarda el nombre y rut del cliente, los días de arriendo, la posición
del amarre (código númerico) y el barco que se desea dejar. Un BARCO se
caracteriza por su matrícula (patente), su eslora en metros y año de fabricación.
Un arriendo se calcula multiplicando el número de días de ocupación por un
módulo función de cada barco (obtenido simplemente multiplicando por $1000
los metros de eslora), s u m a d o a un valor fijo ($25000 en la actualidad).
Sin embargo ahora se pretende diferenciar la información de algunos tipos de
barcos:
• Número de mástiles para VELEROS.
• Potencia en c a b a l l o s d e f u e r z a para LANCHAS.
• Potencia en c a b a l l o s d e f u e r z a y número de camarotes para YATES.
El costo de arriendo en el caso de los veleros, es el mismo que para un barco,
pero se suma el número de mastiles multiplicado por $2000.
El costo de arriendo en el caso de lanchas, es el mismo que para un barco, pero
se suma la potencia multiplicada por $50.
El costo de arriendo en el caso de yates, es el mismo de una lancha, pero se
suma el número de camarotes multiplicado por $10000.
Se solicita que programe las clases ARRIENDO, BARCO, VELERO, LANCHA y YATE.
La clase arriendo debe ser capaz de guardar cualquier tipo de barco e imprimir en
pantalla el costo del arriendo, junto con los datos del arrendatario. Las clases
BARCO, VELERO, LANCHA y YATE deben guardar sus valores y tener cada uno un
método llamado “calcularArriendo”, el cual devuelve el valor del arriendo a partir
de los atributos de la clase. Las clases VELERO, LANCHA y YATE deben utilizar
herencia.
Notas:
Se recomiendo programar primero la clase BARCO, luego las clases VELERO,
LANCHA y YATE (orden indistinto) y al final la clase ARRIENDO.
Si quiere pude programar un método main para ir verificando el desarrollo, pero
no es parte del control mismo.

Documentos relacionados