做一个简单的银行、账户演示程序。
(1)定义一个账户类,包含用户名、密码、余额等属性、存钱、取钱等方法(4分)。
(2)定义一个银行类,包含银行名、账户列表等属性,开账户、查账户的功能。账户列表可以使用集合相关的类,如ArrayList,最好同时使用泛型(4分)。
(3)定义一个测试类及main函数,在其中创建一个银行,开设一些账号,模拟存钱、取钱、显示余额等(2分)。
package text;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;
public class MyAccont {
public static void main(String[] args) {
bank CBA=new bank("中国人民银行");
CBA.addUser(new Accont(1000002, "灯火酱", "233333"));
CBA.addUser(new Accont(1000001, "麻贵", "233333"));
CBA.addUser(new Accont(1000004, "烛川", "233333"));
CBA.listUser();
Accont user1=new Accont(100000, "茨木童子", "123456");
CBA.addUser(user1);
user1.saveMoney(200);
user1.loadMoney();
CBA.listUser();
}
}
class Accont{
private String name;
private String passWord;
private int money;
private Integer cardNumber;
//余额
public int getMoney() {
return money;
}
public void saveMoney(int isMoney) {
money+=isMoney;
System.out.println("——————————————————————————————————————————");
System.out.println("存款成功 账户余额:"+this.getMoney());
System.out.println("——————————————————————————————————————————");
}
public void loadMoney() {
System.out.println("——————————————————————————————————————————");
System.out.print("请输入密码:");
Scanner input=new Scanner(System.in);
String passWord=input.nextLine();
if(passWord.equals(this.passWord)) {
System.out.print("请输入取款金额:");
int isMoney=input.nextInt();
if(money<isMoney) {
System.out.println("账户余额不足");
}else {
money-=isMoney;
System.out.println("已取出"+isMoney+"元");
System.out.println("账户余额:"+this.getMoney());
}
}
else System.out.println("密码错误");
input.close();
System.out.println("——————————————————————————————————————————");
}
public void setPassWord(String passWord){
this.passWord=passWord;
}
public String getPassWord() {
return passWord;
}
public Accont(int cardNumber,String name,String passWord) {
this.cardNumber=cardNumber;
this.name=name;
this.passWord=passWord;
}
public Integer getCardNumber() {
return cardNumber;
}
public String toString(){
return "用户名:"+name+" 余额:"+money;
}
}
class bank{
private String bankName;
private ArrayList<Accont>userList=new ArrayList<Accont>();
private int cnt=0;
public void addUser(Accont user) {
userList.add(user);
cnt++;
userList.sort(new Comparator<Accont>() {
//构造比较器
@Override
public int compare(Accont o1, Accont o2) {
// TODO Auto-generated method stub
if(o1==null||o2==null)return 0;
else return o1.getCardNumber().compareTo(o2.getCardNumber());
}
});
System.out.println("账户添加成功");
}
//列出银行用户
public void listUser() {
for(Accont accont:userList) {
System.out.println("卡号:"+accont.getCardNumber()+accont.toString());
}
}
//用户登录 编译器报错Exception in thread "main" java.lang.NullPointerException
//at text/text.MyAccont.main(MyAccont.java:16)
public Accont login(Integer cardNumber,String passWord) {
for(int i=0;i<cnt;i++){
if(userList.get(i).getCardNumber().equals(cardNumber)) {
if(passWord.equals(userList.get(i).getPassWord())) {
System.out.println("已登录");
return userList.get(i);
}else {
System.out.println("密码错误");
return null;
}
}else {
System.out.println("无此账户");
return null;
}
}
return null;
}
//查找卡号
public void serchAccont(Integer cardNumber) {
for(int i=0;i<cnt;i++) {
if(cardNumber==userList.get(i).getCardNumber()) {
System.out.println(userList.get(i).toString());
}
}
}
public bank(String name) {
this.bankName=name;
}
}