当前位置:首页 » VB程序题 » 正文

VB程序题:自定义类型数组的应用。要求:自定义一个职工数据类型,包含职工号、姓名、工资三项内容。在通用声明段声明一个职工类型的数组,可存放5个职工。龚沛曾 VB

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个相关记录,点排序按钮,出现排序结果。效果图如下:


Visual Basic程序设计教程(第3版) (龚沛曾等编)课后实验源码
打赏 支付宝打赏 微信打赏

来源:济亨网

本文链接:http://wb86.com/post/88.html

    << 上一篇 下一篇 >>

    湘公网安备 43011102000514号 - 湘ICP备08100508号