Hola de nuevo,
Tengo que terminar un ejercicio de Visual Basic para el lunes, en todo el programa, he desarrollado una función que muestra por pantalla los alumnos que tienen una nota superior o inferior a la que se le pase como parámetro.
El caso es que no funciona bien... y por más que le doy vueltas no encuentro el error... alguien puede verlo y ayudarme?
Código:
Public Sub mostrarpornota(ByRef corte As Integer, ByRef porencima As Boolean)
If listalumnos.Count > 0 Then 'Si hay alumnos...
Dim i, j As Integer 'Creamos dos variables contador, j por si existen notas
Dim total As Double = 0 'Creamos una memoria donde almacenar la suma de las notas.
Dim media As Double = 0 'y otra para calcular la media
Dim textoencima As String = "Alumnos con nota superior a " & corte & ": " & vbNewLine
Dim textoabajo As String = "Alumnos con nota inferior a " & corte & ": " & vbNewLine
For i = 0 To listalumnos.Count - 1 'recorremos el arraylist de empleados
total = 0 'inicializamos las variables en cada alumno.
media = 0
If listalumnos(i).listanotas.Count > 0 Then 'Si hay registradas notas...
For j = 0 To listalumnos(i).listanotas.Count - 1 'recorremos el arraylist de notas..
total = total + listalumnos(i).listanotas(j) ' las sumamos
media = total / listalumnos(i).listanotas.Count ' y sacamos la media
If media >= corte Then ' si la media está igual o por encima del corte fijado
textoencima = textoencima & "- Nombre: " & listalumnos(i).nombre & " Nota media: " & media & vbNewLine 'guardamos aquí
Else 'si no...
textoabajo = textoabajo & "- Nombre: " & listalumnos(i).nombre & " Nota media: " & media & vbNewLine ' aquí
End If
Next
End If
Next
If porencima = True Then 'Si lo que se quiere son las notas por encima del corte
MessageBox.Show(textoencima, "Alumnos sobre " & corte) 'Sacamos mensaje por pantalla
Else 'si son las que hay por debajo...
MessageBox.Show(textoabajo, "Alumnos bajo " & corte)
End If
Else 'Si no hay empleados...
MessageBox.Show("No hay empleados", "Error") 'no hay por qué hacer todo lo otro.
End If
End Sub
Agradecería mucho la ayuda, ya tengo la cabeza bastante sobrecargada, pero no puedo parar hasta que acabe
Saludos