2. PARA DISEÑAR UN ALGORITMO OO:
Se diseña el diagrama de clases
Se diseña la lógica de cada una de las clases
usando seudocódigo
2
Mtl.LourdesCahuich
3. ALGORITMO
Definir el problema
Analizar el problema
Diseñar el programa
Para diseñar el programa se elabora el algoritmo que
soluciona el problema en 2 pasos
Diseñar el diagrama de clase
Diseñar la lógica de cada clase
3
Mtl.LourdesCahuich
4. EJERCICIO DE EJEMPLO
Elaborar un algoritmo para calcular el promedio de
calificaciones de un estudiante.
Los datos disponibles o requeridos son: nombre,
calificación1, calificación 2, calificación 3 y
calificación 4 de cada uno de los 4 exámenes
presentados.
4
Mtl.LourdesCahuich
5. EJERCICIO DE EJEMPLO
La información que se debe imprimir es el Nombre
y el promedio de las calificaciones. El promedio se
obtiene sumando las cuatro calificaciones y
dividiendo la suma entre 4.
5
Mtl.LourdesCahuich
6. 1) DEFINIR EL PROBLEMA
Calcular el promedio de calificaciones de un
estudiante
6
Mtl.LourdesCahuich
7. 2) ANALIZAR EL PROBLEMA
Datos: nombre, calif1, calif2, calif3 y calif 4.
Métodos: calcular promedio, setters/getters de
cada propiedad
Calcular promedio: sumar todas las calificaciones y
dividir entre el número de calificaciones.
7
Mtl.LourdesCahuich
8. 3) DISEÑAR EL PROGRAMA
Diagrama de clase
Estudiante
-nomEst : string
-calif1 : float
-calif2 : float
-calif43:float
-calif4 : float
-promedio : float
+getNomEst() : string
+setNomEst(nom:string)
+setCalif1(c:float)
…
+calculaPromedio() : float
+obtienePromedio()
+Estudiante()
frmMain
Main
crear objeto
leer datos para objetos
Calcular promedio
Mostrar resultado
8
Mtl.LourdesCahuich
9. 3) DISEÑAR EL PROGRAMA
Diseño de la lógica de la clase: a continuación se
muestra el código en C#
9
Mtl.LourdesCahuich
10. class Estudiante
{
//propiedades
private string nomEst;
private float calif1;
private float calif2;
private float calif3;
private float calif4;
private float promedio;
//métodos
public string getNomEst(){return this.nomEst;}
public void setNomEst(string nom){this.nomEst = nom;}
public void setCalif1(float c){this.calif1 = c;}
public void setCalif2(float c){this.calif2 = c;}
public void setCalif3(float c){this.calif3 = c;}
public void setCalif4(float c){this.calif4 = c;}
public void calculaPromedio()
{this.promedio=(this.calif1+this.calif2+this.calif3+this.calif4)/4;}
public float getPromedio(){return this.promedio;}
//constructor/destructor
public Estudiante()
{
this.nomEst = "";
this.calif1 = 0;
this.calif2 = 0;
this.calif3 = 0;
this.calif4 = 0;
this.promedio = 0;
}
}//fin clase Estudiante 10
Mtl.LourdesCahuich
12. private void btnGuardaDatos_Click(object sender, EventArgs e)
{
estudiante.setNomEst(txtNomEst.Text);
if (txtCalif1.Text != "")//Validación para asegurar que se asigne un número
estudiante.setCalif1(float.Parse(txtCalif1.Text));
else
estudiante.setCalif1(0);
if (txtCalif2.Text != "")//Validación para asegurar que se asigne un número
estudiante.setCalif2(float.Parse(txtCalif2.Text));
else
estudiante.setCalif2(0);
if (txtCalif3.Text != "")//Validación para asegurar que se asigne un número
estudiante.setCalif3(float.Parse(txtCalif3.Text));
else
estudiante.setCalif3(0);
if (txtCalif4.Text != "")//Validación para asegurar que se asigne un número
estudiante.setCalif4(float.Parse(txtCalif4.Text));
else
estudiante.setCalif4(0);
}
private void btnCalculaPromedio_Click(object sender, EventArgs e)
{
estudiante.calculaPromedio();
txtPromedio.Text = estudiante.getPromedio().ToString();
} 12
Mtl.LourdesCahuich