ATM机java编码


//主类
public class MyBank
{
  public static void main(String[] args)
    {
	  //实例化登陆类并显示登陆界面
	 Login lg=new Login();
	 lg.show();
    }
}
//登陆类
class Login
{
   //获取登录账户ID及密码
   public void show()
  {
	System.out.println("请输入账户ID:"+"  "+"[0退出]");
	Scanner zhid =new Scanner(System.in);
	String str1=zhid.nextLine();
	if(str1.equals("0"))
	{
		System.out.println("谢谢使用,再见!");
		System.exit(0);
	}
	else
	{
	 System.out.println("请输入账户密码:");
	 Scanner mm =new Scanner(System.in);
	 String str2=mm.nextLine();
	 //实例化用户信息类并验证登陆账号及密码
     Info info=new Info();
     info.check(str1,str2);
    }
   }  	
}
//用户父类
class User
{       
    //存款方法(当前账号的下标,存款金额,账户信息数组)
	public void cunKuan(int c,double m,String[][] user)
	{
     if((m%100)==0&&m>=0){
	   user[c][3]=Double.toString(Double.parseDouble(user[c][3])+m);
	   System.out.println("存款操作成功!");
	 }
     else
      {System.out.println("请输入100的整数倍或请输入正数!");return;}
	}
	//取款方法(当前账号的下标,取款金额,账户信息数组)
	public void quKuan(int c,double m,String[][] user)
	{
		if((m%100)==0&&m>=0){
		if((Double.parseDouble(user[c][3])-m)>=0)
		{
	     user[c][3]=Double.toString(Double.parseDouble(user[c][3])-m);
	     System.out.println("取款操作成功!");
		}
		else{System.out.println("余额不足,取款失败!");}
		}
        else
      {System.out.println("请输入100的整数倍或请输入正数!");return;}
	}
	//查询余额方法(当前账号的下标,账户信息数组)
	public void yuE(int c,String[][] user)
	{
	System.out.println("账户名:"+user[c][0]+"  ID:"+user[c][1]+"  "+"余额为:"+user[c][3]+"元");
	}
	//普通用户判断选项并执行操作
	//判断方法(操作选项,当前账号的下标,账户信息数组)
	public void panDuan(int p,int i1,String[][] user)
	{
     switch(p)
		{
	     case 1:{
				System.out.println("请输入存款数:");
			    Scanner cks =new Scanner(System.in);
				Double ck=cks.nextDouble();
				this.cunKuan(i1,ck,user);
			    break;
			 } 
		 case 2:{
			    System.out.println("请输入取款数:");
			    Scanner qks =new Scanner(System.in);
	            Double qk=qks.nextDouble();
			    this.quKuan(i1,qk,user);
			    break;
			 } 
		 case 3:{
			 this.yuE(i1,user);
			 break;
		 } 
		 case 0:{
			 System.exit(0);break;
			 } 
		 default:{System.out.println("请输入0~3的操作选项!");}
	    }
    }
}
//普通用户类
class NotVip extends User
{  
	//普通用户操作选项
	public void show()
	{
	System.out.println("我爱我家自动提款机普通用户操作界面");
	System.out.println("---------");
	System.out.println("【存款---1】");
	System.out.println("【取款---2】");
	System.out.println("【余额---3】");
	System.out.println("【退卡---0】");
	System.out.println("---------"); 
	System.out.println("请输入你的操作:"); 
	}	
}

	 //重写父类判断方法(操作选项,当前账号的下标,账户信息数组)
	 public void panDuan(int p,int i2,String[][] user)
	{
     switch(p)
		{
	     case 1:{
			 System.out.println("请输入存款数:");
			 Scanner ck1 =new Scanner(System.in);
	         Double ck=ck1.nextDouble();
			 this.cunKuan(i2,ck,user);
			 break;
			 } 
		 case 2:{
			 System.out.println("请输入取款数:");
			 Scanner qk1 =new Scanner(System.in);
	         Double qk=qk1.nextDouble();
			 this.quKuan(i2,qk,user);
			 break;
			 } 
		 case 3:{
			 this.yuE(i2,user);
			 break;
		     }
         case 4:{
			 System.out.println("请输入目标账号ID:");
			 Scanner zhh =new Scanner(System.in);
	         String zh=zhh.nextLine();
			 for(int j=0;j<user.length;j++)
	         {
		     if(user[j][2].equals(zh))
		      {
		      System.out.println("请输入转入金额:");
			  Scanner zje =new Scanner(System.in);
	          Double zj=zje.nextDouble();
              this.zhuanZhang(i2,j,zj,user);
			  return;
	          }
	         }	
			 System.out.println("目标账户不存在,请核对信息!");
			 return;
		   }
		 case 0:{System.exit(0);break;} 
		 default:{System.out.println("请输入0~4的操作选项!");}
	    }
    }
}
//用户信息类
class Info
{
	//i变量保存当前用户在数组中的下标
	int i;
	//保存用户信息的数组,格式:姓名,账号,密码,余额
	String[][] user={{"未知","999","999","0"},{"聂庆亮","200981501","10010","0","notVIP"},{"乐乐","200981511","583911","0","VIP"},{"尹继平","200981512","1324114","0","VIP"}};
	//判断用户类型并执行相应操作
	//登陆验证方法(登陆账号,登陆密码)
	public void check(String st1,String st2)
	{ 
	 for(i=0;i<user.length;i++)
	  {
       if(user[i][1].equals(st1)&&user[i][2].equals(st2))
		  {
					 //获取用户操作并判断
					Scanner sz1 =new Scanner(System.in);
	                int str4=sz1.nextInt();
					vip.panDuan(str4,i,user);	
				 }
				 catch (Exception e)
				 {
					System.out.println("需要输入数字!"+e);
				 }				 		    
				}
			}
			else
			  {
				while (true)
				{	
				//满足普通用户类时实例化普通用户类并显示普通用户菜单页面 
                NotVip nv=new NotVip();
				nv.show();
				try
				{
				//获取用户操作并判断
				  Scanner sz =new Scanner(System.in);
	              int str3=sz.nextInt();
                  nv.panDuan(str3,i,user);
				}
				catch (Exception e)
				 {
					 System.out.println("需要输入数字!"+e);
				 }			
				}
			  }
	      }		
	 }
	 System.out.println("输入的账户ID或密码有误!请核对信息!");
	 Login lg=new Login();
	 lg.show();
	}
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值