模擬ATM的功能
阿新 • • 發佈:2018-09-25
查詢 equal 新建文件夾 scan i+1 密碼 有關 printf 輸入
import java.io.FileReader; import java.io.FileWriter; import java.io.PrintWriter; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Scanner; public class AccountManager { public static void main(String[] args) { LinkedList<Account> acc=new LinkedList<Account>(); Scanner shuru=new Scanner(System.in); getInformation(acc); int flag; // System.out.println(acc.get(0).getAccountID()); // System.out.println(acc.size()); panding(acc); } // 判定賬號 public static void panding(LinkedList<Account> acc) { Scanner shuru = new Scanner(System.in); int flag = 0; int j=0; String zhanghao; while(flag == 0) { System.out.println("***************************************************************"); System.out.println(" 歡迎使用中國工商銀行自動櫃員系統"); System.out.println("****************************************************************"); System.out.println(" 請輸入您的賬號:"); System.out.println(); System.out.println("****************************************************************"); zhanghao = shuru.next(); //System.out.println(zhanghao); if (zhanghao.length() != 8) { System.out.println("該卡不是工行卡"); } else { //System.out.println(zhanghao); for (int i = 0; i < acc.size(); i++) { if (zhanghao.equals(acc.get(i).getAccountID())) { flag = 1; j=i; } //System.out.println(j); } { if (flag == 0) { System.out.println("該賬號不存在"); } else { shurumima(acc,j); } } } } } //判定密碼 a為固定的賬戶 public static void shurumima(LinkedList<Account> acc,int a) { int i=0; while(i<3) { System.out.println("***************************************************************"); System.out.printf(" 歡迎 "); System.out.print(acc.get(a).getAccountname()); System.out.printf(" 使用中國工商銀行自助櫃員系統"); System.out.println("****************************************************************"); System.out.println(" 請輸入您的密碼:"); System.out.println(); System.out.println("****************************************************************"); String mima ; Scanner shuru = new Scanner(System.in); mima=shuru.next(); if(mima.equals(acc.get(a).getAccontpassword())) { i=5; } else { System.out.println("密碼錄入錯誤"); i=i+1; } } if(i==5) { gongneng(acc,a); } else { System.out.println("該賬號三次錄入密碼錯誤,該卡已被系統沒收,請與工行及時聯系處理"); } } //主界面 public static void gongneng(LinkedList<Account> acc, int a) { String q="q"; while (q.equals("q")) { System.out.println("***************************************************************"); System.out.printf(" 歡迎"); System.out.printf(acc.get(a).getAccountname()); System.out.println(" 使用中國工商銀行自助櫃員系統"); System.out.println("****************************************************************"); System.out.println(" 1.存款"); System.out.println(" 2.取款"); System.out.println(" 3.轉賬匯款"); System.out.println(" 4.修改密碼"); System.out.println(" 5.查詢余額"); System.out.println(); System.out.println("****************************************************************"); int key = 0; Scanner shuru = new Scanner(System.in); key = shuru.nextInt(); acc.get(a).setOperatetype(key); switch (key) { case 1: cunkuan(acc,a); q=shuru.next(); break; case 2: qukuan(acc,a); q=shuru.next(); break; case 3: zhuanzhang(acc,a); q=shuru.next(); break; case 4: xiugai(acc,a); q=shuru.next(); break; case 5: chaxun(acc,a); q=shuru.next(); break; } } } public static void chaxun(LinkedList<Account> acc, int a) { getList(a, acc); System.out.println("*************;**************************************************"); System.out.printf(" 歡迎"); System.out.printf(acc.get(a).getAccountname()); System.out.printf(" 使用中國工商銀行自助櫃員系統"); System.out.println("****************************************************************"); System.out.printf(" 當前賬戶余額為:"); System.out.println(acc.get(a).getAccountbalance()); System.out.println("賬戶清單信息為:"); acc.get(a); acc.get(a).setAmount(0); acc.get(a).setOperatetype(5); acc.get(a).setOperatedate(""); setList(a, acc); System.out.println("****************************************************************"); } public static void cunkuan(LinkedList<Account> acc, int a) { int qian; int i=0; while(i==0) { System.out.println("***************************************************************"); System.out.printf(" 歡迎"); System.out.printf(acc.get(a).getAccountname()); System.out.printf(" 使用中國工商銀行自助櫃員系統"); System.out.println("****************************************************************"); System.out.println(" 請輸入存款金額:"); System.out.println(); System.out.println("****************************************************************"); Scanner shuru = new Scanner(System.in); qian=shuru.nextInt(); if(qian>0) { int yue=0; yue=acc.get(a).getAccountbalance()+qian; acc.get(a).setAccountbalance(yue); i=1; acc.get(a).setAmount(qian); acc.get(a).setOperatedate(""); setInformation(acc); setList(a, acc); System.out.println("***************************************************************"); System.out.printf(" 歡迎"); System.out.printf(acc.get(a).getAccountname()); System.out.printf(" 使用中國工商銀行自助櫃員系統"); System.out.println("****************************************************************"); System.out.println(" 當前賬戶存款操作成功。"); System.out.printf(" 當前賬戶余額為:"); System.out.println(yue); System.out.println(); System.out.println("****************************************************************"); } else { System.out.println("輸入金額有誤"); } } } public static void xiugai (LinkedList<Account> acc, int a) { String mima=""; String mima1=""; String mima2=""; System.out.println("***************************************************************"); System.out.printf(" 歡迎"); System.out.printf(acc.get(a).getAccountname()); System.out.printf(" 使用中國工商銀行自助櫃員系統"); System.out.println("****************************************************************"); System.out.println("請輸入當前密碼::"); System.out.println("****************************************************************"); Scanner shuru = new Scanner(System.in); mima=shuru.next(); if(mima.equals(acc.get(a).getAccontpassword())) { System.out.println("請輸入修改密碼:"); mima1=shuru.next(); System.out.println("請再輸入修改密碼:"); mima2=shuru.next(); if(mima1.equals(mima2)) { acc.get(a).setAccontpassword(mima1); acc.get(a).setOperatedate(""); setInformation(acc); setList(a, acc); System.out.println("***************************************************************"); System.out.printf(" 歡迎"); System.out.printf(acc.get(a).getAccountname()); System.out.printf(" 使用中國工商銀行自助櫃員系統"); System.out.println("****************************************************************"); System.out.println("當前賬戶密碼修改成功"); System.out.println("****************************************************************"); } else { System.out.println("修改密碼與確認密碼不一致"); } } else { System.out.println("當前密碼錄入錯誤"); } } //轉賬操作 public static void zhuanzhang(LinkedList<Account> acc, int a) { int qian = 0; String zhanghao = ""; int j = 0; int flag = 0; System.out.println("***************************************************************"); System.out.printf(" 歡迎"); System.out.printf(acc.get(a).getAccountname()); System.out.printf(" 使用中國工商銀行自助櫃員系統"); System.out.println("****************************************************************"); System.out.println("請輸入轉賬賬戶:"); System.out.println("****************************************************************"); Scanner shuru = new Scanner(System.in); zhanghao = shuru.next(); for (int i = 0; i < acc.size(); i++) { if (zhanghao.equals(acc.get(i).getAccountID())) { j = i; flag = 1; } } if (flag == 1) { System.out.println("***************************************************************"); System.out.printf(" 歡迎"); System.out.printf(acc.get(a).getAccountname()); System.out.printf(" 使用中國工商銀行自助櫃員系統"); System.out.println("****************************************************************"); System.out.println("請輸入轉賬金額:"); System.out.println("****************************************************************"); qian = shuru.nextInt(); if (qian < acc.get(a).getAccountbalance()) { System.out.println("***************************************************************"); System.out.printf(" 歡迎"); System.out.printf(acc.get(a).getAccountname()); System.out.println(" 使用中國工商銀行自助櫃員系統"); System.out.println("****************************************************************"); System.out.printf("請確認是否向"); System.out.print(acc.get(j).getAccountname()); System.out.print(qian); System.out.println("元。"); System.out.println("****************************************************************"); String f; f=shuru.next(); if(f.equals("N")) { acc.get(j).setAmount(qian); acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian); acc.get(j).setOperatedate(""); setInformation(acc); setList(a, acc); System.out.println("***************************************************************"); System.out.printf(" 歡迎"); System.out.printf(acc.get(a).getAccountname()); System.out.println(" 使用中國工商銀行自助櫃員系統"); System.out.println("****************************************************************"); System.out.printf("當前賬戶成功向"); System.out.print(acc.get(j).getAccountname()); System.out.print(qian); System.out.println("元。"); System.out.println("****************************************************************"); } } else { System.out.println("賬戶余額不足"); } } else { System.out.println("該賬戶不存在"); } } public static void qukuan(LinkedList<Account> acc, int a) { int key=0; int qian=0; int i=0; System.out.println("***************************************************************"); System.out.printf(" 歡迎"); System.out.printf(acc.get(a).getAccountname()); System.out.printf(" 使用中國工商銀行自助櫃員系統"); System.out.println("****************************************************************"); System.out.println("1、100元"); System.out.println("2、500元"); System.out.println("3、1000元"); System.out.println("4、1500元"); System.out.println("5、2000元"); System.out.println("6、5000元;"); System.out.println("7、其他金額"); System.out.println("8、退卡"); System.out.println("9、返回"); Scanner shuru = new Scanner(System.in); key=shuru.nextInt(); switch(key) { case 1: if(acc.get(a).getAccountbalance()>100) { qian =100; acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian); acc.get(a).setAmount(qian); i=1; } else { System.out.println("賬戶余額不足"); } break; case 2: if(acc.get(a).getAccountbalance()>500) { qian =500; acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian); acc.get(a).setAmount(qian); i=1; } else { System.out.println("賬戶余額不足"); } break; case 3: if(acc.get(a).getAccountbalance()>1000) { qian =1000; acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian); acc.get(a).setAmount(qian); i=1; } else { System.out.println("賬戶余額不足"); } break; case 4: if(acc.get(a).getAccountbalance()>1500) { qian =1500; acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian); acc.get(a).setAmount(qian); i=1; } else { System.out.println("賬戶余額不足"); } break; case 5: if(acc.get(a).getAccountbalance()>2000) { qian =2000; acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian); acc.get(a).setAmount(qian); i=1; } else { System.out.println("賬戶余額不足"); } break; case 6: if(acc.get(a).getAccountbalance()>5000) { qian =5000; acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian); acc.get(a).setAmount(qian); i=1; } else { System.out.println("賬戶余額不足"); } break; case 7: System.out.println("***************************************************************"); System.out.printf(" 歡迎"); System.out.printf(acc.get(a).getAccountname()); System.out.printf(" 使用中國工商銀行自助櫃員系統"); System.out.println("****************************************************************"); System.out.println("請輸入取款金額:"); System.out.println("****************************************************************"); qian=shuru.nextInt(); if(acc.get(a).getAccountbalance()>qian) { acc.get(a).setAmount(qian); acc.get(a).setAccountbalance(acc.get(a).getAccountbalance()-qian); i=1; } else { System.out.println("賬戶余額不足"); } break; case 8: gongneng(acc,a); break; case 9: panding(acc); break; } acc.get(a).setOperatedate(""); setInformation(acc); setList(a, acc); getInformation(acc); if(i==1) { System.out.println("***************************************************************"); System.out.printf(" 歡迎"); System.out.printf(acc.get(a).getAccountname()); System.out.printf(" 使用中國工商銀行自助櫃員系統"); System.out.println("****************************************************************"); System.out.printf("當前賬戶取款操作"); System.out.print(qian); System.out.println("元成功。"); System.out.printf("當前賬戶余額為:"); System.out.print(acc.get(a).getAccountbalance()); System.out.println("元"); System.out.println("****************************************************************"); } } public static String getList(int i,LinkedList<Account> acc)//讀取流水 { try { FileReader fr=new FileReader("E:\\新建文件夾 (3)\\src\\java第一周學習2\\AccountList"); Scanner in=new Scanner(fr); String iid=acc.get(i).getAccountID(); String id=new String(); String s=new String(); String sum=""; int z=1; while(in.hasNextLine()) { id=in.next(); if(iid.equals(id)) { s=id+" "+in.nextLine()+"\n"; sum=sum+"( "+z+" )\t"+s; z++; } } fr.close(); in.close(); return sum; } catch(Exception e) { System.out.println("文件讀取失敗"); return ""; } } public static void setList(int i,LinkedList<Account> acc)//寫入流水 { try { Account a=acc.get(i); FileWriter fw=new FileWriter("E:\\新建文件夾 (3)\\src\\java第一周學習2\\AccountList",true); PrintWriter pw=new PrintWriter(fw); pw.println(a.getAccountID()+" "+a.getAccountname()+" "+ a.getOperatedate()+" "+a.getOperatetype()+" "+a.getAmount()); pw.flush(); pw.close(); fw.close(); } catch(Exception e) { System.out.println("文件寫入失敗"); } } public static void getInformation(LinkedList<Account> acc)//獲得信息 { try { FileReader fr=new FileReader("E:\\新建文件夾 (3)\\src\\java第一周學習2\\AccountInformation"); Scanner r=new Scanner(fr); while(r.hasNext()) { Account a=new Account(); a.setAccountID(r.next()); a.setAccontpassword(r.next()); a.setAccountname(r.next()); a.setAccountbalance(r.nextInt()); acc.add(a); } fr.close(); r.close(); } catch(Exception e) { System.out.println("文件寫入失敗"); } } public static void setInformation(LinkedList<Account> acc)//寫入信息 { try { int i=0; FileWriter fw=new FileWriter("E:\\新建文件夾 (3)\\src\\java第一周學習2\\AccountInformation"); PrintWriter pw=new PrintWriter(fw); for(i=0;i<acc.size();i++) { pw.println(acc.get(i).getAccountID()+" "+acc.get(i).getAccontpassword()+" "+ acc.get(i).getAccountname()+" "+acc.get(i).getAccountbalance()); } pw.flush(); pw.close(); fw.close(); } catch(Exception e) { System.out.println("文件寫入失敗"); } } }
通過這次的練習,我了解了我自己對java的學習還有很大的欠缺。還有很多的東西需要去學習,去理解。
在那次課之中,好多東西的用法我都不熟悉,所以並沒有寫出多少。
今後我會更加努力的學習有關Java的知識,不斷提升自己的能力。
模擬ATM的功能