¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)
Gestión de Calificaciones de Estudiantes con Map y Scanner en Java

Gestión de Calificaciones de Estudiantes con Map y Scanner en Java

Anuncios
Publicidad

En este ejercicio utilizaremos las clases Scanner y Map, ambas pertenecientes al paquete java.util, para crear un programa en Java que permita gestionar un registro de estudiantes y sus calificaciones.

El programa pedirá al usuario cuántos estudiantes desea ingresar, y luego solicitará el nombre y la nota de cada uno para almacenarlos en un Map, donde el nombre será la clave y la nota el valor.

A continuación, el sistema mostrará el listado completo de estudiantes con sus respectivas calificaciones, calculará la media de las notas y finalmente identificará tanto al estudiante con la nota más alta como al que obtuvo la nota más baja.

📎Cómo usar HashMap en Java

Comenzamos con el ejemplo:

package map;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class map03 {
public static void main(String[] args) {

// variable contadorEstudiantes

int contadorEstudiantes;

// Valores usados para el map

String nombre;
int nota;

// Valores usados para el for

int not = 0;
int suma = 0;

// Valores usados para el if
// Inicializamos con el valor más bajo posible.
// Si encontramos una nota mayor, se asignará como nueva nota máxima. -2_147_483_648

int notaMaximaDelAlumno = Integer.MIN_VALUE;

// Inicializamos con el valor más alto posible.
// Si encontramos una nota menor, se asignará como nueva nota mínima. 2_147_483_647

int notaMinimoDelAlumno = Integer.MAX_VALUE;

// Ver dentro del if el estudiante más listo y el menos listo

String masListo = "";
String menosListo = "";

// Creamos la variable Scanner e importamos sus clase. De este modo accedemos a sus métodos.

Scanner sc = new Scanner(System.in);

// Creamos el map para almacenar el nombre del estudiante y la nota.
// Recuerda map es una interfaz, no se puede implementar directamente, usaremos su implementación
// HashMap.

Map datosEstudiante = new HashMap<>();

// Preguntamos cuantos estudiantes se desea registrar:

System.out.println("Cuantos estudiantes deseas registrar");

// Guardamos el número de estudiantes en la variable contadorEstudiantes.

contadorEstudiantes = sc.nextInt();

// Limpiamos el buffer de entrada.

sc.nextLine();

// usamos While para establecer el número de estudiantes que se insertarán mientras.
// El contador sea distinto a cero. Si ingresas 2 por ejemplo, debería de pedir dos veces el nombre y la nota y finalizará.

while (contadorEstudiantes != 0) {

// Predecremento, cada vuelta resta un estudiante del contador.

--contadorEstudiantes;

// Pedimos la nota y luego el nombre del estudiante.

System.out.println("Ingrese su nota: ");

nota = sc.nextInt();

sc.nextLine();

System.out.println("Ingrese su nombre: ");

nombre = sc.nextLine();

// Guardamos los datos del estudiante en el map

datosEstudiante.put(nombre, nota); }

System.out.println("Listado de estudiantes y sus notas: ");

// keySet() que devuelve todas las claves (es decir, los nombres de los estudiantes.

for (String estudiante: datosEstudiante.keySet()) {

// Guardamos en la variable local la nota del estudiante, obtenida del map.

not = datosEstudiante.get(estudiante);

// Mostrar el listado de estudiantes con sus notas.

System.out.println("Nombre del estudiante: " + estudiante + " tiene una nota de: " + not);

// Suma todas las notas ingresas: suma += not;

// Verificamos si la nota del estudiante es la mayor, si es así, se almacena.

if (not > notaMaximaDelAlumno) {

// asigna la nota del estudiante a la nota máxima siempre y cuando sea la mayor.

notaMaximaDelAlumno = not;

// Asigna la clave nombre almacenada en estudiante "For" a la variable

String masListo masListo = estudiante; }

// Comprueba si el valor es el menor al anterior.

if (not < notaMinimoDelAlumno) { notaMinimoDelAlumno = not;

// Asigna la clave nombre almacena en estudiante "For" a la variable

String menosListo menosListo = estudiante; } }

// Calcular y mostrar la media de las notas, casteamos el resultado.

double media = (double)suma / datosEstudiante.size();

System.out.println( "la media es: " + media);

// Mostrar el nombre del estudiante con la nota más alta.

System.out.println("El estudiante con la nota más alta es: " + masListo);

// Mostrar el nombre del estudiante con la nota más baja.

System.out.println("El estudiante con la nota más baja es: " + menosListo);

// Cerramos la clase scanner.
sc.close(); }
}

Seguir leyendo:

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)

Deja un comentario

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)
error: Content is protected !!
Scroll al inicio