【Java项目实现】模拟ATM机

模拟ATM机

项目名称

  • 模拟ATM机

项目描述

  • 简单实现ATM机功能

代码实现

  • 测试类
public class Test {
     
        //模拟多功能ATM机
    public static void main(String[] args) {
     
        ATM atm = new ATM();
        atm.opearte();
    }
}
  • 主类:实现主方法
public class ATM {
     
    private Bank bank;
    public ATM(){
     
        bank = new Bank();
    }
    private void success(BankCard bankCard) {
     
        while (true) {
     
            System.out.println("请选择:1、查询余额,2、取款,3、存款,4、转账,5、退卡");
            Scanner scanner = new Scanner(System.in);
            int choice = scanner.nextInt();
            if (choice == 5) {
     
                return;
            }
            switch (choice) {
     
                case 1:
                    int money = bank.printf(bankCard);
                    System.out.println("余额:" + money);
                    break;
                case 2:
                    System.out.println("请输入取款金额:");
                    money = scanner.nextInt();
                    bankCard.withdraw(money);
                    break;
                case 3:
                    System.out.println("请输入存款金额:");
                    money = scanner.nextInt();
                    bankCard.deposit(money);
                    break;
                case 4:
                    System.out.println("请输入对方账户id:");
                    int id = scanner.nextInt();
                    BankCard card = bank.transfer(id);
                    if(card != null){
     
                        System.out.println("请输入转账金额:");
                        money = scanner.nextInt();
                        if(money <= bankCard.getMoney()){
     
                            bankCard.withdraw(money);
                            card.deposit(money);
                        }else {
     
                            System.out.println("转账失败");
                        }
                    }else {
     
                        System.out.println("未找到该账户");
                    }
                    break;
                default:
            }
        }
    }
    private void login(){
       //登录
        System.out.println("请输入账号,密码");
        Scanner scanner = new Scanner(System.in);
        int id = scanner.nextInt();
        int password = scanner.nextInt();
        BankCard bankCard = bank.search(id,password);
        if(bankCard != null){
     
            System.out.println("登录成功");
            success(bankCard);
        }else {
     
            System.out.println("登录失败,请注册");
        }
    }
    private void register(){
       //注册
        System.out.println("请输入账号,密码");
        Scanner scanner = new Scanner(System.in);
        int id = scanner.nextInt();
        int password = scanner.nextInt();
        BankCard bankCard = bank.search(id,password);
        if(bankCard != null){
     
            System.out.println("该账号已存在,请直接登录");
        }else {
     
            bank.addcard(id,password);
            System.out.println("注册成功");
        }
    }
    public void opearte() {
     
        while (true) {
     
            System.out.println("请选择:1、登录,2、注册,3、退出");
            Scanner scanner = new Scanner(System.in);
            int choice = scanner.nextInt();
            if (choice == 3) {
     
                return;
            }
            switch (choice) {
     
                case 1:
                    login();
                    break;
                case 2:
                    register();
                    break;
                default:
            }
        }
    }
}
  • 银行类:一个银行对应多个ATM机
public class Bank {
     
    private BankCard[] bankCards;
    private final int INITSIZE = 10;
    private int size;
    public Bank(){
     
        bankCards = new BankCard[INITSIZE];
        size = 0;
    }
    public BankCard search(int id,int password){
       //搜索
        BankCard[] bankCard = bankCards;
        for(int i=0;i<size;i++){
     
            if(bankCards[i].getId() == id && bankCards[i].getPassword() == password){
     
                return bankCard[i];
            }
        }
        return null;
    }
    public void addcard(int id,int password){
       //注册
        BankCard bankCard = new BankCard(id, password);
        if (size == bankCards.length){
     
            bankCards = Arrays.copyOf(bankCards,bankCards.length * 2);
        }
        bankCards[size++] = bankCard;
    }
    public int printf(BankCard bankCard){
       //显示余额
         return bankCard.getMoney();
    }
    public BankCard transfer(int id){
     
        for(int i=0;i<size;i++){
     
            if(bankCards[i].getId() == id){
     
                return bankCards[i];
            }
        }
        return null;
    }
}
  • 银行卡类:不同账户的操作
public class BankCard {
     
    private int id;
    private int password;
    private int money;
    private int size = 0;
    public BankCard(int id,int password){
     
        this.id = id;
        this.password = password;
        money = 0;
    }
    public int getId(){
     
        return id;
    }
    public int getPassword(){
     
        return password;
    }
    public int getMoney(){
     
        return money;
    }
    public void withdraw(int money){
      //取款
        if(this.money >= money){
     
            this.money -= money;
        }else {
     
            System.out.println("取款失败");
        }
    }
    public void deposit(int money){
       //存款
        this.money += money;
    }
}

你可能感兴趣的:(【Java项目实现】模拟ATM机)