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();
}
}