//主类
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();
}
}
ATM机java编码
最新推荐文章于 2022-12-04 12:24:45 发布