AYUDA SIMPLE ERROR PROGRAMA JAVA
Publicado por william (4 intervenciones) el 09/07/2017 00:33:03
Hola quiero hallar la solucion a este codigo en java... el enunciado es el siguiente
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.
El error que produce el programa está en la parte subrayada y es el siguiente:
error: method
mostrar in class
tipos_barco cannot be
applied to given types;
a=(
(al.precio_alquiler() +
(tp.mostrar()) ) );
^
required: float,float
found: no arguments
reason: actual and formal argument lists differ in length
Hasta donde tengo entendido se necesita un valor numerico para ser integrado a la formula del metodo que calculará el precio a=( (al.precio_alquiler() )*(tp.mostrar() ) ); , pero estoy retornando una palabra o caracteres ... ¿como arreglo eso ? Ayuda es urgente gracias
PD: si pueden corregir el codigo y comentarlo mucho mejor.
el codigo es el siguiente
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.
El error que produce el programa está en la parte subrayada y es el siguiente:
error: method
mostrar in class
tipos_barco cannot be
applied to given types;
a=(
(al.precio_alquiler() +
(tp.mostrar()) ) );
^
required: float,float
found: no arguments
reason: actual and formal argument lists differ in length
Hasta donde tengo entendido se necesita un valor numerico para ser integrado a la formula del metodo que calculará el precio a=( (al.precio_alquiler() )*(tp.mostrar() ) ); , pero estoy retornando una palabra o caracteres ... ¿como arreglo eso ? Ayuda es urgente gracias
PD: si pueden corregir el codigo y comentarlo mucho mejor.
el codigo es el siguiente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
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);
}
}
}
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;
}
}
}
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;
}
public float modulo()
{
return (10*sloran);
}
}
public class tipos_barco extends barco {
int mastiles;
int potencia;
int camarotes;
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;
}
public float mostrar(float deportivo, float yate)
{
if (camarotes==0)
{
return deportivo;
}
else
{
return yate;
}
}
}
Valora esta pregunta


0