注意:下面出现的“考生文件夹”均为c:\wexam\25160001。
(1) 在名称窗体为Form1,KeyPreview属性为True的窗体上有一个列表框(名称为List1)和一个文本框(名称为Text1),如图22-5所示。编写窗体的KeyDown事件过程。程序运行后,如果按“A”键,则从键盘上输入要添加到列表框中的项目(内容任意,不少于三个);如果按“D”键,则从键盘上输入要删除的项目,将其从列表框中删除。程序的运行情况如图22-6所示。
在考生文件夹下有一个工程文件sjt3.vbp(相应的窗体文件名为sjt3.frm),可以实现上述功能。但这个程序不完整,请把它补充完整。
要求:去掉程序中的注释符,把程序中的?改为适当的内容,使其正确运行,但不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。

(2) 在考生文件夹下有一个工程文件sjt4.vbp(相应的窗体文件名为sjt4.frm),其功能是通过调用过程Average求数组的平均值,请装入该文件。程序运行 后,在4个文本框中各输入一个整数,然后单击命令按钮,即可求出数组的平均值,并在窗体上显示出来,如图22-7所示。这个程序不完整,请把它补充完整,并能正确运行。
要求:去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。

第二步:编写程序代码。
程序提供的代码:
Private Sub Form_KeyDown(KeyCode As Integer Shift As Integer)
If Chr(KeyCode)="A" Then
Text1.Text=InputBox ("请输入要添加的项目")
' List1.AddItem ?
End If
If Chr(KeyCode)="D" Then
Text1.Text=InputBox ("请输入要删除的项目")
'For i=0 To ?
'If List1.List(i)=? Then
' List1.RemoveItem ?
End If
Next i
End If
End Sub
参考代码:
Private Sub Form_KeyDown(KeyCode As Integer Shift As Integer)
If Chr(KeyCode)="A" Then
Text1.Text=InputBox ("请输入要添加的项目" )
List1. AddItem Text1
End If
If Chr(KeyCode)="D" Then
Text1.Text=InputBox ("请输入要删除的项目")
For i=0 To List1.ListCount-1
If List1.List(i)=Form1.Text1 Then
List1.RemoveItem (i)
End If
Next i
End If
End Sub
第三步:调试并运行程序。
第四步:按题目要求存盘。
(2)文本框里的内容(包括数字)默认都是当作字符串来处理的如果要参与数据运算则需先用Val函数将其转化为数字类型。这里需要指出的是利用Array函数对数组各元素赋值声明的数组只能是Variant类型数组的上下界可用 UBound和LBound函数获得这两个函数的格式分别为:
LBound(数组[维])
UBound(数组[维])
这两个函数分别返回一个数组中的下界和上界。其中“数组”是一个数组名“维”是要测试的维。LBound函数返回“数组”的下界而UBound函数返回
“数组”某一“维”的上界值这两个函数一起使用即可确定一个数组的大小。解题步骤:
第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表22-4。
第二步:编写程序代码。
程序提供的代码:
Option Base 1
Private Function Average(a() As Integer) As Sincle
Dim Start As Integer Finish As Integer
Dim i As Integer
Dim Sum As Integer
'Start=?(a)
'Finish=?(a)
'Sum=?
For i=Start To Finish
'Sum=Sum+?
Next i
'Average=?
End Function
Private Sub Command1_Click()
Dim arr1
Dim arr2(4) As Integer
arr1=Array(Val(Text1.Text) Val(Text2.Text) Val(Text3.Text) Val(Text4.Text) )
For i=1 To 4
arr2(i)=CInt(arr1(i) )
Next i
'Aver=Average(?)
Print "平均值是:"; Aver
End Sub
参考代码:
Option Base 1
Private Function Average(a() As Integer) As Single
Dim Start As Integer Finish As Integer
Dim i As Integer
Dim Sum As Integer
Start=LBound(a)
Finish=UBound(a)
Sum= 0
For i=Start To Finish
Sum=Sum+a(i)
Next i
Average=Sum/Finish
End Function
Private Sub Command1_Click()
Dim arr1
Dim arr2(4) As Integer
arr1=Array(Val(Text1.Text) Val(Text2.Text) Val(Text3.Text) Val(Text4.Text) )
For i=1 To 4
arr2(i)=CInt(arr1(i) )
Next i
Aver=Average (arr2)
Print "平均值是:"; Aver
End Sub
第三步:调试并运行程序。
第四步:按题目要求存盘
第二步:编写程序代码。
程序提供的代码:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If Chr(KeyCode)="A" Then
Text1.Text=InputBox ("请输入要添加的项目")
' List1.AddItem ?
End If
If Chr(KeyCode)="D" Then
Text1.Text=InputBox ("请输入要删除的项目")
'For i=0 To ?
'If List1.List(i)=? Then
' List1.RemoveItem ?
End If
Next i
End If
End Sub
参考代码:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If Chr(KeyCode)="A" Then
Text1.Text=InputBox ("请输入要添加的项目" )
List1. AddItem Text1
End If
If Chr(KeyCode)="D" Then
Text1.Text=InputBox ("请输入要删除的项目")
For i=0 To List1.ListCount-1
If List1.List(i)=Form1.Text1 Then
List1.RemoveItem (i)
End If
Next i
End If
End Sub
第三步:调试并运行程序。
第四步:按题目要求存盘。
(2)文本框里的内容(包括数字)默认都是当作字符串来处理的,如果要参与数据运算则需先用Val函数将其转化为数字类型。这里需要指出的是利用Array函数对数组各元素赋值,声明的数组只能是Variant类型,数组的上下界可用 UBound和LBound函数获得,这两个函数的格式分别为:
LBound(数组[,维])
UBound(数组[,维])
这两个函数分别返回一个数组中的下界和上界。其中“数组”是一个数组名,“维”是要测试的维。LBound函数返回“数组”的下界,而UBound函数返回
“数组”某一“维”的上界值,这两个函数一起使用即可确定一个数组的大小。解题步骤:
第一步:建立界面并设置控件属性。程序中用到的控件及其属性见表22-4。
第二步:编写程序代码。
程序提供的代码:
Option Base 1
Private Function Average(a() As Integer) As Sincle
Dim Start As Integer, Finish As Integer
Dim i As Integer
Dim Sum As Integer
'Start=?(a)
'Finish=?(a)
'Sum=?
For i=Start To Finish
'Sum=Sum+?
Next i
'Average=?
End Function
Private Sub Command1_Click()
Dim arr1
Dim arr2(4) As Integer
arr1=Array(Val(Text1.Text) , Val(Text2.Text) , Val(Text3.Text) , Val(Text4.Text) )
For i=1 To 4
arr2(i)=CInt(arr1(i) )
Next i
'Aver=Average(?)
Print "平均值是:"; Aver
End Sub
参考代码:
Option Base 1
Private Function Average(a() As Integer) As Single
Dim Start As Integer, Finish As Integer
Dim i As Integer
Dim Sum As Integer
Start=LBound(a)
Finish=UBound(a)
Sum= 0
For i=Start To Finish
Sum=Sum+a(i)
Next i
Average=Sum/Finish
End Function
Private Sub Command1_Click()
Dim arr1
Dim arr2(4) As Integer
arr1=Array(Val(Text1.Text) , Val(Text2.Text) , Val(Text3.Text) , Val(Text4.Text) )
For i=1 To 4
arr2(i)=CInt(arr1(i) )
Next i
Aver=Average (arr2)
Print "平均值是:"; Aver
End Sub
第三步:调试并运行程序。
第四步:按题目要求存盘
第1题:
注意:下面出现的“考生文件夹”均为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。

