在考生文件夹下有一个工程文件sjt5.vbp,窗体上有两个文本框,名称为Textl、Text2,都可以多行显示。还有三个命令按钮,名称分别为Cl、C2、C3,标题分别为“取数”、“排序”、“存盘”。“取数”按钮的功能是把考生目录下的in5.dat文件中的5

admin2010-09-02  50

问题 在考生文件夹下有一个工程文件sjt5.vbp,窗体上有两个文本框,名称为Textl、Text2,都可以多行显示。还有三个命令按钮,名称分别为Cl、C2、C3,标题分别为“取数”、“排序”、“存盘”。“取数”按钮的功能是把考生目录下的in5.dat文件中的50个整数读到数组中,并在Textl中显示出来;“排序”按钮的功能是对这50个数按升序排序,并显示在Text2中;“存盘”按钮的功能是把排好序的50个数保存到考生目录下的out5.dat文件中。如图1-146所示。在窗体中已经给出了全部控件和部分程序,要求阅读程序并去掉程序中的注释符,把程序中的?改为正确的内容,并编写“排序”按钮的Click事件过程,使其实现上述功能,但不能修改程序中的其他部分,也不能修改控件的属性。最后把修改后的文件按原文件名存盘。

选项

答案 【操作步骤】 步骤l:打开考生文件中的本题工程文件sjt5.vbp,在代码编辑窗口的指定位置编写以下代码: 参考代码: PriVate Sub C1_Click() Dim k As Integer。 Dim ch As String Open App.Path&"\in5.dat"For Input As#1 ch="" For k=1 T0 50 Input #1,a%(k%) ch=ch+Str(a(k)) +"" Next k Close#1 Textl.Text=ch$ End Sub Private Sub C2 Click() Dim k As Integer, i As Integer, j As Integer Dim ch As String For i=1 TO 49 k=i For j=i+1 To 50 If a(k)>a(j)Then k=j End If Next j j =a(k) a(k) =a fi) a(i) =j Next i ch="" For k=1 To 50 ch=ch+Str(a(k)) +"" Next k Text2.Text=ch End Sub 步骤2:按要求将文件保存至考生文件夹中。 步骤3:按键运行程序,先单击“取数”按钮,再单击“排序”按钮,最后单击“存盘”按钮。

解析 本题的“取数”按钮的单击事件首先利用Open语句打开考生目录下的in5.dat文件,然后使用For循环结合Input语句将50个整数读到数组中,并在Textl中显示出来。“排序”按钮的单击事件过程可以采用选择排序算法,其程序设计思路是:第一趟排序在数组中选出最小的记录a(k),将它与第一个记录a(1)交换,然后第二趟排序在a(2)~a(n)中找出最小的元素,令其与a(2)交换,以此类推,第i次排序就是在a(i)~a(n)中找出最小的元素令其与a(i)交换。这样,n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果。
转载请注明原文地址:https://jikaoti.com/ti/BNg0FFFM
0

最新回复(0)