Java实现ATM存取钱代码

源代码如下:

ATM机

import java.util.Scanner;

public class ATM {
        private Bank bankGS;
        private Bank bankNH;

    public ATM() {
            bankGS = new Bank();
            bankNH = new Bank();
        }

        private BankCard searchCard (Bank bank,int id, int passwd){
            BankCard[] arr = bank.getCards();
            for (int i = 0; i < bank.getSize(); i++) {
                if (arr[i].getId() == id && arr[i].getPasswd() == passwd) {
                    return arr[i];
                }
            }
            return null;
        }
        private BankCard login (String bankName,int id, int passwd){
            if (bankName.equals("农业银行")) {
                return searchCard(bankNH, id, passwd);
            } else if (bankName.equals("工商银行")) {
                return searchCard(bankGS, id, passwd);
            }
            return null;
        }
        public void operator () {
            while (true) {
                System.out.println("1.登陆  2.注册  3.退出");
                Scanner scanner = new Scanner(System.in);
                int chioce = scanner.nextInt();
                if (chioce == 3) {
                    return;
                }
                System.out.println("请输入银行名:农业银行or工商银行");
                String bankName = scanner.next();
                System.out.println("请输入账号:");
                int id = scanner.nextInt();
                System.out.println("请输入密码:");
                int passwd = scanner.nextInt();
                switch (chioce) {
                    case 1:
                        BankCard successCard = login(bankName, id, passwd);
                        if (successCard != null) {
                            loginSuccessOperator(successCard);
                        } else {
                            System.out.println("登陆失败");
                        }
                        break;
                    case 2:
                        BankCard card = register(bankName, id, passwd);
                        if (card != null) {
                            System.out.println("注册成功");
                        } else {
                            System.out.println("注册失败");
                        }
                        break;
                }
            }
        }
        private void loginSuccessOperator (BankCard card){
            while (true) {
                System.out.println("1.存钱 2.取钱 3.转账 4.查余额 5.退卡");
                Scanner scanner = new Scanner(System.in);
                int chioce = scanner.nextInt();
                if (chioce == 5) {
                    return;
                }
                switch (chioce) {
                    case 1:
                        System.out.println("输入存款金额:");
                        int money = scanner.nextInt();
                        card.saveMoney(money);
                        break;
                    case 2:
                        System.out.println("输入取款金额:");
                        money = scanner.nextInt();
                        card.withdraw(money);
                        break;
                    case 3:
                        transfer(card);
                        break;
                    case 4:
                        System.out.println("当前余额:" + card.getMoney());
                        break;
                }
            }
        }
        private void transfer (BankCard card){
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入转账银行名:");
            String bankName = scanner.next();
            System.out.println("请输入转账用户id:");
            int id = scanner.nextInt();
            if (bankName.equals("农业银行")) {
                BankCard[] arr = bankNH.getCards();
                for (int i = 0; i < bankNH.getSize(); i++) {
                    if (arr[i].getId() == id) {
                        System.out.println("转账金额:");
                        int money = scanner.nextInt();
                        if (money <= card.getMoney()) {
                            card.withdraw(money);
                            arr[i].saveMoney(money);
                        } else {
                            System.out.println("转账失败");
                        }
                    }
                }
            }
            if (bankName.equals("工商银行")) {
                BankCard[] arr = bankGS.getCards();
                for (int i = 0; i < bankGS.getSize(); i++) {
                    if (arr[i].getId() == id) {
                        System.out.println("转账金额:");
                        int money = scanner.nextInt();
                        if (money <= card.getMoney()) {
                            card.withdraw(money);
                            arr[i].saveMoney(money);
                        } else {
                            System.out.println("转账失败");
                        }
                    }
                }
            }
        }
        private BankCard register (String bankName,int id, int passwd){
            //是否之前存在这张卡
            BankCard card = new BankCard(id, passwd);
            if (bankName.equals("农业银行")) {
                BankCard searchCard = searchCard(bankNH, id, passwd);
                if (searchCard != null) {
                    System.out.println("注册失败");
                    return null;
                }
                bankNH.add(card);
            }
            if (bankName.equals("工商银行")) {
                BankCard searchCard = searchCard(bankGS, id, passwd);
                if (searchCard != null) {
                    System.out.println("注册失败");
                    return null;
                }
                bankGS.add(card);
            }
            return card;
        }
    }

银行

import java.util.Arrays;

public class Bank {
    private BankCard[]cards;
    private int size;
    private final int INITCAPACITY;
    public Bank(){
        cards = new BankCard[10];
        size = 0;
        INITCAPACITY = 10;
    }
    public BankCard[] getCards(){
        return cards;
    }
    private void ensureCapacity(int capacity){
        if(capacity == cards.length){
            cards = Arrays.copyOf(cards,cards.length+(cards.length>>1));
        }
    }
    public void add(BankCard card){
        ensureCapacity(size);
        cards[size] = card;
        size++;
    }
    public int getSize(){
        return size;
    }
}

银行卡的操作

public class BankCard {

    private int id;
    private int passwd;
    private int money;
    public BankCard(int id,int passwd){
        this.id =id;
        this.passwd = passwd;
        this.money = 0;
    }

    public int getId() {
        return id;
    }

    public int getPasswd() {
        return passwd;
    }
    public void saveMoney(int money){
        this.money+=money;
    }
    public void withdraw(int money){
        if(this.money >= money) {
            this.money -= money;
        }else{
            System.out.println("取钱失败");
        }
    }
    public int getMoney(){
        return money;
    }
}

测试类

public class main {
    public static void main(String[] args) {
        ATM atm = new ATM();
        atm.operator();
    }
}

发布了45 篇原创文章 · 获赞 11 · 访问量 4839

猜你喜欢

转载自blog.csdn.net/weixin_44187963/article/details/90139651