打开考生文件夹下的sj5.vbp,在名称为Forml的窗体上有一个名称为Text1的文本框.两个命令按钮,名称分别为Commandl和Command2,命令按钮上分别显示“读入”和“排序”(如图70—5所示)。程序运行时单击“读入”按钮,将文件in5.da

admin2010-07-13  40

问题  打开考生文件夹下的sj5.vbp,在名称为Forml的窗体上有一个名称为Text1的文本框.两个命令按钮,名称分别为Commandl和Command2,命令按钮上分别显示“读入”和“排序”(如图70—5所示)。程序运行时单击“读入”按钮,将文件in5.dat中的数据读人数组a中,单击“排序”则把数组a中的数值按照升序排列,并显示在文本框中。

    注意:请在有“?”号的地方填入正确的内容,然后删除“?”及代码前的所有注释符(即“’”号),但不能修改其他部分。存盘时不得改变文件名和文件夹。

选项

答案 (1)本题主要考查了从文件中读取数据和数据的排序。要从文件中读取数据,首先要打开文件,在读文件的时候要用到EOF函数判断文件是否已读完。本题补充后的代码如下: Dim a()As Integer Dim num As Integer Private Sub Commandl_Click() Dim str As String num=0 str="" Open"App.Path&\in5.dat"For Input As#1 ’打开文件准备读取 While EOF(1)=False ’查看是否读到文件尾 Input#1,str’读取文件 num=num+1 ’计数 Wend Close#1 ’关闭文件 ReDim a(num) ’动态分配数组空间 Dim i As Integer str="" Open"App.Path&\in5.dat"For Input As#1 For i=1 To numl’利用For循环 Input#1,a(i) ’逐个读取数据 str=str+CStr(a(i))+"" ’将数组写入字符串中 Next i Close#1 Textl.Text str’将字符串显示在Textl中 End Sub Private Sub Command2_Click() Dim tex As String For i=1 To num ’升序排列 temp=a(i) For j=1 To i If a(j)>temp Then ’读取的数据比原位置的数据大 For k=i To j+l Step-l a(k)=a(k-1) ’数据向后偏移一个 Next k a(j)=temp Exit For End If Next j Next i tex="" For i=1 To 40 tex=rex+CStr(a(i))+"" Next i Textl.Text=tex’在Textl中显示排序后的结果 Open"App.Path&\out5.txt"For 0utput As#2 Print#2,Textl.Text Close#1 End Sub 单击[*]按钮运行程序,并按要求保存。

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

最新回复(0)