问答题 注意:下面出现的“考生文件夹”均为c:/wexam/25160001。 在窗体上有三个菜单,名称分别为Read、Calc和Save,标题分别为“读入数据”、“计算并输出”和“存盘”,一个文本框,名称为Text1,MultiLine属性设置为Tree,ScrollBars属性设置为2,如图21-7所示。 程序运行后,如果执行“读入数据”命令,则读入datain1.txt文件中的100个整数,放入一个数组中,数组的下界为1;如果单击“计算并输出”按钮,则把该数组中下标为奇数的元素在文本框中显示出来,求出它们的和,并把所求得的和在窗体上显示出来;如果单击“存盘”按钮,则把所求得的和存入考生文件夹下的dataout.txt文件中。 在考生文件夹下有一个工程文件sjt5.vbp,窗体文件中的ReadData过程可以把datain1.txt文件中的100个整数读入Air数组中;而WriteData过程可以把指定的整数值写到考生文件夹下指定的文件中(整数值通过计算求得,文件名为dataout.txt)。请将程序中有问号的地方用相应的代码补完整,将注释号(')去掉。 注意:考生不得修改窗体文件中已经存在的程序。存盘时,工程文件名仍为sjt5.vbp,窗体文件名仍为sjt5.frm。
【正确答案】
【答案解析】[解析] 使用Open方法和Close方法打开和关闭文件,使用循环语句把整数赋给数组。在计算输出时,先定义一个变量,用来保存奇数的和;计算时找出数组中下标为奇数的数进行累加,将结果在文本框中显示出来。在窗体上打印内容可以用 Print方法来实现。解题步骤:
第一步:建立菜单项、建立界面并设置控件属性。程序中用到的菜单项及其控件属性见表21-5。
表 21-5
标 题
名 称
内 缩 符 号
 读入数据  Read  0
 计算并输出  Calc  0
 存盘  Save  0
 Text  Name  Text1
第二步:编写程序代码。
程序提供的代码:
Option Base 1
Dim Arr(100) As Integer
Dim temp As Integer
Sub ReadData()
Open App.Path & "/" & "datain1.txt" For Input As #1
For i=1 To 100
Input #1, Arr(i)
Next i
'? #1
End Sub
Sub WriteData(Filename As String, Num As Integer)
Open App.Path & "/" & Filename For Output As #1
Print #1, Num
Close #1
End Sub
Private Sub Calc_Click()
'Text1.?=""
For i=1 To 100 Step 2
Text1.Text=Text1.Text & Arr(i) & Space(5)
temp=temp+Arr(i)
Next i
'Print ?
End Sub
Private Sub Read_Click()
ReadData
End Sub
Private Sub Save_Click()
WriteData "dataout.txt", temp
End Sub
参考代码:
Option Base 1
Dim Arr(100) As Integer
Dim temp As Integer
Sub ReadData()
Open App.Path & "/" & "datain1.txt" For Input As #1
For i=1 To 100
Input #1, Arr(i)
Next i
Close #1
End Sub
Sub WriteData(Filename As String, Num As Integer)
Open App.Path & "/" & Filename For Output As #1
Print #1, Num
Close #1
End Sub
Private Sub Calc_Click()
Text1.Text=""
For i=1 To 100 Step 2
Text1.Text=Text1.Text & Arr(i) & Space(5)
temp=temp+Arr(i)
Next i
Print temp
End Sub
Private Sub Read_Click()
ReadData
End Sub
Private Sub Save_Click()
WriteData "dataout.txt", temp
End Sub
第三步:调试并运行程序。
第四步:按题目要求存盘。