72.シミュレートされたATM

ATM.java

import java.util.Scanner;

public class ATM {
    
    
    private BankDatabase bankDatabase;

    public ATM(){
    
    
        bankDatabase = new BankDatabase();
    }

    public void Screen(){
    
    
        while (true) {
    
    
            System.out.println("Welcome!");
            System.out.println("Main menu:");
            System.out.println(" 1-Sign in");
            System.out.println(" 2-register");
            System.out.println(" 3-Exit");
            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:
            }
        }
    }

    //登录
    private void login(){
    
    
        System.out.println("please enter your account number:");
        Scanner scanner = new Scanner(System.in);
        int id = scanner.nextInt();
        System.out.println("Enter your PIN:");
        int password = scanner.nextInt();
        BankAccount bankAccount = bankDatabase.search(id,password);
        if(bankAccount != null){
    
    
            System.out.println("Successful landing");
            success(bankAccount);
        }else {
    
    
            System.out.println("Login failed, please register");
        }
    }

    //注册
    private void register(){
    
    
        System.out.println("please enter your account number:");
        Scanner scanner = new Scanner(System.in);
        int id = scanner.nextInt();
        System.out.println("please enter your PIN:");
        int password = scanner.nextInt();
        BankAccount bankAccount = bankDatabase.search(id,password);
        if(bankAccount != null){
    
    
            System.out.println("This account already exists, please login directly");
        }else {
    
    
            bankDatabase.addCard(id,password);
            System.out.println("login was successful");
        }
    }

    // 登陆成功后的操作
    private void success(BankAccount bankAccount) {
    
    
        while (true) {
    
    
            System.out.println("Main menu:");
            System.out.println("     1-View my balance"); //余额查询
            System.out.println("     2-Withdraw cash");   //取款
            System.out.println("     3-Deposit funds");   //存款
            System.out.println("     4-Exit");            //退出
            System.out.println("Enter a choice ");
            Scanner scanner = new Scanner(System.in);
            int choice = scanner.nextInt();
            if (choice == 4) {
    
    
                System.out.println("thank!");
                System.out.println("************************************************");
                return;
            }
            switch (choice) {
    
    
                case 1:
                    int money = bankDatabase.printf(bankAccount);
                    System.out.println("balance:" + money);
                    System.out.println("************************************************");
                    break;
                case 2:
                    System.out.println("Withdrawal menu");
                    System.out.println("     1 - $20    4 - $100");
                    System.out.println("     2 - $40    5 - $200");
                    System.out.println("     3 - $60    6 - Cancel transaction");
                    System.out.println("Choose a withdrawal amount:");     //选择取款金额
                    money = scanner.nextInt();
                    bankAccount.withdraw(money);
                    break;
                case 3:
                    System.out.println("Deposit menu:");
                    System.out.println("     0 - Cancel the operation");
                    System.out.println("     1 - Enter deposit amount");
                    int choice2  = scanner.nextInt();
                    if(choice2==0)
                        break;
                    else
                        System.out.println("Please enter the deposit amount");
                        money = scanner.nextInt();
                        bankAccount.deposit(money);
                    break;
                default:
            }

        }
    }
}

BankAccount.java

import java.util.Scanner;

public class BankAccount {
    
    
    private int id;
    private int password;
    private int money;
    public BankAccount(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){
    
    
        switch (money){
    
    
            case 1:
                this.money -= 20;
                System.out.println("The amount you withdraw is 20");
                break;
            case 2:
                this.money -= 40;
                System.out.println("The amount you withdraw is 40");
                break;
            case 3:
                this.money -= 60;
                System.out.println("The amount you withdraw is 60");
                break;
            case 4:
                this.money -= 100;
                System.out.println("The amount you withdraw is 100");
                break;
            case 5:
                this.money -= 200;
                System.out.println("The amount you withdraw is 200");
                break;
            default:
        }
        if(this.money >= 0){
    
    
            System.out.println("The balance after withdrawal is  "+ this.money);//显示取款后的余额
        }else {
    
    
            switch (money){
    
    
                case 1:
                    this.money += 20;
                    break;
                case 2:
                    this.money += 40;
                    break;
                case 3:
                    this.money += 60;
                    break;
                case 4:
                    this.money += 100;
                    break;
                case 5:
                    this.money += 200;
                    break;
                default:
            }
            System.out.println("Withdrawal failure !");  //取款失败
        }
    }

    //存款
    public void deposit(int money){
    
    
        this.money += money;
    }
}

BankDatabase.java

import java.util.Arrays;

public class BankDatabase {
    
    
    private BankAccount[] bankAccounts;
    private final int INTSIZE = 1;
    private int size;
    public BankDatabase(){
    
    
        bankAccounts = new BankAccount[INTSIZE];
        size = 0;
    }

    //搜索
    public BankAccount search(int id, int password){
    
    
        BankAccount[] bankAccount = bankAccounts;
        for(int i=0;i<size;i++){
    
    
            if(bankAccounts[i].getId() == id && bankAccounts[i].getPassword() == password){
    
    
                return bankAccount[i];
            }
        }
        return null;
    }

    //注册
    public void addCard(int id,int password){
    
    
        BankAccount bankAccount = new BankAccount(id, password);
        if (size == bankAccounts.length){
    
    
            bankAccounts = Arrays.copyOf(bankAccounts, bankAccounts.length * 2);
        }
        bankAccounts[size++] = bankAccount;
    }
    public int printf(BankAccount bankAccount){
    
     //显示余额
        return bankAccount.getMoney();
    }

}


BankTest.java

public class BankTest {
    
    
    //模拟ATM机
    public static void main(String[] args) {
    
    
        ATM atm = new ATM();
        atm.Screen();
    }
}

おすすめ

転載: blog.csdn.net/JiangYu200015/article/details/111708909