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的知识,不断提升自己的能力。
原文地址:https://www.cnblogs.com/chenyuchun/p/9697012.html
时间: 2024-10-17 20:56:16