第二步:编写程序代码。
程序提供的代码:
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
第三步:调试并运行程序。
第四步:按题目要求存盘。
第二步:编写程序代码。
程序提供的代码:
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
第三步:调试并运行程序。
第四步:按题目要求存盘。
第2题:
请根据以下各小题的要求设计Visaul Basic应用程序(包括界面和代码)。
1.在窗体(名称为Form1)上画1个列表框(名称为L1)和1个水平滚动条(名称为HS1,Min属性为0,Max属性为100,SmallChange属性为2,LargeChange属性为10),编写适当的事件过程。程序运行后,如果把滚动框移到某个位置,然后单击窗体,则在列表框中显示“滚动条的当前值是:xx”,如图1—1所示,其中xx是滚动框所在的位置。
存盘时,工程文件名为sjt1.vbp,窗体文件名为sjt1.frm。
2.在名称为Form1的窗体上画一个文体框,其名称为Text1,然后通过属性窗口设置窗体和文本框的属性,实现如下功能:
1)在文本框中可以显示多行文本
2)在文本框中显示垂直滚动条
3)文本框中显示的初始信息为“程序设计”
4)在文本框中显示的字体为三号规则黑体
5)窗体的标题为“设置文本框属性”。完成设置后的窗体如图1—2所示。
要求:不编写任何代码。
注意:存盘时必须存放在考生文件夹下,工程文件名为sjt2.vbp,窗体文件名为sjt2.frm。

③ 编写窗体的Click事件过程;
Private Sub Form_Click()
L1.AddItem"滚动条的当前值是:"
&HS1. Value
End Sub
2.① 对象主要属性设置如表2所示。
② 分析:按试题要求在窗体上画出一个文本框并分别将它们属性按表2的内容进行设置。MultiLine属性设置为True文本框显示多行文本;SerollBar属性设置为2文本框显示垂直滚动条;设置Text属性中的内容为初始信息;用FontName和FontSize属性分别设置文本框的字型和字号;Caption属性设置窗体标题的内容。
③ 编程代码:(无)
③ 编写窗体的Click事件过程;
Private Sub Form_Click()
L1.AddItem"滚动条的当前值是:"
&HS1. Value
End Sub
2.① 对象主要属性设置如表2所示。
② 分析:按试题要求在窗体上画出一个文本框,并分别将它们属性按表2的内容进行设置。MultiLine属性设置为True,文本框显示多行文本;SerollBar属性设置为2,文本框显示垂直滚动条;设置Text属性中的内容为初始信息;用FontName和FontSize属性分别设置文本框的字型和字号;Caption属性设置窗体标题的内容。
③ 编程代码:(无)
第3题:
在名为Form1的窗体上绘制一个列表框,其名称为List1;一个水平滚动条,其名称为 HS1,smallChange属性为2,LargeChange属性为10,Min属性为0,Max属性为100。编写适当的事件过程,使程序运行后,若把滚动框滚到某个位置,然后单击窗体,则在列表框中添加一个项目,其内容是“××”,其中××是滚动框所在的位置,如下图所示。

注意:
程序中不要使用变量:文件必须存放在考生文件夹中,工程文件名为execise97.vbp,窗体文件名为execise97.frm。

第4题:
注意:下面出现的“考生文件夹”均为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。

第二步:编写程序代码。
程序提供的代码:
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
第三步:调试并运行程序。
第四步:按题目要求存盘。
第二步:编写程序代码。
程序提供的代码:
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
第三步:调试并运行程序。
第四步:按题目要求存盘。
第5题:
在考生文件夹下有一个工程文件execise59.vbp及窗体文件execise59.frm。在窗体上有两个命令按钮,名称分别为Cmd1和Cmd2,标题为“添加”和“清除”;一个文本框,名称为Text1,程序运行前,文本框的编辑区为空白;一个列表框,名称为List1。程序界面如下图所示。

在文本框中输入文本,若单击“添加”按钮,则将文本框中的文本作为列表框的一个列表项添加到列表框的末尾,且使“添加”按钮变为无效,“清除”按钮变为有效:若单击“清除”按钮,则使文本框中的内容为空,且使“添加”按钮变为有效,“清除”按钮变为无效。
要求:
去掉程序中的注释“'”,把程序中的问号“?”改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分,也不能修改控件的属性。保存时,工程文件名仍为 execise59.vbp,窗体文件名仍为execise59.frm。
