package practice;

public class Four_Fortyfive_Array_User {
		//数组空间
		static Four_Fortyfive_Object_User[] Array=new Four_Fortyfive_Object_User[0];
		//有效数据个数
		static int num=0;
		
		
		public Four_Fortyfive_Array_User(){
			insert(new Four_Fortyfive_Object_User("张三","123456","17788888888"));
	 		insert(new Four_Fortyfive_Object_User("李四","123456","17788888888"));
	 		Array[1].saveManey(1000.0);
	 		for(int i=0;i<num;i++){
	 			 		Array[i].print();
	 			 	}
		}
		//对数组加长5
		static void expand(){
			Array=java.util.Arrays.copyOf(Array,Array.length+5);
		}
		//移除指定位置的元素
		public void remove(int postion){
			if(postion>num-1||postion<0){
				System.out.println("位置不合法不予执行。");
				return;
			}
			for(int i=postion;i<num-1;i++){
				Array[i]=Array[i+1];
			}
			num--;
		}
		//添加一个数在指定位置
		static void insert(Four_Fortyfive_Object_User value){
			if(Array.length==num){
				expand();
			}
			Array[num]=value;
			num++;
		}
		static void allPrint(){
			for(int i=0;i<num;i++){
			 		Array[i].print();
			 	}
		}
}


package practice;
import java.util.Scanner;

public class Four_Fortyfive_Object_Bank {
	private Scanner Input=new Scanner(System.in);
	private String Name;
	private Four_Fortyfive_Array_User Depot=new Four_Fortyfive_Array_User() ;
	//构造函数
	public Four_Fortyfive_Object_Bank(){};
	public Four_Fortyfive_Object_Bank(String Name){
		this.Name=Name;
		
	};
	//调出主菜单
	public void showMenu(){
		do{
			System.out.println("-----------------------------------"+Name+"欢迎您------------------------------------");
			System.out.println("1、开户  2、存款  3、取款  4、转账  5、查询余额  6、修改密码  7、修改预留手机号码  8、注销账户  0、退出");
			System.out.println("-----------------------------------------------------------------------------------");
			System.out.print("请输入操作代码:");
			int step=Input.nextInt();
			switch(step){
			case 1:setUser();break;
			case 2:saveMoney();break;
			case 3:getMoney();break;
			case 4:transferMoney();break;
			case 5:showSurplus();break;
			case 6:changePassWord();break;
			case 7:changePhoneNum();break;
			case 8:logout();break;
			case 0:System.out.println("谢谢您的使用,欢迎下次光临。");Depot.allPrint();return;
			default:break; 
			}
		}while(true);
		
	}
	//开户
	public void setUser(){
		String[] a=new String[4];
		System.out.println("---开户程序---");
		System.out.println("请输入您的姓名:");
		a[0]=this.Input.next();
		do{
			System.out.println("请输入您的密码:");
			a[1]=Input.next();
			System.out.println("请再次输入以确认您的密码:");
			a[2]=Input.next();
		}while(!a[2].equals(a[1]));
		System.out.println("请输入您的电话:");
		a[3]=Input.next();
		Four_Fortyfive_Object_User b=new Four_Fortyfive_Object_User(a[0],a[1],a[3]);
		Depot.insert(b);
		System.out.println("您的卡号是:"+b.showCardId());
		System.out.println("---开户完成---");
	}
	//存钱
	public void saveMoney(){
		boolean a;
		String cardId;
		double money;
		Four_Fortyfive_Object_User to;
		System.out.println("---存款程序---");
		do{
			do{
				System.out.println("请输入您希望存款的卡号是:");
				cardId=Input.next();
				to=find(cardId);
			}while(to==null);
			do{
				System.out.println("请输入您希望存款的金额是:");
				money=Input.nextDouble();
			}while(money<0.0);
			System.out.println("您确定是向卡号为"+cardId+"的用户存上"+money+"元吗?(确认请输入true,重输请输入false)");
			a=Input.nextBoolean();
		}while(!a); 
		to.saveManey(money);
		System.out.println("已经向卡号为"+cardId+"的用户存上"+money+"元");
		System.out.println("---存款完成---");
	}
	//寻人
	public Four_Fortyfive_Object_User find(String CardId){
		for(int i=0;i<Depot.num;i++){
			if(CardId.equals(Depot.Array[i].showCardId())){return Depot.Array[i];}
		}
		return null;
	}
	//登录
	public Four_Fortyfive_Object_User signIn(){
		int a=0;
		do{
			String CardId;
			String PassWord;
			Four_Fortyfive_Object_User User;
			System.out.println("请输入您的卡号:");
			CardId=Input.next();
			User=find(CardId);
			System.out.println("请输入您的密码:");
			PassWord=Input.next();
			if(PassWord.equals(User.showPassWord())){
				return User;
			}
			a++;
		}while(a<2);
		System.out.println("*******吞卡*******");
		System.exit(0);
		return null;
	}
	//取款
	public void getMoney(){
		double money;
		Four_Fortyfive_Object_User from;
		System.out.println("---取款程序---");
		from=signIn();
		do{
			System.out.println("您要取得金额为:");
			money=Input.nextDouble();
		}while(money>from.showSurplus()||money<0.0);
		from.giveMoney(money);
		System.out.println("---出款---");
		System.out.println("---取款完成---");
		
		
	}
	//转账
	public void transferMoney(){
		double money;
		Four_Fortyfive_Object_User from;
		Four_Fortyfive_Object_User to;
		System.out.println("---转账程序---");
		from=signIn();
		do{
			System.out.println("您要转账的金额为:");
			money=Input.nextDouble();
		}while(money>from.showSurplus()||money<0.0);
		do{
			System.out.println("请输入您要转入的卡号是:");
			to=find(Input.next());
		}while(to==null);
		from.giveMoney(money);
		to.saveManey(money);
		System.out.println("已经从卡"+from.showCardId()+"卡"+to.showCardId()+"转入"+money+"元");
		System.out.println("---转账结束---");
	}
	//查询余额
	public void showSurplus(){
		Four_Fortyfive_Object_User from;
		System.out.println("---查询余额---");
		from=signIn();
		System.out.println("您的余额是:"+from.showSurplus());
		System.out.println("---查询结束---");
	}
	//改变密码
	public void changePassWord(){
		Four_Fortyfive_Object_User to;
		String NewPassWord;
		System.out.println("---修改密码---");
		to=signIn();
		do{
			System.out.println("您的新密码是:");
			NewPassWord=Input.next();
			System.out.println("确认您的新密码是:");
		}while(!NewPassWord.equals(Input.next()));
		to.changePassWord(NewPassWord);
		System.out.println("---修改成功---");
		System.out.println("---修改结束---");
		
		
	}
	//改变手机号
		public void changePhoneNum(){
			Four_Fortyfive_Object_User to;
			String NewPhoneNum;
			System.out.println("---修改手机号---");
			to=signIn();
			System.out.println("您的新手机号是:");
			NewPhoneNum=Input.next();
			to.changePhoneNum(NewPhoneNum);
			System.out.println("修改成功,您的新手机号是:"+NewPhoneNum);
			System.out.println("---修改结束---");
			
			
		}
		//注销
		public void logout(){
			Four_Fortyfive_Object_User to;
			System.out.println("---注销程序---");
			to=signIn();
			int num=0;
			if(to.showSurplus()!=0){
				System.out.println("请取完所有余款。");
				System.out.println("---注销失败---");
				return;
			}
			for(int i=0;i<Depot.num;i++){
				if(to.equals(Depot.Array[i])){
					num=i;
				}
			}
			Depot.remove(num);
			System.out.println("---注销结束---");
		}
	
	
	
	
	
	
	
	
}



