问答题
18分
考生文件夹下有工程文件sjt5.vbp和数据文件in5.txt。in5.txt中有多条记录,每条记录占一行,含4个数据项,数据项的含义依次是:姓名、数学成绩、语文成绩、英语成绩。  ...
考生文件夹下有工程文件sjt5.vbp和数据文件in5.txt。in5.txt中有多条记录,每条记录占一行,含4个数据项,数据项的含义依次是:姓名、数学成绩、语文成绩、英语成绩。
窗体上按钮“读取数据”的功能是把in5.txt中的所有记录读到数组a中(每个数组元素中有一条记录);按钮“排序”的功能是按总分从大到小排序,结果仍放在数组a中;按钮“保存”的功能是存盘,其代码已经给出,不能修改。
请将事件过程中的注释符去掉,把 ?改为正确的内容,并编写“排序”按钮的事件过程。
注意:
考生不得修改窗体文件中已经存在的控件和程序,必须运行程序,并依次按下“读入数据”、“排序”、“保存”按钮,否则无成绩,最后将程序按原文件名存盘。
窗体上按钮“读取数据”的功能是把in5.txt中的所有记录读到数组a中(每个数组元素中有一条记录);按钮“排序”的功能是按总分从大到小排序,结果仍放在数组a中;按钮“保存”的功能是存盘,其代码已经给出,不能修改。
请将事件过程中的注释符去掉,把 ?改为正确的内容,并编写“排序”按钮的事件过程。
注意:
考生不得修改窗体文件中已经存在的控件和程序,必须运行程序,并依次按下“读入数据”、“排序”、“保存”按钮,否则无成绩,最后将程序按原文件名存盘。
参考解析: 【解题思路】利用冒泡排序法对数组中的元素进行排序,冒泡排序法的算法思想为:对数组中n个元素按照升序或降序进行排列。利用循环结构对数组中相邻的两个元素进行比较,如果第i项小于第i+1项,则进行交换。这样经过n-1趟,便可以将数组中的元素排序完毕。
【操作步骤】
步骤1:打开本题项目工程
步骤2:打开代码编辑窗口,去掉程序中的注释符“'”,将问号改为正确的内容。
参考答案(阴影部分是需考生填入的内容)
Private Sub Command1_Click()
Open App.Path & "\in5.txt" For Input As #1
k = 1
Do While Not EOF(1)
Input #1, a(k).name, a(k).Math, a(k).Chinese, a(k).English
k = k + 1
Loop
Close #1
num = k
End Sub
Private Sub Command2_Click()
Dim temp As rec
Dim i, j As Integer
For i = 1 To num
For j = 1 To num - i
If sum(j) < sum(j + 1) Then
temp = a(j)
a(j) = a(j + 1)
a(j + 1) = temp
End If
Next j
Next i
End Sub
步骤3:调试并运行程序,关闭程序后按题目要求存盘。