Table of Contents
Calculadora de Notas en Java: Cálculo de Promedio, Nota Máxima y Mínima con Interfaz Gráfica
Este código implementa una calculadora de notas en Java, usando la clase JFrame para crear una interfaz gráfica. La aplicación permite al usuario ingresar una cantidad de notas, calcular la nota máxima, nota mínima y el promedio. Además, se valida que el input sea numérico, con mensajes de error si no se introduce un número adecuado.
Descripción general del código:
- Interfaz gráfica con
JFrame: UtilizamosJFramepara construir la ventana de la calculadora. La interfaz incluye un campo de texto para ingresar el número de notas y muestra los resultados (nota máxima, mínima y promedio) mediante cuadros de diálogo (JOptionPane). - Lógica de cálculo: La aplicación permite al usuario ingresar una cantidad de notas, luego calcula la nota máxima, nota mínima y promedio a partir de las notas introducidas.
- Manejo de errores: El programa valida que los valores introducidos sean numéricos y muestra un mensaje de error en caso de que no lo sean.
Código:
package Calculadora;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
// La clase CalculadoraJFRAME extiende JFrame para crear la interfaz gráfica.
public class CalculadoraJFRAME extends JFrame {
// Variables estáticas accesibles desde cualquier parte del código.
public static double suma = 0;
public static double promedio = 0;
public static double max;
public static double min;
public static double nota;
public static int totalNotas;
public static int campoDeTextoListener;
// Constructor de la clase.
public CalculadoraJFRAME() {
// Establecer el título de la ventana, tamaño y comportamiento al cerrarla.
setTitle("Calculadora de Notas");
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Etiqueta de instrucciones para el usuario.
JLabel instrucciones = new JLabel("<html>1º Ingresa el número de notas.<br>"
+ "2º Pulsa ENTER.<br>"
+ "3º Introduce las notas del 1 al 10.<br>"
+ "4º Obtén la nota más alta, la más baja y el promedio.</html>");
// Campo de texto para ingresar el número de notas.
JTextField campoDeTexto = new JTextField();
campoDeTexto.setPreferredSize(new Dimension(100, 40));
// Paneles para contener los elementos.
JPanel panelInstrucciones = new JPanel();
JPanel panelEntrada = new JPanel();
panelInstrucciones.add(instrucciones);
panelEntrada.add(campoDeTexto);
// Añadir los paneles a la ventana.
add(panelInstrucciones, BorderLayout.LINE_START);
add(panelEntrada, BorderLayout.CENTER);
// Lógica para manejar el evento al presionar ENTER.
campoDeTexto.addActionListener((e) -> {
try {
// Convertir el texto del campo en un número entero (cantidad de notas).
campoDeTextoListener = Integer.parseInt(campoDeTexto.getText());
} catch (NumberFormatException nfe) {
// Mostrar mensaje de error si no es un número.
JOptionPane.showMessageDialog(null, "Debes proporcionar un valor numérico.");
return; // Detener ejecución si hay error.
}
// Inicializar valores de las notas.
totalNotas = campoDeTextoListener;
max = Double.MIN_VALUE; // Valor inicial para la nota máxima.
min = Double.MAX_VALUE; // Valor inicial para la nota mínima.
// Ciclo para ingresar las notas.
while (campoDeTextoListener > 0) {
campoDeTextoListener--;
// Solicitar nota al usuario mediante un cuadro de diálogo.
nota = Double.parseDouble(JOptionPane.showInputDialog(
CalculadoraJFRAME.this, "Introduce una nota (1-10):"));
// Sumar la nota al total.
suma += nota;
// Determinar si la nota es la nueva máxima o mínima.
if (nota > max) {
max = nota;
}
if (nota < min) {
min = nota;
}
}
// Calcular el promedio.
promedio = suma / totalNotas;
// Mostrar los resultados.
JOptionPane.showMessageDialog(null, "La nota máxima es: " + max);
JOptionPane.showMessageDialog(null, "La nota mínima es: " + min);
JOptionPane.showMessageDialog(null, "El promedio es: " + promedio);
});
}
// Método main para ejecutar la aplicación.
public static void main(String[] args) {
// Crear una instancia de la calculadora y mostrar la ventana.
CalculadoraJFRAME ventana = new CalculadoraJFRAME();
ventana.setVisible(true);
}
}
Explicación del flujo:
- Entrada de datos: El usuario introduce el número de notas que desea ingresar.
- Ingreso de notas: A través de cuadros de diálogo (
JOptionPane), el usuario introduce cada una de las notas. - Cálculos: El programa calcula:
- Nota máxima: Utiliza
Double.MIN_VALUEcomo el valor inicial más bajo para asegurar que cualquier número que se ingrese será más grande. - Nota mínima: Utiliza
Double.MAX_VALUEcomo el valor inicial más alto. - Promedio: Se calcula sumando todas las notas y dividiendo por la cantidad total de notas.
- Nota máxima: Utiliza
- Resultados: Al finalizar, se muestran las notas máxima, mínima y el promedio en ventanas emergentes.
Ingresamos 3 notas y pulsamos ENTER:

Primera nota de 9:



Segunda nota de 2:



Tercera nota de 5:



Nota máxima:



Nota mínima:



Promedio de notas:



¿Quieres seguir aprendiendo?
- Crear un panel de inicio de sesión en Java con Swing y MySQL
- Gestor de Tareas con Prioridades en Java
ATENCIÓN: Si prefieres el código sin usar la JFRAME, puedes usar el siguiente código:
package Calculadora;
import java.util.Scanner;
/*
Calculadora de Promedios de Notas
Enunciado:
Crea un programa en Java que:
- Pida al usuario cuántas notas quiere ingresar.
- Permita ingresar todas esas notas (números decimales).
- Calcule el promedio.
- Muestre la nota más alta, la más baja y el promedio final.
*/
public class CalculadoraDePromediosDeNotas {
public static void main(String[] args) {
// Variables
double nota, promedio, maximo, minimo, suma = 0;
int cantidadNotas;
// Inicializamos los valores extremos
maximo = Double.MIN_VALUE;
minimo = Double.MAX_VALUE;
// Creamos el objeto Scanner para leer datos
Scanner sc = new Scanner(System.in);
// Pedimos al usuario cuántas notas quiere ingresar
System.out.print("¿Cuántas notas deseas ingresar? ");
cantidadNotas = sc.nextInt();
// Validamos que el número de notas sea mayor que cero
if (cantidadNotas <= 0) {
System.out.println("El número de notas debe ser mayor que cero.");
return;
}
// Bucle para ingresar las notas
for (int i = 1; i <= cantidadNotas; i++) {
System.out.print("Ingresa la nota #" + i + ": ");
nota = sc.nextDouble(); // Leemos la nota
// Sumamos la nota al total
suma += nota;
// Actualizamos el máximo y mínimo
if (nota > maximo) {
maximo = nota;
}
if (nota < minimo) {
minimo = nota;
}
}
// Calculamos el promedio
promedio = suma / cantidadNotas;
// Mostramos los resultados
System.out.println("\nResultados:");
System.out.println("Nota más alta: " + maximo);
System.out.println("Nota más baja: " + minimo);
System.out.println("Promedio final: " + promedio);
// Cerramos el scanner
sc.close();
}
}
Te puede interesar:
Seguir leyendo:




