Red de conocimiento informático - Problemas con los teléfonos móviles - Programación VB para crear un sistema de consulta de puntuación

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

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