Java - Aclaracion de dudas

 
Vista:

Aclaracion de dudas

Publicado por Axel Rodriguez (1 intervención) el 09/12/2022 01:48:51
tengo este ejercicio.. he estado tratando de hacerlo, tengo 3 clases hechas pero no logro acoplar o hacerme la idea de como hacerlo mucho menos el codigo


Determine las ventas anuales de 4 vendedores de dos tiendas de calzado mismos que están 2 en una y 2 en la otra,
considerando ventas por cada mes. Al igual que su bono anual por volumen de ventas mismo que representa el 8% del volumen de las ventas anuales.
• Determine cual de todos los vendedores hizo una mayor venta en el año
• Las ventas anuales de todos los vendedores y su respectivo bono.
• Tienda que vendió más.
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 Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Aclaracion de dudas

Publicado por Kabuto (1381 intervenciones) el 09/12/2022 21:11:07
A ver, a mi se me ocurre hacerlo de esta manera.

Una clase Vendedor.
Le pongo lo básico para cumplir con el ejercicio, tú luego puedes hacerla más completa.

Solo dos atributos, un String para el nombre y un array de 12 doubles, que son las ventas para cada mes del año.

Entre los métodos, hay uno para calcular la mayor venta de entre las 12 existentes.
Otro para calcular el total de ventas, es decir, la suma de las 12 ventas mensuales.
Y otro para calcular el bono, que es el 8% del total de ventas.

Además, hay un método que rellena el array con 12 ventas generadas al azar.
Así se puede probar el ejercicio sin tener que meter esas ventas a mano.

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
import java.util.Random;
 
public class Vendedor {
 
	private String nombre;
	private double[] ventas;
 
	public Vendedor(String nombre) {
		this.nombre = nombre;
		ventas = new double[12]; //12 meses del año
		generarVentas();
	}
 
	public String getNombre() {
		return nombre;
	}
 
	public double getMayorVenta() {
		double mayor = ventas[0];
		for (int i = 1; i < 12; i++)
			if (ventas[i] > mayor)
				mayor = ventas[i];
 
		return mayor;
	}
 
	public double getVentaAnual() {
		double suma = 0;
		for (double venta: ventas)
			suma += venta;
 
		return suma;
	}
 
	public double getBono() {
		double ventaAnual = getVentaAnual();
 
		return 8 * ventaAnual / 100;
	}
 
	/*
	 * Método para generar ventas al azar
	 * y no tener que introducirlas a mano
	 */
	private void generarVentas() {
		Random azar = new Random();
		for (int i = 0; i < 12; i++)
			ventas[i] = azar.nextDouble(10000);
	}
 
}

Ahora, una clase Tienda.

De atributos, un String para el nombre de la tienda y un ArrayList para poder añadir tantos vendedores como se quiera. Aunque para el ejercicio solo añadiremos dos por tienda.

Entre los métodos, hay uno que retorna el Vendedor que haya conseguido tener la mayor venta mensual.
Otro para hacer un listado de los vendedores, con su total de venta anual y el bono obtenido.
Y otro que calcula el total de ventas de la tienda, es decir, la suma de los totales de todos los vendedores.
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
import java.util.ArrayList;
 
public class Tienda {
 
	private String nombre;
	private ArrayList<Vendedor> vendedores;
 
	public Tienda(String nombre) {
		this.nombre = nombre;
		vendedores = new ArrayList<Vendedor>();
	}
 
	public String getNombre() {
		return nombre;
	}
 
	public void addVendedor(Vendedor vend) {
		vendedores.add(vend);
	}
 
	public Vendedor getVendedorMayorVentaMensual() {
		if (vendedores.isEmpty())
			return null;
		else {
			Vendedor mayor = vendedores.get(0);
			for (int i = 1; i < vendedores.size(); i++)
				if (vendedores.get(i).getMayorVenta() > mayor.getMayorVenta())
					mayor = vendedores.get(i);
 
			return mayor;
		}
	}
 
	public void listarVentas() {
		System.out.println("\n-- Ventas de " + nombre + " --");
		System.out.printf("%-12s%-10s%-8s\n", "VENDEDOR", "  VENTAS", "  BONO(8%)");
		for (Vendedor vend: vendedores)
			System.out.printf("%-12s%8.2f\t%6.2f\n", vend.getNombre(), vend.getVentaAnual(), vend.getBono());
	}
 
