在名称为Form1的窗体上建立一个文本框Text1和两个命令按钮Cmd1和Cmd2,标题分别为“读入数据”和“排序显示保存”(如图所示)。程序运行后,如果单击“读入数据”按钮,则读入in006.txt文件中的100个整数,放入一个数组中(数组下界为1);如果单击“排序显示保存”按钮,则对这100个整数按从大到小进行排序,把排序后的全部数据在文本框Text1中显示出来,然后存入考生文件夹的out006.txt中。要求考生调用考生文件夹下的标准模块保存数据。
注意:
文件必须存放在考生文件夹下,窗体文件名为sjt5.frm,工程文件名sjt5.vbp,排序结果存入out006.txt,否则没有成绩。
参考答案:第一步:设计窗体
首先打开考生文件夹下的mode006.bas文件。然后单击工具箱中的文本框与控制按钮,在窗体上拖拉出两个控制按钮与文本框,控件间的相对位置如图所示。文本框的Name属性使用默认值;控制按钮的Name属性分别为Cmd1和Cmd2,Caption属性设为“读入数据”和“排序显示保存”。注意,为了完全显示所有的数据,应将Text1的MultiLine属性设为True,ScrollBars属性设为2,表示Text1可以使用垂直滚动条多行显示数据。
第二步:编写代码
双击控制按钮进入代码窗口,编写如下程序:
1 Option Explicit
2 Dim i(i To 100)As Integer
3 Private Sub Cmd1_Click( )
4 Dim j As Integer
5 Open App. Path &"\in006.txt"For Input As #1
6 For j=1 To 100
7 Input #1,i(j)
8 Text1.Text=Text1.Text &i(j) & Space(5)
Next
10 Close #1
11 End Sub
12 Private Sub Cmd2_Click( )
13 Dim j As Integer
14 Dim k As Integer
15 Dim temp As Integer
16 Dim flag As Boolean
17 For j=1 To 100
18 flag=False
19 For k=1 To 100-j
20 If i(k)<i(k+1)Then
21 temp=i(k)
22 i(k)=i(k+1)
23 i(k+1)=temp
24 flag=True
25 End If
26 Next
27 If Not flag Then
28 Exit For
29 End If
30 Next
31 Text1.Text=""
32 For j=1 To 100
33 Text1.Text=Text1.Text & i(j) & Space(5)
34 Next
35 putdata i,100
36 End Sub
第三步:编写完后,运行程序进行调试,确定没有问题后,分别保存窗体文件与工程文件到考生文件夹下。然后执行一次完整的操作,把经过排序的数列保存到out006.txt。
解析: 注意在设计控件时,一定要把Text1的MuhiLine属性设为True,ScrollBars属性设为2。只有这样,文本框才可以多行显示。Cmd1的程序代码部分主要是使用For循环语句逐一读入in006.txt中的数据,并将它们赋给数组i。Cmd2的程序代码仍然是通过两个If语句循环使用“冒泡法”升序排列在Text1中显示的数据。