java模拟银行存取_java模拟银行存取款业务

展开全部

public class Account {

protected String accId;

protected String name;

protected double money;

public Account (String accId,String name){

this(accId,name,0);

}

public Account (String accId,String name,double money){

this.accId = accId;

this.name = name;

this.money = money;

}

public void saveMoney(double money){

if(money <= 0){

System.out.println("存款金额必须大于62616964757a686964616fe4b893e5b19e313333613036390");

}

this.money += money;

System.out.println("存款成功");

}

public double getMoney(double money){

if(money <= 0){

System.out.println("取款金额必须大于0");

return 0;

}

if(this.money <= money){

System.out.println("余额不足,无法取款");

return 0;

}

this.money -= money;

System.out.println("取款成功");

return money;

}

public double getBalance(){

return this.money;

}

protected double getOverdraft(){

return 0;

}

// 实现了equals方法,list比较时才能正确

@Override

public boolean equals(Object obj) {

if(obj == null){

return false;

}

if(this == obj){

return true;

}

if(obj instanceof Account){

return this.accId.equals(((Account)obj).accId);

}

return false;

}

@Override

public String toString() {

return "账户=" + accId + ",名字=" + name + ",余额=" + money;

}

}

public class Bank {

// Account实现了equals方法,list查找时才能正确

private List usersAccounts;

public Bank() {

usersAccounts = new ArrayList();

}

public void addAccount(Account account) {

if (usersAccounts.contains(account)) {

System.out.println("添加失败,不能添加同样的账户");

return;

}

usersAccounts.add(account);

}

public boolean delAccount(Account account) {

return usersAccounts.remove(account);

}

public boolean delAccount(String accId) {

return delAccount(new Account(accId, null));

}

public boolean existAccount(Account account) {

return usersAccounts.contains(account);

}

public boolean existAccount(String accId) {

return existAccount(new Account(accId, null));

}

public Account getAccount(String accId){

return usersAccounts.get(usersAccounts.indexOf(new Account(accId, null)));

}

public double getAllMoney() {

// 不考虑是否溢出,只是把所有用户余额相加

double result = 0;

for (Account account : usersAccounts) {

result += account.getBalance();

}

return result;

}

public double getAllOverdraft() {

// 不考虑是否溢出

double result = 0;

for (Account account : usersAccounts) {

result += account.getOverdraft();

}

return result;

}

public int getAccountNum() {

return usersAccounts.size();

}

public int getCreditAccountNum() {

int num = 0;

for (Account account : usersAccounts) {

// instanceof 性能没有简单的方法快。

if (account instanceof CreditAccount) {

num++;

}

}

return num;

}

public int getSavingAccountNum() {

int num = 0;

for (Account account : usersAccounts) {

if (account instanceof SavingAccount) {

num++;

}

}

return num;

}

public List getAllAccount() {

return usersAccounts;

}

}

public class CreditAccount extends Account{

private double overdraft;

public CreditAccount(String accId,String name){

super(accId, name);

this.overdraft = 1000;

}

public CreditAccount(String accId,String name,double money){

this(accId, name,money,1000);

}

public CreditAccount(String accId,String name,double money,double overdraft){

super(accId, name,money);

this.overdraft = overdraft;

}

@Override

public double getMoney(double money) {

if(money <= 0){

System.out.println("取款金额必须大于0");

return 0;

}

if(this.money + overdraft <= money){

System.out.println("余额不足,无法取款");

return 0;

}

this.money -= money;

System.out.println("取款成功");

return money;

}

@Override

public double getOverdraft(){

return overdraft;

}

@Override

public String toString() {

return "账户=" + accId + ",名字=" + name + ",余额=" + money + ",透支=" + overdraft;

}

}

public class SavingAccount extends Account {

public SavingAccount(String accId, String name) {

super(accId, name);

}

public SavingAccount(String accId, String name, double money) {

super(accId, name, money);

}

@Override

public double getMoney(double money) {

return super.getMoney(money);

}

@Override

public double getOverdraft() {

return super.getOverdraft();

}

}

public class Test {

private static Bank bank = new Bank();

public static void main(String[] args) {

Test.genAccount();

// 开户

Account a1 = new CreditAccount("1", "1", 200, 2000);

Account a2 = new SavingAccount("2", "2", 300);

Account a3 = new SavingAccount("3", "3", 400);

Account a4 = new CreditAccount("4", "4", 500, 2000);

Account a5 = new CreditAccount("4", "5", 600, 2000); // 帐号4重

bank.addAccount(a1);

bank.addAccount(a2);

bank.addAccount(a3);

bank.addAccount(a4);

bank.addAccount(a5);

showNowAccount();

// 销户

bank.delAccount("1");

bank.delAccount("2");

showNowAccount();

// 存款

if(bank.existAccount("3")){

Account acc = bank.getAccount("3");

acc.saveMoney(100);

}

showNowAccount();

// 取款

if(bank.existAccount("3")){

Account acc = bank.getAccount("3");

System.out.println("余额=" + acc.getBalance());

acc.getMoney(100);

System.out.println("余额=" + acc.getBalance());

acc.getMoney(1000);

System.out.println("余额=" + acc.getBalance());

}

if(bank.existAccount("4")){

Account acc = bank.getAccount("4");

System.out.println("余额=" + acc.getBalance());

acc.getMoney(100);

System.out.println("余额=" + acc.getBalance());

acc.getMoney(1000);

System.out.println("余额=" + acc.getBalance());

acc.getMoney(10000);

System.out.println("余额=" + acc.getBalance());

}

System.out.println(bank.getAccountNum());

System.out.println(bank.getAllMoney());

System.out.println(bank.getAllOverdraft());

System.out.println(bank.getCreditAccountNum());

System.out.println(bank.getSavingAccountNum());

}

public static void genAccount(){

String s = "1000 0000 0000 000";

Account a = null;

for(int i = 1; i < 11; i ++){

if((i & 2) == 0){

a = new CreditAccount(s + String.valueOf(i), "账户" + String.valueOf(i));

} else {

a = new SavingAccount(s + String.valueOf(i), "账户" + String.valueOf(i));

}

bank.addAccount(a);

}

}

public static void showNowAccount(){

for(Account account : bank.getAllAccount()){

System.out.println(account);

}

}

}

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值