五笔打字通主页
VB程序题:自定义类型数组的应用。要求:
1. 自定义一个职工数据类型,包含职工号、姓名、工资三项内容。在通用声明段声明一个职工类型的数组,可存放5个职工。
2. 窗体中设计3个标签、3个文本框、2个命令按钮和1个图形框,文本框分别输入职工号、姓名、工资;当单击"新增"按钮时,将文本框输入的内容添加到数组的当前元素中;当单击"排序"按钮时,将输入的内容按工资递减的顺序排序,并在图形框显示。程序运行界面如图E.11所示。
提示:
① 自定义一个职工类型只能在标准模块内定义,若在窗体通用声明段定义,必须为Private。
② 为了保存当前输入职工元素的个数,该变量应在通用声明段声明,若在事件过程中声明,每次运行将被初始化为0。
③ 相关程序代码可参考教材例5.13。
解题,代码如下:
Private Type zgtype
no As Integer
name As String * 10
pay As Single
End Type
Dim zg(4) As zgtype, i%
Private Sub Command1_Click()
If i >= 5 Then
MsgBox ("超过可存放的5个职工数据")
Else
With zg(i)
.no = Val(Me.Text1)
.name = Me.Text2
.pay = Val(Me.Text3)
Picture1.Print zg(i).no, zg(i).name, zg(i).pay
Print
End With
Me.Text1 = "": Me.Text2 = "": Me.Text3 = "":
i = i + 1
End If
End Sub
Private Sub Command2_Click()
Dim t As zgtype
Me.Picture1.Cls
Me.Picture1.Print Tab(3); "工号"; Tab(12); "姓名"; Tab(22); "工资"
For n = 0 To i - 2
imax = n
For m = n + 1 To i - 1
If zg(m).pay > zg(imax).pay Then imax = m
Next m
t = zg(n): zg(n) = zg(imax): zg(imax) = t
Next n
For s = 0 To i - 1
With zg(s)
Me.Picture1.Print Tab(2); .no; Tab(11); .name; Tab(25); .pay
End With
Next s
End Sub
运行程序,输入5个相关记录,点排序按钮,出现排序结果。效果图如下:
来源:济亨网
本文链接:http://wb86.com/post/88.html