Java - ayuda calcular promedio.

 
Vista:
sin imagen de perfil

ayuda calcular promedio.

Publicado por andres (2 intervenciones) el 01/09/2013 21:45:50
Hola necesito ayuda, estoy estudiando tecnología en sistemas y me dejaron un trabajo en java (soy nuevo programando), el trabajo que tengo que hacer es calcular los impuestos de un vehículo de acuerdo con unas condiciones, bueno esto ya lo he echo, lo que se me complica es sacar el promedio de todos los impuestos calculados.

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
import javax.swing.JOptionPane;
 
public class Vehiculo {
 
        String Placa, Ciudad, Marca;
        int Modelo, Cilindraje;
 
 
 public Vehiculo (String Placa, String Ciudad, String Marca,int Modelo, int Cilindraje){
     this.Placa=Placa;
     this.Ciudad=Ciudad;
     this.Marca=Marca;
     this.Modelo=Modelo;
     this.Cilindraje=Cilindraje;
 
 }
  public Vehiculo (String Marca, int Cilindraje){
     this.Marca=Marca;
     this.Cilindraje=Cilindraje;
 }
 
        void capturarDatos() {
           Placa  = JOptionPane.showInputDialog ("Ingrese la Placa: ");
           Ciudad = JOptionPane.showInputDialog ("Ingrese la Ciudad: ");
           Marca  = JOptionPane.showInputDialog ("Ingrese la Marca: ");
           Modelo = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el año Correspondiente al modelo: "));
           Cilindraje = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el Cilindraje: "));
                                }
double calculaImpuesto(int anioActual){
    double Imp1 = 300000.0;
    double Imp2 = 700000.0;
 
    if((anioActual - Modelo)>8)
 
        if((Cilindraje <= 1500) && ((Marca.equals("mazda")) || (Marca.equals("renault")) || (Marca.equals("nissan")) || (Marca.equals("toyota"))))
            return (float) (Imp1 *1.12);
        else if((Cilindraje > 1500) && ((Marca.equals("mazda")) || (Marca.equals("renault")) || (Marca.equals("nissan")) || (Marca.equals("toyota"))))
            return (float) (Imp1 * 1.17);
        else if ((Cilindraje <= 1500) && (Marca.equals("chevrolet")))
            return (float) ((Imp1 * 1.05)-(Imp1*0.03));
        else if ((Cilindraje > 1500) && (Marca.equals("chevrolet")))
            return  (float) ((Imp1 * 1.1) - (Imp1*0.03));
        else if  (Cilindraje <= 1500)
            return Imp1*1.05;
        else
            return -1;
         else
            if((Cilindraje <= 1500) && ((Marca.equals("mazda")) || (Marca.equals("renault")) || (Marca.equals("nissan")) || (Marca.equals("toyota"))))
            return (float) ((Imp2 -(anioActual-Modelo)*50000) *1.12);
        else if((Cilindraje > 1500) && ((Marca.equals("mazda")) || (Marca.equals("renault")) || (Marca.equals("nissan")) || (Marca.equals("toyota"))))
            return (float) ((Imp2 -(anioActual-Modelo)*50000) * 1.17);
        else if ((Cilindraje <= 1500) && (Marca.equals("chevrolet")))
            return (float) (((Imp2 -(anioActual-Modelo)*50000) * 1.05)-((Imp2 -(anioActual-Modelo)*50000)*0.03));
        else if ((Cilindraje > 1500) && (Marca.equals("chevrolet")))
            return  (float) (((Imp2 -(anioActual-Modelo)*50000) * 1.1) - ((Imp2 -(anioActual-Modelo)*50000)*0.03));
        else if  (Cilindraje <= 1500)
            return ((Imp2 -(anioActual-Modelo)*50000)*1.05);
        else
          return -1;
 }
 double promedioImpuesto(double calculaImpuesto){
 
 
            double prom = 0;
              prom = calculaImpuesto + prom;
 
 
            return prom;
 
 
}
}

Mainautomotor.java

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
import javax.swing.*;
    public class MainAutomotor {
    private static double calculaImpuesto;
 
        public static void main(String[] args) {
            //Declaramos una constante para manejar el Año Actual, necesario en el cálculo del impuesto
        final int anioActual = 2013;
 
            //Declaramos las variables que necesitamos para controlar el programa: 
        int opcion; //En esta variable almacenaremos la opción del menú seleccionada por el usuario
        String  Marca = null;
        int Cilindraje = 0;
        Vehiculo v1 = new Vehiculo(Marca, Cilindraje); // Aqui estamos instanciando (creando) el objeto v1 del tipo Vehiculo
// Usamos una estructura do-while para mantener el programa en ejecución:
    do{
        opcion= Integer.parseInt(JOptionPane.showInputDialog("*** Seleccione su Opcion *** \n 1. Crear un Vehiculo\n 2. Calcular Impuesto \n 3. Terminar"));
            switch (opcion){ // Evaluamos las posibilidades:
            case 1: v1.capturarDatos(); // Los métodos los ejecutamos por medio de los objetos
                break;
            case 2: JOptionPane.showMessageDialog(null, "El impuesto del vehículo es " + v1.calculaImpuesto(anioActual));
                break;
            case 3: JOptionPane.showMessageDialog(null, "El prmedio de los impuestos calculados es:  " + v1.promedioImpuesto());
                 break;
            default: JOptionPane.showMessageDialog(null,"Ingresó una opción No Válida","ERROR",JOptionPane.ERROR_MESSAGE);
 
                continue; //En caso de que el usuario haya digitado un numero diferente de 1,2,3 se envia un mensaje de error
                            //Y se regresa el flujo del programa a pedir nuevamente la opción
                            }
        }
    while(opcion!=3);
 
                                                } // Fin del Metodo main()
                            } //Fin de la clase MainAutomotor3.10 Finalmente, llegamos a la ejecuc


Gracias.
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
sin imagen de perfil

ayuda calcular promedio.

Publicado por UnoPorAhi (128 intervenciones) el 01/09/2013 22:46:05
Buenas,

Deberías guardar en una lista o array los impuestos que vayas calculando. El método promedio debe sumar los valores de esa lista y dividir por el número de elementos que contenga.


Un saludo,
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
sin imagen de perfil

ayuda calcular promedio.

Publicado por andres (2 intervenciones) el 01/09/2013 23:02:45
gracias por tu respuesta, soy nuevo en java y es primer programa que estoy resolviendo y no se como guardar los resultados, osea no entiendo como capturarlos e irlos guardando.

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
sin imagen de perfil

ayuda calcular promedio.

Publicado por UnoPorAhi (128 intervenciones) el 02/09/2013 09:45:38
Una forma facil seria declarando una lista en la clase vehiculo como variable de instancia:

List impPagados = new ArrayList();

En calculaImpuesto en lugar de hacer return de la cantidad directamente, declara una variable:
doubleimpuestoPagado = 0.0;

Y donde haces cada return asignalo a esa variable. Por ejemplo:
impuestoPagado = (double) (Imp1 *1.12);

Y al final del metodo haces return impuestoPagado;

Ya solo queda en el metodo promedioImpuesto recorrer la lista, sumar y dividir.

P.D: en lugar de usar en unos sitios float y en otros double, utiliza siempre double en los casting para evitar problemas

Un saludo
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