问答题 在考生文件夹中有工程文件Sj5.vbp及其窗体文件sj5.frm,该程序是不完整的,请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即'号),但不能修改其他部分。存盘时不得改变文件名和文件夹。
本题描述如下:
在名称为Form1的窗体上有一个文本框,名称为Text1、MultiLine属性为True、ScrollBars属性为2;两个命令按钮,名称分别为Command1和Command2,标题分别为“读取”和“计算保存”,运行界面如下图所示。要求程序运行后,如果单击“读取”按钮,则读人“in.txt”文件中的50个整数,放入一个数组中(数组下界为1),同时在文本框中显示出来;如果单击“计算保存”按钮,则计算大于或等于500的所有数的平均数,并把求得的结果在文本框Text1中显示出来,同时把该结果存入考生文件夹中的文件“out.txt”中(在考生文件夹下的标准模块mode.bas中的writedata过程可以把结果存入指定的文件)。
注意:文件必须存放在考生文件夹下,窗体文件名为sj5.frm,工程文件名为sj5.vbp,计算结果存入out.txt文件,否则没有成绩。
【正确答案】文本框显示的内容由Text属性设置,Multiline属性设置文本框是否可多行显示;按钮的标题由Caption属性设置,单击命令按钮触发Click事件。题中涉及对文件的操作,读入顺序文件以顺序的方式打开,用Input #语句读取数据,另外需要注意的是对文件操作完后,一定要关闭文件。
根据题意要求将一个文本框控件和两个命令按钮添加到窗体中,其中文本框的名称为Name1,MultiLine属性为True,滚动属性为2;命令按钮的名称分别为Command1和Command2,Caption的属性分别为“读取”和“计算保存”。在“工程”窗口中单击鼠标右键,在弹出的快捷菜单中选择“添加”→“添加模块”,然后在弹出对话框的“现存”选项卡中选择“mode.bas”,单击“确定”按钮即添加成功。模块mode.bas中的代码如下:
Function writeData(total As Long)
Open "out.txt" For Output As # 1
Write # 1,total
Close # 1
End Function
窗体中补充后的代码如下:
Dim a(50) As Long '全局变量
Dim str(50) As String '全局变量
Dim total As Long
Dim n As Integer
Private Sub Command1_Click()
total=0
n=0
Text1.Text=" "
Open "in.txt" For Input As # 1 '打开“in.txt”文件
Dim i AS Integer
Dim temp As Integer
For i=0 To 49
Input # 1,temp
a(i)=temp '按顺序读入到数组中
Next i
For i=0 To 49
If a(i)>=500 Then
total=total+a(i) '当符合条件时进行相加
n=n+1 '当符合条件是则n增1
End If
str(i)=a(i)
Text1.Text=Text1.Text+str(i)+vbCrLf '将数组中的50个数放入Text中显示
Next i
total=total/n
Close # 1
End Sub

Private Sub Command2_Click()
Text1.Text=total
writeData(total) '将结果保存到out.txt
End Sub
单击
【答案解析】