模拟银行ATM存款存取款的相关功能
具体需求:
- 模拟.3张银行卡,1001,1002,1003,分别设置密码和余额(可以用9个变里分别保存卡号.密码和余额)
- 提示用户输入银行卡和密码
- 如果用户输入正确—提示让用户选择取款﹒存款还是退出,并提示余额多少﹔若输入错误—重新输入卡号密码;
- 选择取款–-~提示输入取款额度,如果超过余额,提示余额不足;否则,在余额上减掉相应金额;
- 选择存款—输入存款额度,余额加上相应额度,并提示余额多少;
- 选择退出–―退卡
- 限制3次输入错误账号密码,提示银行卡已被锁定
上代码
public class ATM {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
String cid1 = "1001";
String cpassWord1 = "123456";
double cbalance1 = 1000;
String cid2 = "1002";
String cpassWord2 = "123456";
double cbalance2 = 1000;
String cid3 = "1003";
String cpassWord3 = "123456";
double cbalance3 = 1000;
int count = 0; //统计连续输出错误次数
while(true) {
System.out.println("--------------ATM-----------------");
//登录功能
double balance = 0;
System.out.println("请输入账号: ");
String id = input.next();
System.out.println("请输入密码: ");
String pwd = input.next();
if(id.equals(cid1) && pwd.equals(cpassWord1)) {
balance = cbalance1;
}else if(id.equals(cid2) && pwd.equals(cpassWord2)) {
balance = cbalance2;
}else if(id.equals(cid3) && pwd.equals(cpassWord3)) {
balance = cbalance3;
}else {
count++;
if(count == 0) {
System.out.println("您已经输入三次,账号被锁定");
}else {
System.out.println("您已经输入"+count+"次,还有"+(3 - count)+"次机会");
continue;
}
}
count = 0; //当在3次以内输入正确后,要清零,否则下一个账号会保存上一个账号输入错误次数
//具体业务
while(true) {
System.out.println("请输入要办理业务编号:1.存款 2.取款 3.退卡");
int flag = input.nextInt();
if(flag == 1) {
//控制存款业务
while(true) {
System.out.println("您的余额"+balance+"元,请输入您要存款金额:");
double money1 = input.nextDouble();
if(money1 <= 0) {
System.out.println("您输入金额有误,不能小于等于0");
continue;
}else {
balance += money1;
System.out.println("您存款"+money1+"元,您的余额"+balance+"元");
break;
}
}
}else if(flag == 2) {
//控制存款业务
while(true) {
System.out.println("您的余额"+balance+"元,请输入您要取款金额:");
double money2 = input.nextDouble();
if(money2 > balance) {
System.out.println("您输入金额有误,不能大于等于现在余额");
continue;
}else {
balance -= money2;
System.out.println("您取款"+money2+"元,您的余额"+balance+"元");
break;
}
}
}else if(flag == 3){
break;//退卡,重新输入卡号和密码
}else {
System.out.println("没有此业务,请重新选择");
continue;
}
}
}
}
}