|
第三题如果要完整、符合实际情况,需要考虑的东西太多了。还是先把作业交了再说吧。
C04:eaglexs
第一题:- Option Explicit
- '第一题
- Sub 第一题1()
- Dim strBank$
- strBank = Application.InputBox("请输入银行英文简称:", "简称输入", , , , , , 2)
- If strBank = "ICBC" Then
- MsgBox "中国工商银行"
- ElseIf strBank = "CBC" Then
- MsgBox "中国建设银行"
- ElseIf strBank = "ABC" Then
- MsgBox "中国农业银行"
- Else
- MsgBox "输入银行简称错误!"
- End If
- End Sub
- Sub 第一题2()
- Dim strBank$
- strBank = Application.InputBox("请输入银行英文简称:", "简称输入", , , , , , 2)
- Select Case strBank
- Case "ICBC"
- MsgBox "中国工商银行"
- Case "CBC"
- MsgBox "中国建设银行"
- Case "ABC"
- MsgBox "中国农业银行"
- Case Else
- MsgBox "输入银行简称错误!"
- End Select
- End Sub
复制代码 第二题:- Option Explicit
- '第二题
- Type AccountInfo '用自定义数据类型保存银行账号信息
- 账号 As String
- 用户名 As String
- 存款金额 As Currency
- 密码 As String
- End Type
- Sub 第二题()
- Dim Acc As AccountInfo, money!
- With Acc '录入初始信息
- .账号 = "147258"
- .用户名 = "eaglexs"
- .存款金额 = 8000
- .密码 = "1234"
- End With
- If Acc.账号 <> InputBox("请输入取款账号", "输入") Then
- MsgBox "账户不存在!"
- ElseIf Acc.密码 <> InputBox("请输入密码", "输入") Then
- MsgBox "密码有误!"
- Else '当账号密码都正确时
- money = Round(Application.InputBox("请输入取款金额:", "输入", , , , , , 1), 2)
- If money < 0 Or money > Acc.存款金额 Then
- MsgBox "取款失败"
- Else
- MsgBox "取款成功!取款金额" & money & "元" & vbCrLf & "账户余额" & Acc.存款金额 - money & "元", , "提示"
- End If
- End If
- End Sub
复制代码 第三题:- Option Explicit
- '第三题,已结合附加题
- Type AccountInfo
- 账号 As String
- 用户名 As String
- 存款金额 As Currency
- 密码 As String
- End Type
- Dim bAcc As AccountInfo '声明bAcc为模块级变量,重复执行主过程main时,其中的值可以保留
- Sub main()
- Dim x As Byte
- On Error Resume Next '错误跳过
- start:
- x = Int(Application.InputBox("请输入您要操作的功能:" & vbCrLf & "输入1为开户," & vbTab & _
- "输入2为存款," & vbCr & "输入3为取款," & vbTab & "输入4为查询余额," _
- & vbCr & "输入5为退出", "功能选择", , , , , , 1))
- If Err.Number > 0 Then '如果出错(输入的数字超出Byte范围)
- Err.Clear '先清除错误
- MsgBox "功能选择错误,请重新选择!"
- GoTo start '到start处重新开始选择
- ElseIf x = 0 Or x > 5 Then '如果输入的值不是1、2、3、4、5,则重新开始
- MsgBox "功能选择错误,请重新选择!"
- GoTo start
- End If
- Select Case x
- Case Is = 1 '对应值调用相应子过程
- 开户
- Case Is = 2
- 存款
- Case Is = 3
- 取款
- Case Is = 4
- 查询余额
- Case Else
- Exit Sub '选择5退出过程
- End Select
- End Sub
- Sub 开户()
- '模拟开户,重新输入后,原先的值将清空
- bAcc.账号 = Application.InputBox("请输入开户银行账号", "开户输入", , , , , , 2)
- bAcc.用户名 = Application.InputBox("请输入开户用户名", "开户输入", , , , , , 2)
- bAcc.密码 = Application.InputBox("请输入开户密码", "开户输入", , , , , , 2)
- bAcc.存款金额 = Application.InputBox("请输入存入金额", "开户输入", , , , , , 1)
- End Sub
- Function AccYoN() As Boolean '自定义函数,用过判断输入的账号、密码是否正确
- Dim zh$, psw$
- On Error Resume Next
- zh = InputBox("请输入银行账号", "输入")
- If zh <> bAcc.账号 Then
- MsgBox "账户不存在!"
- AccYoN = False '账号不正确,返回false
- ElseIf bAcc.密码 <> InputBox("请输入密码", "输入") Then
- MsgBox "密码有误!"
- AccYoN = False '密码不正确,返回false
- Else
- AccYoN = True '账号密码正确,返回true
- End If
- End Function
- Sub 存款()
- Dim money!
- If AccYoN Then '如果账号密码正确
- money = Round(Application.InputBox("请输入存款金额:", "存款", , , , , , 1), 2)
- If money < 0 Then
- MsgBox "存款失败,金额有误!"
- Else
- bAcc.存款金额 = bAcc.存款金额 + money '存款金额增加
- MsgBox "存款成功!存款金额" & money & "元" & vbCr & "账户余额" & bAcc.存款金额 & "元", , "提示"
- End If
- End If
- End Sub
- Sub 取款()
- Dim money!
- If AccYoN Then
- money = Round(Application.InputBox("请输入取款金额:", "取款", , , , , , 1), 2)
- If money < 0 Or money > bAcc.存款金额 Then '如果输入的金额小于0或超过存款金额
- MsgBox "取款失败"
- Else
- bAcc.存款金额 = bAcc.存款金额 - money '存款金额减少
- MsgBox "取款成功!取款金额" & money & "元" & vbCrLf & "账户余额" & bAcc.存款金额 & "元", , "提示"
- End If
- End If
- End Sub
- Sub 查询余额()
- Dim money!
- If AccYoN Then
- MsgBox "账号 " & bAcc.账号 & "的存款余额为" & bAcc.存款金额 & "元。"
- End If
- End Sub
复制代码 |
评分
-
查看全部评分
|