1、VB实验三0001VB实验三实 验 报 告 三实验目的(1)掌握一维数组(静态、动态)定义及使用(2)掌握二维数组(静态、动态)定义及使用(3)掌握“控件数组”的使用(4)掌握数组相关算法(求最值,排序,查找)(5)通过数组巩固循环及多重循环程序设计实验内容【实验1】已知10个数为53、67、42、89、65、18、98、67、54、36,编写程序,使用Array函数存储这10个数并求和。程序运行界面如下图所示。(10分) 掌握一维静态数组的定义及使用实验结果:【实验1 代码】Option Base 1Private Sub Form_Click() Dim a(), sum% sum = 0
2、 a = Array(53, 67, 42, 89, 65, 18, 98, 67, 54, 36) For i = 1 To 10 Step 1 sum = sum + a(i) Next i Print 10个数字和为 & sumEnd Sub【实验1 典型结果】【实验2】动态数组声明及输入输出,程序运行界面如下图所示。(10分)掌握动态数组的使用实验结果:【实验2 代码】 Private Sub command1_Click()Dim a() As Integer n = 3 ReDim a(n) a(1) = 10 a(2) = 20 a(3) = 30 Print a(1), a(2
3、), a(3) Print 用Redim Preserve a(n)改变数组大小 n = 4 ReDim Preserve a(n) a(4) = 40 Print a(1), a(2), a(3), a(4)End Sub 【实验2 典型结果】【实验3】编写程序,定义一个二维静态数组,输出下列矩阵并分别计算矩阵两条对角线元素之和。(10分)程序运行界面如下图所示。掌握二维数组的定义及使用实验结果:【实验3 代码】Option ExplicitOption Base 1Private Sub Form_Click() Dim a%(5, 5), i%, j%, sum%, n%, s1%, s
4、2% For i = 1 To 5 For j = 1 To 5 a(i, j) = 5 * (i - 1) + j 给数组赋值 Next j Next i For i = 1 To 5 For j = 1 To 5 Print Tab(7 * j); a(i, j); 输出数组 Next j Print Next i n = 5 s1 = 0 s2 = 0 For i = 1 To 5 For j = 1 To n If i = j Then s1 = s1 + a(i, j) 主对角线之和 If i + j = n + 1 Then s2 = s2 + a(i, j) 次对角线之和 Nex
5、t j Next i Print 主对角线之和=; s1 Print 次对角线之和=; s2End Sub【实验3 典型结果】【实验4】利用控件数组模拟电话拨号程序,界面设计如下图所示。要求按任意一个字符,在文本框中显示,最多可拨11位数字字符,单击“重拨”按钮,重新显示原来所拨的号码。建立Command1控件数组,索引为09;Command2和Command3分别为“重拨”、“清屏”按钮;Timer1控件为“重拨”服务。(10分)掌握控件组的使用实验结果:【实验4 代码】Dim no As String, i As IntegerPrivate Sub Command1_Click(inde
6、x As Integer) Text1.Text = Text1.Text & index End SubPrivate Sub Command2_Click() no = Text1.Text Text1.Text = i = 1 Timer1.Interval = 200 Timer1.Enabled = True End SubPrivate Sub Command3_Click() Text1.Text = End SubPrivate Sub Timer1_Timer() Text1.Text = Text1.Text & Mid(no, i, 1) i = i + 1 If i L
7、en(no) Then Timer1.Enabled = FalseEnd Sub【实验4 典型结果】【实验5】随机产生10个100999之间的数以递增顺序存放在列表框中,并实现对列表框内数据插入、删除等操作,使得列表框内数据还是有序。程序运行界面如下图所示(10分)掌握数组插入与删除操作实验结果:【实验5 代码】Option Base 1Option ExplicitPrivate Sub command1_Click() Dim i%, j% For i = 1 To 10 j = Int(Rnd * 900 + 100) List1.AddItem j Next iEnd SubPriv
8、ate Sub Command2_Click() Dim x%, y% x = Val(Text1.Text) For y = 1 To List1.ListCount - 1 If x a(j) Then t = a(i): a(i) = a(j): a(j) = t End If Next j Print a(i); Next i End Sub【实验7 典型结果】【实验8】选择法对数组中的元素按升序排列,程序运行界面如下图所示。(10分)掌握数组常用算法:数组排序实验结果:【实验8 代码】Option Base 1Private Sub Form_Click() Dim a(), i%,
9、 j%, t%, P% a = Array(82, 12, 78, 36, 73, 90, 18, 99, 67, 56) n = UBound(a) Print 比较法排序前: For i = 1 To n Print a(i); Next i Print Print 比较法排序后: For i = LBound(a) To n - 1 P = i For j = i + 1 To n If a(j) a(P) Then P = j Next j t = a(i): a(i) = a(P): a(P) = t Print a(i); Next i End Sub【实验8 典型结果】【实验9】
10、用冒泡对数组中的元素按升序排列,程序运行如下图所示。(10分)掌握数组常用算法:数组排序实验结果:【实验9 代码】Option Base 1Option ExplicitPrivate Sub Form_Click() Dim a(), i%, n%, j%, t% Dim flag As Boolean a = Array(12, 78, 36, 73, 89, 18, 90, 67, 56, 99) n = UBound(a) For i = 1 To n Print a(i); Next i Print For i = 1 To n - 1 For j = 1 To n - i If a
11、(j) max Then max = a(i) If a(i) min Then min = a(i) Next i Print 最大值为:; max; 最小值为:; min” End Sub 【实验10 典型结果】【加分1】利用一维数组,统计一个班学生成绩059,6069,7079,8089,90100各分数段的人数,生成一个各分数段的柱状图。人数为运行时输入,成绩给定方法要求为键盘输入。(10分,最高100分)掌握控件数组的使用实验结果:【选做1 代码】【选做1 典型结果】【加分2】从键盘输入10个整数,存放在一个一维数组中,然后将前5个元素与后5个元素交换,即第1个与第10个交换,第2个与第9个交换(10分,最高100分)掌握一维数组的使用实验结果:【选做2 代码】【选做2 典型结果】实验小结1. 遇到的问题:2. 对课程的建议:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1