用什么语言编写程序?
Private Type Student
Name As String * 4
StudentID As String
Math As Single
English As Single
Physics As Single
Chemistry As Single
Total As Single
Average As Single
Ranking As Integer
End Type
Private Sub Command1_Click()
Randomize (Timer)
Dim Stu(4) As Student
For i = LBound(Stu) To UBound(Stu)
With Stu(i)
.Name = InputBox("No_" & i + 1 & "_Name:", "成绩录入", "000" & i + 1)
.StudentID = InputBox("No_" & i & "_ID:", "成绩录入", "15F00" + CStr(i))
.Math = InputBox("No_" & i + 1 & "_Math:", "成绩录入", Int(Rnd(i + 1) * 50 + 50))
.English = InputBox("No_" & i + 1 & "_English:", "成绩录入", Int(Rnd(i + 1) * 50 + 50))
.Physics = InputBox("No_" & i + 1 & "_Physics:", "成绩录入", Int(Rnd(i + 1) * 50 + 50))
.Chemistry = InputBox("No_" & i + 1 & "_Chemistry:", "成绩录入", Int(Rnd(i + 1) * 50 + 50))
.Total = .Math + .English + .Physics + .Chemistry
.Average = .Total / 4
List1.AddItem .Name + Space(2) + .StudentID + Space(2) + CStr(Format(.Math, "0.00")) + Space(2) + CStr(Format(.English, "0.00")) + Space(2) + CStr(Format(.Physics, "0.00")) + Space(2) + CStr(Format(.Chemistry, "0.00")) + Space(2) + CStr(Format(.Total, "0.00")) + Space(2) + CStr(Format(.Average, "0.00"))
End With
Next i
For i = LBound(Stu) To UBound(Stu) - 1
For j = i + 1 To UBound(Stu)
If Stu(j).Average > Stu(i).Average Then
t = Stu(i).Name
Stu(i).Name = Stu(j).Name
Stu(j).Name = t
t = Stu(i).StudentID
Stu(i).StudentID = Stu(j).StudentID
Stu(j).StudentID = t
t = Stu(i).Math
Stu(i).Math = Stu(j).Math
Stu(j).Math = t
t = Stu(i).English
Stu(i).English = Stu(j).English
Stu(j).English = t
t = Stu(i).Physics
Stu(i).Physics = Stu(j).Physics
Stu(j).Physics = t
t = Stu(i).Chemistry
Stu(i).Chemistry = Stu(j).Chemistry
Stu(j).Chemistry = t
t = Stu(i).Total
Stu(i).Total = Stu(j).Total
Stu(j).Total = t
t = Stu(i).Average
Stu(i).Average = Stu(j).Average
Stu(j).Average = t
End If
Next j
Next i
Stu(0).Ranking = 1
For i = LBound(Stu) + 1 To UBound(Stu)
If Stu(i).Average = Stu(i - 1).Average Then
Stu(i).Ranking = i + 1 - 1
Else
Stu(i).Ranking = i + 1
End If
Next i
List1.Clear
List1.AddItem "名次" + Space(2) + "姓 名" + Space(2) + "学 号" + Space(2) + "数 学" + Space(2) + "英 语" + Space(2) + "物 理" + Space(2) + "化 学" + Space(2) + "总 分" + Space(2) + "平均分"
For i = LBound(Stu) To UBound(Stu)
With Stu(i)
List1.AddItem Space(2) + CStr(.Ranking) + Space(3) + .Name + Space(1) + .StudentID + Space(2) + CStr(Format(.Math, "0.00")) + Space(2) + CStr(Format(.English, "0.00")) + Space(2) + CStr(Format(.Physics, "0.00")) + Space(2) + CStr(Format(.Chemistry, "0.00")) + Space(2) + CStr(Format(.Total, "0.00")) + Space(2) + CStr(Format(.Average, "0.00"))
End With
Next i
End Sub
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/9922720e0cf3d7caf404a263f81fbe096b63a931?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)