Preguntas de programación de VB sobre software de becas
Hablemos primero del problema:
Primero, si la puntuación que ingresas no es un valor numérico puro, definitivamente entrará en un bucle infinito.
Por ejemplo, si está en chino, ingrese A y luego haga clic en Matemáticas. En este momento, el control de TEXTO chino activará LostFocus (), determinará que el valor ingresado es ilegal y activará este control nuevamente, pero al mismo tiempo; , el evento LostFocus () del control matemático también se activa, porque no se ingresan datos, por lo que se determina que el valor que ingresa es ilegal y debe activar este control. De esta manera, su programa quedará atrapado en un bucle. de dos controles de TEXTO activándose entre sí... Sería extraño si no mueres
La solución es muy simple:
No uses el evento LostFocus(), usa el evento KeyPress para limitar la entrada a valores numéricos Tome el control matemático como ejemplo:
Private Sub TxtMath_KeyPress(KeyAscii As Integer)
If KeyAscii lt; gt; 46 O KeyAscii gt; 57 Entonces KeyAscii = 0 'Ingrese solo el valor numérico y el punto decimal
End Sub
Segundo, List1.AddItem "Nombre" amp; ) amp; "ID de estudiante" amp; Chr(9) amp; "Chino" amp; >Usar esta oración es mucho mejor que usar espacios arriba, el formato TAB es muy bueno
La forma de agregar información del estudiante es como la anterior, solo necesita agregarla en el orden anterior, Gramática:
list1.additem "Zhang San 9527 95 97 80" 'Nombre Zhang San, número de estudiante 9527 Chino 95 Matemáticas 97 Inglés 80
En tercer lugar, para cadenas, puede usar la función SPLIT para almacenarlo en la matriz:
Dim B(4) As String 'Esto se puede definir como 4 porque se conocen 5 elementos
B() = Split(list1.text, chr(9)) 'Utilice el separador TAB para hacerlo más hermoso, obtenga el valor de la LISTA seleccionada actualmente, asegúrese de seleccionar
MsgBox B(0) 'Nombre
MsgBox B(1) 'Número de identificación de estudiante
MsgBox B(2) 'Chino
MsgBox B(3) 'Matemáticas
MsgBox B(4) 'Inglés
Cuarto, calcular la beca
Tome la matriz anterior como ejemplo:
If (Val(B(2)) Val(B(3)) Val ( B(4))) / 3 gt; 95 O Val(B(2)) = 100 Y Val(B(3)) = 100 Y Val(B(4)) gt; ) = 100 Y Val(B(4)) = 100 Y Val(B(3)) gt 80 O Val(B(3)) = 100 Y Val(B(4)) = 100 Y Val(B(2) ) ) gt; 80 Then MsgBox "Beca de primera clase" 'Dado que aquí solo hay tres materias, se enumeran directamente en la declaración condicional. Si hay muchas materias, se pueden usar otros algoritmos de optimización
El. El código anterior no está verificado. Si corrige cualquier error menor usted mismo
Parece que el autor no conoce muy bien VB. Si desea aprender VB, debe aprenderlo desde lo básico. práctico, creo que es mejor usarlo
Es más fácil hacer esto con EXCEL.