Java - me ayudan

 
Vista:
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

me ayudan

Publicado por Kabuto (1381 intervenciones) el 15/06/2020 21:54:02
Hola.

Puesto que el enunciado pide mostrar un reporte similar al de la tabla de la imagen, esta vez podemos darle otro enfoque al programa y hacerlo un poco más avanzado.

Podemos guardar cada dato solicitado al usuario en arrays separados. Previamente preguntaremos cuántas entradas quiere registrar para saber que tamaño han de tener los arrays.

Una vez tenemos todos los datos recogidos, podemos usar printf() para mostrar las líneas de reporte con algo de formato en pantalla.
Para ellos usaremos un método a parte del programa principal, que recorrerá los arrays y mostrará estas líneas para el reporte.
Al mismo tiempo, se encargará de acumular los datos que nos piden mostrar al final del programa.

Para calcular el costo de producción de cada entrada, podemos usar otro método que reciba los datos que necesita para computar este resultado.

El código podría ser este:
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
public class Costos {
 
	//Cada array almacena un tipo de dato
	private static String[] descripciones;
	private static int[] unidades;
	private static float[] factoresCosto;
	private static float[] costosFijos;
 
	public static void main(String[] args) {
 
		int entradas = Integer.parseInt(JOptionPane.showInputDialog("¿Cuantas entradas quiere registrar?"));
		//Ahora ya sabemos que tamaño han de tener los arrays
		descripciones = new String[entradas];
		unidades = new int[entradas];
		factoresCosto = new float[entradas];
		costosFijos = new float[entradas];
		//Pedimos datos
		for (int j = 0; j < entradas; j++) {
			descripciones[j] = JOptionPane.showInputDialog("Descripción del artículo:");
			unidades[j] = Integer.parseInt(JOptionPane.showInputDialog("Unidades producidas:"));
			factoresCosto[j] = Float.parseFloat(JOptionPane.showInputDialog("Factor de costo de materiales:"));
			costosFijos[j] = Float.parseFloat(JOptionPane.showInputDialog("Coste fijo:"));
		}
 
		mostrarReporte();
 
		System.out.println("\n\t\t---FIN DE PROGRAMA---");
	}
 
	private static void mostrarReporte() {
		int totalArticulos = 0;
		float totalCostosProduccion = 0;
 
		System.out.println("\t\t\t\tReporte de Costes");
		System.out.println("\t\t\t\t------- -- ------"
				+ "\n");
		System.out.printf("%20s\t%8s\t%16s\t%10s\t%16s\n","Artículo", "Unidades", "Costo Materiales", "Costo Fijo", "Costo Producción");
		System.out.printf("%20s\t%8s\t%16s\t%10s\t%16s\n","--------", "--------", "----- ----------", "----- ----", "----- ----------");
		for (int j = 0; j < descripciones.length; j++) {
			//Calculamos costo produccion
			float costoProduccion = calculaCostoProduccion(unidades[j], factoresCosto[j], costosFijos[j]);
			//Acumulamos el costo
			totalCostosProduccion += costoProduccion;
			//Acumulamos total artículos producidos
			totalArticulos += unidades[j];
			//Mostramos línea de reporte
			System.out.printf("%20s\t%8d\t%16.2f\t%10.2f\t%16.2f\n",descripciones[j], unidades[j], factoresCosto[j], costosFijos[j], costoProduccion);
		}
		//Acabado el bucle ya se han mostrado todas las líneas de reporte
		//y hemos acumulado los dos últimos datos que nos piden.
		System.out.println("\nTotal artículos Procesados: " + totalArticulos);
		System.out.printf("Total costos de Producción: %.2f\n", totalCostosProduccion);
	}
 
	private static float calculaCostoProduccion(int unidades, float costoMaterial, float costoFijo) {
		return unidades * costoMaterial + costoFijo;
	}
 
}

Y en pantalla veremos que nos sale un reporte con el formato mínimo para quedar algo elegante:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
.	            Reporte de Costes
				------- -- ------
 
            Artículo	Unidades	Costo Materiales	Costo Fijo	Costo Producción
            --------	--------	----- ----------	----- ----	----- ----------
    Impresora LS2000	      64	           88,35	     35,90	         5690,30
     Tablet KidDroid	     110	           67,50	     26,90	         7451,90
 Mouse IntelliGaming	     140	           18,90	     10,00	         2656,00
     Teclado KeyMate	      99	            8,07	      6,49	          805,42
 
Total artículos Procesados: 413
Total costos de Producción: 16603,62
 
		---FIN DE PROGRAMA---
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
sin imagen de perfil
Val: 124
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

me ayudan

Publicado por Enmanuel (30 intervenciones) el 16/06/2020 04:59:00
Screenshot_11


me pega error en esos 2 no los pude arreglar que sera
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
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

me ayudan

Publicado por Kabuto (1381 intervenciones) el 18/06/2020 19:26:04
Has declarado descripciones1 como un Object.

Un Object es un objeto mínimo, básico.. es un objeto que no representa nada: no es un número, no es un array, no es un String, .. no es nada.

No se para que necesitas un descripciones1, además declarado como Object, si entiendo que ya hay un descripciones declarado como array String[], que es lo que se necesita.
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