import java.util.Scanner;
public class Atm {
Scanner in = new Scanner(System.in);
int inNum,inPass; //客户输入的账号密码
int id = 110; //账号
int password = 120; //密码
int balance = 10000; //余额
int outMo; //取款金额
int inMo; //存款金额
int outMon; //自定义存款金额
public void getIn(){
System.out.println("————————————————————————————欢迎光临XX银行—————————————————————————————");
System.out.println("*******************************************************************");
System.out.println("请输入您的账号:");
inNum = in.nextInt();
System.out.println("请输入您的密码:");
inPass = in.nextInt();
while(true){ //判断账号密码是否正确
if(inNum == id){
boolean temp = true;
while(temp){
if(inPass == password){
menu();
break;
}
else{
for(int i = 2 ;i < 4;i++){ //循环三次判断密码 因为一开始已经输入一次 所以起始值定为2
System.out.println("密码不正确,请重新输入密码,密码输入错误三次账户将被锁定,当前第" + i + "次");
System.out.println("请输入您的密码:");
inPass = in.nextInt();
while(i == 3){
System.out.println("密码输入错误三次,该账户已被锁定,请持本人身份证到营业厅解锁。");
bCard();
temp = false;
break;
}
continue;
}
}
}
break;
}
else{
System.out.println("该账号不存在,请重新输入:");
inNum = in.nextInt();
continue;
}
}
}
public void menu(){ //主菜单
System.out.println("————————————————————————————欢迎光临XX银行ATM操作系统———————————————————");
System.out.println("*****************************************************************");
System.out.println("请选择业务编号:| 【1】取款 【2】存款 【3】查询 【4】转账 【5】修改密码 【6】退卡 |");
int num = in.nextInt();
switch(num){
case 1: outMoney();
case 2: inMoney();
case 3: query();
case 4: transfer();
case 5: change();
case 6: bCard();
}
}
public void outMoney(){ //输入取款金额
System.out.println("请选择取款金额:| 【1】100 【2】200 【3】500 【4】1000 【5】2000 【6】其他金额 |");
int num = in.nextInt();
switch(num){ //确定取款金额
case 1: outMo = 100; getMoney();
case 2: outMo = 200; getMoney();
case 3: outMo = 500; getMoney();
case 4: outMo = 1000; getMoney();
case 5: outMo = 2000; getMoney();
case 6:System.out.println("请输入取款金额:(只能取100的整数)"); outMon = in.nextInt(); cheakOut();
}
}
public void cheakOut(){ //判断自定义取款金额是否是100的整数
if(outMon % 100 == 0 && outMon >= 100){ //小于100 的数和100取余也等于0 所以要加上条件 >=100
outMo = outMon;
getMoney(); //输入金额符合规定则调用取款方法
}
else{
System.out.println("您所输入的金额有误,应输入大于或等于100的整数,请重新输入取款金额");
outMoney(); //输入金额不符合规定则调用输入取款金额方法
}
}
public void getMoney(){
if (outMo > balance){ //判断余额
System.out.println("余额不足,取款失败,请重新输入取款金额:");
outMoney();
}
else{
balance -= outMo;
System.out.println("取款成功,当前余额为: " + balance );
back();
}
}
public void inMoney(){
System.out.println("请输入存款金额:");
inMo = in.nextInt();
while(true){
if (inMo % 100 == 0 && inMo >= 100){ //判断存款金额是否符合规定
balance += inMo;
System.out.println("存款成功,当前余额为: " + balance);
back();
break;
}
else{
System.out.println("您所输入的金额有误,应输入大于或等于100的整数,请重新输入存款金额");
inMo = in.nextInt();
continue;
}
}
}
public void query(){ //查询方法
System.out.println("您当前的余额为 " + balance);
back();
}
public void transfer(){ //转账方法
System.out.println("请输入转账账号:");
int tra = in.nextInt();
System.out.println("请输入转账金额:");
int traMo = in.nextInt();
balance -= traMo;
System.out.println("转账成功,您当前的余额为: " + balance);
back();
}
public void change(){ //修改密码方法
System.out.println("请输入新密码:");
int nPassword = in.nextInt();
System.out.println("请再输入一次:");
int nePassword = in.nextInt();
while(true){
if(nPassword == nePassword){
password = nPassword;
System.out.println("密码修改成功!");
back();
break;
}
else{
System.out.println("两次密码输入不同,修改密码失败,请重新输入:");
System.out.println("请输入新密码:");
nPassword = in.nextInt();
System.out.println("请再输入一次:");
nePassword = in.nextInt();
continue;
}
}
}
public void back(){ //返回主菜单方法
System.out.println("请选择下一步操作: 【1】返回主菜单 【2】退卡");
int num = in.nextInt();
switch(num){
case 1:menu();
case 2:bCard();
}
}
public void bCard(){ //退卡方法
System.out.println("谢谢使用,欢迎下次光临!");
getIn();
}
public class Atm {
Scanner in = new Scanner(System.in);
int inNum,inPass; //客户输入的账号密码
int id = 110; //账号
int password = 120; //密码
int balance = 10000; //余额
int outMo; //取款金额
int inMo; //存款金额
int outMon; //自定义存款金额
public void getIn(){
System.out.println("————————————————————————————欢迎光临XX银行—————————————————————————————");
System.out.println("*******************************************************************");
System.out.println("请输入您的账号:");
inNum = in.nextInt();
System.out.println("请输入您的密码:");
inPass = in.nextInt();
while(true){ //判断账号密码是否正确
if(inNum == id){
boolean temp = true;
while(temp){
if(inPass == password){
menu();
break;
}
else{
for(int i = 2 ;i < 4;i++){ //循环三次判断密码 因为一开始已经输入一次 所以起始值定为2
System.out.println("密码不正确,请重新输入密码,密码输入错误三次账户将被锁定,当前第" + i + "次");
System.out.println("请输入您的密码:");
inPass = in.nextInt();
while(i == 3){
System.out.println("密码输入错误三次,该账户已被锁定,请持本人身份证到营业厅解锁。");
bCard();
temp = false;
break;
}
continue;
}
}
}
break;
}
else{
System.out.println("该账号不存在,请重新输入:");
inNum = in.nextInt();
continue;
}
}
}
public void menu(){ //主菜单
System.out.println("————————————————————————————欢迎光临XX银行ATM操作系统———————————————————");
System.out.println("*****************************************************************");
System.out.println("请选择业务编号:| 【1】取款 【2】存款 【3】查询 【4】转账 【5】修改密码 【6】退卡 |");
int num = in.nextInt();
switch(num){
case 1: outMoney();
case 2: inMoney();
case 3: query();
case 4: transfer();
case 5: change();
case 6: bCard();
}
}
public void outMoney(){ //输入取款金额
System.out.println("请选择取款金额:| 【1】100 【2】200 【3】500 【4】1000 【5】2000 【6】其他金额 |");
int num = in.nextInt();
switch(num){ //确定取款金额
case 1: outMo = 100; getMoney();
case 2: outMo = 200; getMoney();
case 3: outMo = 500; getMoney();
case 4: outMo = 1000; getMoney();
case 5: outMo = 2000; getMoney();
case 6:System.out.println("请输入取款金额:(只能取100的整数)"); outMon = in.nextInt(); cheakOut();
}
}
public void cheakOut(){ //判断自定义取款金额是否是100的整数
if(outMon % 100 == 0 && outMon >= 100){ //小于100 的数和100取余也等于0 所以要加上条件 >=100
outMo = outMon;
getMoney(); //输入金额符合规定则调用取款方法
}
else{
System.out.println("您所输入的金额有误,应输入大于或等于100的整数,请重新输入取款金额");
outMoney(); //输入金额不符合规定则调用输入取款金额方法
}
}
public void getMoney(){
if (outMo > balance){ //判断余额
System.out.println("余额不足,取款失败,请重新输入取款金额:");
outMoney();
}
else{
balance -= outMo;
System.out.println("取款成功,当前余额为: " + balance );
back();
}
}
public void inMoney(){
System.out.println("请输入存款金额:");
inMo = in.nextInt();
while(true){
if (inMo % 100 == 0 && inMo >= 100){ //判断存款金额是否符合规定
balance += inMo;
System.out.println("存款成功,当前余额为: " + balance);
back();
break;
}
else{
System.out.println("您所输入的金额有误,应输入大于或等于100的整数,请重新输入存款金额");
inMo = in.nextInt();
continue;
}
}
}
public void query(){ //查询方法
System.out.println("您当前的余额为 " + balance);
back();
}
public void transfer(){ //转账方法
System.out.println("请输入转账账号:");
int tra = in.nextInt();
System.out.println("请输入转账金额:");
int traMo = in.nextInt();
balance -= traMo;
System.out.println("转账成功,您当前的余额为: " + balance);
back();
}
public void change(){ //修改密码方法
System.out.println("请输入新密码:");
int nPassword = in.nextInt();
System.out.println("请再输入一次:");
int nePassword = in.nextInt();
while(true){
if(nPassword == nePassword){
password = nPassword;
System.out.println("密码修改成功!");
back();
break;
}
else{
System.out.println("两次密码输入不同,修改密码失败,请重新输入:");
System.out.println("请输入新密码:");
nPassword = in.nextInt();
System.out.println("请再输入一次:");
nePassword = in.nextInt();
continue;
}
}
}
public void back(){ //返回主菜单方法
System.out.println("请选择下一步操作: 【1】返回主菜单 【2】退卡");
int num = in.nextInt();
switch(num){
case 1:menu();
case 2:bCard();
}
}
public void bCard(){ //退卡方法
System.out.println("谢谢使用,欢迎下次光临!");
getIn();
}
}
在写一个测试类实例化后调用getIn方法即可