Buenas soy nuevo aquí, y pues en mi universidad debo realizar el siguiente programa:
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 más:
o El número de mástiles para veleros
o La potencia en CV para embarcaciones deportivas a motor
o La potencia en CV más 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 Java los métodos que permitan calcular el alquiler de cualquier tipo de barco
PD: debo usar interfaz gráfica, y si hay algún error en el código avisarme
En fin, tengo el código, uso eclipse, pero el código lo tengo fraccionado en 7 blogs de notas quisiera saber como puedo compilarlos en uno solo aqui se los dejo porfa ayuda
gracias ...
Datos alquiler cliente
Datos barco matricula, eslora, año de fabrucacion
Datos Bote deportivo
Datos Bote velero
Datos Bote Yate Lujoso
Datos cliente
Funcion principal
Ayuda porfavor, estoy un poco frustrado con esto.. gracias
· No se debe escribir en mayúsculas
>aquí las reglas del foro
-Engel Lex
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 más:
o El número de mástiles para veleros
o La potencia en CV para embarcaciones deportivas a motor
o La potencia en CV más 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 Java los métodos que permitan calcular el alquiler de cualquier tipo de barco
PD: debo usar interfaz gráfica, y si hay algún error en el código avisarme
En fin, tengo el código, uso eclipse, pero el código lo tengo fraccionado en 7 blogs de notas quisiera saber como puedo compilarlos en uno solo aqui se los dejo porfa ayuda
gracias ...
Datos alquiler cliente
Código [Seleccionar]
package Programa;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Alquiler {
private GregorianCalendar fInicio, fFin;
private int posicionAmarre;
private Barco barco;
private double precioAlquiler;
private Cliente cliente;
public Alquiler(Cliente cliente, int diaInicio, int mesInicio, int añoInicio, int diaFin, int mesFin, int añoFin, int posicionAmarre, Barco barco) {
this.cliente = cliente;
fInicio = new GregorianCalendar(añoInicio, mesInicio, diaInicio);
fFin = new GregorianCalendar(añoFin, mesFin, diaFin);
this.posicionAmarre = posicionAmarre;
this.barco = barco;
precioAlquiler = 0.0;
}
// Getters
public Cliente getCliente() {
return cliente;
}
public String getfInicio() { // Muestra la fecha formateada: DD/MM/AA
return fInicio.get(Calendar.DATE) + "/" + fInicio.get(Calendar.MONTH) + "/" + fInicio.get(Calendar.YEAR);
}
public String getfFin() { // Muestra la fecha formateada: DD/MM/AA
return fFin.get(Calendar.DATE) + "/" + fFin.get(Calendar.MONTH) + "/" + fFin.get(Calendar.YEAR);
}
public int getPosicionAmarre() {
return posicionAmarre;
}
public Barco getBarco() {
return barco;
}
public double getPrecioAlquiler() {
return precioAlquiler;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public void setfInicio(int diaInicio, int mesInicio, int añoInicio) {
fInicio = new GregorianCalendar(añoInicio, mesInicio, diaInicio);
}
public void setfFin(int diaFin, int mesFin, int añoFin) {
fFin = new GregorianCalendar(añoFin, mesFin, diaFin);
}
public void setPosicionAmarre(int posicionAmarre) {
this.posicionAmarre = posicionAmarre;
}
public void setBarco(Barco barco) {
this.barco = barco;
}
// Calcula la diferencia en dias entre dos fechas
private long diasOcupados() {
long aux = fFin.getTimeInMillis() - fInicio.getTimeInMillis();
long dias = aux / (1000 * 60 * 60 * 24);
return dias;
}
// Multiplica días de ocupación
public void calculaPrecioAlquiler(Barco a) {
// Dias ocupados * Precio del amarre según el tipo de barco * valor fijo
precioAlquiler = diasOcupados() * a.calculaPrecioAmarre() + 2;
}
public String toString() {
return "***** Alquiler ******" + "\nNombre: " + cliente.getNombre()
+ " | DNI: " + cliente.getDni()
+ " | Teléfono: " + cliente.getTelefono()
+ "\nFecha de inicio: " + getfInicio()
+ " | Fecha de fin: " + getfFin()
+ "\nPosicion de amarre: " + posicionAmarre
+ " | Barco: " + barco.getMatricula();
}
}
Datos barco matricula, eslora, año de fabrucacion
Código [Seleccionar]
public class Barco {
private String matricula;
private int eslora;
private GregorianCalendar añoFabricacion;
private double precioAmarre;
public Barco(String matricula, int eslora, int añoFabricacion) {
this.matricula = matricula;
this.eslora = eslora;
this.añoFabricacion = new GregorianCalendar(añoFabricacion, 12, 31);
precioAmarre = 0.0;
}
public String getMatricula() {
return matricula;
}
public int getEslora() {
return eslora;
}
public int getAñoFabricacion() {
return añoFabricacion.get(Calendar.YEAR);
}
public void setMatricula(String matricula) {
this.matricula = matricula;
}
public void setEslora(int eslora) {
this.eslora = eslora;
}
public void setAñoFabricacion(int añoFabricacion) {
this.añoFabricacion = new GregorianCalendar(añoFabricacion, 12, 31);
}
public void impuestoTipoBarco(double precioAmarre) {
this.precioAmarre = this.precioAmarre + precioAmarre;
}
public double calculaPrecioAmarre() {
precioAmarre = eslora * 10;
return precioAmarre;
}
public String toString() {
return "***** Barco ******\n" + "Matrícula: " + matricula
+ " | Metros de eslora: " + eslora
+ "\nAño de fabricación: " + getAñoFabricacion();
}
}
Datos Bote deportivo
Código [Seleccionar]
public class Deportivo extends Barco {
private int potencia;
public Deportivo(int potencia, String matricula, int eslora, int añoFabricacion) {
super(matricula, eslora, añoFabricacion);
this.potencia = potencia;
}
public int getPotencia() {
return potencia;
}
public void setPotencia(int potencia) {
this.potencia = potencia;
}
public double calculaPrecioAmarre() {
return super.calculaPrecioAmarre() + potencia * 1;
}
public String toString() {
return "***** Deportivo a motor *****\n"
+ "Matrícula: " + super.getMatricula()
+ " | Metros de eslora: " + super.getEslora()
+ "\nAño de fabricación: " + getAñoFabricacion()
+ " | Potencia: " + potencia + "CV";
}
}
Datos Bote velero
Código [Seleccionar]
public class Velero extends Barco {
private int numeroMastiles;
public Velero(int numeroMastiles, String matricula, int eslora, int añoFabricacion) {
super(matricula, eslora, añoFabricacion);
this.numeroMastiles = numeroMastiles;
}
public int getNumeroMastiles() {
return numeroMastiles;
}
public void setNumeroMastiles(int numeroMastiles) {
this.numeroMastiles = numeroMastiles;
}
public double calculaPrecioAmarre() {
return super.calculaPrecioAmarre() + numeroMastiles * 5;
}
public String toString() {
return "****** Velero ******\n" + "Matrícula: " + super.getMatricula()
+ " | Metros de eslora: " + super.getEslora()
+ "\nAño de fabricación: " + getAñoFabricacion()
+ " | Mastiles: " + numeroMastiles;
}
}
Datos Bote Yate Lujoso
Código [Seleccionar]
public class Yate extends Deportivo {
private int camarotes;
public Yate(int camarotes, int potencia, String matricula, int eslora, int añoFabricacion) {
super(potencia, matricula, eslora, añoFabricacion);
this.camarotes = camarotes;
}
public int getCamarotes() {
return camarotes;
}
public void setCamarotes(int camarotes) {
this.camarotes = camarotes;
}
public double calculaPrecioAmarre() {
return super.calculaPrecioAmarre() + camarotes * 20;
}
public String toString() {
return "***** Yate de lujo *****\n" + "Matrícula: " + super.getMatricula()
+ " | Metros de eslora: " + super.getEslora()
+ "\nAño de fabricación: " + getAñoFabricacion()
+ " | Potencia: " + super.getPotencia() + "CV"
+ " | Camarotes: " + camarotes;
}
}
Datos cliente
Código [Seleccionar]
public class Cliente {
private String nombre, dni;
private long telefono;
public Cliente(String nombre, String dni, long telefono) {
this.nombre = nombre;
this.dni = dni;
this.telefono = telefono;
}
public String getNombre() {
return nombre;
}
public String getDni() {
return dni;
}
public long getTelefono() {
return telefono;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setDni(String dni) {
this.dni = dni;
}
public void setTelefono(long telefono) {
this.telefono = telefono;
}
}
Funcion principal
Código [Seleccionar]
public class RunAmarres {
public static void main(String[] args) {
Barco titanic = new Deportivo(500, "1565-FHD", 8, 2003);
Cliente gerardo = new Cliente("Gerardo", "18088821-B", 63453673);
Alquiler alquilerGerardo = new Alquiler(gerardo, 23, 5, 2015, 29, 5, 2015, 23, titanic);
System.out.println(alquilerGerardo.toString() + "\n");
System.out.println(titanic.toString());
alquilerGerardo.calculaPrecioAlquiler(titanic);
System.out.println("\n----------------------------------------------");
System.out.printf("Precio del amarre: %.2f€\n", titanic.calculaPrecioAmarre());
System.out.printf("Precio del alquiler: %.2f€\n", alquilerGerardo.getPrecioAlquiler());
}
}
Ayuda porfavor, estoy un poco frustrado con esto.. gracias
· No se debe escribir en mayúsculas
>aquí las reglas del foro
-Engel Lex