3. 综合应用(1小题,计30分)
注意:下面出现的“考生文件夹”均为%USER%
在考生目录下有一个工程文件sjt5.vbp, 其窗体如图所示。考生目录下有一个in5.dat文件,文件中有5个运动员的姓名、7个裁判的打分和动作的难度系数。每人的数据占一行,顺序是:姓名、7个分数、难度系数。程序运行时,单击“输入”按钮,可把in5.dat文件中的5个姓名读入数组athlete中,把5组得分(每组7个)和难度系数读入二维数组a中(每行的最后一个元素是难度系数),并把这些数据显示在Text1文本框中;单击“选出冠军”按钮,则把冠军的姓名和成绩分别显示在文本框 Text2、Text3中。成绩的计算方法是: 去掉一个最高分和一个最低分,求剩下得分的平均分,再乘以3,再乘以难度系数;单击“存盘”按钮,则把冠军姓名和成绩存入考生目录下的out5.dat文件中。
要求:
去掉程序中的注释符,把程序中的 ? 改为正确的内容(程序中getmark函数的功能是计算并返回第n个运动员的最后得分),并编写“选出冠军”按钮的Click事件过程。
注意:
不得修改已经存在的程序和控件的属性,在结束程序运行前,必须用“存盘”按钮存储计算结果,否则无成绩。最后,程序按原文件名存盘。
解题思路:
启动Visual Basic系统,打开考生文件夹下需编辑的工程文件sjt5.vbp,相应的窗体文件名为sjt5.frm。
由于所提供的窗体程序不完整,需添加事件过程。
单击“选出冠军”按钮(即运行Click事件过程),在该Click事件过程中加入语句:
Private Sub Command2_Click()
Dim k As Integer
maxmark = getmark(1)
m = 1
For k = 2 To 5
If maxmark < getmark(k) Then
maxmark = getmark(k)
m = k
End If
Next k
Text2 = athlete(m)
Text3 = maxmark
End Sub
在函数的Private Function getmark(n As Integer) As Single事件过程中,有三处地方需要修改。
1) 将语句
's = ?
改为
s = a(n, 1)
2) 将语句
'For k = 2 To ?
改为
For k = 2 To 7
3) 将语句
'getmark = s * 3 * ?
改为
getmark = s * 3 * a(n, 8)
参考文件:c:/wexam/26990001/hlpsys/参考答案/sjt5.vbp、sjt5.frm、sjt5.vbw、out5.dat
请把这些文件复制到c:/wexam/26990001中,然后打开sjt5.vbp文件并运行。
① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;
② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。