package hw_26;

import java.util.*;
import java.text.SimpleDateFormat;

class ATM {                 //提款機類別

    String password = "1234";//設定卡片密碼
    static int accountMoney = 50000;    //帳號內有5萬塊

    String key_pw = " ";  //輸入密碼
    int getMoney = 0; //提款金額
    int saveMoney = 0; //存款金額
    int transMoney = 0; //轉帳金額
    String trans_id = " ";   //轉帳代碼
    String trans_name = " ";  //轉帳帳號

    java.util.Scanner s = new java.util.Scanner(System.in);

    public void Key_in() {      //密碼輸入介面
        int count = 0;   //錯誤計數器
        do {
            System.out.print("請輸入密碼:");
            key_pw = s.next();
            if (key_pw.equals(password)) {          //比對密碼是否相同
                System.out.println("登入成功");
                Show();
            } else {
                System.out.print("密碼錯誤");
                count++;                        //密碼比對錯誤count累加一次
            }
        } while (count < 3);
        if (count == 3) {    //錯3次跳出輸入介面
            System.out.println("密碼錯誤3次,請洽櫃檯人員");
        }
    }

    //顯示操作頁面
    public void Show() {
        System.out.println("請選擇要使用的功能:");
        System.out.println("1.提款  2.存款  3.轉帳  4.餘額查詢 5.離開");
        switch (s.nextInt()) {
            case 1:
                this.getMoney();  //呼叫提款功能
                break;
            case 2:
                this.saveMoney();  //呼叫存款功能
                break;
            case 3:
                this.transMoney();//呼叫轉帳功能
                break;
            case 4:                     //餘額查詢
                System.out.println("帳戶還有" + accountMoney + "元。");
                final_Money();
                break;
            default:
                System.out.println("謝謝光臨,歡迎再度使用" + "\n");
                break;
        }
    }

    //提款功能
    public void getMoney() {
        System.out.println("請輸入提領金額");
        this.getMoney = s.nextInt();
        System.out.println("您欲提領" + this.getMoney + "元。正確請按1,錯誤請按2");
        switch (s.nextInt()) {
            case 1:
                if (accountMoney < getMoney) {
                    System.out.println("餘額不足,無法提領");
                } else {
                    accountMoney -= getMoney;
                }
                break;
            default:
                System.out.println("取消提款...");
        }
        getListCheck();
        use_again();
    }

    //存款功能
    public void saveMoney() {
        System.out.print("請輸入存入金額:");
        this.saveMoney = s.nextInt();
        System.out.println("辨鈔中");
        try {                 //延遲時間設定
                    Thread.sleep(3000);//延遲3秒
                } catch (InterruptedException ex) {
                }
        System.out.println("您欲存入金額為:" + this.saveMoney + "元。正確請按1,錯誤請按2");
        
        if (s.nextInt() == 1) {
            accountMoney += this.saveMoney;
            saveListCheck();
            use_again();
        } else {
            System.out.print("取消操作");
        }
    }

    //轉帳功能
    public void transMoney() {
        System.out.println("請輸入轉帳代碼(3位數)");
        trans_id = s.next();
        System.out.println("請輸入轉帳帳號");
        trans_name = s.next();
        System.out.println("請輸入轉帳金額(每筆金額不可超過3萬元)");
        this.transMoney = s.nextInt();
        System.out.println("轉帳代碼" + trans_id);
        System.out.println("轉帳帳號" + trans_name);
        System.out.println("轉帳金額" + this.transMoney);
        System.out.println("以上資料是否正確?確定請按1,重新操作請按2");
        int check;
        check = s.nextInt();
        if (check == 1) {
            if (accountMoney < transMoney) {
                System.out.println("餘額不足,轉帳失敗");
            } else if (transMoney > 30000) {
                System.out.println("金額不可超過3萬元,請重新操作");
            } else {
                this.accountMoney = (accountMoney - transMoney) - 6;
                transListCheck();
                use_again();
            }
        } else {
            System.out.println("重新操作");
        }
    }

