Java - Notas y alumnos

 
Vista:
sin imagen de perfil
Val: 17
Ha disminuido su posición en 7 puestos en Java (en relación al último mes)
Gráfica de Java

Notas y alumnos

Publicado por Marco (7 intervenciones) el 24/02/2020 05:01:59
Buenas, soy nuevo en el tema de java y estaba tratando de realizar este ejercicio; programa que solicite una cantidad de niños matriculados en un curso, solicite el nombre y nota de cada uno de los alumnos. Al final muestre el nombre de todos los alumnos, el nombre de quien obtuvo la nota más alta, más baja y cuál es el promedio de notas.

Pero no logro resolverlo, podrían ayudarme. Tengo el código...
_______________________________

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
package practicas;
 
import javax.swing.*;
import java.text.DecimalFormat;
 
public class Prueba1 {
 
    public void main(String[] args) {
        int total;
        int contadorCalif;
        int calificacion;
        double promedio;
        String cadenaCalif;
        String nombreAlumno;
        int Alumnos;
 
        int numAlum, i;
        double suma = 0, media;
 
        do {
            cadenaCalif = JOptionPane.showInputDialog(
                    "Escriba la cantidad de alumnos en su clase: ");
 
            calificacion = Integer.parseInt(cadenaCalif);
 
            numAlum = Integer.parseInt(cadenaCalif);
        } while (numAlum <= 0);
 
        do {
            nombreAlumno = JOptionPane.showInputDialog(
                    "Escriba el nombre de los alumnos en su clase: ");
 
            Alumnos = Integer.parseInt(nombreAlumno);
 
            numAlum = Integer.parseInt(cadenaCalif);
        } while (numAlum != calificacion);
 
        double[] notas = new double[numAlum];
 
        for (i = 0; i < notas.length; i++) {
            JOptionPane.showMessageDialog(null,"Alumno " + (i + 1) + " Nota final: ");
 
        }
 
        for (i = 0; i < notas.length; i++) {
            suma = suma + notas[i];
        }
 
        media = suma / notas.length;
 
        // No se como mostrarlo por medio del JOptionPane
        System.out.printf("Nota media del curso: %.2f %n", media);
 
        JOptionPane.showMessageDialog(null,"Listado de notas superiores a la media: ");
        for (i = 0; i < notas.length; i++) {
            if (notas[i] > media) {
                JOptionPane.showMessageDialog(null,"Alumno numero " + (i + 1) + " Nota final: " + notas[i]);
            }
        }
    }
 
}
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: 2.268
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Notas y alumnos

Publicado por Kabuto (568 intervenciones) el 24/02/2020 21:00:00
Hola.
Para este ejercicio vas a necesitar usar arrays para guardar los nombres y notas que se introducen por teclado.
Una vez recogidos los datos, es cuando hay que procesarlos para obtener la información que solicita el enunciado.

Te dejo este código con comentarios explicando paso a paso lo que se está haciendo en cada momento. Creo que se entiende fácilmente, en cualquier caso, pregunta cualquier duda que tengas.
Un saludo.
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
73
74
75
76
77
78
79
80
81
82
public class Notas {
 
	public static void main(String[] args) {
 
		//Primero preguntamos cuantos alumnos se van a introducir
		int cantidadAlumnos = Integer.parseInt(JOptionPane.showInputDialog("¿Cuántos alumnos va a introducir"));
 
		//Inicializamos un array para guardar los nombres de los alumnos.
		//Tamaño del array depende de la cantidad de alumnos indicada.
		String[] nombres = new String[cantidadAlumnos];
		//Y otro array para guardar las notas
		double[] notas = new double[cantidadAlumnos];
 
		//Ahora pedimos tantos nombres y notas como ha indicado el usuario.
		for (int i = 0; i < cantidadAlumnos; i++) {
			//Pedimos nombre..
			nombres[i] = JOptionPane.showInputDialog("Nombre de Alumno:");
			//Y nota
			notas[i] = Double.parseDouble(JOptionPane.showInputDialog("Nota:"));
		}
 
		/*
		 * Bucle for ha terminado y por tanto ya tenemos todos los nombres y notas
		 * introducidos.
		 * Ahora, averiguamos los datos que pide el enunciado.
		 *
		 * Podemos mostrar todos los datos solicitados en un único JOptionPane.
		 * Para ello, iremos construyendo un String mediante la clase StringBuilder
		 * donde iremos añadiendo los datos que vamos procesando.
		 * Luego al final del programa, mostraremos este String en un JOptionPane
		 */
		StringBuilder reporte = new StringBuilder();
 
		//Mostramos nombre de todos los Alumnos
		reporte.append("\nEstos son los Alumnos matriculados:\n");
		for (String nom: nombres)
			reporte.append(nom + "\n");
 
		/*
		 * Buscamos quién ha tenido la nota más alta y mas baja.
		 * Para poder comparar, tomamos como referencia el nombre
		 * y nota del primer alumno, y a partir de ahí comparamos
		 * con el resto.
		 */
		String nombreMayor = nombres[0];
		String nombreMenor = nombres[0];
		double notaMayor = notas[0];
		double notaMenor = notas[0];
 
		for (int i = 0; i < notas.length; i++) {
			if (notas[i] > notaMayor) { //Encontramos una nota mayor
				notaMayor = notas[i]; //Actualizamos la nota mayor
				nombreMayor = nombres[i]; //Y el nombre de este alumno.
			}
			if (notas[i] < notaMenor) { //Encontramos una nota menor
				notaMenor = notas[i];
				nombreMenor = nombres[i];
			}
		}
		/*
		 * Este bucle for ya ha comparado todas la notas, así que ya tenemos
		 * el nombre y nota del mejor alumno y del peor
		 */
		reporte.append(String.format("\n\nEl Alumno: %s tiene la mayor Nota: %.2f \n", nombreMayor, notaMayor));
		reporte.append(String.format("\nEl Alumno: %s tiene la menor Nota: %.2f \n", nombreMenor, notaMenor));
 
		//Por ultimo, calculamos la nota promedio.
		//Primero sumamos todas la notas
		double sumaNotas = 0d;
		for (int i = 0; i < notas.length; i++)
			sumaNotas += notas[i];
		//Notas ya están sumadas, dividimos por la cantidad de Alumnos
		reporte.append(String.format("\n\nLa nota promedio es: %.2f", sumaNotas/cantidadAlumnos));
 
		reporte.append("\n\n-- FIN DE PROGRAMA --");
 
		//Mostramos el String que hemos ido construyendo
		JOptionPane.showMessageDialog(null, reporte);
 
	}
 
}
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