package cn.oracle;java
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;oracle
public class Atm {
public static void main(String[] args) {
new Atm();
}this
String name;
String pwd;
String nm;
String pw;
String op;
String history = "";
public double money = 0;
// 控制檯輸入
Scanner sc = new Scanner(System.in);orm
// 註冊、登陸、退出
public Atm() {
one: while (true) {
System.err.println("1.註冊\n2.登陸\n0.退出\n");
String op = sc.nextLine();
switch (op) {
case "1":
reg();
break;it
case "2":
login();
break;io
case "0":
System.err.println("歡迎下次使用,謝謝!");
break one;form
default:
System.err.println("輸入不正確,請從新輸入!");
break;
}class
}
}import
// 定義註冊方法
public void reg() {
System.err.println("*************歡迎使用*************");
System.err.println("請輸入用戶名:");
name = sc.nextLine();
System.err.println("請輸入密碼:");
String pwd1 = sc.nextLine();
System.err.println("請從新輸入密碼:");
String pwd2 = sc.nextLine();
if(pwd1.equals(pwd2)){
pwd = pwd1;
System.err.println("註冊成功!");
System.err.println("用戶名爲:" + name);
}else{
System.err.println("輸入先後兩次密碼不一致,請從新輸入:");
reg();
}
}登錄
// 登陸
public void login() {
System.err.println("請輸入用戶名和密碼:");
nm = sc.nextLine();
pw = sc.nextLine();
if (nm.equals(name) && pw.equals(pwd)) {
System.err.println("登錄成功!");
operation();
} else {
System.err.println("輸入有誤,請從新輸入:");
}
}
// 登錄成功後,進行選擇存款、取款、查詢餘額、退出
public void operation() {
System.err.println("1.存款\n2.取款\n3.查詢餘額\n4.修改密碼\n5.歷史記錄\n0.退出");
op = sc.nextLine();
two: while (true) {
switch (op) {
case "1":
save();
break;
case "2":
withdraw();
break;
case "3":
balance();
break;
case "4":
resetkey();
break;
case "5":
history();
break;
case "0":
System.err.println("返回登陸界面");
break two;
default:
System.err.println("選擇不正確,請從新選擇!");
break;
}
operation();
return;
}
}
// 定義實時時間
public String dt() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(new Date());
return str;
}
// 定義歷史記錄方法
public void history() {
System.err.println("**************************************************************************************");
System.err.println("\t時間\t\t操做\t\t金額(元)\t\t餘額(元)");
System.err.println(history);
System.err.println("**************************************************************************************");
}
// 存款 + *******************存款金額限制*******************************
public void save() {
System.err.println("請輸入存款金額:");
int money = Integer.parseInt(sc.nextLine()); // 爲何必需要用強制轉換 nextLine做用
if (money <= 0) {
System.err.println("輸入有誤,請從新輸入:");
save();
} else if(money > 3000){
System.err.println("輸入金額超出可存最大金額,請從新輸入!");
save();
}
else {
this.money = this.money + money;
System.err.println("餘額爲:" + money);
history += "\n" + dt() + "\t存錢\t\t" + money + "\t\t" + this.money;
}
}
// 取款 *******************取款金額限制*******************************
public void withdraw() {
System.err.println("請輸入取款金額:");
int money = Integer.parseInt(sc.nextLine());
if (money < 0 || money > this.money) {
System.err.println("輸入有誤或餘額不足,請從新輸入:");
withdraw();
} else if(money > 3000){
System.err.println("輸入金額超出可取最大金額,請從新輸入!");
withdraw();
}else {
this.money = this.money - money;
System.err.println("餘額爲:" + this.money);
history += "\n" + dt() + "\t取款\t\t" + money + "\t\t" + this.money;
}
}
// 查詢餘額
public void balance() {
System.err.println("餘額爲:" + this.money);
history += "\n" + dt() + "\t查詢餘額\t\t" + "**" + "\t\t" + this.money;
}
// 修改密碼
public void resetkey() {
System.err.println("請輸入密碼:");
String pwd1 = sc.nextLine();
System.err.println("請從新輸入:");
String pwd2 = sc.nextLine();
if (pwd1.equals(pwd2)) {
if (pwd1.equals(pwd)) {
System.err.println("修改先後密碼一致!");
return;
} else {
pwd = pwd1;
System.err.println("修改密碼成功!");
history += "\n" + dt() + "\t修改密碼\t\t" + "**" + "\t\t" + this.money;
}
} else {
System.err.println("兩次輸入不一致,請從新輸入!");
resetkey();
}
}
}