Java作业ATM机,使用单例模式,实现存取款,查询余额
import javax.swing.JOptionPane;
public class Main {
public static mian(String[]args){
ATM.getInstance(10);//初始化包含十个账户的ATM
userName=JOptionPane.showInputDialog("用户名");//ÀûÓöԻ°¿òÊäÈëÓû§Ãû
passWord=JOptionPane.showInputDialog("密码");//ÀûÓöԻ°¿òÊäÈëÃÜÂë
}
}
class ATM{
public static ATM instance;
private double deposits[];
private String userNames[];
private String passwords[];
private int currentId;//当前登陆的账户id
private int accounts=0;//当前ATM机中的账户数量
final double NON_EXISTENT=-1;
private ATM(int MaxAccounts){
deposits=new double[MaxAccounts];
userNames=new String[MaxAccounts];
passwords=new String[MaxAccounts];
currentId=-1;
}
public boolean RegisterAnAccount(String acconut,String password){
if (accounts==userNames.length) {
//System.out.println("注册失败");
return false;
} else{
userNames[accounts]=acconut;
passwordS[acconuts]=password;
return true;
}
}
public double GetAccountBalance(String Name,String passWord) { //获取账户余额
if (currentId!=-1) {
return deposits[currentId];
}
System.out.println("该账户不存在");
return 0;
}
public boolean Withdraw(double money){//取钱
if (currentId==-1 && money>deposits[currentId]) {
return false;
}else{
deposits[currentId]-=money;
return true;
}
}
public boolean Deposit(double money){//存钱
if (currentId!=NON_EXISTENT) {
deposits[currentId]+=money;
return true;
}else{
return false;
}
}
private int FindAccount(String Name) {//查找是否存在该账户
for(int id=0;id<userNames.length;++id){
if(userNames[id]==Name) {
return id;
}
}
return NON_EXISTENT;
}
private Boolean comparePassWord(String passWord) {return currentId!=-1? passWord==passwords[currentId]:false;}//确认登陆密码
public static ATM getInstance(int MaxAccounts) {instance=new ATM(1);return instance;}//获取ATM单例
}