java第一次課
package java第一週學習2; 達達20173435 信1705-2 import java.text.SimpleDateFormat; import java.util.Date; public class Account { private String accountID;//賬號 private String accountname;//賬號名字 private String operatedate;//存貯操作時間 private String accontpassword;//密碼 int operatetype;//操作“1”表示存款,“2”表示取款,“3”表示轉賬匯款,“4”表示修改賬戶密碼,“5”表示查詢餘額。 int accountbalance;//賬號餘額 int amount;//操作流水金額。 public Account(String accountID,String accountname,String accontpassword,int accountbalance) { this.accountID = accountID; this.accountname = accountname; this.accontpassword = accontpassword; this.accountbalance = accountbalance; } public Account() { } public String getOperatetype() { String a=""; if(operatetype==1) { a="存款"; } else if(operatetype==2) { a="取款"; } else if(operatetype==3) { a="轉賬匯款"; } else if(operatetype==4) { a="修改賬戶密碼"; } else if(operatetype==5) { a="查詢餘額"; } return a; } public String getAccountID() { return accountID; } public void setAccountID(String accountID) { this.accountID = accountID; } public String getAccountname() { return accountname; } public void setAccountname(String accountname) { this.accountname = accountname; } public String getOperatedate() { return operatedate; } //固定操作時候的時間 public void setOperatedate(String operatedate) { Date now = new Date( ); SimpleDateFormat ft = new SimpleDateFormat ("yyyy.MM.dd"); this.operatedate =ft.format(now);; } public String getAccontpassword() { return accontpassword; } public void setAccontpassword(String accontpassword) { this.accontpassword = accontpassword; } public void setOperatetype(int operatetype) { this.operatetype = operatetype; } public int getAccountbalance() { return accountbalance; } public void setAccountbalance(int accountbalance) { this.accountbalance = accountbalance; } public int getAmount() { return amount; } public void setAmount(int amount) { this.amount = amount; } }
package java第一週學習2; 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("****************************************************************"); Stringmima ; 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) { 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("賬戶清單資訊為:"); Account q1=acc.get(a); q1.setAmount(0); q1.setOperatetype(5); q1.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("檔案寫入失敗"); } } }
我十分感謝老師的第一次測驗,雖然我的得分不高,但是中秋可算在我認識的一個大佬(程超然)的幫助下完成了這個程式碼。
我第一個感謝的是我的老師,老師對我們說這個就是個下馬威,果然,真的挺蒙的,因為我檔案操作死活看不懂,我準備不足吧,所以才沒做好。這也讓我看到了我自己的不足。今後我應該倍加努力,努力克服自己看不懂別人程式碼的問題。
我第二個感謝的是我的同學——程超然,程超然同學教會了我檔案的操作,而且是一步步交的,誰叫我笨呢,但是她很有耐心,並沒有嫌棄我的愚蠢,在她的教導幫助下完成了這個操作。寫完以後超有成就感的說。
其實我對第一次考式還是有一定準備的,最開始的我寫的是靜態物件加初始化,但是覺得這樣太low了,然後學習了java中LinkedList的使用並用於程式碼中,但是老師的出其不意,出了檔案的操作,網上百度的程式碼我硬是看不懂,太笨了,沒有多少天賦。但是我覺得世界上的東西都能憑努力得到的!勤能補拙,我會努力的。我一直覺得自己這不行那不行,和別人差好多,有一種天然的自卑,但是這份天然的自卑反而讓我逐漸前進。
java中好多類庫真的很雜亂,但是用起來超方便,這次我有學會了java中時間的類的使用,比c++裡面那個簡單多了,小學期做的那個裡面c++時間的真的讓我無語。
接下來我介紹一下下我的程式碼,我的程式碼使用的是LinkedList裡面的操作,很方便,然後我的主函式裡就是隻有panding()“判定賬號是否存在於資料中”
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); } } } } }
這裡面就呼叫的是shurumima()這個函式,這個函式是用來判定密碼是否正確的,如果正確他就會呼叫下一個介面,跳轉到下一個介面。我覺得我的方法應該還是不錯的,簡單易懂吧,學疏才淺,也不知道這樣對記憶體是不是不好。可是我只會這個方法啊,嚶嚶嚶。
這個不能不說的就是檔案操作,檔案操作的類庫真的好方便。但是看懂好難,網上的程式碼太亂了,當初查java的list容器的時候,一大推給我寫list的,根本查不到有關list的類庫,後來翻了書才知道有Alist和Llist這倆個。百度不能信啊。
存款的那個函式我做的太過於繁瑣了,應該能簡化一下,下次吧,嘿嘿。
我覺得在學習這方面有人幫助是真的nice!我覺得我看一輩子都不能看懂的。再次感謝程超然同學,再次感謝老師。
不多bb,我老婆配的動漫更新了!