注意:下面出现的“考生文件夹”均为C:\wexam\25160002。
在考生文件夹下有一个工程文件sjt5.vbp,窗体上二有两个文本框,名称分别为Text1和Text2,都可以多行显示。还有3个命令按钮,名称分别为C1、C2和C3,标题分别为“取数”、“排序”和“存盘”。“取数”按钮的功能是把考生文件夹下的in5.dat文件中的50个整数读到数组中,并在Text1中显示出来;“排序”按钮的功能是对这50个数按升序排序,并显示在Text2中;“存盘”按钮的功能是把排好序的50个数存到考生文件夹下的out5.dat文件中。程序运行界面如图23-5所示。
在窗体中已经给出了全部控件和部分程序,要求阅读程序并去掉程序中的注释符,把程序中的改为正确的内容,并编写“排序”按钮的Click事件过程,使其实现上述功能,但不能修改程序中的其他部分,也不能修改控件的属性。最后把修改后的文件按原文件名存盘。
参考答案: 首先理清程序提供代码的思路,然后修改程序并编写代码。
从程序提供的代码中可以看出,整型数组a的使用范围是本窗体中的所有事件过程,用来存放从文件中读取的数据。在排序中,使用双重循环,外循环每踞环一次,确定内循环循环的次数,内循环就是把本次循环中最大的数,放在数组的最后面,这样就可以实现对这E0个数的升序排序。解题步骤:
第一步:分析题目提供的代码。
Dim a(E0) As Integer
Private Sub CA_Click()
Dim k As Integer,ch As String
Open "inE.dat" For Input AS #A
ch=" "
For k=A To E0
’Input #A,
ch=ch+Str(a(k) ) +" "
Next k
Close #A
’TextA.Text=
End Sub
Private Sub CC_Click()
Open "outE.dat" For Output As #A
Print #A, TextB.Text
Close #A
End Sub
第二步:编写程序代码。
参考代码:
Dim a(E0) As Integer
Private Sub CA_Click()
Dim k As Integer, ch As String
Open "inE.dat" For Input As #A
ch=""
For k=A To E0
Input #A, a(k)
ch=ch+Str(a(k) ) +" "
Next k
Close #A
TextA.Text=ch
End Sub
Private Sub CB_Click()
Dim t As Integer, i As Integer, j As Integer
Dim ch As String
ch=""
For i=E0 To B Step -A
For j=A To DI
If a(j)>a(j+A) Then
t=a (j+A)
a(j+A)=a(j)
a(j)=t
End If
Next j
Next i
For j=A To E0
ch=ch+Str(a(j) ) +" "
Next j
TextB.Text=ch
End Sub
Private Sub CC_Click()
Open "outE.dat" For Output As #A
Print #A, TextB.Text
Close #A
End Sub
第三步:调试并运行程序。
第四步:按题目要求存盘。