编一个VB程序,30个选手,10个评委,0~10 分,去掉最高分与最低分,求平均分,并将选手成绩排名

编一个VB程序,30个选手,10个评委,0~10 分,去掉最高分与最低分,求平均分,并将选手成绩排名,第1张

看以下代码是否合用[ 先要建立一个TextBox 和 一个Command ]:

Private Sub Command1_Click()

Dim 运动员成绩(1 To 30, 1 To 10) As Double '30人,10个成绩评分

Dim 运动员平均成绩(1 To 30) As Double, 中介数组(1 To 10) As Double

Dim 最低分 As Double, 最高分 As Double, 合计分数 As Double

'各运动员随机给分

Text1Text = "各运动员成绩:" & vbCrLf

Dim 随机值, 上限, 下限

上限 = 10

下限 = 0

随机值 = Int((上限 - 下限 + 1) Rnd(Second(Now)) + 下限)

For i = 1 To 30

For j = 1 To 10

运动员成绩(i, j) = Int((上限 - 下限 + 1) Rnd(Second(Now)) + 下限)

Next

Text1Text = Text1Text & 运动员成绩(i, 1) & " " & 运动员成绩(i, 2) & " " & 运动员成绩(i, 3) & " " & 运动员成绩(i, 4) & " " & 运动员成绩(i, 5) & " " & _

运动员成绩(i, 6) & " " & 运动员成绩(i, 7) & " " & 运动员成绩(i, 8) & " " & 运动员成绩(i, 9) & " " & 运动员成绩(i, 10) & vbCrLf

Next

'计算各运动员的成绩

Text1Text = Text1Text & "各运动员平均成绩:" & vbCrLf

For i = 1 To 30

合计分数 = 0

For j = 1 To 10

中介数组(j) = 运动员成绩(i, j)

合计分数 = 合计分数 + 中介数组(j)

If j = 10 Then

最低分 = Max(中介数组)

最高分 = Min(中介数组)

运动员平均成绩(i) = (合计分数 - 最低分 - 最高分) / 8

End If

Next

Text1Text = Text1Text & 运动员平均成绩(i) & vbCrLf

Next

'按成绩排序

Text1Text = Text1Text & "组序后成绩:" & vbCrLf

Call 排序(运动员平均成绩)

For i = 1 To 30

Text1Text = Text1Text & 运动员平均成绩(i) & vbCrLf

Next

End Sub

Public Sub 排序(List() As Double)

Dim First As Double, Last As Double

Dim i As Integer, j As Integer

Dim Temp As Double

First = LBound(List)

Last = UBound(List)

For i = First To Last - 1

For j = i + 1 To Last

If List(i) > List(j) Then

Temp = List(j)

List(j) = List(i)

List(i) = Temp

End If

Next j

Next i

End Sub

Public Function Max(输入() As Double) As Double

Dim First As Double, Last As Double

Dim i As Integer, j As Integer

Dim Temp As Double

First = LBound(输入)

Last = UBound(输入)

For i = First To Last - 1

For j = i + 1 To Last

If 输入(i) > 输入(j) Then

Temp = 输入(j)

输入(j) = 输入(i)

输入(i) = Temp

End If

Next j

Next i

Max = 输入(i)

End Function

Public Function Min(输入() As Double) As Double

Dim First As Double, Last As Double

Dim i As Integer, j As Integer

Dim Temp As Double

First = LBound(输入)

Last = UBound(输入)

For i = First To Last - 1

For j = i + 1 To Last

If 输入(i) > 输入(j) Then

Temp = 输入(j)

输入(j) = 输入(i)

输入(i) = Temp

End If

Next j

Next i

Min = 输入(1)

End Function

Private Sub Command1_Click()

Dim arry1(9) As Variant

For i = 0 To 9

arry1(i) = Val(Text1(i)Text)

Next

'对数组排序

Dim w1, w2 As Integer

Dim temp1 As Variant

For w1 = 0 To UBound(arry1()) - 1

For w2 = w1 + 1 To UBound(arry1())

If arry1(w1) < arry1(w2) Then

temp1 = arry1(w1)

arry1(w1) = arry1(w2)

arry1(w2) = temp1

End If

Next

Next

Sum = 0

For j = 1 To 8

Sum = Sum + arry1(j)

Next

MsgBox "去掉一个最高分:" & arry1(0) & "--去掉一个最低分:" & arry1(9) & "--最后得分为:" & Sum / 8

End Sub

用控件数组,放一个text,然后复制粘贴成10个

Dim a(20) '如果不需要显示20个数的话,不需要数组,a(i)用X代替就可以

Dim max!, Min!, i%

