vb实验E数组和自定义类型(精)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
试验E 数组和自定义类型
一、实验目的
1. 掌握数组的声明、数组元素的引用。
2. 掌握固定长度数组和动态数组的使用差别。
3. 掌握数组常用的操作和常用算法。
4. 掌握列表框和组合框的使用。
5. 掌握自定义类型及数组的使用。
二、实验内容
1. 随机产生30~100(包括(30、100)的10个正整数,求最大值、最小值、平均值,并显示整个数组的值和结果。
2. 已知6 个学生的成绩,通过数组赋初值的方法,利用String函数,以每5分为一个“◆”显示,并显示学生的成绩。
3. 随机产生20个学生的成绩,统计各分数段人数。即0~59、60~69、70~79、80~89、90~100,并显示结果。产生的数据在Picture1显示,统计结果在Picture2显示。
4. 随机产生10个2位数,按从大到小递减的顺序排列,并显示排序结果。
5.参照教材例5.3,在通用声明段声明两个数组,利用随机函数形成如下两个数组:
A=, B=
要求:
①以下三角形式显示A数组、上三角形式显示B数组。
②求A数组主对角线元素之和和B数组副对角线元素之和。
6.输入整数n,显示出具有n行的杨辉三角形。图E.5显示n=8的效果。
7.设计一个选课的运行界面如图E.6所示。它包含2个列表框,左边为已开设的课程名称,通过Form_Load事件加入,并按拼音字母排序;当单击某课程名称后,将该课
程加入到右边列表框,并在左边列表框中删除该课程。当右边课程数已满5门时,不允许再加入。
8.窗体上建立一个简单组合框,在组合框的文本框输入数字字符,按回车键后加入到组合框的列表框内,如图E. 8所示;单击“交换”按钮,将列表框中最小值项目和第0个项目交换;最大值项目与最后项目交换。
9.提供在窗体上显示的以汉字开头的字体名称,并显示该名称所对应的字体样式。
10.自定义类型数组的应用。要求:
①自定义一个职工数据类型,包含职工号、姓名、工资三项内容。在通用声明段声明一个职工类型的数组,可存放5个职工的数据。
②窗体中设计3个标签、3个文本框、2个命令按钮和1个图形框,文本框中分别输入职工号、姓名、工资;当单击“新增”按钮时,将文本框输入的内容添加到数组的当前元素中;当单击“排序”按钮时,将输入的内容按工资递减的顺序排列,并在图形框显示。程序运行界面如图E.11所示。
习题五
1、在VB6.0中,数组的下界默认为0,用什么语句可以重新定义数组的默认下界?
答:指定数组的默认下界 Option Base 1
2、要分配存放12个元素的整型数组,下列数组声明(下界若无,按默认规定)哪些符合要求?
(1) n=12
Dim a(1 To n As Integer
答:Dim 语句中的下标只能是常量,不能是变量。
(2) Dim a%(
n=11
ReDim a(n 答:正确
(3) Dim a%[2,3] 答:VB中数组下标用圆括号,应为()
(4) Dim a(1,1,2 As Integer 答:正确
(5)Dim a%(10
ReDim a(1 To 12 答:正确
(6)Dim a!(
ReDim a(3,2 As Integer 答:ReDim 语句可改变维数但不可以改变类型
(7)Dim a%(2,3 答:正确
(8) Dim a(1 to3 1 to 4 As Integer 答:缺少逗号 Dim a(1 to 3,1 to 4 As Integer
3. 程序运行时显示“下标越界”可以产生的错误有哪几种情况?
答:引用的下标超出上界或下界。
4. 已知下面的数组声明,写出它的数组名,数组类型,维数,各维的上下界,数组的大小,并按行的顺序列出各元素。 Dim a(-1 to 2,3, As Single
答:数组名:a(-1 to 2,3 ,数组类型:Single,维数:2维,各维的上下界:-1 to 2, 0 to 3或1 to 3,组的大小:16, 按行的顺序列出各元素:(-1,0)(-1,1)(-1,2)(0,0)(0,1)(0,2)(1,0),(1,2)(2,0),(2,1)(2,2)
5..利用随机数生成两个矩阵(数据不一定相同,前者30~70范围,后者101~135)。
35 67 52 50 103 115 125 101
33 47 66 39 133 127 132 135
A= 47 56 66 41 B= 111 103 134 118
30 69 55 38 123 109 113 130
要求:
(1)将两个矩阵相加结果放入C矩阵中。
Dim A(1 To 4, 1 To 4 As Integer, B(1 To 4, 1 To 4 As Integer
Dim C(1 To 4, 1 To 4 As Integer
Private Sub Command1_Click(
Dim i As Integer, j As Integer
For i = 1 To 4
For j = 1 To 4
Randomize
A(i, j = Int(30 + Rnd * 41 Me.Picture1.Print A(i, j; Randomize
B(i, j = Int(101 + Rnd * 35 Me.Picture2.Print B(i, j;
Next j
Me.Picture1.Print
Me.Picture2.Print
Next i
End Sub
Private Sub Command2_Click( Dim i As Integer, j As Integer Me.Picture3.Cls
For i = 1 To 4
For j = 1 To 4
C(i, j = A(i, j + B(i, j
Me.Picture3.Print C(i, j;
Next j
Me.Picture3.Print
Next i
End Sub
(3)将A矩阵转置。For i = 1 To 4
For j = 1 To 4
C(i, j = A(j, i
Me.Picture3.Print C(i, j;
Next j