Yo agregué la variable “asignaturas” a la clase Alumno. Por que debe de haber 5 asignaturas por alumno, y es una lista.
public class Alumno {
. . .
public List<Asignatura> Asignaturas{ get; set; }
. . .
}
Después agregué la variable “evaluacion” en la clase Asignaturas.
Porque debe de haber 5 asignaturas por alumno, y cada asignatura por alumno solo lleva 1 evaluación, también una lista.
public class Asignatura{
public double Evaluacion { get; set; }
}
En “class EscuelaEngine”, el metodo CargarAsignaturas(), lo deje así. Ahí mismo genero la evaluación de forma aleatoria con NextDouble() * (5), para que sea de 0 - 5.
private List<Asignatura> CargarAsignaturas()
{
Random rnd = new Random();
var listaAsignaturas = new List<Asignatura>(){
new Asignatura{Nombre="Matemáticas", Evaluacion=(rnd.NextDouble() * (5))} ,
new Asignatura{Nombre="Educación Física", Evaluacion=(rnd.NextDouble() * (5))},
new Asignatura{Nombre="Castellano", Evaluacion=(rnd.NextDouble() * (5))},
new Asignatura{Nombre="Ciencias Naturales", Evaluacion=(rnd.NextDouble() * (5))},
new Asignatura{Nombre="Historia", Evaluacion=(rnd.NextDouble() * (5 ))}
};
return listaAsignaturas;
}
Y en CargarCursos(), agrego otros for each, para llenar 5 asignaturas por alumno con una sola calificacion por materia - alumno. (En el reto no se menciona que las materias van aleatorias, solo las evaluaciones)
private void CargarCursos() {
. . .
Random rndAlumno = new Random();
foreach(var curso in Escuela.Cursos)
{
int cantRandom = rndAlumno.Next(5, 20);
curso.Alumnos = GenerarAlumnosAlAzar(cantRandom); //llena alumnos por curso
foreach(var alumno in curso.Alumnos){
alumno.Asignaturas = CargarAsignaturas();//llena asignaturas por alumno
}
}
. . .
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?