    //提款交易明細表 
    public void getListCheck() {
        System.out.println("是否列印明細表? 1.列印 2.不列印 3.螢幕顯示");
        int choice = s.nextInt();
        switch (choice) {
            case 1:
                System.out.println("明細表列印中,請稍候...");
                try {                 //延遲時間設定
                    Thread.sleep(3000);//延遲3秒
                } catch (InterruptedException ex) {
                }
                System.out.println("________________________________________");
                System.out.println("|\t交易\t明細表\t\t\t|");
                System.out.println("|時間:\t\t" + getTime() + "\t|");
                System.out.println("|提領\t金額:\t" + getMoney + "\t\t元\t|");
                System.out.println("|餘額:\t\t" + accountMoney + "\t\t元\t|");
                System.out.println("________________________________________");
                break;
            case 2:
                break;
            case 3:
                System.out.println("時間:" + getTime());
                System.out.println("提領金額:" + getMoney + "元");
                System.out.println("帳戶餘額:" + accountMoney + "元");
                break;
            default:
                break;
        }
        use_again();
    }

    //存款交易明細表 
    public void saveListCheck() {
        System.out.println("是否列印明細表? 1.列印 2.不列印 3.螢幕顯示");
        int choice = s.nextInt();
        switch (choice) {
            case 1:
                System.out.println("明細表列印中,請稍候...");
                try {                 //延遲時間設定
                    Thread.sleep(3000);//延遲3秒
                } catch (InterruptedException ex) {
                }
                System.out.println("________________________________________");
                System.out.println("|\t交易\t明細表\t\t\t|");
                System.out.println("|時間:\t\t" + getTime() + "\t|");
                System.out.println("|存款\t金額:\t" + saveMoney + "\t\t元\t|");
                System.out.println("|餘額:\t\t" + accountMoney + "\t\t元\t|");
                System.out.println("________________________________________");
                break;
            case 2:
                break;
            case 3:
                System.out.println("時間:" + getTime());
                System.out.println("存款金額:" + saveMoney + "元");
                System.out.println("帳戶餘額:" + accountMoney + "元");
                break;
            default:
                break;
        }
        use_again();
    }

    //轉帳交易明細
    public void transListCheck() {
        System.out.println("明細表列印中,請稍候...");
        try {                 //延遲時間設定
            Thread.sleep(3000);//延遲3秒
        } catch (InterruptedException ex) {
        }
        System.out.println("________________________________________");
        System.out.println("|\t交易\t明細表\t\t\t|");
        System.out.println("|時間:\t\t" + getTime() + "\t|");
        System.out.println("|轉帳代碼:" + trans_id);
        System.out.println("|轉帳帳號:" + trans_name);
        System.out.println("|轉帳\t金額:\t" + transMoney + "\t\t元\t|");
        System.out.println("|餘額:\t\t" + accountMoney + "\t\t元\t|");
        System.out.println("________________________________________");
        use_again();
    }

    //餘額查詢明細表 
    public void final_Money() {
        System.out.println("是否列印明細表? 1.列印 2.不列印 3.螢幕顯示");
        int choice = s.nextInt();
        switch (choice) {
            case 1:
                System.out.println("明細表列印中,請稍候...");
                try {                 //延遲時間設定
                    Thread.sleep(3000);//延遲3秒
                } catch (InterruptedException ex) {
                }
                System.out.println("________________________________________");
                System.out.println("|\t交易\t明細表\t\t\t|");
                System.out.println("|時間:\t\t" + getTime() + "\t|");
                System.out.println("|餘額:\t\t" + accountMoney + "\t\t元\t|");
                System.out.println("________________________________________");
                break;
            case 2:
                break;
            case 3:
                System.out.println("時間:" + getTime());
                System.out.println("存款金額:" + saveMoney + "元");
                System.out.println("帳戶餘額:" + accountMoney + "元");
                break;
            default:
                break;
        }
        use_again();
    }

    //取得現在時間
    public String getTime() {
        SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
        Date date = new Date();
        String strDate = sdFormat.format(date);
        return strDate;
    }

    //是否繼續使用
    public void use_again() {
        System.out.println("請選擇是否繼續使用 1:是(請插入金融卡) 2:否");
        Scanner c = new Scanner(System.in);
        int choice = c.nextInt();
        if (choice == 1) {
            Key_in();
        } else {
            System.out.println("晶片經融卡已退出,請取回");
        }
    }

}

public class Hw_26 {

    public static void main(String[] args) {
        // TODO code application logic here
        ATM a = new ATM();
        a.Key_in();
    }
}

文章標籤
全站熱搜
創作者介紹
創作者 mingyilai 的頭像
mingyilai

mingyilai的部落格

mingyilai 發表在 痞客邦 留言(0) 人氣(3,052)