考生文件夹下有工程文件sit5.vbp和数据文件in5.txt。in5.txt中有多条记录,每条记录占一行,含4个数据项,数据项的含义依次是:姓名、数学成绩、语文成绩、英语成绩。 窗体上按钮“读取数据”的功能是把in5.txt中的所有记录读到数组a中(每个

admin2017-03-27  30

问题 考生文件夹下有工程文件sit5.vbp和数据文件in5.txt。in5.txt中有多条记录,每条记录占一行,含4个数据项,数据项的含义依次是:姓名、数学成绩、语文成绩、英语成绩。
窗体上按钮“读取数据”的功能是把in5.txt中的所有记录读到数组a中(每个数组元素中有一条记录);按钮“排序”的功能是按总分从大到小排序,结果仍放在数组a中;按钮“保存”的功能是存盘,其代码已经给出,不能修改。
请将事件过程中的注释符去掉,把“?”改为正确的内容,并编写“排序”按钮的事件过程。
注意:考生不得修改窗体文件中已经存在的控件和程序,必须运行程序,并依次按下“读入数据”、“排序”、“保存”按钮,否则无成绩,最后将程序按原文件名存盘。

选项

答案步骤1:打开考生文件夹中的工程文件sjt5.vbp,在代码编辑窗口中,去掉程序中的注释符“’”,将问号“?”改为正确的内容。 参考代码: Do While Not EOF(1) num=k-1 Private Sub Command2_Click() ’==========考试编写========== Dim k As Integer,j As Integer Dim temp As rec For i=1To num-1 k=i For j=i+1To num If sum(k)<sum(j)Then k=j End If Next j temp=a(i):a(i)=a(k) a(k)=temp Next i For k=1To num print a(k).name;a(k).Math; a(k).Chinese;a(k).English Next k ’============================== 步骤2:按<F5>键运行程序,单击各个按钮测试验证。 步骤3:按要求将文件保存至考生文件夹中。

解析 题目要求从in5.txt读出数据,然后排序并保存到输出文件。程序已经完成保存命令按钮的事件代码,需要补充排序代码和修改读取数据代码。
第一个“?”处判断循环的结束条件,如果文件没有结束则继续读取,EOF函数检查文件是否到文件尾,参数是文件号:第二个“?”处是计算记录的数量,由于循环变量k的初值为1,每次循环记录数增加1,因此循环结束之后k比记录数多1。
数据排序可以使用多种排序方法,比如选择法排序,其方法是:
(1)从n个数的数序列中选出最大的数,与第1个数交换位置;除第1个数外,其余n-1个数再按(1)的方法选出次大的数,与第2个数交换位置;
(3)重复(1)步n-1遍,最后构成递减序列。
转载请注明原文地址:https://kaotiyun.com/show/QhGp777K
0

最新回复(0)