第一次测试代码

时间:2021-04-29 16:38:48
 1 package test;
 2 
 3 //信1705-1 20173476 高宇
 4 public class Account {
 5     
 6     private String accountID;      //用户账号
 7     private String accountName;    //姓名
 8     private String operatedate;    //日期
 9     private int operatetype;       //用于存储操作账户的类型
10     private String accountpassword;   // 用户密码
11     private int accountbalance;      // 账户余额
12     private int amount;     // 操作流水金额
13     
14     public String getaccountID()
15     {return accountID;}
16     public void setaccountID(String accountID)
17     {this.accountID = accountID;}
18     
19     public String getaccountName()
20     {return accountName;}
21     public void setaccountname(String name)
22     {this.accountName = name;}
23     
24     public String getoperatedate()
25     {return operatedate;}
26     public void setoperatedate(String date)
27     {this.operatedate = date;}
28     
29     public int getoperatetype()
30     {return operatetype;}
31     public void setoperatetype(int type)
32     {this.operatetype = type;}
33     
34     public String getaccountpassword()
35     {return accountpassword;}
36     public void setaccountpassword(String password)
37     {this.accountpassword = password;}
38     
39     public int getaccountbalance()
40     {return accountbalance;}
41     public void setaccountbalance(int balance)
42     {this.accountbalance = balance;}
43     
44     public int getamount()
45     {return amount;}
46     public void setamount(int amount)
47     {this.amount = amount;}
48     
49  
50 }
  1 package test;
  2 
  3 
  4 
  5 import java.io.File;
  6 import java.io.FileWriter;
  7 import java.io.IOException;
  8 import java.sql.Date;
  9 import java.text.DateFormat;
 10 import java.text.SimpleDateFormat;
 11 import java.util.Scanner;
 12 
 13 public class AccountManager {
 14 static String b,l,e;
 15 static Account s = new Account();
 16 static int n;
 17 static Account[] a = new Account[5];
 18 static Scanner in = new Scanner(System.in);    
 19     
 20 
 21 
 22 public static void main(String[] args) throws IOException {
 23         // TODO 自动生成的方法存根
 24     setinformation();
 25     file1();
 26     
 27     Date date = new Date(n, n, n);
 28     DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 29     String time = format.format(date);
 30     a[n].setoperatedate(time);         
 31     f1();    
 32 
 33 }
 34 
 35 private static void setinformation() {
 36     // TODO 自动生成的方法存根
 37     for(int i = 0; i < 5; i++) {
 38         a[i] = new Account();
 39     }
 40     a[0].setaccountID("20170001");
 41     a[0].setaccountname("wang");
 42     a[0].setaccountpassword("0001");
 43     a[0].setaccountbalance(1000);
 44     
 45     
 46     a[1].setaccountID("20170002");
 47     a[1].setaccountname("li");
 48     a[1].setaccountpassword("0002");
 49     a[1].setaccountbalance(1000);
 50     
 51     a[2].setaccountID("20170003");
 52     a[2].setaccountname("zhang");
 53     a[2].setaccountpassword("0003");
 54     a[2].setaccountbalance(1000);
 55     
 56     a[3].setaccountID("20170004");
 57     a[3].setaccountname("liu");
 58     a[3].setaccountpassword("0004");
 59     a[3].setaccountbalance(1000);
 60     
 61     a[4].setaccountID("20170005");
 62     a[4].setaccountname("lin");
 63     a[4].setaccountpassword("0005");
 64     a[4].setaccountbalance(1000);
 65     
 66 }
 67 
 68 public static void f1()
 69 {
 70     String word;
 71     
 72     System.out.println("***************************************************************" + '\n');
 73     System.out.println('\t' + "欢迎使用中国工商银行自动柜员系统" + '\n');
 74     System.out.println("***************************************************************" + '\n');
 75     System.out.println('\t' + "请输入您的账号:" + '\n');    
 76     System.out.println("***************************************************************" + '\n');
 77     b = in.next();
 78     int j=0;
 79     if(b.length() != 8 )
 80         {
 81             System.out.println("该卡不是工行卡");
 82             f1();
 83             
 84         }
 85        else {
 86     
 87                for (int i = 0; i < 5;i++)
 88             {
 89                 if(b.equals(a[i].getaccountID()))
 90               {
 91                 j++;
 92                  System.out.println("***************************************************************" + '\n');
 93                  System.out.println('\t' + "欢迎" + a[n].getaccountName() + "使用中国工商银行自助柜员系统");
 94                  System.out.println("***************************************************************" + '\n');
 95                  System.out.println('\t' + "请输入您的密码:" + '\n');
 96                  word = in.next();
 97                  System.out.println("***************************************************************" + '\n');
 98                  if(word.equals(a[i].getaccountpassword())) {
 99                      n = i;
100                      f2();
101                      break;
102                }
103                  else
104                  {
105                      System.out .println("密码错误");
106                      f1();
107                  }
108              }
109                 
110          }
111               if(j == 0)
112               System.out.println("该账号不存在");
113                 
114     }
115   }
116  
117 
118 private static void f2() {
119     int x;
120     System.out.println("***************************************************************" + '\n');
121     System.out.println('\t' + "欢迎" + a[n].getaccountName() + "使用中国工商银行自助柜员系统" + '\n');
122     System.out.println("***************************************************************" + '\n');
123     System.out.println("1、存款;" + '\n');
124     System.out.println("2、取款;" + '\n');
125     System.out.println("3、转账汇款;" + '\n');
126     System.out.println("4、修改密码;"+ '\n');
127     System.out.println("5、查询余额;" + '\n');
128     System.out.println("***************************************************************" + '\n');
129     x = in.nextInt();
130     a[n].setoperatetype(x);
131     switch(x)
132     {
133     case 1:t1();break;
134     case 2:t2();break;
135     case 3:t3();break;
136     case 4:t4();break;
137     case 5:t5();break;
138     }
139 }
140 
141 private static void t5() {
142     // TODO 自动生成的方法存根
143     System.out.println("***************************************************************" + '\n');
144     System.out.println('\t' + "欢迎" + a[n].getaccountName() + "使用中国工商银行自助柜员系统" + '\n');
145     System.out.println("***************************************************************" + '\n');
146     System.out.println('\t' + "当前余额为:" + a[n].getaccountbalance() +'\n');
147     System.out.println('\t' + "账户清单信息为:" + '\n');    
148     System.out.println('\t' + "操作日期" +a[n].getoperatedate() + '\t' + "操作类型");
149     switch(a[n].getoperatetype())
150     {
151        case 1:System.out.println("存款" + '\t');break;
152        case 2:System.out.println("取款" + '\t');break;
153        case 3:System.out.println("转账汇款" + '\t');break;
154        case 4:System.out.println("修改密码" + '\t');break;
155        case 5:System.out.println("查询余额" + '\t');break;
156         
157     }
158     System.out.println('\t' + "操作金额" + a[n].getamount() + '\n');    
159     System.out.println("***************************************************************" + '\n');
160     try {
161         file1();
162     } catch (IOException e) {
163         // TODO 自动生成的 catch 块
164         e.printStackTrace();
165     }
166     try {
167         file2();
168     } catch (IOException e) {
169         // TODO 自动生成的 catch 块
170         e.printStackTrace();
171     }
172     f2();
173     
174 }
175 
176 private static void t4() {
177     // TODO 自动生成的方法存根
178     String u,w,y;
179     System.out.println("***************************************************************" + '\n');
180     System.out.println('\t' + "欢迎" + a[n].getaccountName() + "使用中国工商银行自助柜员系统" + '\n');
181     System.out.println("***************************************************************" + '\n');
182     System.out.println('\t' + "请输入当前密码:" + '\n');
183     u = in.next();
184     if(u.equals(a[n].getaccountpassword())) {
185     System.out.println('\t' + "请输入修改密码:" + '\n');
186     w = in.next();
187     System.out.println('\t' + "请输入确认密码:" + '\n');
188     y = in.next();
189     if(w.equals(y))
190     {
191         a[n].setaccountpassword(y);
192         System.out.println("***************************************************************" + '\n');
193         System.out.println('\t' + "欢迎" + a[n].getaccountName() + "使用中国工商银行自助柜员系统" + '\n');
194         System.out.println("***************************************************************" + '\n');
195         System.out.println('\t' + "当前账户密码修改成功" + '\n');
196         System.out.println("***************************************************************" + '\n');
197         try {
198             file1();
199         } catch (IOException e) {
200             // TODO 自动生成的 catch 块
201             e.printStackTrace();
202         }
203         try {
204             file2();
205         } catch (IOException e) {
206             // TODO 自动生成的 catch 块
207             e.printStackTrace();
208         }
209         f2();
210     }
211     else
212     {System.out.println('\t' + "修改密码与确认密码不一致" + '\n');
213     t4();
214     }
215     }
216     else 
217     {
218         System.out.println('\t' + "当前密码录入错误" + '\n');
219         t4();
220     }
221 
222 }
223 
224 private static void t3() {
225     // TODO 自动生成的方法存根
226     int j=0,k, s = 0;
227     String x;
228     String m,o;
229     System.out.println("***************************************************************" + '\n');
230     System.out.println('\t' + "欢迎" + a[n].getaccountName() + "使用中国工商银行自助柜员系统" + '\n');
231     System.out.println("***************************************************************" + '\n');
232     System.out.println('\t' + "请输入转账账户;" + '\n');
233     System.out.println("***************************************************************" + '\n');
234     m = in.next();
235     for(int i = 0;i<5;i++)
236     {
237         if( m.equals(a[i].getaccountID()))
238         {
239             j++;
240             k = i;
241             System.out.println("***************************************************************" + '\n');
242             System.out.println('\t' + "欢迎" + a[k].getaccountName() + "使用中国工商银行自助柜员系统" + '\n');
243             System.out.println("***************************************************************" + '\n');
244             System.out.println('\t' + "请输入转账金额;" + '\n');
245             System.out.println("***************************************************************" + '\n');
246             x = in.next();
247             char[] x1 = x.toCharArray();
248             for(int c = 0;c < x.length();c++)
249             {
250                 if((x1[c] - '0')>=0&&(x1[c] - '0')<10)
251                 {
252                     
253                     s = s*10 + (x1[c] - '0');
254                 }
255                 else 
256                 {
257                     System.out.println("输入错误请重新输入");
258                     t3();
259                 }
260             }
261             a[n].setamount(s);
262             if(a[n].getaccountbalance() >= s)
263             {
264                 System.out.println("***************************************************************" + '\n');
265                 System.out.println('\t' + "欢迎" + a[k].getaccountName() + "使用中国工商银行自助柜员系统" + '\n');
266                 System.out.println("***************************************************************" + '\n');
267                 System.out.println('\t' + "请确认向" + a[k].getaccountName() +"转账" + s +"元" + '\n');
268                 System.out.println("***************************************************************" + '\n');
269                 System.out.println("确认请按Y,不确认请按N");
270                 o = in.next();
271                 if(o.equals("n"))
272                 {f1();}
273                 else {
274                     System.out.println("***************************************************************" + '\n');
275                     System.out.println('\t' + "欢迎" + a[k].getaccountName() + "使用中国工商银行自助柜员系统" + '\n');
276                     System.out.println("***************************************************************" + '\n');
277                     System.out.println('\t' + a[n].getaccountName() +"用户向" + a[k].getaccountName() + "用户"+ "转账" + x + "元" + '\n');
278                     a[n].setaccountbalance(a[n].getaccountbalance() - s);
279                     System.out.println('\t' + "当前账户余额为:" + a[n].getaccountbalance() +"元"+ '\n');
280                     System.out.println("***************************************************************" + '\n');
281                     try {
282                         file1();
283                     } catch (IOException e) {
284                         // TODO 自动生成的 catch 块
285                         e.printStackTrace();
286                     }
287                     
288                     try {
289                         file2();
290                     } catch (IOException e) {
291                         // TODO 自动生成的 catch 块
292                         e.printStackTrace();
293                     }
294                     f2();
295                 }
296                 
297             }
298         }
299         
300     }
301     if(j == 0) {
302     System.out.println("该账户不存在");
303     t3();}
304 }
305 
306 private static void t2() {
307     // TODO 自动生成的方法存根
308     int x,m = 0;
309     String k;
310     System.out.println("***************************************************************" + '\n');
311     System.out.println('\t' + "欢迎" + a[n].getaccountName() + "使用中国工商银行自助柜员系统" + '\n');
312     System.out.println("***************************************************************" + '\n');
313     System.out.println('\t' + "当前账户每日可以支取2万元.");
314     System.out.println('\t' + "1、100元");
315     System.out.println('\t' + "2、500元");
316     System.out.println('\t' + "3、1000元");
317     System.out.println('\t' + "4、1500元");
318     System.out.println('\t' + "5、2000元");
319     System.out.println('\t' + "6、5000元;");
320     System.out.println('\t' + "7、其他金额");
321     System.out.println('\t' + "8、退卡");
322     System.out.println('\t' + "9、返回");
323     x = in.nextInt();
324     System.out.println("***************************************************************" + '\n');
325     
326     switch(x)
327     {
328     case 1:
329         if(a[n].getaccountbalance() >= 100){
330         a[n].setamount(100);
331         a[n].setaccountbalance(a[n].getaccountbalance() - 100);break;}
332         else {System.out.println("账户余额不足");break;}
333     case 2:
334         if(a[n].getaccountbalance() >= 500){
335         a[n].setamount(500);
336         a[n].setaccountbalance(a[n].getaccountbalance() - 500);break;}
337         else {System.out.println("账户余额不足");break;}
338     case 3:
339         if(a[n].getaccountbalance() >= 1000){
340             a[n].setamount(1000);
341         a[n].setaccountbalance(a[n].getaccountbalance() - 1000);break;}
342         else {System.out.println("账户余额不足");break;}
343     case 4:
344         if(a[n].getaccountbalance() >= 1500){
345         a[n].setamount(1500);
346         a[n].setaccountbalance(a[n].getaccountbalance() - 1500);break;}
347         else {System.out.println("账户余额不足");break;}
348     case 5:
349         if(a[n].getaccountbalance() >= 2000){
350             a[n].setamount(2000);
351         a[n].setaccountbalance(a[n].getaccountbalance() - 2000);break;}
352         else {System.out.println("账户余额不足");break;}
353     case 6:
354         if(a[n].getaccountbalance() >= 5000){
355             a[n].setamount(5000);
356         a[n].setaccountbalance(a[n].getaccountbalance() - 5000);break;}
357         else {System.out.println("账户余额不足");break;}
358     case 7:
359         {System.out.println("***************************************************************" + '\n');
360         System.out.println('\t' + "欢迎" + a[n].getaccountName() + "使用中国工商银行自助柜员系统" + '\n');
361         System.out.println("***************************************************************" + '\n');
362         System.out.println('\t' + "请输入取款金额;" + '\n');
363         System.out.println("***************************************************************" + '\n');
364         k = in.next();
365         char[] k1 = k.toCharArray();
366         for(int i = 0;i<k.length();i++)
367         {            
368             if((k1[i] - '0')>=0 && (k1[i] - '0')<10)
369             {                
370                 m = m*10 + (k1[i] - '0');
371             }
372             else 
373             {
374                 System.out.println("输入错误请重新输入");
375                 t2();
376                 break;}
377         }
378         a[n].setamount(m);
379         if(a[n].getaccountbalance() >= m)
380         {
381             a[n].setaccountbalance(a[n].getaccountbalance() - m);break;
382         }
383         else {System.out.println("账户余额不足");break;}
384         }
385     case 8:f1();break;
386     case 9:f2();break;
387         }
388     System.out.println("***************************************************************" + '\n');
389     System.out.println('\t' + "当前账户取款操作成功。" + '\n');
390     System.out.println('\t' + "当前账户余额为:" + a[n].getaccountbalance()  +"元" + '\n');
391     System.out.println("***************************************************************" + '\n');
392     try {
393         file1();
394     } catch (IOException e) {
395         // TODO 自动生成的 catch 块
396         e.printStackTrace();
397     }
398     try {
399         file2();
400     } catch (IOException e) {
401         // TODO 自动生成的 catch 块
402         e.printStackTrace();
403     }
404     f2();
405 }
406 
407 private static void t1() {
408     // TODO 自动生成的方法存根
409     int x = 0;
410     String k;
411     System.out.println("***************************************************************" + '\n');
412     System.out.println('\t' + "欢迎" + a[n].getaccountName() + "使用中国工商银行自助柜员系统" + '\n');
413     System.out.println("***************************************************************" + '\n');
414     System.out.println('\t' + "请输入存款金额;");
415     k = in.next();
416     char[] k1 = k.toCharArray();
417     for(int i = 0;i<k.length();i++)
418     {
419         
420         if((k1[i]-'0')>=0 && (k1[i]-'0')<10)
421         {
422             
423             x = x*10 + (k1[i] - '0');
424         }
425         else 
426         {
427             System.out.println("输入错误请重新输入");
428             t1();
429             break;}
430     }
431     a[n].setamount(x);
432     System.out.println("***************************************************************" + '\n');
433     a[n].setaccountbalance(a[n].getaccountbalance() + x);
434     System.out.println("***************************************************************" + '\n');
435     System.out.println('\t' + "欢迎" + a[n].getaccountName() + "使用中国工商银行自助柜员系统" + '\n');
436     System.out.println("***************************************************************" + '\n');
437     System.out.println('\t' + "当前账户存款操作成功。" + '\n');
438     System.out.println('\t' + "当前账户余额为:" + a[n].getaccountbalance() +"元"+ '\n');
439     System.out.println("***************************************************************" + '\n');
440     try {
441         file1();
442     } catch (IOException e) {
443         // TODO 自动生成的 catch 块
444         e.printStackTrace();
445     }
446     try {
447         file2();
448     } catch (IOException e) {
449         // TODO 自动生成的 catch 块
450         e.printStackTrace();
451     }
452     f2();
453     
454 }
455 
456 public static void file1() throws IOException
457 {
458     File file1 = new File("d:\\信1705-1 20173476 高宇\\accountinformation.txt");
459     FileWriter out = new FileWriter(file1);
460     for(int i = 0;i<5;i++)
461     {
462          out.write(a[i].getaccountID() + '\t' + a[i].getaccountName() + '\t' + a[i].getaccountpassword() + '\t' +a[i].getaccountbalance() + '\t');
463     }
464     out.close();}
465 
466 public static void file2() throws IOException
467 {
468     File file2 = new File("d:\\信1705-1 20173476 高宇\\accountlist.txt");
469     FileWriter q = new FileWriter(file2);
470     q.write("账号" + a[n].getaccountID() + '\t' + "用户名:" + a[n].getaccountName()  + '\t' + "日期"+ a[n].getoperatedate() +  '\t' +"操作金额" + a[n].getamount() + '\t' + "操作类型");
471     switch(a[n].getoperatetype())
472     {
473        case 1:q.write("存款" + '\t');break;
474        case 2:q.write("取款" + '\t');break;
475        case 3:q.write("转账汇款" + '\t');break;
476        case 4:q.write("修改密码" + '\t');break;
477        case 5:q.write("查询余额" + '\t');break;
478         
479     }
480     q.close();    }
481 
482 }