Red de conocimiento informático - Problemas con los teléfonos móviles - Preguntas de programación de VB sobre software de becas

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.