⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bank.java

📁 银行的一个管理系统
💻 JAVA
字号:
package com.shunshi.bam.business;
import java.util.*;
import com.shunshi.bam.entity.model.*;
import com.shunshi.bam.exception.*;
public class Bank {
	private static Bank bank=new Bank();
	//private List list;
	// key:personId , value:Acount
	private Map<Long,Account> accs;
	//private Account[] accs=new Account[10];
	private int index;
	public static Bank newInstance(){
		return bank;
	}
	private Bank(){
		super();
		//list = new ArrayList(10);
		accs = new HashMap<Long,Account>();
	}
	public void printSortUser(){
		//局部类
		class User implements Comparable{
			private String personId;
			private double money;
			public User(String personId){
				this.personId = personId;
			}
			public void addMoney(double money){
				this.money += money;
			}
			public int compareTo(Object obj) {
				User user = (User)obj;
				if(this.money>user.money){
					return -1;
				}else if(this.money<user.money){
					return 1;
				}else{
					return this.personId.compareTo(user.personId);
				}
			}	
			public String toString(){
				return personId+":"+money;
			}
		}
		// key:personId , value:User
		Map<String,User> userMap = new HashMap<String, User>();
		Collection<Account> c = accs.values();
		Iterator<Account> iter = c.iterator();
		while(iter.hasNext()){
			Account acc = iter.next();
			String personId = acc.getPersonId();
			if(userMap.containsKey(personId)){
				User user = userMap.get(personId);
				user.addMoney(acc.getBalance());
			}else{
				User user = new User(personId);
				user.addMoney(acc.getBalance());
				userMap.put(personId, user);
			}
		}
		
		Collection users = userMap.values();
		List list = new ArrayList(users);
		Collections.sort(list);
		
		Iterator it = list.iterator();
		while(it.hasNext()){
			System.out.println(it.next());
		}
	}
	public Account openAccount(String pass1,String pass2,String name,String personId,String email,int type)throws RegisterException{
		if(!pass1.equals(pass2)){
			throw new RegisterException("对不起,两次密码不一致,不能开户");
			//System.out.println("对不起,两次密码不一致,不能开户!");
			//return null;
		}
		Account acc=null;
		if(type==0) acc=new SavingAccount(pass1,name,personId,email);
		if(type==1) acc=new CreditAccount(pass1,name,personId,email);
		if(type==2) acc=new LoanSavingAccount(pass1,name,personId,email);
		if(type==3) acc=new LoanCreditAccount(pass1,name,personId,email);
		/*if(index==accs.length) expand();
		accs[index]=acc;*/
		//list.add(acc);
		accs.put(acc.getId(), acc);
		index++;
		return acc;
	}
	/*private void expand(){
		Account[] accs2=new Account[accs.length*2];
		System.arraycopy(accs, 0, accs2, 0, accs.length);
		accs=accs2;
	}*/
	public Account login(long id,String password)throws LoginException{
		Account a=findAccountById(id);
		if(a==null){
			throw new LoginException("对不起,帐号错误,不能登陆");
			//System.out.println("对不起,帐号错误,不能登陆!");
			//return null;
		}
		String pass=a.getPassword();
		if(!pass.equals(password)){
			throw new LoginException("对不起,密码错误,不能登陆");
			//System.out.println("对不起,密码错误,不能登陆!");
			//return null;
		}
		return a;
	}
	public Account findAccountById(long id){
		Account a=null;
		/*for(int i=0;i<accs.length;i++){
			if(accs[i].getId()==id)return accs[i];
		}*/
		a = (Account)accs.get(id);
		return a;
	}
	public Account deposit(long id,double money)throws BalanceSmalerZeroException{
		Account a=findAccountById(id);
		a.deposit(money);
		return a;
	}
	public Account withdraw(long id,double money)throws BalanceSmalerZeroException,BalanceNotEnoughException{
		Account a=findAccountById(id);
		a.withdraw(money);	
		return a;
	}
	public Account setCelling(long id,double celling){
		Account a=findAccountById(id);
		if(a instanceof CreditAccount){
			CreditAccount ca=(CreditAccount)a;
			ca.setCelling(celling);
		}
		return a;
	}
	public Account requestLoan(long id,double loan)throws LoanException{
		Account a=findAccountById(id);
		if(a instanceof Loanable){
			Loanable la=(Loanable)a;
			la.requestLoan(loan);
		}
		return a;
	}
	public Account payLoan(long id,double loan)throws LoanException,BalanceSmalerZeroException,BalanceNotEnoughException{
		Account a=findAccountById(id);
		if(a instanceof Loanable){
			Loanable la=(Loanable)a;
			la.payLoan(loan);
		}
		return a;
	}
	public double totalBalance(){
		double result=0.0;
		/*for(int i=0;i<accs.length;i++){
			result+=accs[i].getBalance();
		}数组表示*/
		/*for(int i=0;i<list.size();i++){
			Account acc = (Account)list.get(i);
			result+=acc.getBalance();
		}
		链表表示*/
		Set<Long> s = accs.keySet();
		for(Long personId:s){
			Account acc = accs.get(personId);
			result+=acc.getBalance();
		}      //HashMap表示
		return result; 
	}
	public double totalCelling(){
		double result=0.0;
		/*for(int i=0;i<accs.length;i++){
			if(accs[i] instanceof CreditAccount){
				CreditAccount ca=(CreditAccount)accs[i];
				result+=ca.getCelling();
			}
		}数组表示*/
		/*for(int i=0;i<list.size();i++){
			Account acc = (Account)list.get(i);
			if(acc instanceof CreditAccount){
				CreditAccount ca=(CreditAccount)acc;
				result+=ca.getCelling();
			}
		}链表表示*/
		Set<Long> s = accs.keySet();
		for(Long personId:s){
			Account acc = (Account)accs.get(personId);
			if(acc instanceof CreditAccount){
				CreditAccount ca=(CreditAccount)acc;
				result+=ca.getCelling();
			}
		}    //HashMap表示
		return result;
	}
	public double totalLoan(){
		double result=0.0;
		/*for(int i=0;i<index;i++){
			if(accs[i] instanceof Loanable){
				Loanable la=(Loanable)accs[i];
				result+=la.getLoan();
			}
		}数组表示*/
		/*for(int i=0;i<list.size();i++){
			Account acc=(Account)list.get(i);
			if(acc instanceof Loanable){
				Loanable la=(Loanable)acc;
				result+=la.getLoan();
			}
		}链表表示*/
		Set<Long> s = accs.keySet();
		for(Long personId:s){
			Account acc=(Account)accs.get(personId);
			if(acc instanceof Loanable){
				Loanable la=(Loanable)acc;
				result+=la.getLoan();
			}
		}      //HashMap表示
		return result;
	}
}
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -