ATM机的主要操作如图所示:
查询余额
存款
取款
改密
退卡
package study05;
import java.util.Scanner;
public class Demo05 {
Scanner scan = new Scanner(System.in);
int pass = 123456;
int money = (int)(Math.random()*1000);
int count = 0;//记录输入密码的次数
//登录
public void login() {
System.out.println("请输入密码:(只有3次机会)");
int pass = scan.nextInt();
//如果登录成功,进入主界面,否则继续登录
if(this.pass == pass) {
mainUI();
}else {
if(count <2) {
count++;
System.out.println("密码错误!请重新登陆!");
login();
}else {
System.out.println("对不起!机会用完!请联系有关人员!");
}
}
}
//主界面
public void mainUI() {
System.out.println("请选择您要进行的操作:");
int type = scan.nextInt();
switch (type) {
case 1:
deposit();
break;
case 2:
withdrawMoney();
break;
case 3:
search();
break;
case 4:
changePass();
break;
case 5:
takeCard();
break;
default:
break;
}
}
//存款
public void deposit() {
System.out.println("请输入存款金额:");
int money = scan.nextInt();
if(money %100 != 0) {
System.out.println("ATM只接收面值100元的人民币");
deposit();
}else {
System.out.println("存款成功!");
this.money += money;
mainUI();
}
}
//取款
public void withdrawMoney() {
System.out.println("请输入你要取款的金额:");
int money = scan.nextInt();
if(this.money < money) {
System.out.println("对不起,余额不足!");
withdrawMoney();
}else {
if(money % 100 != 0 ) {
System.out.println("请输入整数金额");
withdrawMoney();
}else {
System.out.println("取款成功!");
this.money -= money;
mainUI();
}
}
}
//查询
public void search() {
System.out.println("你的余额为:"+money);
mainUI();
}
//改密
public void changePass() {
System.out.println("请输入旧密码:");
int pass = scan.nextInt();
if(this.pass == pass) {
System.out.println("请输入新密码:");
int newPass1 = scan.nextInt();
System.out.println("请再次输入密码:");
int newPass2 = scan.nextInt();
if(newPass1 != newPass2) {
System.out.println("两次密码不一致,请重新输入:");
changePass();
}else {
System.out.println("修改成功!");
mainUI();
}
}else {
System.out.println("密码错误!请重新输入:");
changePass();
}
}
//退卡
public void takeCard() {
System.out.println("谢谢使用!欢迎下次光临!");
}
public static void main(String[] args) {
new Demo05().login();
}
}