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.