Private Sub Command1_Click() '按钮单击

For i = 1 To 20

a(i) = Int(Rnd 10) + 1 '[1~10]间在随机数

s = s + a(i) '求和

If i = 1 Then '最大最小值的初值为第一个数

max = a(1): Min = a(1)

Else

If max < a(i) Then max = a(i)

If Min > a(i) Then Min = a(i)

End If

Next i

Print (s - max - Min) / 18 '求平均

End Sub

一般程序这种东西没有完全的唯一答案,因为大家的算法会是不一样的,你要进屋,可以走门,也可以翻窗,目的都是进去屋子。

说整体,判断是否用到必须要用到的函数,判断结果是否正确,别的不用判断什么了,因为在计算机二级,不管是C,VB,ACCESS,VF等,只要答案对了就可以,你写1句程序,和写100句的结果是一样的就行了。

Private Sub Command1_Click()

Dim a(1 To 10)

Dim ave, sum, min, max

For i = 1 To 10

a(i) = Val(InputBox("请输入第" & i & "个评委的分数"))

Print a(i);

Next i

Print

min = a(1)

max = a(10)

For i = 1 To 10

sum = sum + a(i)

If a(i) < min Then min = a(i)

If a(i) > max Then max = a(i)

Next i

ave = (sum - min - max) / 8

Print "选手的最终成绩:" & ave

End SubPrivate Sub Form_Load()

MeAutoRedraw = True

Print "输入十位评委的分数:"

End Sub

Dim a, b, i, j, h As Integer, c(1 To 4), d As String

Private Sub Command1_Click()

a = Int(Rnd 11)

b = Int((Rnd 10) + 1)

c(1) = "+": c(2) = "-": c(3) = "": c(4) = "/"

j = Int((Rnd 4) + 1)

d = c(j)

Label1Caption = a & d & b & "=" & ""

Label1Refresh

Command1Enabled = False

End Sub

Private Sub Command2_Click()

i = i + 1

If d = c(1) Then

If Text1Text = a + b Then

MsgBox "恭喜你,计算正确"

h = h + 1

Text1Text = ""

Command1Enabled = True

Label2Caption = "共" & i & "道题," & "答对" & h & "道题。"

Label2Refresh

Else

MsgBox "真遗憾,计算错误"

Text1Text = ""

Command1Enabled = True

Label2Caption = "共" & i & "道题," & "答对" & h & "道题。"

Label2Refresh

End If

ElseIf d = c(2) Then

If Text1Text = a - b Then

MsgBox "恭喜你,计算正确"

h = h + 1

Text1Text = ""

Command1Enabled = True

Label2Caption = "共" & i & "道题," & "答对" & h & "道题。"

Label2Refresh

Else

MsgBox "真遗憾,计算错误"

Text1Text = ""

Command1Enabled = True

Label2Caption = "共" & i & "道题," & "答对" & h & "道题。"

Label2Refresh

End If

ElseIf d = c(3) Then

If Text1Text = a b Then

MsgBox "恭喜你,计算正确"

h = h + 1

Text1Text = ""

Command1Enabled = True

Label2Caption = "共" & i & "道题," & "答对" & h & "道题。"

Label2Refresh

Else

MsgBox "真遗憾,计算错误"

Text1Text = ""

Command1Enabled = True

Label2Caption = "共" & i & "道题," & "答对" & h & "道题。"

Label2Refresh

End If

ElseIf d = c(4) Then

If CDbl(Text1Text) = a / b Then

MsgBox "恭喜你,计算正确"

h = h + 1

Text1Text = ""

Command1Enabled = True

Label2Caption = "共" & i & "道题," & "答对" & h & "道题。"

Label2Refresh

Else

MsgBox "真遗憾,计算错误"

Text1Text = ""

Command1Enabled = True

Label2Caption = "共" & i & "道题," & "答对" & h & "道题。"

Label2Refresh

End If

End If

End Sub

12、〖14〗 for output

〖15〗 not eof(1)

13、 16 combo1list(i)

17 Combo1additem

14、18Text1(0)

19 1

20 sum-min-max

以上就是关于编一个VB程序,30个选手,10个评委,0~10 分,去掉最高分与最低分,求平均分,并将选手成绩排名全部的内容,包括:编一个VB程序,30个选手,10个评委,0~10 分,去掉最高分与最低分,求平均分,并将选手成绩排名、用VB设计个竞赛评分系统,该系统能显示评委分数,去掉最高分最低分,最后输出选手的平均得分、VB编程:设计一个体 *** 评分程序, 20 位评委,除去一个最高分和一个最低分,计算平均分等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10629584.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存