vb问题 越快越好

来源:百度知道 编辑:UC知道 时间:2024/05/14 06:05:20
【实验题8-1】试编写程序,利用 InputBox函数输入n个学生的2门功课成绩,求总成绩和平均成绩,将平均成绩大于80分学生的序号,2门功课的成绩、总成绩和平均成绩在窗体上输出。图8-5是输入3名学生的成绩,其中第1名和第3名学生的成绩大于80分,他们的成绩被打印出来。
我的程序是:Private Sub Command1_Click()
Dim score(1 To 2) As Integer
For i = i To n
For j = 1 To 2
score(j) = Val(InputBox("请输入成绩score(j)"))
total = total + score(j)
score(j) = total
average = total / 2
Next j
Next i
If average > 80 Then
Print "i ", score(1); , ; score(2); , ; score(i); , ; average;
End If
End Sub
弄不出来

你应该学会使用自定义数据类型。根据你的描述我把你的代码改了一下,不知能否满足要求。
Private Type stu_info
stu_num As Integer
score(1 To 2) As Single

total As Single
average As Single
End Type
Const n = 5

Private Sub Command1_Click()
Dim stu(1 To n) As stu_info
Dim i, j As Integer
For i = 1 To n
For j = 1 To 2
stu(i).stu_num = i
stu(i).score(j) = Val(InputBox("请输入第" & i & "同学的第" & j & "门课的成绩"))
Next j
stu(i).total = stu(i).score(1) + stu(i).score(2)
stu(i).average = stu(i).total / 2
Next i
For i = 1 To n
If stu(i).average > 80 Then
Print i, stu(i).score(1), stu(i).score(2), stu(i).average, Chr(10), Chr(13)
End If
Next i
End Sub