Sacar el promedio de un arrar

Iniciado por Sempai15, 17 Julio 2016, 00:13 AM

0 Miembros y 1 Visitante están viendo este tema.

Sempai15

Tengo un problema me pide hacer un metodo que retorne el promedio segun el tipo de producto, el codigo le tengo así:

public class venta {

    private String nombreProducto;
    private double precio;
    private int cantidad;

    public venta(String nombreProducto, double precio, int cantidad) {
        this.nombreProducto = nombreProducto;
        this.precio = precio;
        this.cantidad = cantidad;
    }

    public String getNombreProducto() {
        return nombreProducto;
    }

    public void setNombreProducto(String nombreProducto) {
        this.nombreProducto = nombreProducto;
    }

    public double getPrecio() {
        return precio;
    }

    public void setPrecio(double precio) {
        this.precio = precio;
    }

    public int getCantidad() {
        return cantidad;
    }

    public void setCantidad(int cantidad) {
        this.cantidad = cantidad;
    }

    public double getTotal() {
        return cantidad * precio;
    }       

    @Override
    public String toString() {
        return nombreProducto+getTotal();
    }
     
y el de generar le tengo asi:
   public double getPromedioGeneral(venta[] vec) {
        double suma = 0;
        int pos = 0;
        int conta = 0;
        String dato = "";
        double valorMayor = vec[0].getTotal();
        for (int i = 0; i < vec.length; i++) {
            if (dato.equals(vec.getNombreProducto())) {
                suma = suma + vec.getTotal();
                conta++;
            }
        }
        return suma / conta;
    }

Necesito ayuda por favor.

+ 1 Oculto(s)

suma todo el array y luego divides por la cantidad total del array

Thanos

Prueba a quitar el condicional if del bucle de getPromedioGeneral().

FermatsTheorem

Podrías publicar el enunciado completo del problema? No termino de entender lo de sacar promedio según tipo de producto.

Gracias.

Sempai15

Hacer un metodo en la cual me retorne un promedio segun el tipo de producto; es decir imprimir todos los productos con sus promedios y en caso de que se repita un producto sumar los dos repetidos.

FermatsTheorem

Sigo sin entender del todo como es el problema.

Dado un vector de productos, tenés que calcular el porcentaje de aparición de cada uno en el vector?

A que te referís con sumarlos en caso de que se repitan?

Sempai15

Es decir tengo 6 productos vendidos mediante factura: tablet, pc, mouse, teclado y dos de ellos se repitan y es la flash entonces para evitarme poner ambas la hago en uno solo.

Thanos

A ver, el String dato vale siempre "".

Si quieres que calcule el promedio de un tipo de producto pasale un String al método con el nombre del producto, ademas del array de ventas.

Octsam


Si lo he entendido bien, quieres considerar como agrupados los productos iguales dentro de la colección (= array), y dar el promedio de su precio. Por ello:

   1) Entiendo que si dos productos son iguales, su precio es el mismo, por lo que su promedio es su precio, a no ser que éste varíe con el tiempo.

   2) Si quieres calcular el porcentaje de facturación que ha supuesto la venta del producto, éso sí requiere hacer algo del estilo de lo que has puesto.

   3) En cualquiera de los dos casos, lo más eficiente y sencillo es ordenar los elementos de la colección, para que al hallar un nombre distinto, no sea necesario considerar más veces la clase de producto ya tratado, pues ya habrán sido tratados todos.

Una vez que sepa bien qué quieres, podría darte el código que yo propongo para resolver tu problema, pero es mejor que lo hagas tú, o al menos lo intentes. Aprender a programar bien es difícil, requiere mucho esfuerzo y no siempre podrás hallar a otro para que te lo haga.

Sempai15

Es imprimir así con un método:
producto y promedio
Disco: 500.00
RAM: 400.00
Flash: 250.00
Teclado: 500.00
Tablet: 680.00