¡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
Hablemos de informática
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.