Programación VB para crear un sistema de consulta de puntuación
Opción explícita
Tipo privado StdInfo 'Información del estudiante
Nombre como cadena
Puntuación (5) Como entero '0~4 es Una puntuación de 5 en una sola materia es la puntuación total
sn(5) As Integer 'Ranking
Tipo final
Private Sub Form_Click()
Dim stds(9) como StdInfo, newstds() como StdInfo, nc como entero
Dim s como cadena
Dim i como entero
Para i = 0 a 9
stds(i).Score(0) = 50 'Algunas puntuaciones se generan aleatoriamente aquí. Modifique las puntuaciones reales usted mismo
stds(i).Score. (1) = 100 - i
stds(i).Puntuación(2) = i + 10
stds(i).Puntuación(3) = 100 - i
stds (i).Score(4) = i
stds(i).Name = CStr(i) 'Los nombres de los estudiantes se registran aquí como "0"~"9"
Siguiente
Hacer
s = InputBox("Ingrese los nombres de los estudiantes que desea consultar y déjelos en blanco")
Para i = 0 a 9
Si stds(i).Name = s Entonces
ReDim Preserve newstds(nc)
newtds(nc).Name = stds(i).Nombre
newstds(nc).Score(0) = stds(i).Score(0)
newsds(nc).Score(1) = stds (i).Puntuación(1)
newtds(nc).Puntuación(2) = stds(i).Puntuación(2)
newtds(nc).Puntuación(3) = stds(i).Puntuación(3 )
newtds(nc).Puntuación(4) = stds(i).Puntuación(4)
newtds(nc).Puntuación( 5) = estándar(i).Puntuación (0) + estándar(i).Puntuación(1) + estándar(i).Puntuación(2) + estándar(i).Puntuación(3) + estándar(i).Puntuación( 4)
'Calcular la última puntuación total como una sola materia
nc = nc + 1
Salir para
Finalizar si
Siguiente<
/p>
Bucle hasta s = ""
Dim j como entero, k como entero
Para k = 0 a 5 'sujeto
Para i = 0 To nc - 1 'Estudiante actual
For j = 0 To 9 'Estudiante para comparación
Si newstds(i).Score(k) < stds(j). Score(k) Entonces
newstds(i).sn(k) = newtds(i).sn(k) + 1
'Si hay alguien con una puntuación más alta que usted mismo Entonces su clasificación en este tema es +1
Finalizar si
Siguiente
Siguiente
Siguiente
Imprimir "Nombre", "puntuación 1", "clasificación", "puntuación 2", "clasificación", "puntuación 3", "clasificación", "puntuación 4", "clasificación", "puntuación 5", "clasificación", "puntuación total ", "Clasificación"
Para i = 0 Para nc - 1
Imprimir newstds(i).Name,
Para k = 0 Para 5 p>
Imprimir newsds(i).Score(k), newsds(i).sn(k) + 1,
Siguiente
Imprimir
Siguiente
Fin Sub
==============Después de la segunda modificación: ========== = =======
Opción explícita
Tipo privado StdInfo
Puntuación() como única 'Admite decimales esta vez
ScoreNo() como rango entero
Tipo final
Dim Students() como StdInfo
Sub privado Form_Click()
Dim s como cadena, ScoreCount como entero, c como entero, sc como único, m como entero
s = InputBox("Ingrese el número total de sujetos. ")
Si Trim(s) = "" Entonces salga de Sub
ScoreCount = CInt(s)
Hacer
sc = 0
c = c + 1
s = InputBox("Ingrese el número" & UBound(Estudiantes) + 1 & "El número de estudiantes" & c & "/" & ScoreCount & "Puntuaciones de materias.
Dejar en blanco para finalizar")
Si s <> "" Entonces
Si UBound(Students(UBound(Students)).Score) <> ScoreCount + 1 Entonces
ReDim Preserve Estudiantes(UBound(Estudiantes)).Score(ScoreCount + 1)
ReDim Preserve Estudiantes(UBound(Students)).ScoreNo(ScoreCount + 1)
Fin Si
Estudiantes(UBound(Estudiantes)).Score(c) = Val(s)
Si c = ScoreCount Entonces
Para m = 0 A c
sc = sc + Estudiantes(UBound(Estudiantes)).Puntuación(m)
Siguiente
Estudiantes(UBound(Estudiantes)).Puntuación(c + 1 ) = sc
ReDim Preserve Estudiantes(UBound(Estudiantes) + 1)
ReDim Estudiantes(UBound(Estudiantes)).Score(ScoreCount + 1)
ReDim Estudiantes(UBound(Estudiantes)).ScoreNo(ScoreCount + 1)
c = 0
Finalizar si
Finalizar si
Bucle hasta s = ""
Dim i como entero, j como entero, k como entero
Para k = 1 para ScoreCount + 1 'Asunto
Para i = 0 Para UBound(Estudiantes) - 1 'Estudiante actual
Para j = 0 Para UBound(Estudiantes) - 1 'Estudiante utilizado para comparación
Si Estudiantes(i). Puntuación(k) < Estudiantes(j).Puntuación(k) Entonces
Estudiantes(i).PuntuaciónNo(k) = Estudiantes(i).Puntuación(k) + 1
Finalizar si
Siguiente
Siguiente
Siguiente
Imprimir "Estudiante",
Para j = 1 A ScoreCount
Pri
nt "Asunto"; CStr(j); "Puntuación", "Clasificación",
Siguiente
Imprimir "Puntuación total", "Clasificación"
Para i = 0 Para UBound(Estudiantes) - 1
Imprimir CStr(i) + 1,
Para j = 1 Para ScoreCount + 1
Imprimir CStr( Estudiantes(i).Puntuación(j)), CStr(Estudiantes(i).PuntuaciónNo(j) + 1),
Siguiente
Imprimir
Siguiente
End Sub
Sub privado Form_Load()
ReDim Estudiantes(0)
ReDim Estudiantes(0).Puntuación(0)
ReDim Estudiantes(0).ScoreNo(0)
End Sub