问答题 注意:下面出现的“考生文件夹”均为c:/wexam/25160001。 去掉程序中的注释符,把程序中的?改为正确的内容,使其实现下述功能,但不能修改程序中的其他部分。 在窗体上有三个菜单(名称分别为Read、Calc和Save,标题分别为“读入数据”、“计算并输出”和“存盘”),还有一个文本框(名称为Text1,MultiLine属性设置为True,ScrollBars属性设置为2),如图22-8所示。 程序运行后,如果执行“读入数据”命令,则读入datain1.txt文件中的100个整数,放入一个数组中,数组的下界为1;如果单击“计算并输出”按钮,则把该数组中可以被3整除的元素在文本框中显示出来,求出它们的和,并把所求得的和在窗体上显示出来;如果单击“存盘”按钮,则把所求得的和存入考生文件夹下的dataout.txt文件中。 在考生文件夹下有一个工程文件sjt5.vbp,窗体文件中的ReadData过程可以把datain1.txt文件中的100个整数读入Arr数组中;而WriteData过程可以把指定的整数值写到考生文件夹下指定的文件中(整数值通过计算求得,文件名为dataout.txt)。 注意:考生不得修改窗体文件中已经存在的程序。存盘时,工程文件名仍为sjt5.vbp,窗体文件名仍为sjt5.frm。
【正确答案】
【答案解析】[解析] 在Visual Basic中,菜单项通过菜单编辑器来建立。
程序中用到的Mod是取模的运算符,如:N Mod 3=0则说明余数为0,N能被3整除,否则N不能被3整除。对文件的操作都有3个步骤:打开(Open)、读写、关闭(Close)。解题步骤:
第一步:建立菜单项、建立界面并设置控件属性。程序中用到的菜单项及其控件属性见表22-5。
表 22-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
Close #1
End Sub
Sub WriteData(Filename As String, Num As Integer)
Open App.Path & "/" & Filename For Output As #1
Print #1, Num
'?#1
End Sub
Private Sub Calc_Click()
'Text1.?=""
For i=1 To 100
If Arr(i) Mod 3=0 Then
Text1.Text=Text1.Text & Arr(i) & Space(5)
'temp=temp+9
End If
Next i
Print temp
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
If Art(i) Mod 3=0 Then
Text1.Text=Text1.Text & Arr(i) & Space(5)
temp=temp+Arr(i)
End If
Next i
Print temp
End Sub
Private Sub Read_Click()
ReadData
End Sub
Private Sub Save_Click()
WriteData "dataout.txt", temp
End Sub
第三步:调试并运行程序。
第四步:按题目要求存盘。