Está en la página 1de 3

PREGUNTA N°1.- En un puerto se alquilan amarres para barcos de distinto tipo.

Para cada ALQUILER se guarda el nombre y DNI del cliente, las fechas inicial y
final de alquiler, la posición del amarre y el barco que lo ocupará. Un BARCO
se caracteriza por su matrícula, su eslora en metros y año de fabricación.

Un alquiler se calcula multiplicando el número de días de ocupación (incluyendo los


días inicial y final) por un módulo función de cada barco (obtenido simplemente
multiplicando por 10 los metros de eslora) y por un valor fijo (2 e 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 CV para embarcaciones deportivas a motor
· Potencia en CV y número de camarotes para yates de lujo
· El módulo de los barcos de un tipo especial se obtiene como el módulo
normal mas:
o El número de mástiles para veleros
o La potencia en CV para embarcaciones deportivas a motor
o La potencia en CV mas el número de camarotes para yates de lujo

Utilizando la herencia de forma apropiada, diseñe el diagrama de clases y sus


relaciones, con detalle de atributos y métodos necesarios. Programe en Eiffel los
métodos que permitan calcular el alquiler de cualquier tipo de barco.

//CLASE PRINCIPAL
package principal1;
import java.util.Scanner;
public class Principal1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String nom;
int dni,fi,ff,matric,año_fabr,mastiles,potencia,camarotes;
float pos_amarre,a,sloran;
System.out.print("ingrese fecha incial : ");
fi=sc.nextInt();
System.out.print("ingrese fecha final : ");
ff=sc.nextInt();
System.out.print("ingrese esloran en metros : ");
sloran=sc.nextFloat();
System.out.print("ingrese nombre : ");
nom=sc.nextLine();
System.out.print("ingrese dni : ");
dni=sc.nextInt();
System.out.print("ingrese año de fabric : ");
año_fabr=sc.nextInt();
System.out.print("ingrese numero mastiles : ");
mastiles=sc.nextInt();
System.out.print("ingrese potencia : ");
potencia=sc.nextInt();
System.out.print("ingrese numero de camarotes : ");
camarotes=sc.nextInt();
System.out.print("ingrese posicion de amarre : ");
pos_amarre=sc.nextFloat();
System.out.print("ingrese matricula : ");
matric=sc.nextInt();
alquiler al=new alquiler(nom,dni,fi,ff,pos_amarre,matric,sloran,año_fabr);
tipos_barco tp=new
tipos_barco(mastiles,potencia,camarotes,matric,sloran,año_fabr);
if (mastiles>0)
{
a=((al.precio_alquiler())*(tp.mostrar()));
System.out.print("el precio del alquiler es : "+a);
}
}
}

//CLASE ALQUILER
package principal1;
public class alquiler extends barco{
String nombre_cliente;
int DNI;
int fecha_inicio;
int fecha_final;
float posicion_amarre;

public alquiler(String nombre_cliente,int DNI,int fecha_inicio,int


fecha_final,float posicion_amarre,int matricula,float sloran,int año_fab)
{
super(matricula,sloran,año_fab);
this.nombre_cliente=nombre_cliente;
this.DNI=DNI;
this.fecha_inicio=fecha_inicio;
this.fecha_final=fecha_final;
this.posicion_amarre=posicion_amarre;
}

public float precio_alquiler()


{
if(fecha_final>fecha_inicio)
return (((fecha_final-fecha_inicio)+1)*super.modulo());
else
return 0000000000;
}
}

//CLASE BARCO
public class barco {
int matricula;
float sloran;
int año_fab;
public barco(int matricula,float sloran,int año_fab)
{
this.matricula=matricula;
this.sloran=sloran;
this.año_fab=año_fab;
}
//METODO “MODULO”
public float modulo()
{
return (10*sloran);
}
}
//CLASE TIPOS DE BARCO
public class tipos_barco extends barco{
int mastiles;
int potencia;
int camarotes;
float deportivo=300; //PRECIO DE ALQUILER DE UN BARCO DEPORTIVO
float yate=500;// PRECIO DE ALQUILER DE UN YATE

public tipos_barco(int mastiles,int potencia,int camarotes,int matricula,float


sloran,int año_fab)
{
super(matricula,sloran,año_fab);
this.mastiles=mastiles;
this.potencia=potencia;
this.camarotes=camarotes;
}
//CONDICIONES PARA SABER Q TIPO DE BARCO ES
public float mostrar()
{
if (camarotes==0)
{
return deportivo;
}
else
return yate;
}

También podría gustarte