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("****************************************************************"); 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) { 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,我老婆配的动漫更新了!