vb实验E数组和自定义类型(精)
- 格式:doc
- 大小:276.50 KB
- 文档页数:10
VBA简单⼊门28:数组的声明、分类、数据类型、⼤⼩边界1、什么是数组?在Excel中,数组可以理解为⼀个看不见但却真实的单元格区域,它可⼤可⼩,它储存在电脑内存中。
⼤可以⽐⼯作表还⼤,⽆限⼤,只要电脑的内存⽀持,⼩可以是⾄少2个单元格组成的区域。
数组数组,组之⼀字,决定其不能是仅仅⼀个单元格。
2、数组的分类在Excel中,数组有⼀维数组和⼆维数组。
3、数组的声明定义3.1、数组的声明Dim arr(1 To 9) :声明空⽩数组arr,⼀维数组,其⼤⼩是可以容纳9个元素。
Dim brr(1 To 9, 1 To 2) :声明空⽩数组brr,⼆维数组,其⼤⼩是9⾏2列的空间(或可看成是9⾏2列“单元格区域”)。
上⾯声明确定了数组的名称,维数(⼀维⼆维,以括号内逗号为维数分隔),⼤⼩和边界。
3.2、数组的⼤⼩和边界值因为知道数组的⼤⼩,所以数组的边界就可以确定,类似⼯作表(Excel2007)的边界最⼩是1,⾏数最多是1048576,列数最多是16384。
可以⽤LBound函数读取数组的下界,UBound函数读取数组的上界。
数组arr是⼀个⼀维数组,其下界是1,上界是9。
数组brr是⼀个⼆维数组,有两个维度,所以两个维度都有上界下界。
数组的下界⼀般设定为从0或1开始,上界随意(像买鞋⼀样,⼤⼩合适最好)。
如果括号内什么都不写,那么将声明⼀个动态数组。
Dim arr() :不确定维数不确定⼤⼩,后⾯再设定或获取数据的时候再确定。
括号不能够省略,如果省略,Dim arr 则是声明⼀个变体变量arr,⽽⾮数组arr。
4、数组的数据类型和变量⼀样,数组也有数据类型,放⼊数据的时候,数据类型要和设定的匹配,否则容易出错。
实验五数组一、控件属性的设置 (滚动条)1、在名称为Forml的窗体上添加一个名称为H1水平滚动条,请在属性窗口中设置它的属性值,满足下列要求:它的最小刻度值为1,最大刻度值为100,在程序运行时鼠标单击滚动条上滚动框以外的区域(不包括两边按钮),滚动框移动10个刻度。
再在滚动条下面画两个名称分别为L1、L2的标签,并分别显示1、100,运行时的窗体如图5-1所示。
工程文件名保存为sy5-1.vbp,窗体文件名为sy5-1.frm。
2、在名称为Form1的窗体上添加一个名称为HS1的水平滚动条,其刻度值范围为1 -100;添加一个命令按钮,名称为C1,标题为"移动滚动框"。
请编写适当的事件过程,使得在程序运行时,每单击命令按钮一次(假定单击次数不多于10次),滚动框向右移动10个刻度。
程序运行时的窗体如图5-2所示。
要求程序中不得使用变量,事件过程中只能写一条语句。
工程文件名保存为sy5-2.vbp,窗体文件名保存为sy5-2.frm。
3、在名称为Form1的窗体上画一个图片框,其名称为Picture1、一个水平滚动条,名称为HScroll1,和一个命令按钮,名称为Command1,标题为"设置属性",通过属性窗口在图片框中装入一个图形(文件名为pic1.jpg,位于考生目录下),图片框的高度与图形的高度相同,图片框的宽度任意(如图1所示)。
编写适当的事件过程,程序运行后,如果单击命令按钮,则设置水平滚动条的如下属性:Min 100Max 1500LargeChange 100SmallChange 10之后就可以通过移动滚动条上的滚动块来放大或缩小图片框。
程序运行后的窗体如图5-3所示。
要求程序中不得使用任何变量。
工程文件名为sy5-3.vbp,窗体文件名为sy5-3.frm。
4、在控件属性1文件夹下有一个工程文件sy5-4.vbp,窗体上有一个圆和一个矩形,还有水平和垂直滚动条各一个。
实验一:设计简单的VB 应用程序一、实验目的1.掌握Visual Basic 启动和退出的方法。
2.熟悉Visual Basic 的集成开发环境。
3.掌握Visual Basic 程序设计的基本步骤,了解VB 程序的编写、保存和编译的方法过程。
4.初步了解几个常用基本控件控件(标签、命令按钮和文本框)的使用方法。
二、实验类型综合三、实验时间:2013-3-8四、实验任务1、启动Visual Basic ,然后创建一个“标准 EXE ”工程(保存在D 盘以自己学号命名的文件夹中,文件名和窗体名均为SJT ),并了解Visual Basic 集成开发环境下各组成部分及其作用。
2、编一程序,计算任意输入的正整数的平方根。
3、编写一个应用程序,界面如图1-1所示。
窗体中文字“VB 应用程序!”为一标签控件,单击标题为“放大”的命令按钮,则“VB 应用程序!”的字号放大一号,单击“缩小”按钮则反之;同时,窗体中还有4个含某种指向图案的按钮,若单击某个按钮,则使“VB 应用程序!”向该按钮所指向的方向移动50Twip 。
(提示:四种指向的图案可以在Visual Basic 安装目录中的“…graphics\icon\Arrows ”子目录中找到,名称分别为arw07dn.ico 、arw07lt.ico 、arw07rt.ico 和arw07up.ico )五、实验要求 写出实验报告,内容是:1、第1小题的操作步骤2、第2、3题1).程序的界面设计。
2).程序主要代码。
3).运行结果(输入与输出)。
4).实验总结。
(写上你自己的总结。
可以从以下几个方面来总结:你在编程过程中花时多少?时间是怎么分配的?多少时间在思考问题?遇到了哪些难题?你是怎么克服的?你对你的程序的评价?你的收获有哪些?)图1-1 实验1-2程序运行实验二:数据的输入和输出一、实验目的1.掌握常量和变量、表达式的基本概念和正确书写格式。
2.掌握基本语句(Print语句、赋值语句、Dim语句等)的使用;3、掌握常用函数的正确使用方法;4、掌握数据的动态输入InputBox和信息提示MsgBox的基本使用方法。
VB学习与实验指导测试题参考答案第一章第二章第三章第四章第五章第六章第七章第八章第九章综合测试题一综合测试题二下篇实验教程实验2 Visual Basic 变量、函数与表达式的使用实验2-1 算术运算符的使用13178332262-2-22007-10-153 2.857143 2.85714285714286实验2-2 字符运算符的使用20071020071020172007-10-10102007-10-20出错,类型不匹配实验2-3 关系运算符的使用FalseFalseFalseFalseFalseFalseFalseTrueFalseTrue实验2-4 逻辑运算符的使用TrueTrueFalseTrueFalseFalseTrueTrueFalse5-59实验2-5 常用函数的使用3.14 3.147.389056098930651 -1 .999999998205103 4-1 1 0.70554755825 251250 0A a65 9748 688 -98 -89 -9aaa 4.5 aaa4.516 5Visua 6.0sua Basic Basic 6.0abcde EFGBasic Basic BasicVisual Basic 6.0 Basic8 8aaa dd2011-3-152011-3-15 14:35:5215320113001.731.731.7317.32E-010173%实验3 算法基础及程序控制结构实验3-1 三个数的交换A=CC=BB=TBC实验3-2 求周长和面积Const PI=3.14159262*PI*RPI*R*RPicture1.ClsFormat(L, ".00")Format(M, ".00")实验3-3 求分段函数的值x=Val(Text1.Text)y=1+Sin(x)y=Log(x)Text1.Text = ""Text2.Text = ""实验3-4 求一元二次方程的根Val(Text2.Text)Val(Text3.Text)b ^ 2 - 4 * a * c"x1=" & (-b + Sqr(delt)) / (2 * a)"x2=" & (-b - Sqr(delt)) / (2 * a)Text2.Text = ""Text3.Text = ""End实验3-5 判断素数N Mod k = 0k=NN Mod i=0k=2实验3-6 求最大公约数和最小公倍数M<NL=ML=NM Mod k = 0 And N Mod k = 0Text3.Text = kExit ForM>NL=ML=Nk Mod M = 0 And k Mod N = 0Text4.Text = kExit For实验3-7 判断升序数、降序数CStr(N)Len(S) – 1Mid(S, k, 1) >= Mid(S, k + 1, 1)k = Len(S)N = Val(Text1.Text)S = CStr(N)For k = 1 To Len(S) - 1If Mid(S, k, 1) <= Mid(S, k + 1, 1) Then Exit For Next kk = Len(S)实验3-8 判断回文数1Len(s)\2-1Mid(S, k, 1) <> Mid(S, Len(S) - k + 1, 1)k = Len(S) \ 2Mid(S, k, 1) + S1S = S1实验3-9 求级数的值Val(Text1.Text)1x ^ ns * nt / s <= 10 ^ -6Text2.Text = y实验3-10 查找数字串并求和Text1.Text = ""Text2.Text = ""List1.ClearText1.TextFalseWhile Mid(s, i, 1) >= "0" And Mid(s, i, 1) <= "9" Flag = Truek = k * 10 + Mid(s, i, 1)i = i + 1Flag = Truesum + kText2.Text = sum实验3-11 随机产生20个奇数Int((99 - 10 + 1) * Rnd) + 10a Mod 2 = 1n Mod 5 = 0Picture1.Cls实验3-12 加密解密Chr(Asc("a") + (Asc(c) - Asc("a") + 3) Mod 26)c = Chr(Asc("A") + (Asc(c) - Asc("A") + 3) Mod 26) c & s2Text2.TextLen(s2)Mid(s2, i, 1)c = Chr(Asc("a") + (Asc(c) - Asc("a") + 23) Mod 26) c = Chr(Asc("A") + (Asc(c) - Asc("A") + 23) Mod 26) c & s1s1Text1.Text = ""Text2.Text = ""实验3-13 统计单词个数Text1.TextMid(s, i, 1) <> " " And i <= Len(s)i = i + 1Mid(s, start, i - start)nText1.Text = ""List1.Clear实验4 数组的使用实验4-1 一维数组的产生及输出i = 1 To 20Int((9 - 0 + 1) * Rnd + 0)i = 1 To 20Print a(i);Printi = 1 To 20Picture1.Print a(i);If i Mod 5 = 0 Then Picture1.Printi = 1 To 20Text1.Text & Space(2) & a(i)If i Mod 5 = 0 Then Text1.Text = Text1.Text & vbCrLf v In aIf i Mod 5 = 0 Then Picture2.Print实验4-2 选手得分Int((50 - 10 + 1) * Rnd + 10) / 10i = 1 To 6sum = sum + score(i)max = score(1)min = score(1)score(i) > max Then max = score(i)score(i) < min Then min = score(i)(sum - max - min) / 4实验4-3 产生10个互不相同的整数Int((999 - 10 + 1) * Rnd + 10)t Mod 10 = 5Then Exit Forn= n + 1a(i) = tFor i = 1 To 10Print a(i);If i Mod 5 = 0 Then PrintNext i实验4-4 统计数字出现的次数IsNumeric(S) = FalseExit SubLen(S)c >= "0" And c <= "9"A(c) = A(c) + 1A(k) <> 0m = m + 1实验4-5 排序1 To 10Int((99 - 10 + 1) * Rnd + 10)Text1.Text & A(n) & " "1 To 9i + 1 To 10A(i) > A(j)T = A(j)A(j) = A(i)A(i) = T1 To 910 - iA(j) > A(j + 1)T = A(j + 1)A(j + 1) = A(j)A(j) = T1 To 10Text3.Text = Text3.Text & A(i) & " "10T = A(i)ji - 1k + 11 To 10Text4.Text = Text4.Text & A(i) & " "实验4-6 二维数组的产生及输出1 To 41 To 5Int((9 - 0 + 1) * Rnd + 0)1 To 41 To 5Print A(i, j);Print1 To 41 To 5Picture1.Print A(i, j);Picture1.Print1 To 41 To 5Text1.Text = Text1.Text & A(i, j) & " "Text1.Text = Text1.Text & vbCrLf实验4-6 查找最大和最小元素及其位置1 To 31 To 4A(i, j) = Int((99 - 10 + 1) * Rnd + 10)Picture1.Print A(i, j);Picture1.PrintA(1, 1), 1, 1A(1, 1), 1, 1A(i, j)ijA(i, j) < minA(i, j)ij"最大元素" & "A(" & maxi & "," & maxj & ")=" & max "最小元素" & "A(" & mini & "," & minj & ")=" & min实验4-7 矩阵转置Dim A() As Integer"请输入N的值"ReDim A(N, N) As IntegerFor i = 1 To NFor j = 1 To NA(i, j) = Int((99 - 10 + 1) * Rnd + 10)Text1.Text = Text1.Text & A(i, j) & " "Next jText1.Text = Text1.Text & vbCrLfNext it = A(i, j)A(i, j) = A(j, i)A(j, i) = tFor i = 1 To NFor j = 1 To NText2.Text = Text2.Text & A(i, j) & " "Next jText2.Text = Text2.Text & vbCrLfNext i实验5 过程实验5-1 孪生素数和降序素数Dim i As IntegerFor i = 2 To N - 1If N Mod i = 0 Then Exit FunctionNext iPrime = TrueDim a As IntegerDim b As Integera = N \ 10b = N Mod 10If a > b ThenDecNumber = TrueElseDecNumber = FalseEnd If10 To 100Prime(i) = True And Prime(i + 2) = TrueList2.AddItem i & "和" & i + 2DecNumber(i) = True And Prime(i) = TrueList3.AddItem i实验5-2 求多项式和k = 1a = f(x, k)S + ak = k + 1Single As SingleDim i As Integer, a As Singlea = (x + 1) / xFor i = 2 To ka = a * (x + i) / ((2 * i - 1) * x)Next ia实验5-3 进制转换Asc(C) - Asc("A") + 10Left(S, k - 1)Mid(S, k + 1)Change(Mid(S2, i, 1)) * N ^ (0 - i)T1 + T2Tran(8, S)Tran(16, S)Not (C >= "0" And C <= "7" Or C >= "A" And C <= "F" Or C = ".")实验5-4 Armstrong数i As Long, a As Long, b As LongCombo1.Text实验5-5Option Base 1Dim a(5) As IntegerDim b(5) As Integerb(i) = i * i + 1Text2.Text = Text2.Text & b(i) & " "1 To 51 To 5Gcd(a(i), b(j)) = 1Gcd = KExit For实验5-6Create(a)Output(a)Sort(a)Output(a)GetMaxMin(a, MaxData, MinData)MaxDataMinDataAverage(a)Int((99 - 10 + 1) * Rnd + 10)1 To UBound(a)a(i);a(i) > a(j)t = a(j)a(j) = a(i)a(i) = t2 To UBound(a)a(i) > MM = a(i)a(i) < NN = a(i)s = s + a(i)Average = s / UBound(a)实验6 界面设计实验6-1 用户登陆MsgBox "请登录!"PassWordInput=TxtPassW.TextUserIdInput=UserId And PassWordInput=PassWordCmdReset_Click实验6-2 学籍登记OptXb(0).Value = TrueList1.AddItem Space(4) & xh & Space(6) & xm & Space(6) & xb & Space(12) & xy & Space(16) & zy & Space(4)List1.RemoveItem List1.ListIndex实验6-3 字体格式设置Select Case OpFontCheck2.Value = 1OpColor = IndexOpFont = Index实验6-4 兴趣调查List1.AddItem ItemEndSelect Case IndexItem = Text1.Text实验6-5 调色板。
如果有过用其它语言编程的经历,那么想必会熟悉数组的概念。
由于有了数组,可以用相同名字引用一系列变量,并用数字(索引)来识别它们。
在许多场合,使用数组可以缩短和简化程序,因为可以利用索引值设计一个循环,高效处理多种情况。
数组有上界和下界,数组的元素在上下界内是连续的。
因为visual basic对每一个索引值都分配空间,所以不要不切实际声明一个太大的数组。
注意这一部分讨论的数组是程序中声明的变量数组。
它们不同于控件数组,控件数组是在设计时通过设置控件的index 属性规定的。
变量数组总是连续的;与控件数组不同的是,不能从一个数组的中部加载或卸载数组元素。
一个数组中的所有元素具有相同的数据类型。
当然,当数据类型为variant 时,各个元素能够包含不同种类的数据(对象、字符串、数值等等)。
可以声明任何基本数据类型的数组,包括用户自定义类型(请参阅“再论编程”中的“创建自己的数据类型”)和对象变量(请参阅“用对象编程”)。
在visual basic 中有两种类型的数组:固定大小的数组—它总是保持同样的大小,以及在运行时大小可以改变的动态数组。
在本章后面的“动态数组”中将要详细讨论动态数组。
声明固定大小的数组有三种方法声明固定大小的数组,用哪一种方法取决于数组应有的有效范围:建立公用数组,在模块的声明段用public 语句声明数组。
建立模块级数组,在模块的声明段用private 语句声明数组。
建立局部数组,在过程中用private 语句声明数组。
设定上下界声明数组时,在数组名之后跟一个用括号括起来的上界。
上界不得超过long 数据类型的范围(-2,147,483,648 到2,147,483,647)。
例如,下列数组声明可出现在模块的声明段:dim counters (14) as integer …15 个元素。
dim sums (20) as double ‟21 个元素。
为建立公用数组,直接用public 取代dim。
试验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 12、要分配存放12个元素的整型数组,下列数组声明(下界若无,按默认规定)哪些符合要求?(1) n=12Dim a(1 To n As Integer答:Dim 语句中的下标只能是常量,不能是变量。
(2) Dim a%(n=11ReDim a(n 答:正确(3) Dim a%[2,3] 答:VB中数组下标用圆括号,应为()(4) Dim a(1,1,2 As Integer 答:正确(5)Dim a%(10ReDim 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 Integer3. 程序运行时显示“下标越界”可以产生的错误有哪几种情况?答:引用的下标超出上界或下界。
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 10133 47 66 39 133 127 132 135A= 47 56 66 41 B= 111 103 134 11830 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 IntegerDim C(1 To 4, 1 To 4 As IntegerPrivate Sub Command1_Click(Dim i As Integer, j As IntegerFor i = 1 To 4For j = 1 To 4RandomizeA(i, j = Int(30 + Rnd * 41 Me.Picture1.Print A(i, j; RandomizeB(i, j = Int(101 + Rnd * 35 Me.Picture2.Print B(i, j;Next jMe.Picture1.PrintMe.Picture2.PrintNext iEnd SubPrivate Sub Command2_Click( Dim i As Integer, j As Integer Me.Picture3.ClsFor i = 1 To 4For j = 1 To 4C(i, j = A(i, j + B(i, jMe.Picture3.Print C(i, j;Next jMe.Picture3.PrintNext iEnd Sub(3)将A矩阵转置。
For i = 1 To 4For j = 1 To 4C(i, j = A(j, iMe.Picture3.Print C(i, j;Next j(4)统计C矩阵中最大值和下标。
(5)以下三级形式显示A矩阵、上三角形式显示B矩阵。
(6)将A矩阵第一行与第三行对应元素交换位置,既第一行元素放到;第三行元素放到第一行。
(7)求A矩阵两条对角线元素之和。
(8)将A矩阵按列的次序把元素放到一维数组D中,显示结果。
6.声明一个一维字符类型数组,有20个元素,每个元素最多放10个字符,要求:(1)由随机数形成小写字母构成的数组,每个元素的字符个数由随机数产生,范围1~10.(2)要求将生成的数组分4行显示,规定每个元素宽度为10。
(3)显示生成的字符数组中字符最多的元素。
答:一维字符数组Dim a(1 To 20 As StringPrivate Sub Command1_Click( '(1随机产生字符串Dim i As Integer, j As Integer, n As Integer, c As String * 1RandomizeFor i = 1 To 20a(i = "" '将第i个元素清空n = Int(Rnd * 10 + 1 '产生[1,10]的随机数For j = 1 To n 'a(i中有n个字符c = Chr(Int(Rnd * 26 + 97 '随机产生字母97是字母a的ASCII码a(i = a(i + cNext jNext iEnd SubPrivate Sub Command2_Click( '(2输出字符串Dim i As IntegerFor i = 1 To 20Print Tab(((i - 1 Mod 5 * 11; a(i;If i Mod 5 = 0 Then PrintNext iEnd SubPrivate Sub Command3_Click( '(3最长的字符串Dim i As Integer, imax As Integerimax = 1For i = 2 To 20If Len(a(i > Len(a(imax Thenimax = iEnd IfNext iPrint "最长的字符串:"; a(imaxEnd Sub7.简述列表框和组合框的异同处。
答:列表框和组合框都是存放字符串的,但组合框可输入内容,而列表框可一下选择多个项目。
8.列表框或组合框中选定的项目、总项目数的属性分别是什么?答:被选中的项目属性是Text,总项目数目的属性是ListCount。
9.简述自定义类型与自定义变量的区别。
答:一个类型可以有N个变量。
自定义类型表示如同Integer、Single等类型名;自定义变量根据该类型分配所需的内存空间,存储各种元素数据。
10.自定义一个职工类型,包含职工号、姓名、工资。
声明一个职工类型的动态数组。
输入n个职工的数据;要求按工资递减的顺序排序,并显示排序的结果,每个职工一行显示三项信息。
Private Type zgnum As Stringname As Stringgz As SingleEnd TypeDim a( As zgPrivate Sub Command1_Click(Dim n As Integern = Val(InputBox("输入职工人数n"ReDim a(nFor i = 1 To na(i.num = InputBox("请输入工号"a( = InputBox("请输入姓名"a(i.gz = Val(InputBox("请输入工资"Next iFor i = 1 To nFor j = n To i + 1 Step -1If a(i.gz < a(j.gz Thenb = a(i.gz: a(i.gz = a(j.gz: a(j.gz = bb = a(: a( = a(: a( = bb = a(i.num: a(i.num = a(j.num: a(j.num = bEnd IfNext j, iPrint "工号", "姓名", "工资"For i = 1 To nPrint a(i.num, a(, a(i.gzNext iEnd Sub。