Java - AYUDA SIMPLE ERROR PROGRAMA JAVA

   
Vista:

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

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Sebastian

AYUDA SIMPLE ERROR PROGRAMA JAVA

Publicado por Sebastian (65 intervenciones) el 09/07/2017 00:59:55
El error que te aparece ahí es por que estas llamando el metodo, pero no le estas enviando las variables que solicitas en ese método
1
2
3
4
5
6
7
if (mastiles>0)
{
	// El metodo mostrar que tienes en la clase de tipo_barco pide 2 variables 
	// tendrias que llamarlo y enviarle las 2 variables ( tp.mostrar(variable 1,variable 2))
	a=( (al.precio_alquiler() )*(tp.mostrar() ) );
	System.out.print("el precio del alquiler es : "+a);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

AYUDA SIMPLE ERROR PROGRAMA JAVA

Publicado por william (4 intervenciones) el 09/07/2017 01:11:47
Hey! que tal? pero que cambio en el codigo? disculpa, estoy aprendiendo a programar en java..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RESUELTO

Publicado por william (4 intervenciones) el 09/07/2017 02:22:06
Ya logre hacer funcionar el programa :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RESUELTO

Publicado por gonzalo mosquera mosquera-1963@hotmail.com (19 intervenciones) el 10/07/2017 17:13:15
Hola William, por favor publique el código completo para aprender cómo lo solucionó usted, Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar