ATM-Java實現

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();
  }
 }

}

相關文章
相關標籤/搜索