Emanuelc714 / Laboratorio-01--Clases-y-Objetos-C--

0 stars 0 forks source link

Erroes / Recomendaciones #1

Open Omar-z opened 1 year ago

Omar-z commented 1 year ago

https://github.com/Emanuelc714/Laboratorio-01--Clases-y-Objetos-C--/blob/d77f7acbed1a74fd592daf65bc4f5baf61c03dcd/src/estudiante.cpp#L27-L37 y https://github.com/Emanuelc714/Laboratorio-01--Clases-y-Objetos-C--/blob/d77f7acbed1a74fd592daf65bc4f5baf61c03dcd/main.cpp#L19-L21

Las marcó como error, ya que tratamos de seguir por mas que se pueda el principio de SOLID, el cual el primer principio nos dice que cada clase debe tener un solo rol en la solución del programa, y en este caso estudiante, tiene dos roles ( estudiante y evaluador )

por lo que para que se cumpla el principio, se necesitaba por lo menos dos clases, Estudiante y Salon, por ejemplo

classDiagram
  class Estudiante {
     -String nombre
     -int calificaciones[5]
    + void set_calificacion(int id, float valor)
    + int get_calificacion(int id)
}
class Salon{
  +Salon(int numestd)
  -Estudiante *alumnos
  -float promedio_grupo
  +float calcular_promedio()
  +void mostar_listado()
}

Estudiante -- Salon

Otra recomendación es que en el constructor del estudiante, no se inicializaràn las calificaciones, ya que te obliga a siempre poner calificaciones al momento de crear un objeto de estudiante.

Emanuelc714 commented 1 year ago

En la segunda recomendación, ¿la solución entonces sería asignar calificaciones con un generador al azar o pidiendolas como input?

Gracias por el feedback. Saludos.

El dom, 19 de feb. de 2023 3:33 p. m., Omar @.***> escribió:

https://github.com/Emanuelc714/Laboratorio-01--Clases-y-Objetos-C--/blob/d77f7acbed1a74fd592daf65bc4f5baf61c03dcd/src/estudiante.cpp#L27-L37 y

https://github.com/Emanuelc714/Laboratorio-01--Clases-y-Objetos-C--/blob/d77f7acbed1a74fd592daf65bc4f5baf61c03dcd/main.cpp#L19-L21

Las marcó como error, ya que tratamos de seguir por mas que se pueda el principio de SOLID, el cual el primer principio nos dice que cada clase debe tener un solo rol en la solución del programa, y en este caso estudiante, tiene dos roles ( estudiante y evaluador )

por lo que para que se cumpla el principio, se necesitaba por lo menos dos clases, Estudiante y Salon, por ejemplo

classDiagram

class Estudiante {

 -String nombre

 -int calificaciones[5]

+ void set_calificacion(int id, float valor)

+ int get_calificacion(int id)

}

class Salon{

+Salon(int numestd)

-Estudiante *alumnos

-float promedio_grupo

+float calcular_promedio()

+void mostar_listado()

}

Estudiante -- Salon

Otra recomendación es que en el constructor del estudiante, no se inicializaràn las calificaciones, ya que te obliga a siempre poner calificaciones al momento de crear un objeto de estudiante.

— Reply to this email directly, view it on GitHub https://github.com/Emanuelc714/Laboratorio-01--Clases-y-Objetos-C--/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/A5TRVKXZ33WJS3NISWXU7CDWYKUS3ANCNFSM6AAAAAAVBHS7ZM . You are receiving this because you are subscribed to this thread.Message ID: @.***>

Omar-z commented 1 year ago

No importa, solo que al asignar las calificaciones no sea el alumno, si no la otra clase

algo como

Salon materia(5);
for(int i=0; i<materia.num_alumnos;++i)
{
     materia.get_alumno(i).pedir_calificaciones();
}

algo así

Emanuelc714 commented 1 year ago

Gracias profesor.

El dom, 19 de feb. de 2023 7:50 p. m., Omar @.***> escribió:

No importa, solo que al asignar las calificaciones no sea el alumno, si no la otra clase

algo como

Salon materia(5); for(int i=0; i<materia.num_alumnos;++i)

{

 materia.get_alumno(i).pedir_calificaciones();

}

algo así

— Reply to this email directly, view it on GitHub https://github.com/Emanuelc714/Laboratorio-01--Clases-y-Objetos-C--/issues/1#issuecomment-1436281317, or unsubscribe https://github.com/notifications/unsubscribe-auth/A5TRVKQELBAH347WUBICYTTWYLSXPANCNFSM6AAAAAAVBHS7ZM . You are receiving this because you commented.Message ID: <Emanuelc714/Laboratorio-01--Clases-y-Objetos-C--/issues/1/1436281317@ github.com>