Una solución para agregar estructura de repetición
1. Una solución para agregar
estructura de repetición a código OO
Apoyo POO
2. Recordamos el código que teníamos
• Un programa que debe generar un reporte de
calificaciones de varios alumnos.
• El reporte debe mostrar el nombre del alumno
y las 4 calificaciones que obtuvo cada alumno,
también el promedio de calificaciones de cada
alumno.
• Además se debe mostrar al final, el promedio
total por cada calificación y el promedio de
todos los promedios.
2Mtl. Lourdes Cahuich
3. Una forma de hacer esto con un ciclo
de repetición - for
• Para limitar el número de alumnos a capturar
• Imaginemos que queremos capturar un
máximo de 10 alumnos
• Tendremos que crear un arreglo de 10 objetos
tipo alumno
• Después iremos llenando la información de
cada alumno en un objeto alumno diferente.
3Mtl. Lourdes Cahuich
4. Creamos un arreglo de 10 objetos
• Esto se agrega en el código principal
const int MAX_EST = 10;
Estudiante [] est = new Estudiante[MAX_EST];
int contador = 0;
public frmMain()
{
InitializeComponent();
}
4Mtl. Lourdes Cahuich
6. En el botón guardar tengo que
controlar que sólo se guarden hasta 10
alumnos
private void btnGuardaDatos_Click(object sender, EventArgs e)
{
if (contador < MAX_EST)
{
est[contador] = new Estudiante();
guardaDatosAlumnos(est[contador]);
contador++;
}
}
6Mtl. Lourdes Cahuich
7. Proceso: “guardaDatosAlumno”
void guardaDatosAlumnos(Estudiante e){
e.setNomEst(txtNomEst.Text);
if (txtCalif1.Text != "")
e.setCalif1(float.Parse(txtCalif1.Text));
else
e.setCalif1(0);
if (txtCalif2.Text != "")
e.setCalif2(float.Parse(txtCalif2.Text));
else
e.setCalif2(0);
if (txtCalif3.Text != "")
e.setCalif3(float.Parse(txtCalif3.Text));
else
e.setCalif3(0);
if (txtCalif4.Text != "")
e.setCalif4(float.Parse(txtCalif4.Text));
else
e.setCalif4(0);
} 7Mtl. Lourdes Cahuich
10. Estas son sólo unas soluciones…
• Pero en la ciencia de la computación y la
ingeniería, casi siempre hay varias soluciones
para un mismo problema.
• Sin embargo, siempre habrá soluciones más
eficientes, precisas y elegantes que otras, el
entrenamiento que viene de resolver y
desarrollar muchos programas/algoritmos, es
el que nos lleva a desarrollar mejores códigos
cada vez.
10Mtl. Lourdes Cahuich