Ayuda con un programa de visual basic

Que tal estoy haciendo un programa en visual basic que hace lo siguiente calcula la calificación de cada encuentro que son cinco al final el programa suma las calificaciones y da el resultado y ademas te debe dar la letra de la calificación osea:

100-90= A

89-80=B

79-70=C

69-0=F

Hazta ahora el programa lo he desarrollado y hace todo esto pero mi problema surge cuando debo hacer lo siguiente:

Que si la persona falta al quinto encuentro con una calificación 73-53 debe ponerme una i o incompleto, esto es lo único que me falta aquí te dejo el código para que me den su opinión.

Gracias

Aquí el codigo:

Private Sub btnCalcular_Click(sender As System.Object, e As System.EventArgs) Handles btnCalcular.Click
Dim e1, e2, e3, e4, e5, cf As Integer
Dim literal As String
Integer.TryParse(txtEncuentro1.Text, e1)
Integer.TryParse(txtEncuentro2.Text, e2)
Integer.TryParse(txtEncuentro3.Text, e3)
Integer.TryParse(txtEncuentro4.Text, e4)
Integer.TryParse(txtEncuentro5.Text, e5)
cf = e1 + e2 + e3 + e4 + e5
If cf > 90 And cf <= 100 Then
literal = "A"
ElseIf cf > 80 Then
literal = "B"
ElseIf cf > 70 Then
literal = "C"
Else
literal = "F"
End If
txtCalificacion.Text = cf.ToString()
txtLiteral.Text = literal
End Sub
End Class

1 respuesta

Respuesta
1

Pues bien yo pienso que si falta al encuentro entonces su calificación es 0. Si estoy en lo correcto, entonces lo que haría es añadir un if mas para mantener tu estructura

Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click
Dim e1, e2, e3, e4, e5, cf As Integer
Dim literal As String
Integer. TryParse(txtEncuentro1.Text, e1)
Integer. TryParse(txtEncuentro2.Text, e2)
Integer. TryParse(txtEncuentro3.Text, e3)
Integer. TryParse(txtEncuentro4.Text, e4)
Integer. TryParse(txtEncuentro5.Text, e5)
cf = e1 + e2 + e3 + e4 + e5
If e5.Equals(0) Then
If cf > 53 And cf < 73 Then
literal = "i"
Else
If cf > 90 And cf <= 100 Then
literal = "A"
ElseIf cf > 80 Then
literal = "B"
ElseIf cf > 70 Then
literal = "C"
Else
literal = "F"
End If
End If
End If
txtCalificacion.Text = cf.ToString()
txtLiteral.Text = literal
End Sub

No lo que quiero decir es que si en el quinto encuentro falta la persona y que ademas si tiene una nota comprendida entre 53 y 73 debe darte la letra i.

y ademas lo puse con el código que me diste y aparece esta rayita verde en literal al fondo

Pero como determinas que falta eso no entiendo, lo que asumo es que si falta no tiene puntuación.

¿Y Disculpa pero que rayita verde?

lo que quiero decir es que tienes notas en los primeros cuatro encuentros y si le damos al botón de resultado nota: no hemos puesto ningún resultado en el quinto encuentro este debe ponernos la letra i de incompleto.

Haber, del código que te envíe lo probé de la siguiente forma, ingrese calificaciones en los 4 primeros encuentros, y deje vacío el del quinto, entonces sumo las calificaciones y como estaba entre 53 y 73 me dio el literal "i", eso es lo que entendí. Ahora si me dices que basta con que falte al quinto encuentro para que te de el literal "i", entonces deberías quitarle esta linea

If cf > 53 And cf < 73 Then

Con su respectivo endif.

Pero si lo que me dices es que si falta al quinto encuentro o esta su calificación entre 53 y 73 entonces debes reemplazar

If e5.Equals(0) Then
If cf > 53 And cf < 73 Then

por esto:

If e5.Equals(0) or (cf > 53 And cf < 73) Then

Y retirar un endif.

De este modo si falta al quinto encuentro o tiene una calificación entre 53 y 73, o se cumplen las dos te va a dar el literal "i".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas