编写一个SUB过程,该过程根据输入的工资数确定发给多少张一百元,五十元,十元,五元,一元,五角,一角,五分,一分的钞票。运行时,在窗体上用文本框输入工资额,按回车调用SUB过程计算各种面值的钞票各需多少,并将结果显示在窗体上(SUB过程只负责计算,不负责显示结果)

解决方案 »

  1.   


    Sub JiSuan(n, d())
        Dim y
        y = Array(10000, 5000, 1000, 500, 100, 50, 10, 5, 1)    '对应一百元,五十元,十元,五元,一元,五角,一角,五分,一分
        n = n * 100     '将金额去掉小数点
        For i = 0 To 8
            d(i) = n \ y(i)
            n = n - d(i) * y(i)
        Next i
    End SubSub main()
        Dim d(9)    'd(0 to 8)对应一百元,五十元,十元,五元,一元,五角,一角,五分,一分的张数
        JiSuan CSng(Text1.Text), d
        For i = 0 To UBound(d)
            Print d(i)
        Next i
    End Sub
      

  2.   


    'n为输入的工资数,以元为单位;以flag(1 to 9)来返回各种面值钞票的张数
    Private Sub myfunction(n As Double, flag() As Integer)
    n = n * 100
    ReDim flag(1 To 9) As Integer
    flag(1) = Int(n / 10000)
    n = n Mod 10000
    flag(2) = Int(n / 5000)
    n = n Mod 5000
    flag(3) = Int(n / 1000)
    n = n Mod 1000
    flag(4) = Int(n / 500)
    n = n Mod 500
    flag(5) = Int(n / 100)
    n = n Mod 100
    flag(6) = Int(n / 50)
    n = n Mod 50
    flag(7) = Int(n / 10)
    n = n Mod 10
    flag(8) = Int(n / 5)
    n = n Mod 5
    flag(9) = n
    End Sub
    Private Sub Text1_KeyPress(KeyAscii As Integer)
    Dim t(1 To 9) As StringDim myflag() As Integer
    If KeyAscii = 13 Then
        Call myfunction(Val(Text1.Text), myflag())
        Print "依次需要的各种面值的钞票张数为:"
        For i = 1 To 9
            Print myflag(i) & ",";
        Next i
    End If
    End Sub