Código Java para Calcular Promedios de Notas por Materia: Ejemplo Práctico de POO
Programa en Java para el Cálculo de Promedios de Notas
A continuación se presenta un programa en Java que solicita el nombre de un alumno y las notas de cinco evaluaciones por cada materia, para luego calcular el promedio correspondiente.
Clase materias
Esta clase actúa como un modelo de datos que almacena la información de cada materia:
- nombre: nombre de la materia o del alumno.
- not1, not2, not3, not4, not5: notas de las cinco evaluaciones.
- prom: promedio de las notas.
import java.util.*;
class materias {
String nombre;
int not1 = 0, not2 = 0, not3 = 0, not4 = 0, not5 = 0;
double prom = 0;
}
Clase principal materias_princi
El método main es el punto de entrada de la aplicación en Java. En él se crean los objetos, se leen los datos desde el teclado mediante Scanner y se calculan los promedios.
class materias_princi {
// El método main inicia la ejecución de la aplicación en Java
public static void main(String args[]) {
materias poo = new materias();
materias informatica1 = new materias();
materias programacion1 = new materias();
Scanner obj = new Scanner(System.in);
System.out.print("Digite el nombre del alumno: ");
poo.nombre = obj.nextLine();
System.out.print("Ingrese la nota de la primera evaluación de la materia POO: ");
poo.not1 = obj.nextInt();
System.out.print("Ingrese la nota de la segunda evaluación de la materia POO: ");
poo.not2 = obj.nextInt();
System.out.print("Ingrese la nota de la tercera evaluación de la materia POO: ");
poo.not3 = obj.nextInt();
System.out.print("Ingrese la nota de la cuarta evaluación de la materia POO: ");
poo.not4 = obj.nextInt();
System.out.print("Ingrese la nota de la quinta evaluación de la materia POO: ");
poo.not5 = obj.nextInt();
poo.prom = (poo.not1 + poo.not2 + poo.not3 + poo.not4 + poo.not5) / 5;
System.out.print("El promedio es: " + poo.prom);
Scanner obj1 = new Scanner(System.in);
informatica1.nombre = obj1.nextLine();
System.out.print("Ingrese la nota de la primera evaluación de la materia Informática1: ");
informatica1.not1 = obj1.nextInt();
System.out.print("Ingrese la nota de la segunda evaluación de la materia Informática1: ");
informatica1.not2 = obj1.nextInt();
System.out.print("Ingrese la nota de la tercera evaluación de la materia Informática1: ");
informatica1.not3 = obj1.nextInt();
System.out.print("Ingrese la nota de la cuarta evaluación de la materia Informática1: ");
informatica1.not4 = obj1.nextInt();
System.out.print("Ingrese la nota de la quinta evaluación de la materia Informática1: ");
informatica1.not5 = obj1.nextInt();
informatica1.prom = (informatica1.not1 + informatica1.not2 + informatica1.not3 + informatica1.not4 + informatica1.not5) / 5;
System.out.println("El promedio de la materia Informática1 es: " + informatica1.prom);
Scanner obj2 = new Scanner(System.in);
programacion1.nombre = obj2.nextLine();
System.out.print("Ingrese la nota de la primera evaluación de la materia Programación1: ");
programacion1.not1 = obj2.nextInt();
System.out.print("Ingrese la nota de la segunda evaluación de la materia Programación1: ");
programacion1.not2 = obj2.nextInt();
System.out.print("Ingrese la nota de la tercera evaluación de la materia Programación1: ");
programacion1.not3 = obj2.nextInt();
System.out.print("Ingrese la nota de la cuarta evaluación de la materia Programación1: ");
programacion1.not4 = obj2.nextInt();
System.out.print("Ingrese la nota de la quinta evaluación de la materia Programación1: ");
programacion1.not5 = obj2.nextInt();
programacion1.prom = (programacion1.not1 + programacion1.not2 + programacion1.not3 + programacion1.not4 + programacion1.not5) / 5;
System.out.println("El promedio de la materia Programación1 es: " + programacion1.prom);
} // fin del método main
} // fin de la clase materias_princi
Observaciones importantes
- La división
/ 5entre valores enteros produce una división entera; para obtener un promedio decimal exacto, se recomienda usar/ 5.0. - Se crean varios objetos Scanner sobre
System.in; lo ideal es crear uno solo y reutilizarlo para evitar problemas de lectura. - Este ejemplo aplica los principios de la programación orientada a objetos: encapsulación de datos en una clase y su uso desde otra clase.