问答题 在考生文件夹中有工程文件sit5.vbp及其窗体文件sj6.frm,该程序是不完整的,请在有“?”号的地方填入正确内容,然后删除“?”及所有注释符(即“'”号)但不能修改其他部分。存盘时不得改变文件名和文件夹。
本题描述如下。
在名称为Form1的窗体上有一个文本框,名称为Text1,MultiLine属性为True,ScrollBars属性为2;两个命令按钮,名称分别为Cmd1和Cmd2,标题分别为“读入数据”和“计算保存”,如图11-18所示。要求程序运行后,如果单击“读入数据”按钮,则读入“in.txt”文件中的100个整数,放入一个数组中(数组下界为1),同时在文本框中显示出来;如果单击“计算保存”按钮,则计算数组中大于或等于400并且小于800的所有数之和,把求和结果在文本框Text1中显示出来,同时把结果存入考生文件夹中的文件result.txt中。(在prog.bas中的putdata过程可以把结果存入result.txt文件)。
注意:文件必须存放在考生文件夹下,窗体文件名为sjt5.frm,工程文件名为sjt5.vbp,计算结果存入result.txt文件中,否则没有成绩。
【正确答案】建立界面并设置控件属性。程序中用到的控件及其属性如表11-5所示。
表11-5
控 件 属 性 设置值

文本框
Name
Scrollbars
Multiline
Text1
2
true

命令按钮
Name

Caption
Cmd1

读入数据

命令按钮
Name

Caption
Cmd2

计算保存
(2)编写程序代码。
程序提供的代码:
窗体代码
Dim i(1 To 100)As Integer
Private Sub Cmd1_Click()
Dimj As Integer
j=0
Open App.Path & "/in.txt"For Input As #1
For j=1 To 100
'Input #1,i(?)
Next
Close #1
For j=1 To 100
Text1.Text=Text1.Text&i(j) & Space(5)
Next
End Sub
Private Sub Cmd2_Click()
Dim temp As Long
Dim j As Integer
'For?=1 To 100
If i(j)>=400 And i(j)<800 Then
temp=temp+i(j)
End If
Next
'Text1.?=temp
putdata temp
End Sub
标准模块代码
Sub putdata(ByVal a As Integer)
Dim sFile As String
sFile="/result.txt"
Open App.Path & sFile For Output As #1
Print #1,a;
Close #1
End Sub
参考代码:
Dim i(1 To 100)As Integer
Private Sub Cmd1_Click()
Dimj As Integer
j=0
Open App.Path &"/in.txt"For Input As #1
For j=1 To 100
Input #1,i (j)
Next
C1ose #1
For j=1 To 100
Text1.Text=Text1.Text & i(j) & Space(5)
Next
End Sub
Private Sub Cmd2_Click()
Dim temp As Long
Dim j As Integer
For j=1 To 100
If i(j)>=400 And i(j)<800 Then
temp=temp+i(j)
End If
Next
Text1.Text=temp
putdata temp
End Sub
(3)调试并运行程序。
(4)按题目要求存盘。
【答案解析】[解析] 文本框显示的内容由Text属性设置;按钮的标题由Caption属性设置,单击命令按钮触发Click事件;在本题中涉及到文件的操作,读入顺序文件以顺序的方式打开,用Input#语句读取数据,另外需要注意的是对文件操作完后,一定要关闭文件。