	public double getTotalVentas() {
		double suma = 0;
		for (Vendedor vend: vendedores)
			suma += vend.getVentaAnual();
 
		return suma;
	}
 
}


Con esto, ya podemos hacer una clase Main.
En ella declaramos dos Tiendas, y a cada una le damos dos Vendedores.
Al crear esos vendedores, automáticamente se generan sus ventas mensuales.

Y a continuación cumplimos con los tres puntos que propone el ejercicio.
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
public class Main {
 
	public static void main(String[] args) {
		Tienda tienda1 = new Tienda("Calzados Roman");
		tienda1.addVendedor(new Vendedor("Luis"));
		tienda1.addVendedor(new Vendedor("Susana"));
		Tienda tienda2 = new Tienda("Calzados Belice");
		tienda2.addVendedor(new Vendedor("Sara"));
		tienda2.addVendedor(new Vendedor("Felipe"));
 
		//Determine cual de todos los vendedores hizo una mayor venta en el año
		System.out.println("\tVENDEDOR CON MAYOR VENTA MENSUAL");
		Vendedor mayor1 = tienda1.getVendedorMayorVentaMensual();
		Vendedor mayor2 = tienda2.getVendedorMayorVentaMensual();
		if (mayor1.getMayorVenta() > mayor2.getMayorVenta()) {
			System.out.printf("%s de %s hizo la mayor venta: %.2f",
					mayor1.getNombre(), tienda1.getNombre(), mayor1.getMayorVenta());
		}
		else if (mayor2.getMayorVenta() > mayor1.getMayorVenta()) {
			System.out.printf("%s de %s hizo la mayor venta: %.2f",
					mayor2.getNombre(), tienda2.getNombre(), mayor2.getMayorVenta());
		}
		else {
			System.out.printf("%s de %s ha empatado con %s de %s\n",
					mayor1.getNombre(), tienda1.getNombre(), mayor2.getNombre(), tienda2.getNombre());
			System.out.printf("Valor de la mayor venta: %.2f", mayor1.getMayorVenta());
		}
 
		//Las ventas anuales de todos los vendedores y su respectivo bono.
		System.out.println("\n\n\n\tLISTADO DE VENTAS ANUALES Y BONOS OBTENIDOS");
		tienda1.listarVentas();
		tienda2.listarVentas();
 
		//Tienda que vendió más.
		System.out.println("\n\n\n\tTIENDA CON MAYOR VENTA");
		if (tienda1.getTotalVentas() > tienda2.getTotalVentas()) {
			System.out.printf("%s es la tienda con mayor venta: %.2f",
					tienda1.getNombre(), tienda1.getTotalVentas());
		}
		else if (tienda2.getTotalVentas() > tienda1.getTotalVentas()) {
			System.out.printf("%s es la tienda con mayor venta: %.2f",
					tienda2.getNombre(), tienda2.getTotalVentas());
		}
		else {
			System.out.printf("%s ha empatado en ventas con %s\n",
					tienda1.getNombre(), tienda2.getNombre());
			System.out.printf("Total ventas: %.2f", tienda1.getTotalVentas());
		}
 
		System.out.println("\n\n\t\tFIN DE PROGRAMA");
 
	}
 
}

Si lo ejecutamos, en pantalla obtenemos los resultados solicitados:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
VENDEDOR CON MAYOR VENTA MENSUAL
Sara de Calzados Belice hizo la mayor venta: 9956,18
 
 
	LISTADO DE VENTAS ANUALES Y BONOS OBTENIDOS
 
-- Ventas de Calzados Roman --
VENDEDOR      VENTAS    BONO(8%)
Luis        45617,19	3649,38
Susana      73821,73	5905,74
 
-- Ventas de Calzados Belice --
VENDEDOR      VENTAS    BONO(8%)
Sara        58890,32	4711,23
Felipe      47112,75	3769,02
 
 
 
	TIENDA CON MAYOR VENTA
Calzados Roman es la tienda con mayor venta: 119438,91
 
		FIN DE PROGRAMA


Pregunta si algo no se entiende, o si crees que es necesario cambiar algo, o lo que sea que quieras comentar.

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