package practice;

public class Four_Fortyfive_Object_User {
	private String CardId;
	private String Name;
	private String PassWord;
	private String PhoneNum;
	private double Surplus=0.0;
	//public Four_Fortyfive_Object_User(){};
	public Four_Fortyfive_Object_User(String Name,String PassWord,String PhoneNum){
		this.Name=Name;
		this.PassWord=PassWord;
		this.PhoneNum=PhoneNum;
		int a=(int)(Math.random()*10000);
		if(a<1000){
			if(a<100){
				if(a<10){
					this.CardId="61000001000"+a;
				}else{
					this.CardId="6100000100"+a;
				}
			}else{
				this.CardId="610000010"+a;
			}	
		}else{
			this.CardId="61000001"+a;
		}
		
	}
	public void print(){
		System.out.println("卡号:"+this.CardId);
		System.out.println("姓名:"+this.Name);
		System.out.println("密码:"+this.PassWord);
		System.out.println("手机:"+this.PhoneNum);
		System.out.println("余额:"+this.Surplus);
	}
	public String showCardId(){
		return this.CardId;
	}
	public void saveManey(double money){
		this.Surplus+=money;
	} 
	public String showPassWord(){
		return this.PassWord;
	}
	public double showSurplus(){
		return this.Surplus;
	}
	public void giveMoney(double money){
		this.Surplus-=money;
	}
	public void changePassWord(String newpassword){
		this.PassWord=newpassword;
	}
	public void changePhoneNum(String newPhoneNum){
		this.PhoneNum=newPhoneNum;
	}
	
	
}



package practice;

public class QF_Four_Section_Fortyfive {
	public static void main(String[] arg){
		Four_Fortyfive_Object_Bank zhong=new Four_Fortyfive_Object_Bank("中国银行");
		zhong.showMenu();
	}
}