在考生目录下有一个工程文件sjt5.vbp,其窗体如图1-53所示。考生目录下有一个in5.dat文件,文件中有5个运动员的姓名、7个裁判的打分和动作的难度系数。每人的数据占一行,顺序是:姓名、7个分数、难度系数。程序运行时,单击“输入”按钮,可把in5.

admin2010-09-02  38

问题 在考生目录下有一个工程文件sjt5.vbp,其窗体如图1-53所示。考生目录下有一个in5.dat文件,文件中有5个运动员的姓名、7个裁判的打分和动作的难度系数。每人的数据占一行,顺序是:姓名、7个分数、难度系数。程序运行时,单击“输入”按钮,可把in5.dat文件中的5个姓名读入数组athlete中,把5组得分(每组7个)和难度系数读入二维数组a中(每行的最后一个元素是难度系数),并把这些数据显示在Textl文本框中;单击“选出冠军”按钮,则把冠军的姓名和成绩分别显示在文本框Text2、Text3中。成绩的计算方法是:去掉一个最高分和一个最低分,求剩下得分的平均分,乘以3再乘以难度系数;单击“存盘”按钮,则把冠军姓名和成绩存入考生目录下的out5.dat文件中。
要求:去掉程序中的注释符,把程序中的?改为正确的内容(程序中getmark函数的功能是计算并返回第一个运动员的最后得分),并编写“选出冠军”按钮的Click事件过程。
注意:不得修改已经存在的程序和控件的属性,在结束程序运行前,必须用“存盘”按钮存储计算结果,否则无成绩。最后,程序按原文件名存盘。

选项

答案 【操作步骤】 步骤l:打开考生文件中的本题工程文件sjt5.vbp,在代码编辑窗口,去掉程序中的注释符“’”,将问号“?”改为正确的内容。 参考代码: s=a(n,1) For k=2 To 7 getmark=s *3*a(n, 8) PriVate Sub Command2_Click() 要求考生编写的程序 Dim k As Integer maxmark=getmark(1) m=1 For k=2 To 5 If maxmark键键运行程序,先单击“读入”按钮,然后单击“选出冠军”按钮,最后单击“存盘”按钮。

解析 根据题意,数组athlete中存入的是5个运动员的姓名,二维数组a中存入的是5个运动员每人的7个分数和一个难度系数,数组athlete中元素的下标与二维数组a中第一维的下标对应。
    原程序的getmark函数中,参数n为运动员的顺序号,变量s用于记录某运动员的7个分数之和,其初值设置为该运动员的第一个分数(即a(n,1))。统计7个分数之和是在For循环中完成的,依次将第2~7个分数累加入变量s。故循环终值应为;7。变量maxnum和minnum分别用于记录7个分数中的最高分和最低分,数组元素a(n,8)是难度系数,故getmark函数的返回值应为:getmark=s*3*a(n,8)。
    在“选出冠军”的Click事件过程中,可声明一个整型变量m,用于记录最后得分较高的运动员序号,其初值可设置为1。通过For循环依次比较第一个运动员与后面4人的最后得分,并用m记录下最后得分较高的运动员序号。循环结束,数组元素athlete(m)即为冠军的姓名,函数getmark(m)的值即为其最后得分。
转载请注明原文地址:https://kaotiyun.com/show/OUmp777K
0

最新回复(0)