在考生文件夹中有工程文件st5.vbp及其窗体文件sj5.frm,该程序是不完整的。在名称为Forml的窗体上有一个文本框,名称为Textl、MultiLine属性为True、ScrollBars属性为2;两个命令按钮,名称分别为Commandl和Comm

admin2010-07-13  22

问题  在考生文件夹中有工程文件st5.vbp及其窗体文件sj5.frm,该程序是不完整的。在名称为Forml的窗体上有一个文本框,名称为Textl、MultiLine属性为True、ScrollBars属性为2;两个命令按钮,名称分别为Commandl和Command2、标题分别为“读入”和“排列保存”,运行界面如图65—6所示。要求程序运行后,如果单击“读入”按钮,则从in.txt文件中读入50个整数,放入一个数组中(数组下界为1);如果

单击“排列保存”按钮,则对这50个数从大到小进行排序,把排序后的全部数据在文本框Textl中显示出来,然后存人考生文件夹中的result.txt文件中(在程序中的标准模块mode5.bas过程可以把指定个数的数组元素存入result.txt文件)。
    注意:请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即“’”号),但不能修改其他部分。存盘时不得改变文件名和文件夹。文件必须存放在考生文件夹下,窗体文件名为sj5.frm,工程文件名为sj5.vbp,排序结果存入result.txt文件,否则没有成绩。

选项

答案 在本题中涉及文件的操作,用Write#或Input#语句读取数据,对文件操作完后一定要关闭文件。 根据题意,将一个文本框控件和两个命令按钮添加到窗体中,根据题意的要求设置属性,即文本框的名称为Textl、MultiLine属性为true、ScrollBars属性为2,两个命令按钮的控件的Caption属性分别为“读取”和“排列保存”,名称为Commandl和Command2。在“工程”窗口中单击右键,在弹出的快捷菜单中选择“添加”一“添加模块”,然后在弹出对话框的“现存”选项卡中选择“mode5.bas”,单击“确定”按钮即添加成功。模块的代码如下: Function writeData(total AS Long) Open App.Path&."\result.txt"For Append As#1 Write#1,total Close#1 End Function 分析程序可知,程序在读取的同时就进行了排序,一旦读取的数比当前数大,则将两数位置交换,继续比较后面的数。补充后的具体代码如下: Dim str(50)As String’全局变量 Dim a(50)As Long’全局变量 Private Sub Commandl Click() Textl.Text="" Open App.Path&"\in.txt"For Input As#1 Dim i As Integer For i=0 To 49 Input#1,a(i) Next i For i=0 TO 49 str(i)=a(i) Textl.Text=Textl.Text+str(i)+vbCrLf Next i Close#l End Sub Private Sub Command2_Click() Dim i As Integer Dim j As Integer Dim temp As Integer Dim k As Integer Textl.Text="" For i=0 To 49 temp=a(i) For i=0 TO i If a(j)<temp Then For k=i To j+1 Step-1 a(k)=a(k-1) Next k a(j)=temp Exit For End If Next j Next i For i=0 TO 49 str(i)=a(i) Textl.Text=Textl.Text+str(i)+vbCrLf writeData(str(i)) Next i End Sub 单击[*]按钮运行程序,并按要求保存。

解析
转载请注明原文地址:https://jikaoti.com/ti/9yg0FFFM
0

最新回复(0)