Se requiere desarrollar un módulo que determine si un estudiante es candidato a Beca, cuando el requisito es tener matriculado al menos 12 créditos y tener un promedio mayor de 89 en las materias del semestre anterior. El sistema requiere que exista una pantalla para recibir los datos de identificación del estudiante, el registro de cantidad de materias que matriculó el semestre pasado, las notas obtenidas en el semestre anterior y la cantidad de créditos matriculados actualmente. Una vez registrado los datos, el sistema debe presentar un reporte que indique el nombre del estudiante, cantidad de materias matriculadas y promedio ponderado de acuerdo con las notas del semestre anterior y cantidad de créditos que actualmente tiene matriculado y el resultado de la validación de otorgamiento de beca.
A continuación, te proporciono un ejemplo de cómo podrías implementar el módulo en Java: ```java import java.util.Scanner; class Estudiante { private String nombre; private int cantidadMateriasMatriculadasAnterior; private double[] notasAnteriores; private int cantidadCreditosMatriculadosActual; private double promedioPonderado; public Estudiante(String nombre, int cantidadMateriasMatriculadasAnterior, double[] notasAnteriores, int cantidadCreditosMatriculadosActual) { this.nombre = nombre; this.cantidadMateriasMatriculadasAnterior = cantidadMateriasMatriculadasAnterior; this.notasAnteriores = notasAnteriores; this.cantidadCreditosMatriculadosActual = cantidadCreditosMatriculadosActual; this.promedioPonderado = calcularPromedioPonderado(); } private double calcularPromedioPonderado() { double suma = 0; for (int i = 0; i < notasAnteriores.length; i++) { suma += notasAnteriores[i] * (i + 1); } return suma / (notasAnteriores.length * (notasAnteriores.length + 1) / 2); } public boolean esCandidatoABeca() { return cantidadMateriasMatriculadasAnterior >= 12 && promedioPonderado > 89 && cantidadCreditosMatriculadosActual >= 12; } public String getNombre() { return nombre; } public int getCantidadMateriasMatriculadasAnterior() { return cantidadMateriasMatriculadasAnterior; } public double getPromedioPonderado() { return promedioPonderado; } public int getCantidadCreditosMatriculadosActual() { return cantidadCreditosMatriculadosActual; } } public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Ingrese el nombre del estudiante: "); String nombre = scanner.nextLine(); System.out.print("Ingrese la cantidad de materias matriculadas en el semestre anterior: "); int cantidadMateriasMatriculadasAnterior = scanner.nextInt(); scanner.nextLine(); // Consumir el salto de línea System.out.print("Ingrese la cantidad de notas del semestre anterior: "); int cantidadNotas = scanner.nextInt(); scanner.nextLine(); // Consumir el salto de línea double[] notasAnteriores = new double[cantidadNotas]; for (int i = 0; i < cantidadNotas; i++) { System.out.print("Ingrese la nota " + (i + 1) + " del semestre anterior: "); notasAnteriores[i] = scanner.nextDouble(); scanner.nextLine(); // Consumir el salto de línea } System.out.print("Ingrese la cantidad de créditos matriculados actualmente: "); int cantidadCreditosMatriculadosActual = scanner.nextInt(); scanner.nextLine(); // Consumir el salto de línea Estudiante estudiante = new Estudiante(nombre, cantidadMateriasMatriculadasAnterior, notasAnteriores, cantidadCreditosMatriculadosActual); System.out.println("Reporte del estudiante:"); System.out.println("Nombre: " + estudiante.getNombre()); System.out.println("Cantidad de materias matriculadas en el semestre anterior: " + estudiante.getCantidadMateriasMatriculadasAnterior()); System.out.println("Promedio ponderado: " + estudiante.getPromedioPonderado()); System.out.println("Cantidad de créditos matriculados actualmente: " + estudiante.getCantidadCreditosMatriculadosActual()); if (estudiante.esCandidatoABeca()) { System.out.println("El estudiante es candidato a beca."); } else { System.out.println("El estudiante no es candidato a beca."); } } } ``` Este código define una clase `Estudiante` que almacena los datos del estudiante y tiene un método `esCandidatoABeca()` que verifica si el estudiante cumple con los requisitos para ser candidato a beca. La clase `Main` es la clase principal que solicita los datos al usuario y crea un objeto `Estudiante` con esos datos. Luego, imprime un reporte con los datos del estudiante y indica si es candidato a beca o no.