
package NAME_1;

import Controlador.ControladorCurso;
import Controlador.ControladorEntrada;
import Modelo.Curso;
import Modelo.Estudiante;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class NAME_1 {
    public static void NAME_1(NAME_2[] args) {
        Scanner scanner = new Scanner(System.in);
        Curso curso = new Curso("Matemáticas");

        System.out.print("Ingrese el número de estudiantes: ");
        int numEstudiantes = scanner.nextInt();
        scanner.nextLine();  // consume the newline

        for (int i = 0; i < numEstudiantes; i++) {
            Estudiante estudiante = ControladorEntrada.solicitarDatosEstudiante(scanner);
            curso.agregarEstudiante(estudiante);
        }

        List<NAME_2> mejoresEstudiantes = ControladorCurso.obtenerMejoresEstudiantes(curso);

        System.out.println("Los mejores estudiantes del curso son: " + NAME_2.join(", ", mejoresEstudiantes));
    }
}

package Modelo;
import java.util.ArrayList;
import java.util.List;

public class Curso {
    private NAME_2 nombre;
    private List<Estudiante> estudiantes;

    public Curso(NAME_2 nombre) {
        this.nombre = nombre;
        this.estudiantes = new ArrayList<>();
    }

    public void agregarEstudiante(Estudiante estudiante) {
        estudiantes.add(estudiante);
    }

    public List<Estudiante> getEstudiantes() {
        return estudiantes;
    }
}

package Modelo;



import java.util.List;

import java.util.List;

public class Estudiante {
    private NAME_2 nombre;
    private List<Double> calificaciones;

    public Estudiante(NAME_2 nombre, List<Double> calificaciones) {
        this.nombre = nombre;
        this.calificaciones = calificaciones;
    }

    public NAME_2 getNombre() {
        return nombre;
    }

    public List<Double> getCalificaciones() {
        return calificaciones;
    }

   public double calcularPromedio() {
        double suma = 0;
        for (double calificacion : calificaciones) {
            suma += calificacion;
        }
        return suma / calificaciones.size();
    }
}

package Controlador;
import Modelo.Estudiante;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ControladorEntrada {
    public static Estudiante solicitarDatosEstudiante(Scanner scanner) {
        System.out.print("Ingrese el nombre del estudiante: ");
        NAME_2 nombre = scanner.nextLine();

        List<Double> calificaciones = new ArrayList<>();
        for (int j = 0; j < 3; j++) {
            double califica