vb程序
编写一个SUB过程,该过程根据输入的工资数确定发给多少张一百元,五十元,十元,五元,一元,五角,一角,五分,一分的钞票。运行时,在窗体上用文本框输入工资额,按回车调用SUB过程计算各种面值的钞票各需多少,并将结果显示在窗体上(SUB过程只负责计算,不负责显示结果)
[解决办法]
- VB code
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 iEnd SubSub main() Dim d(9) 'd(0 to 8)对应一百元,五十元,十元,五元,一元,五角,一角,五分,一分的张数 JiSuan CSng(Text1.Text), d For i = 0 To UBound(d) Print d(i) Next iEnd Sub
[解决办法]
- VB code
'n为输入的工资数,以元为单位;以flag(1 to 9)来返回各种面值钞票的张数Private Sub myfunction(n As Double, flag() As Integer)n = n * 100ReDim flag(1 To 9) As Integerflag(1) = Int(n / 10000)n = n Mod 10000flag(2) = Int(n / 5000)n = n Mod 5000flag(3) = Int(n / 1000)n = n Mod 1000flag(4) = Int(n / 500)n = n Mod 500flag(5) = Int(n / 100)n = n Mod 100flag(6) = Int(n / 50)n = n Mod 50flag(7) = Int(n / 10)n = n Mod 10flag(8) = Int(n / 5)n = n Mod 5flag(9) = nEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)Dim t(1 To 9) As StringDim myflag() As IntegerIf KeyAscii = 13 Then Call myfunction(Val(Text1.Text), myflag()) Print "依次需要的各种面值的钞票张数为:" For i = 1 To 9 Print myflag(i) & ","; Next iEnd IfEnd Sub