ATM2.0

实现ATM机(多帐号),实现登陆、存款、取款、查询余额、改密码、转帐、退出的功能。

public class ATM2 {
    /**
     * 用户数组
     */
    public static String[] userArray = {"张飞", "关羽", "刘备"};
    /**
     * 账号数组
     */
    public static String[] codeArray = {"001", "002", "003"};
    /**
     * 密码数组
     */
    public static String[] pwdArray = {"111", "222", "333"};
    /**
     * 余额数组
     */
    public static int[] moneyArray = {1000, 2000, 3000};
    /**
     * 登录用户对应的下标
     */
    public static int loginIndex = 0;

    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null, "欢迎光临XXXX银行!");
        if (login() == false) {
            JOptionPane.showMessageDialog(null, "非法用户!");
            //结束程序
            System.exit(0);
        }
        while (true) {
            String item = JOptionPane.showInputDialog(null, "1.存款\n2.取款\n3.查询余额\n4.改密码\n5.转账\n6.退出\n7.Test");
            switch (item) {
                case "1":
                    saveMoney();
                    break;
                case "2":
                    getMoney();
                    break;
                case "3":
                    findMoney();
                    break;
                case "4":
                    chagePwd();
                    break;
                case "5":
                    transfer();
                    break;
                case "6":
                    JOptionPane.showMessageDialog(null, "感谢你的使用!再见!");
                    System.exit(0);
                    break;
                case "7":
                    showInfo();
                    break;
                default:
                    JOptionPane.showMessageDialog(null, "请按指定指令操作!");

            }
        }
    }

    /**
     * 登录
     *
     * @return
     */
    public static boolean login() {
        for (int i = 0; i < 3; i++) {
            String codeInput = JOptionPane.showInputDialog(null, "请输入账号:");
            String pwdInput = JOptionPane.showInputDialog(null, "请输入密码:");

            if (checkLogin(codeInput, pwdInput) != -1) {
                JOptionPane.showMessageDialog(null, "欢迎您!  " + userArray[loginIndex]);
                return true;
            } else {
                JOptionPane.showMessageDialog(null, "账号或密码错误!");
            }

        }
        return false;
    }

    /***
     *检测账号密码是否正确
     * @param code 账号
     * @param pwd 密码
     * @return 该账号密码对应的下标,如果不存在,则返回-1
     */
    public static int checkLogin(String code, String pwd) {
        for (int i = 0; i < codeArray.length; i++) {
            if (code.equals(codeArray[i]) && pwd.equals(pwdArray[i])) {
                //将下标记录在全局变量中
                loginIndex = i;
                return i;
            }
        }
        return -1;
    }

    /**
     * 存款
     */
    public static void saveMoney() {
        String save = JOptionPane.showInputDialog(null, "请输入要存的金额:");
        moneyArray[loginIndex] += Integer.parseInt(save);
    }

    /**
     * 取款
     */
    public static void getMoney() {

        String get = JOptionPane.showInputDialog(null, "请输入要取走的金额:");
        if (Integer.parseInt(get) > moneyArray[loginIndex]) {
            JOptionPane.showMessageDialog(null, "账户余额不足!");
            return;
        }
        moneyArray[loginIndex] -= Integer.parseInt(get);

    }


    /**
     * 查询余额
     */
    public static void findMoney() {
        JOptionPane.showMessageDialog(null, "当前账户可用余额为:" + moneyArray[loginIndex] + "万");
    }

    /**
     * 修改密码
     */
    public static void chagePwd() {
        String oldPwd = JOptionPane.showInputDialog(null, "请输入旧密码:");
        if (oldPwd.equals(pwdArray[loginIndex]) == false) {
            JOptionPane.showMessageDialog(null, "密码错误!");
            return;
        }
        String newPwd = JOptionPane.showInputDialog(null, "请输入新密码:");
        String newPwdAgain = JOptionPane.showInputDialog(null, "请再次输入新密码:");
        //判断两次密码是否相同
        if (newPwd.equals(newPwdAgain) == false) {
            JOptionPane.showMessageDialog(null, "两次密码输入不一致!");
            return;
        }
        //更改密码
        pwdArray[loginIndex] = newPwd;
    }

    /**
     * 转账
     */
    public static void transfer() {
        String transCode = JOptionPane.showInputDialog(null, "请输入转账账号:");
        int transIndex = checkCode(transCode);
        if (transIndex == -1) {
            JOptionPane.showMessageDialog(null, "账号不存在!");
            return;
        } else if (transIndex == loginIndex) {
            JOptionPane.showMessageDialog(null, "不能给自己账户转账!");
            return;
        }
        String transInput = JOptionPane.showInputDialog(null, "请输入转账金额:");
        int money = Integer.parseInt(transInput);
        if (money > moneyArray[loginIndex]) {
            JOptionPane.showMessageDialog(null, "账户余额不足!");
            return;
        }
        //登录账号减金额
        moneyArray[loginIndex] -= money;
        //转账账号加金额
        moneyArray[transIndex] += money;
    }

    /**
     * 检查账号对应的下标
     *
     * @param transCode 转账账号
     * @return 转账账号对应的下标
     */
    public static int checkCode(String transCode) {
        for (int i = 0; i < codeArray.length; i++) {
            if (transCode.equals(codeArray[i])) {
                return i;
            }
        }
        return -1;
    }

    /***
     * 显示所有账号信息
     */
    public static void showInfo() {
        String info = "账号       密码          余额(单位/万)\n";
        for (int i = 0; i < codeArray.length; i++) {
            info += codeArray[i] + "          " + pwdArray[i] + "            " + moneyArray[i] + "\n";
        }
        JOptionPane.showMessageDialog(null, info);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

再笨的鸟也要飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值