用vb数组设计打分统计程序

发布网友

我来回答

4个回答

热心网友

只用label1 、command1和 command2 共三个控件,代码如下:

Dim S() As Single, P As Single, I As Integer
Dim N As Integer, Max As Single, Min As Single

Private Sub Command1_Click()
Label1.Caption = "得分:"
For I = 1 To N
S(I) = Val(InputBox("第" & I & "个评委的打分:", "输入", I))
Label1.Caption = Label1.Caption & " " & S(I)
Next
Command2.Caption = "计算得分"
End Sub

Private Sub Command2_Click()
If Command2.Caption = "退出" Then End
Max = 1
Min = 1
S(0) = S(1)
For I = 2 To N
If S(Max) < S(I) Then Max = I
If S(Min) > S(I) Then Min = I
S(0) = S(0) + S(I)
Next I
S(0) = S(0) - S(Max) - S(Min)
P = S(0) / (N - 2)
Label1.Caption = "最后得分:" & Format(P, "0.00")
Command2.Caption = "退出"
End Sub

Private Sub Form_Load()
Command1.Caption = "输入分数"
Command2.Caption = "退出"
Label1.AutoSize = True
Label1.Caption = ""
N = Val(InputBox("评委人数:", "输入", 10))
ReDim S(N)
End Sub

已经运行过。 而且能改变评委人数。

热心网友

dim sngData as single '输入的分数
dim sngL as single '低分数值
dim sngG as single '高分数值
dim sngSum as single '分数之和
dim sngRlt as single '最后得分
dim i as integer '循环计数

sngL=0
sngG=0
sngSum=0
For i=1 to 10 '开始10个输入评分循环
sngData=val(inputbox("请输入分数:")) '输入评分
if sngL=0 then sngL=sngData '如果最低分为0,则初始化为第一个输入的数
if sngL>sngData then sngL=sngData '如果最低分高于刚输入的分数,则调整最低分
if sngG<sngData then sngG=sngData '如果最高分小于刚输入的分数,则调整最高分
sngSum=sngSum+sngData '将得分累加
Next

sngSum=(sngSum-sngL-sngG)/8 '取得平均分

msgbox sngSum '显示结果

热心网友

Option Explicit
Dim s(1 To 10) As Integer
Private Sub Command1_Click()
'输入10个成绩
For i = 1 To 10
s(i) = InputBox("")
x = x + s(i)
Next i
'让最大最小值等于第一个数
Max = s(1): Min = s(1)
'寻找最大最小数
For i = 2 To 10
If s(i) > Max Then Max = s(i)
If s(i) < Min Then Min = s(i)
Next i
'输出平均分
Print (x - Max - Min) / 8
End Sub

热心网友

太简单了吧 双循环就可以

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com