5
« en: 06 de Febrero 2019, 01:44 »
Hola, estoy resolviendo ejercicios de arrays del curso Java avanzado de aprenderaprogramar.com y tengo un problema con Scanner.
No me doy cuenta porque no se guarda el primer dato ingresado en la posicion cero del array: nombreAlumnos. ¿Pueden ayudarme?
Enunciado:
Crea un programa en el que se pida por consola el nombre de 2 alumnos y la nota de cada uno de ellos como valor numérico. El resultado que debe mostrarse es el nombre de cada alumno, su nota y su calificacion como texto (Sobresaliente, Notable, Bien o Suspenso).
Para ello crea un array numérico y otro de String (ambos unidimensionales). En el array numérico se insertarán las calificaciones facilitadas por el usuario entre 0 y 10 (debemos controlar que inserte una nota valida), pudiendo ser decimal. En el array de Strings se insertarán los nombres de los alumnos. Crea también un array de String donde insertaremos el resultado de la nota con palabras admitiéndose estos valores: Sobresaliente, Notable, Bien o Suspenso.
El programa debe comprobar la nota de cada alumno teniendo en cuenta esta equivalencia:
Si la nota está entre 0 y 4,99 será un Suspenso.
Si la nota está entre 5 y 6,99 será un Bien.
Si la nota está entre 7 y 8,99 será un Notable.
Si la nota está entre 9 y 10 será un Sobresaliente.
Muestra por pantalla, el alumno su nota y su resultado en palabras utilizando bucles.
Crea los métodos que creas convenientes. Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com
Código
package arrays2;
import java.util.Scanner;
public class Arrays2 {
public static void main(String[] args) {
String alumno;
double calificacion;
int cantidadDeAlumnos;
Scanner en=new Scanner(System.in);
System.out.println("Ingrese la cantidad de alumnos");
cantidadDeAlumnos=en.nextInt();
String []capacidadDeAlumno=new String[4];
String [] nombreAlumnos=new String[cantidadDeAlumnos];
double [] arregloCalificaciones=new double [cantidadDeAlumnos];
System.out.println("Ingrese el nombre de los alumnos: ");
for(int i=0;i<=nombreAlumnos.length-1;i++){
alumno=en.nextLine();
nombreAlumnos[i]=alumno;
}
for(int i=0;i<=nombreAlumnos.length-1;i++){
System.out.println("Ingrese la calificación de: "+nombreAlumnos[i]);
calificacion=en.nextInt();
while (calificacion>10){
System.out.println("Ingeso una nota incorrecta, ingrese nuevamente");
calificacion=en.nextInt();
}
arregloCalificaciones[i]=calificacion;
}
capacidadDeAlumno[0]="Suspenso";
capacidadDeAlumno[1]="Bien";
capacidadDeAlumno[2]="Notable";
capacidadDeAlumno[3]="Sobresaliente";
for(int i=0;i<=1;i++){
if (arregloCalificaciones[i]<5){
System.out.println("Alumno: "+nombreAlumnos[i]+
" Calificación: "+arregloCalificaciones[i]+" Resultado: "
+capacidadDeAlumno[0]);
}
else if(arregloCalificaciones[i]>=5&&arregloCalificaciones[i]<7){
System.out.println("Alumno: "+nombreAlumnos[i]+
" Calificación: "+arregloCalificaciones[i]+" Resultado: "
+capacidadDeAlumno[1]);
}
else if (arregloCalificaciones[i]>=7&&arregloCalificaciones[i]<9){
System.out.println("Alumno: "+nombreAlumnos[i]+
" Calificación: "+arregloCalificaciones[i]+" Resultado: "
+capacidadDeAlumno[2]);
}
else{
System.out.println("Alumno: "+nombreAlumnos[i]+
" Calificación: "+arregloCalificaciones[i]+" Resultado: "
+capacidadDeAlumno[3]);
}
}
}
}
Salida:
Ingrese la cantidad de alumnos
2
Ingrese el nombre de los alumnos:
jose
Ingrese la calificación de:
8
Ingrese la calificación de: jose
9
Alumno: Calificación: 8.0 Resultado: Notable
Alumno: jose Calificación: 9.0 Resultado: Sobresaliente