Java - AYUDA POR FAVOR, PARA REALIZAR ESTE EJERCICIO EN JAVA

 
Vista:

AYUDA POR FAVOR, PARA REALIZAR ESTE EJERCICIO EN JAVA

Publicado por FREDDY ALONSO BRICEÑO (2 intervenciones) el 18/07/2021 02:19:40
buenas noches, necesito ayuda con este ejercicio de java, ando aprendiendo programación básica pero me quedó grande este ejercicio, se que debo usar Jopcionpane PERO NO HE PODIDIDO SOLUCIONAR ESTE EJERCICIO, les agradezco ayuda urgente por favor :(


Para un indeterminado grupo de estudiantes que ingresan al jean-day de bachillerato, solo pagan la entrada los estudiantes de los grados noveno, decimo y undécimo. Los estudiantes de grado noveno pagan la tercera parte del valor normal de la entrada, mientras que los demás estudiantes pagan el 80% del valor normal de la entrada. Se requiere calcular y presentar para un estudiante de bachillerato su nombre, grado y el valor a pagar por la entrada al jean-day. Además, finalmente se debe presentar cada uno de los valores cancelados por los estudiantes y el total acumulado cancelado por la totalidad de estudiantes.
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

AYUDA POR FAVOR, PARA REALIZAR ESTE EJERCICIO EN JAVA

Publicado por Kabuto (1044 intervenciones) el 18/07/2021 11:57:43
Sería interesante que comenzase tú un código, para que además podamos hacernos una idea de tu nivel de conocimientos.
Por ejemplo, no se si ya sabes crear tus propias clases y este ejercicio debería ser resuelto creando una clase llamada Estudiante o similar.

Intuyo que no, que no se espera que usemos una clase POO (orientada a objetos), por lo que lo haremos con programación "tradicional".

Como el programa pide que al final se muestren todos los valores cancelados, necesitarás una colección donde guardarlos.
Y como no sabemos cuántos valores se van a cancelar, pues esa colección ha de ser dinámica, es decir, que no tenga un tamaño determinado.

Así que se puede usar un ArrayList. De hecho, podemos usar dos, uno para guardar los nombres y otro para guardar el valor cancelado, así al final se puede mostrar el nombre de cada alumno y el importe que pagó por la entrada.
No nos dicen el valor de la entrada, solo dicen que unos no pagan nada, otros pagan la tercera parte y otros el 80%. Así que el valor de la entrada nos lo podemos inventar, pero hay que establecerlo al principio del programa

La mecánica sería usar un bucle que se repita mientras que el usuario quiera seguir repitiendo el proceso, cosa que preguntaremos con un JOptionPane.

En cada repetición pedimos nombre y grado.
Según el grado, calculamos el valor a cancelar.
Mostramos esta info en pantalla y guardamos en los ArrayList el nombre y el valor cancelado.

Cuando el usuario diga que no quiere seguir, habrá que construir un último reporte con todos los datos de nombre y valores cancelados que hemos ido guardando.
Además, sumaremos estos valores para informar del total acumulado.

Pues esa es la lógiica a seguir, y podría hacerse con el siguiente código.
Estúdialo atentamente y pregunta cualquier cosa que no entiendas. No te conformes con tener una respuesta, asegúrate de que la comprendes.

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
import javax.swing.JOptionPane;
 
public class Entradas {
 
	public static void main(String[] args) {
 
		final float VALOR_ENTRADA = 60f;
		ArrayList<String> nombres = new ArrayList<String>();
		ArrayList<Float> valoresCancelados = new ArrayList<Float>();
		int repetir = 0;
 
		do {
			//Pedimos nombre
			String nombre = JOptionPane.showInputDialog(null, "Indique el nombre","Entradas Jean Day",
					JOptionPane.QUESTION_MESSAGE);
 
			//Pedimos grado
			int grado =  Integer.parseInt(JOptionPane.showInputDialog(null, "Indique el grado (de 1 a 11)",
					"Entradas Jean Day", JOptionPane.QUESTION_MESSAGE));
 
			//Evaluamos importe de la entrada según el grado
			float valor;
			if (grado < 9) //No pagan entrada
				valor = 0f;
			else {
				if (grado == 9) //Pagan tercera parte
					valor = VALOR_ENTRADA / 3;
				else //El resto, grado 10 y 11, pagan 80%
					valor = VALOR_ENTRADA * 80 / 100;
			}
 
			//Mostramos los datos
			JOptionPane.showMessageDialog(null,
					String.format("Nombre: %s\nGrado: %d\nValor Cancelado: %.2f", nombre, grado, valor),
					"Entradas Jean Day", JOptionPane.INFORMATION_MESSAGE);
 
			//Guardamos los datos
			nombres.add(nombre);
			valoresCancelados.add(valor);
 
			//Preguntamos si quiere repetir
			repetir = JOptionPane.showConfirmDialog(null, "¿Repetir el proceso?", "Entradas Jean Day",
					JOptionPane.YES_NO_OPTION);
		}while(repetir == JOptionPane.YES_OPTION);
 
		//Proceso terminado, mostramos el reporte final.
		float sumaTotal = 0f; //Para acumular la suma de valores cancelados
		String reporte = ""; //Aquí construiremos una cadena con TODOS los datos para el mensaje final
 
		for (int i = 0; i < nombres.size(); i++) {
			//Vamos construyendo el "reporte" con los datos guardados
			reporte = reporte + String.format("\n- Nombre: %s -- Valor: %.2f",nombres.get(i), valoresCancelados.get(i));
			//Acumulamos suma de valores cancelados para conocer el total
			sumaTotal = sumaTotal + valoresCancelados.get(i);
		}
		//Tenemos el reporte y la suma Total. Podemos mostrar el mensaje final
		JOptionPane.showMessageDialog(null,
				"Valores cancelados:" + reporte + "\n\nTotal Acumulado: " + sumaTotal,
				"REPORTE FINAL", JOptionPane.INFORMATION_MESSAGE);
	}
 
}
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