编一个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

'各运动员随机给分.

Text1.Text = "各运动员成绩:" &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

Text1.Text = Text1.Text &运动员成绩(i, 1) &" " &运动员成绩(i, 2) &" " &运动睁搜员成绩(i, 3) &" " &运动员成绩(i, 4) &" " &运动员成绩(i, 5) &" " &_

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

Next

'计算各运动员的成绩

Text1.Text = Text1.Text &"各运动员平均成绩:" &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

Text1.Text = Text1.Text &运动员平均成绩(i) &vbCrLf

Next

'按成绩排序

Text1.Text = Text1.Text &"组序后成绩:" &vbCrLf

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

For i = 1 To 30

Text1.Text = Text1.Text &运动员平均成绩(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

不好意思,老是粘贴错,再改一下,源代码我调试好了以后给你粘贴错了,这段代码我没有调试,不过应该可以的,你试试,不可以的话给我追问,我调试

你在vb的安装路径下新建一个text1.txt,用来输入学生成绩和姓物凯名,一个text2.txt,用来保存结果。注意text1.txt格式是这样的,

张3,10

李四,30

王二,40

private sub cmd_click()

dim scount as integer'用来存储学生的个数

scount=inputbox("请输入学生的个数")

dim a() as integer'用来存储文件里的所仔饥有数据

redim a(1 to 2*scount)

open app.path&"\"&"text1.txt" for input as#1

for i=1 to 2*scount

input#1,a(i)

next i

close#1

dim b() as integer'用来存储学生成绩

redim b(1 to scount)

dim c() as integer'用来存储学生姓名

redim c(1 to scount)

for i=1 to scount'读入学生成绩

b(i)=a(2*I)

next i

for i=1 to scount'读入学生姓名

c(i)=a(1+2*(i-1))

next i

for i=1 to scount-1'给成绩排序

max=b(i)

for j=i+1 to scount

if b(j)>max then

max=b(j)

p=j

temp=b(i)

b(i)=b(p)

b(p)=temp

end if

next j

next i

for i=1 to scount

for j=1 to scount

if b(i)=a(2*j) then

c(i)=a(2*j)

end if

next j

next i

open app.path&"\"&"text2.text" for 念蚂返append as#1

for i=1 to scount

print#1,c(i),b(i)

next i

close#1

end sub

’3个label,2个command

Private Sub Command1_Click()

Dim s, i, j, arr(1 To 10), t, sum

For i = 1 To 10

s = InputBox("输入评分(0-10分):", "第" &i &"个分数")

If IsNumeric(s) Then

s = Val(s)

If s <0 Or s >10 Then

i = i - 1

Else

arr(i) = s

End If

Else

i = i - 1

End If

Next

For i = 1 To 9

For j = i + 1 To 10

If arr(i) >arr(j) Then

t = arr(i): arr(i) = arr(j): arr(j) = t

End If

Next

Next

For i = 2 To 9

sum = sum + arr(i)

Next

Label1.Caption = "最高分亩亏侍为:" &arr(10)

Label2.Caption = "最低分为:" &arr(1)

Label3.Caption = "选手最后得分:"迅吵 &Round(sum / 8, 1)

End Sub

Private Sub Command2_Click()

Unload Me

End Sub

Private Sub Form_Load()

Command1.Caption = "评分"

Command2.Caption = "结束"空铅

With Label1

.Caption = ""

.AutoSize = True

End With

With Label2

.Caption = ""

.AutoSize = True

End With

With Label3

.Caption = ""

.AutoSize = True

End With

End Sub


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

原文地址:https://54852.com/yw/8202588.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存