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

📄 bank.java

📁 本银行系统涉及到多线程
💻 JAVA
字号:
package banking;
import java.util.*;
import java.io.DataOutputStream;

/**import java.util.*;
import java.io.DataOutputStream;**/
/**采用单一设计模式,只能生成一个对象,且在内部生成**/

public class Bank
{
	private Vector customer=new Vector();
        //客户容器类,存放银行的客户信息
        
        private MyStruct myMessage=new MyStruct();
        //存放客户访问操作得到的结果
        
        private static Bank bankInstance=null;
        //单一模式规则之一,建立私有的静态的银行对象引用实例。
        
        private Bank()
    	{
	}
	//单一设计模式要求,建立私有构造函数,使外界不得建立对象,保证系统中银行对象的唯一性
        
        public static Bank getBank()
    	{
        	//如果对象引用为空,即银行对象尚未建立,则建立对象,最终返回给用户该对象的引用。
        	//这种判断保证了有且仅有
        	//静态方法确保对象生成之前就可以使用该方法
        	if (bankInstance==null)
             	{
                	bankInstance=new Bank();
                	return bankInstance;
                }
          	 return bankInstance;
    	}
    	
	
	/**检查客户状态,确认客户是否合法,传入身份证,密码,金额,操作类型,帐户号码**/
	public boolean checkCustomer(String ID,String password ,double balance ,int opType,String accountNum,DataOutputStream out)
	{
		int i=0;
		for (;i<customer.size();i++) 
		{
			Customer cus=(Customer)customer.get(i);
                      //从容器类取出客户对象
			if(ID.equals(cus.getID()))
			{
				
				cus.checkAccount(password,accountNum,balance,opType,out);
				return true;
					
			}
			
		}
		try
		{
			out.writeUTF("客户不存在");
		}
		catch (Exception e)
		{
		}
		
		return false;		
	}
	
	/**检查客户状态,确认客户是否合法,传入姓,名,身份证号,密码,金额,操作类型**/
	public boolean checkCustomer(String firstName,String lastName,String ID,String password ,double balance ,int opType,DataOutputStream out)
	{
		int i=0;
		//如果类型为0,用户执行了开户操作
		if(opType==0) 
		{
			for (;i<customer.size();i++) 
			{
				//取客户数据
				Customer cus=(Customer)customer.get(i);
			    //如果客户已经存在,创建帐户
				if(ID.equals(cus.getID()))
				{
				
					System.out.println(cus.createAccount(balance,password,out));
					System.out.println("创建帐户");
					return true;
				}
			
			}
			//客户不存在,如果客户端没有传入姓名资料,要求客户重新输入,否则则创建客户资料,再创建帐户

			if (firstName.equals("")||lastName.equals(""))
			{
				System.out.println("客户资料不对");
				try
				{
					out.writeUTF("客户不存在,无法创建帐户。请先输入合法客户信息");
				}
				catch(Exception e)
				{
				}
			}	
			else 
			{	
				System.out.println("客户的姓名是"+firstName+lastName);
				System.out.println("创建客户");
				createCustomer(firstName,lastName,ID,balance,password,out);
			}
			
			
		}
		return false;		
	}
	
	/**创建客户,要求姓,名,身份证号码,金额,密码**/
	private boolean createCustomer(String firstName,String lastName,String ID,double balance,String password,DataOutputStream out)
	{
		//创建客户对象
		Customer cusT=new Customer(firstName,lastName,ID);		
		
		//把客户对象加入容器类,即在容器类中存放该对象的引用
		customer.add(cusT);
		
		/*
		//定义一个客户对象的引用,把容器类中的最后一个元素的引用赋给该引用,该引用为当前客户
		Customer cus=(Customer)customer.lastElement();
		*/
		
		System.out.println("您的帐号为"+cusT.createAccount(balance,password,out));
		
		
		return true;
	}
}

⌨️ 快捷键说明

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