南华大学计算机学院
visual basic程序
实验指导
实验任务
任务一、窗体上有一个标
为“得分”的框架,在框架中有一个名称为Text1的文本框数组,含六个元素;文本框Text2用来输入难度系数。程序运行时,在左边的六个文本框中输入6个得分,输入难度系数后,单击“计算分数”按钮,则可计算出最后得分并在文本Text3中显示(如图所示)。计算方法为去除最高分、最低分后,求出平均分,平均分*难度系数,得出最后得分。
任务二、数组a中的100个正整数(显示在Text1文本框中),单击“分组”按钮,则将数组a中所有3的倍数的元素存入数组b中,并对数组b中的元素从小到大排序后显示在文本框Text2中。数组a中的数据随机产生,数组b中的数据使用冒泡法排序。
任务三、单击“产生数组”按钮,则用随机函数生成10个0~100之间(不含0和100)互不相同的数值,并将他们保存到一维数组a中,同时也将这10个数值显示在Text1文本框内;单击“查找”按钮将弹出输入对话框,接收用户输入的任意一个数,并在一维数组a中查找该数,若查找失败,则在Text2文本框内显示该数“不存在于数组中”;否则给出该数在数组中的位置。
任务四、窗体上有一个单选按钮数组,含三个单选按钮;还有一个标题为“显示”的命令按钮(如图所示)。程序的功能是,在运行时,如果选中一个单选按钮并单击“显示”按钮,则在窗体上显示相应的信息,例如若选中“小学生”,则在窗体上显示“我是小学生”。
阅读练习:
1、在窗体上画一个名称为Label1 的标签,然后编写下列事件过程:
Private Sub Form_Click( )
Dim arr(10,10)As Integer
Dim i As Integer, j As Integer
For i=2 To 4
For j=2 To 4
arr(i,j)=j*j
Next j
Next i
Label1. Caption=Str(arr(2,2)+arr(3,3))
End Sub
程序运行后,单击窗体,在标签中显示的内容是( )。
2、阅读程序:
Option Base 1
Dim arr( )As Integer
Private Sub Form_Click( )
Dim i As Integer, j As Integer
ReDim arr(3,2)
For i = 1 To 3
For j = 1 To 2
arr(i,j)=i*2+j
Next j
Next i
ReDim Preserve arr(3,4)
For j=3 to 4
arr(3,j)=j+9
Next j
Print arr(3,2)+arr(3,4)
End Sub
程序运行后,单击窗体,输出结果为( )。
A)21 B)13
C)8 D)25
3、在窗体上画一个名称为Command1 的命令按钮,然后编写下列事件过程:
Option Base 1
Private Sub Command1_Click( )
Dim c As Integer, d As Integer
d=0
c=6
x=Array(2,4,6,8,10,12)
For i = 1 To 6
If x(i)>c Then
d=d+x(i)
c=x(i)
Else
d=d-c
End If
Next i
Print d
End Sub
程序运行后,单击命令按钮,则在窗体上输出的内容为( )。
A)10 B)16
C)12 D)20
4、有下列程序:
Option Base 1
Private Sub Command1_Click( )
Dim arr1
Dim Min As Integer , i As Integer
arr1=Array(12,435,76,-24,78,54,866,43)
Min= 【12】
For i=2 To 8
If arr1(i)
Text(k)Then
Min=Text1(k)
End If
sum=sum+Text1(k)
Next k
Text2=( 【13】)/5
End Sub
9、如图所示,在列框list1 中已经有若干人的简单信息,运行时在Text1 文本框(即
“查找对象”右边的文本框)输入一个姓或姓名,单击“查找”按钮,则在列表框中
进行查找,若找到,则把该人的信息显示在Text2 文本框中。若有多个匹配的列选项,
则只显示第1 个匹配项;若未找到,则在Text2 中显示“查无此人”。请填空。
Private Sub Command1_Click( )
Dim k As Integer,n As Integer,found As Boolean
found=False
n=Len( 【14】)
k=0
While k<List1.ListCount And not found
If Text1=Left$(List1.List(k),n) Then
Text2= 【15】
found=True
End If
k=k+1
Wend
If Not found Then
Text2="查无此人"
End If
End Sub
10、命令按钮Command1 的单击事件过程的代码下列:
Private Sub Command1_Click( )
Dim a(30) As Integer
For i=1 To 30
a(i)=Int(Rnd*100)
Next
For Each arrItem In a
If arrItem Mod 7=0 Then Print arrItem;
If arrItem>90 Then Exit For
Next
End Sub
对于该事件过程,下列叙述中错误的是( )。
A)a 数组中的数据是30 个100 以内的整数
B)语句For Each arrItem In a 有语法错误
C)If arrItem Mod 7=0……语句的功能是输出数组中能够被7 整除的数
D)If arrItem>90……语句的作用是当数组元素的值大于90 时退出For 循环
11、命令按钮Command1 的单击事件过程的代码如下:
Private Sub Command1_Click( )
Dim a(3,3)As Integer
For i=1 To 3
For j=1 To 3
a(i,j)=i*j+i
Next j
Next i
Sum=0
For i=1 To 3
Sum=Sum+a(i,4-i)
Next i
Print Sum
End Sub
运行程序,单击命令按钮,输出结果是( )。
A)20 B)7
C)16 D)17
12、窗体上有名称分别为Text1、Text2 的2 个文本框,有一个由3 个单选按钮构成的控
件数组Option1,如图1 所示。程序运行后,如果单击某个单选按钮,则执行Text1
中的数值与该单选按钮所对应的运算(乘以1、10 或100),并将结果显示在Text2
中,如图2 所示。为了实现以上功能,在程序中的问号(?)处应填入的内容是( )。
图 1 图2
Private Sub Option1_Click(Index As Integer)
If Text1.Text<>“ “Then
Select Case ?
Case 0
Text2.Text=Val(Text1.Text)
Case 1
Text2.Text=Val(Text1.Text)*10