packageWork;//接口多态:使用接口代替抽象基类//李慧,2016.11.18
importjava.util.Scanner;importjava.util.Vector;public classATM{static AccountY stu[]=new Account[500];public static voidmain(String[] args) {//TODO Auto-generated method stub//主界面(5个用户)
stu[0]=new Account("20153150","李慧","2016/11/15","123456",1000);
stu[1]=new Account("20153151","李","2016/11/15","li",2000);
stu[2]=new Account("20153152","木子","2016/11/15","muzi",3000);
stu[3]=new Account("20153149","诺米","2016/11/15","nuomi",5000);
stu[4]=new Account("20153148","夏小暑","2016/11/15","xiaxiaoshu",4800);
String key;
Scanner scan=newScanner(System.in);
Scanner scan1=newScanner(System.in);
Scanner scan2=newScanner(System.in);
Scanner scan3=newScanner(System.in);int num=0;int k=1;
System.out.println("请输入密码:");
key=scan.nextLine();int b=0;for(int i=0;i< 5;i++)
{if(!key.equals(stu[i].getKey()))
{ b++;}}if(b>=5){
System.out.print("该卡已被锁定,无法操作");
}else
for(int i=0;i< 5;i++)
{if(key.equals(stu[i].getKey()))
{while(k==1)
{
System.out.println();
System.out.print("1.存款 2.取款 3.转账汇款 4.修改密码 5.查询余额 6.退卡");
System.out.println();
System.out.print("请选择:");
num=scan1.nextInt();if(num==6)
{ System.out.println("卡已成功退出!请拿卡!");break;
}switch(num)
{case 1://存款
doublem;
System.out.print("请输入存入的金额:");
m=scan2.nextDouble();
stu[i].cun(m);break;case 2://取款
intnumm;
System.out.print("100元\t500元\t1000元\t1500元\t2000元\t5000元\t其他金额\n"
+ "1.退卡");
System.out.println();
System.out.print("请选择:");
numm=scan3.nextInt();if(numm==1) break;elsestu[i].qu(numm);break;case 3://转账汇款
String nummm;doublecc;intn;
System.out.print("请输入转账行号:");
nummm=scan.nextLine();/*boolean b=true;
for(int j=0;j<5;j++)
{if(!nummm.equals(stu[j].getNum()))
{
b=false;
}}
if(b==false){
System.out.println("信息错误!");
}*/
for(int j=0;j<5;j++)if(nummm.equals(stu[j].getNum()))
{
System.out.print("请输入转账金额:");
cc=scan.nextDouble();
System.out.print("请确认(1确认,0取消)");
n=scan.nextInt();if(n==1)
{
stu[i].qu(cc);
stu[j].cun(cc);
System.out.print("转账成功!");
}else if(n==0){
System.out.print("已取消!");
}else{
System.out.print("发生错误!");
}
}break;case 4:
String kk;
System.out.print("请输入修改的密码:");
kk=scan.nextLine();
stu[i].setKey(kk);break;case 5:
System.out.print("余额为:"+stu[i].getMoney());break;case 6:break;
}
}
}}
}
}abstract classAccountY
{public abstractString getNum();public abstract voidsetKey(String s);public abstractString getKey();public abstract doublegetMoney();public abstract void cun(doublem);public abstract void qu(doublem);
}class Account extendsAccountY{private String num;//长度为11,由数字和字符组合
private String name;//用户的姓名
private String Date;//操作日期
private String key;//账户密码
private double money;//当前余额
public Account(String n,String a,String b,String c,double d){num=n;name=a;Date=b;key=c;money=d;}public String getNum(){returnnum;}public String getName(){returnname;}public String getDate(){returnDate;}public voidsetKey(String s){
key=s;
}public String getKey(){returnkey;}public double getMoney(){returnmoney;}public void cun(doublem){if(m<=200000)
money+=m;else{System.out.println("超出限额!");}
}public void qu(doublem){if(m
money-=m;elseSystem.out.println("超出余额!");
}
}