Problema con ejercicio Java
Publicado por Javier (3 intervenciones) el 26/01/2020 11:06:28
Hola buenas, tengo un problema con este ejercicio (Adjunto enunciado mas abajo) funciona correctamente pero al repetirse el bucle, no me da la opción de volver a escribir el String.
ENUNCIADO: Calcular las calificaciones de un grupo de alumnos. La nota final de cada alumno se calcula según el siguiente criterio: La parte práctica vale un 10%, la parte de problemas vale un 50% y la parte teórica vale un 40%. El algoritmo leerá el nombre del alumno, las 3 notas, escribirá el resultado, y volverá a pedir
los datos del siguiente alumno. Hasta que el nombre sea una cadena vacía. Las notas deben estar entre 0 y 10, si no lo están no imprimirá las notas, si no que mostrará un mensaje de error y volverá a pedir otro alumno.
Este es mi código:
La salida es esta:
Introduce el nombre del alumno:
felipe
Introduce la nota de la practica:
8
Introduce la nota de los problemas:
9
Introduce la nota de la teoria:
4
La media de felipe es: 7.0
Introduce el nombre del alumno:
Introduce la nota de la practica:
5
....
Introduce la nota de los problemas:
ENUNCIADO: Calcular las calificaciones de un grupo de alumnos. La nota final de cada alumno se calcula según el siguiente criterio: La parte práctica vale un 10%, la parte de problemas vale un 50% y la parte teórica vale un 40%. El algoritmo leerá el nombre del alumno, las 3 notas, escribirá el resultado, y volverá a pedir
los datos del siguiente alumno. Hasta que el nombre sea una cadena vacía. Las notas deben estar entre 0 y 10, si no lo están no imprimirá las notas, si no que mostrará un mensaje de error y volverá a pedir otro alumno.
Este es mi código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
float NPract, NProblem, NTeori;
String nombre;
do {
System.out.println("Introduce el nombre del alumno: ");
nombre = sc.nextLine();
System.out.println("Introduce la nota de la practica: ");
NPract = sc.nextFloat();
System.out.println("Introduce la nota de los problemas: ");
NProblem = sc.nextFloat();
System.out.println("Introduce la nota de la teoria: ");
NTeori = sc.nextFloat();
System.out.println("La media de " +nombre+ " es: " +((NPract+NProblem+NTeori)/3));
System.out.println("\n");
}
while ((NPract>=0 && NPract<=10) && (NProblem>=0 && NProblem<=10) && (NTeori>=0 && NTeori<=10)
&& (nombre!=null));
}
La salida es esta:
Introduce el nombre del alumno:
felipe
Introduce la nota de la practica:
8
Introduce la nota de los problemas:
9
Introduce la nota de la teoria:
4
La media de felipe es: 7.0
Introduce el nombre del alumno:
Introduce la nota de la practica:
5
....
Introduce la nota de los problemas:
Valora esta pregunta


0