银行管理系统JAVA
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1)Account.java类
package com.etp;
import java.util.*;
public abstract class Account {
protected long id;
protected String password;
protected String name;
protected String personId;
protected String email;
protected double balance;
@Override
public boolean equals(Object obj) {
boolean rt=false;
if(this==obj)
rt=true;
if(obj instanceof Account)
{
Account anotherAcc=(Account)obj;
if(this.id==anotherAcc.id)
rt=true;
}
return rt;
}
@Override
public int hashCode() {
return
password.hashCode()+name.hashCode()+personId.hashCode()+email.hashCode();
}
@Override
public String toString() {
return id+";"+password+";"+name+";"+personId+";"+email+";"+balance;
}
/** 无参构造体*/
public Account() {
}
/** 有参构造体,用于初始化对象的必要属性*/
public Account(long id, String password, String name, String personId,
String email, double balance)
{
this.setId(id);
this.setPassword(password);
this.setName(name);
this.setPersonId(personId);
this.setEmail(email);
this.setBalance(balance);
}
/** 存款方法*/
public void deposit(double money) {
balance+=money;
}
/** 取款方法,抽象类,行为不确定,有储蓄账户和信用账户之分
* @throws BalanceNotEnoughException */
public abstract void withdraw(double money) throws BalanceNotEnoughException;
/** 属性的封装*/
public void setId(long id) {
this.id = id;
}
public long getId() {
return id;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
public void setName(String name) {
= name;
}
public String getName() {
return name;
public void setPersonId(String personId) {
this.personId = personId;
}
public String getPersonId() {
return personId;
}
public void setEmail(String email) {
this.email = email;
}
public String getEmail() {
return email;
}
public void setBalance(double balance) {
this.balance = balance;
}
public double getBalance() {
return balance;
}
}
2)ATM.java类
package com.etp;
import java.util.*;
import java.io.*;
public class ATM {
private Bank bank;
public ATM() {
/* 初始化Bank类,此时调用Bank的构造函数,其中默认的两个测试用户的信息被添加到Account类中*/
bank = new Bank();
public static void main(String[] args) {
ATM atm = new ATM();
atm.mainMenu();
}
private void mainMenu() {
boolean outflag = true;
do {
System.out.println(" ATM服务系统");
System.out.println("****************");
System.out.println(" 1. 登录");
System.out.println(" 2. 开户");
System.out.println(" 0. 退出");
System.out.println("****************");
System.out.print("请选择操作:");
Scanner scanner = new Scanner(System.in);
String firstChoice;
do {
firstChoice = scanner.next();
if (firstChoice.matches("^[0-2]$")) {
break;
} else
System.out.println("选择输入错误!");
} while (true);
boolean rt = true;
out: do {
switch (Integer.parseInt(firstChoice)) {
case 1:
/* 进入登录界面或登录成功界面*/
secondMenu();
break out;
case 2:
/* 开户,捕捉createAccount方法抛出的所有异常*/
try {
bank.createAccount();
} catch (RegisterException e) {
System.out.println(e.toString());
}
rt = false;