package CL8_ATMpackage;
public class TestDemo {
public static void main(String[] args) {
ATM atm = new ATM();
atm.start();
}
}
package CL8_ATMpackage;
import java.util.Scanner;
public class ATM {
private Bank bank;
public ATM(){
bank = new Bank();
}
private boolean register(int id,int passwd){
return bank.add(id,passwd);
}
private BankCard login(int id,int passwd){
return bank.reserch(id,passwd);
}
public void start(){
System.out.println("请输入1、登录,2、注册,3、退出");
Scanner scanner = new Scanner(System.in);
int chioce = scanner.nextInt();
if(chioce==3){
return ;
}
System.out.println("请输入账号密码");
int id = scanner.nextInt();
int passwd = scanner.nextInt();
switch (chioce){
case 1:
BankCard card = login(id,passwd);
if(card!=null){
System.out.println("登录成功");
bank.loginSuccess(card);
}else{
System.out.println("登录失败");
}
break;
case 2:
if(register(id,passwd)){
System.out.println("注册成功请登录");
start();
}else {
System.out.println("注册失败");
}
break;
}
}
}
package CL8_ATMpackage;
import java.util.Arrays;
import java.util.Scanner;
public class Bank {
private BankCard[] cards;
private int size;
private static final int INITSIZE = 10;
private static Scanner scanner= new Scanner(System.in);
public Bank(){
this(INITSIZE);
}
public Bank(int num){
cards = new BankCard[num];
}
public void ensureCapatity(){
if(cards.length==size){
Arrays.copyOf(cards,cards.length+(cards.length>>1));
}
}
public boolean add(int id,int passwd){
BankCard card = reserch(id,passwd);
if(card!=null){
return false;
}
ensureCapatity();
cards[size++] = new BankCard(id,passwd);
return true;
}
public BankCard reserch(int id,int passwd){
for(int i =0;i<size;i++){
if(cards[i].getId()==id&&cards[i].getPasswd()==passwd){
return cards[i];
}
}
return null;
}
public void loginSuccess(BankCard card){
System.out.println("请输入1存款2取款3转账4查余额5退出");
int chioce = scanner.nextInt();
if(chioce==5){
return;
}
switch (chioce){
case 1:
System.out.println("请输入存款金额");
int money = scanner.nextInt();
card.save(money);
loginSuccess(card);
break;
case 2:
System.out.println("请输入取款金额");
money = scanner.nextInt();
card.withdraw(money);
loginSuccess(card);
break;
case 3:
System.out.println("请输入转账id和密码");
int id = scanner.nextInt();
int passwd = scanner.nextInt();
BankCard card2 = reserch(id,passwd);
if(card2!=null){
System.out.println("请输入转账金额");
money = scanner.nextInt();
card.withdraw(money);
card2.save(money);
}else{
System.out.println("没有这个账号");
}
loginSuccess(card);
break;
case 4:
int banlance = card.getMoney();
System.out.println(banlance);
loginSuccess(card);
break;
}
}
}
package CL8_ATMpackage;
public class BankCard {
private int id;
private int passwd;
private int money;
public int getMoney() {
return money;
}
public int getId() {
return id;
}
public int getPasswd() {
return passwd;
}
public BankCard(int id,int passwd){
this.id = id;
this.passwd=passwd;
}
public void save(int money){
this.money+=money;
}
public void withdraw(int money){
this.money-=money;
}
}