Java开学考试

本次开学考试是对Java基础的考察,做的是一个ATM系统,工作量还是挺大的,以前做过上一届学长学姐的开学考试题目,当时做的时候自我感觉还可以,打开这个试卷看的第一感觉是好长啊,开始粗略的看来一遍题目后脑袋很蒙,蒙也没办法,硬着头皮做,由于我文件部分比价薄弱,所以选择了用数组,开始的时候就存储了一个用户进去便于测试,也避免了好多错误。

考试结束打分的时候,写程序时没发现的bug都出现了。。。有些很细小的问题,比如忘记把用户存进去的钱保存了等等。最后得了70%的分数。

分数不高有2个原因,1是我确实比较菜,能力欠佳,2是考场心态不是很好,当时大概考试开始30分钟后才开始写的代码,浪费的时间太多了。

在假期学习的时候动手敲代码的时间不多,C/C++学习的时候也是,再加上教程的源码都有,每次导进idea中,看着好像都会,但是一上手就发现还差的远。

以后还是要多动手。

最后在同学的帮助下把代码完善了一下。

 1 public class Account {
 2     private String accountID;  //学生用户账号
 3     private String accountname;  //账户名称
 4     private String operatedate;  //操作时间
 5     private int operatetype;   //操作账户的类型
 6     private String accountpassword;  //用户密码
 7     private int accountbalance;  //账户余额
 8     private int amount;  //操作流水金额
 9 
10     public void setaccountID(String accountID1) {
11         accountID=accountID1;
12     }
13     public String getaccountID() {
14         return accountID;
15     }
16 
17     public void setaccountname(String accountname1) {
18         accountname=accountname1;
19     }
20     public String getaccountname() {
21         return accountname;
22     }
23 
24     public void setoperatedate(String operatedate1) {
25         operatedate=operatedate1;
26     }
27     public String getoperatedate() {
28         return operatedate;
29     }
30 
31     public void setoperatetype(int operatetype1) {
32         operatetype=operatetype1;
33     }
34     public int getoperatetype() {
35         return operatetype;
36     }
37 
38     public void setaccountpassword(String accountpassword1) {
39         accountpassword=accountpassword1;
40     }
41     public String getaccountpassword() {
42         return accountpassword;
43     }
44 
45     public void setaccountbalance(int accountbalance1) {
46         accountbalance=accountbalance1;
47     }
48     public int getaccountbalance() {
49         return accountbalance;
50     }
51 
52     public void setamount(int amount1) {
53         amount=amount1;
54     }
55     public int getamount() {
56         return amount;
57     }
58 
59     public Account(String accountID1,String accountname1,String accountpassword1,int accountbalance1) {
60         accountID=accountID1;
61         accountname=accountname1;
62         accountpassword=accountpassword1;
63         accountbalance=accountbalance1;
64     }
65     public Account() {}
66 }
View Code
  1 package atm;
  2 import java.util.Scanner;
  3 public class AccountManger1 {
  4     private static Account[] acc=new Account[5];
  5     private static int mf=-1;
  6     private static int sf=-1;
  7     public AccountManger1() {
  8         for(int i=0;i<5;i++) {
  9             acc[i]=new Account();
 10         }
 11         acc[0]=new Account("20190001","lihua","000001",1000);
 12         acc[1]=new Account("20190002","zhanghong","000002",2000);
 13         acc[2]=new Account("20190003","wanggang","000003",3000);
 14         acc[3]=new Account("20190004","sunli","000004",4000);
 15         acc[4]=new Account("20190005","zhaoqiang","000005",5000);
 16     }
 17     //打印出主界面
 18     public static void show1() {
 19         System.out.println("*****************************************");
 20         System.out.println("          欢迎使用中国工商银行自动柜员系统                         ");
 21         System.out.println("*****************************************");
 22         System.out.println("          请输入您的账号:                                                         ");
 23         System.out.println("*****************************************");
 24     }
 25 
 26     public static void InputID() {
 27         int flag=0;
 28         Scanner con=new Scanner(System.in);
 29         String accountid=con.next();
 30         for(int i=0;i<5;i++) {
 31             if(accountid.equals(acc[i].getaccountID())) {
 32                 flag=1;
 33                 mf=i;
 34                 break;
 35             }
 36         }
 37         if(flag==0) System.out.println("该卡不是工行卡!");
 38         if(flag==1) show2();
 39     }
 40 
 41     //打印出输入密码界面
 42         public static void show2() {
 43             System.out.println("*****************************************");
 44             System.out.println("          欢迎"+acc[mf].getaccountname()+"使用中国工商银行自动柜员系统                         ");
 45             System.out.println("*****************************************");
 46             System.out.println("          请输入您的密码:                                                         ");
 47             System.out.println("*****************************************");
 48         }
 49 
 50         public static void Inputpassword() {
 51             int m=0;
 52             int f=2;
 53             Scanner con=new Scanner(System.in);
 54             do {
 55             String accountpass=con.next();
 56                 if(accountpass.compareTo(acc[mf].getaccountpassword())==0) {
 57                     f=1;
 58                 }
 59             if(f==2) {System.out.println("密码录入错误!");show2();}
 60             if(f==1) {System.out.println("密码输入成功!");show3();break;}
 61             m++;
 62             }while(m<3);
 63             if(m==3)System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工商及时联系处理");
 64         }
 65         //打印出功能界面
 66         public static void show3() {
 67             System.out.println("*****************************************");
 68             System.out.println("          欢迎"+acc[mf].getaccountname()+"使用中国工商银行自动柜员系统                         ");
 69             System.out.println("*****************************************");
 70             System.out.println("          1、存款                                                         ");
 71             System.out.println("          2、取款                                                         ");
 72             System.out.println("          3、转账汇款                                              ");
 73             System.out.println("          4、修改密码                                                     ");
 74             System.out.println("          5、 查询余额                                                        ");
 75             System.out.println("*****************************************");
 76         }
 77         //存款
 78         public static void show4() {
 79             System.out.println("*****************************************");
 80             System.out.println("          欢迎"+acc[mf].getaccountname()+"使用中国工商银行自动柜员系统                         ");
 81             System.out.println("*****************************************");
 82             System.out.println("          请输入存款金额:                  ");
 83             System.out.println("*****************************************");
 84         }
 85         public static void show5() {
 86             System.out.println("*****************************************");
 87             System.out.println("          欢迎"+acc[mf].getaccountname()+"使用中国工商银行自动柜员系统                         ");
 88             System.out.println("*****************************************");
 89             System.out.println("          当前帐户存款成功!                ");
 90             System.out.println("          当前帐户余额为:"+acc[mf].getaccountbalance());
 91             System.out.println("*****************************************");
 92         }
 93         public static void cunkuan() {
 94             Scanner con=new Scanner(System.in);
 95             int money=con.nextInt();
 96             if(money!=(int)money) {
 97                 System.out.println("输入金额有误!");
 98             }
 99             else {
100                 acc[mf].setaccountbalance(acc[mf].getaccountbalance()+money);
101                 show5();
102             }
103         }
104         //取款
105         public static void show6() {
106             System.out.println("*****************************************");
107             System.out.println("          欢迎"+acc[mf].getaccountname()+"使用中国工商银行自动柜员系统                         ");
108             System.out.println("*****************************************");
109             System.out.println("          当前帐户每日可以支取两万元                ");
110             System.out.println("               1、100元                                ");
111             System.out.println("               2、500元                                ");
112             System.out.println("               3、1000元                                ");
113             System.out.println("               4、1500元                                ");
114             System.out.println("               5、2000元                                ");
115             System.out.println("               6、5000元                                ");
116             System.out.println("               7、其他金额                                ");
117             System.out.println("               8、退卡                              ");
118             System.out.println("               9、返回                              ");
119             System.out.println("*****************************************");
120         }
121         public static void show7() {
122             System.out.println("*****************************************");
123             System.out.println("          欢迎"+acc[mf].getaccountname()+"使用中国工商银行自动柜员系统                         ");
124             System.out.println("*****************************************");
125             System.out.println("          请输入取款金额:                  ");
126             System.out.println("*****************************************");
127         }
128         public static void show8() {
129             System.out.println("*****************************************");
130             System.out.println("          欢迎"+acc[mf].getaccountname()+"使用中国工商银行自动柜员系统                         ");
131             System.out.println("*****************************************");
132             System.out.println("          当前帐户账户款成功!                ");
133             System.out.println("          当前帐户余额为:"+acc[mf].getaccountbalance());
134             System.out.println("*****************************************");
135         }
136 
137         public static void qukuan() {
138             Scanner con=new Scanner(System.in);
139             System.out.println("请选择:");
140             int p=con.nextInt();
141             if(p==1) {if(acc[mf].getaccountbalance()<100)System.out.println("账户余额不足");
142             else {
143                 acc[mf].setaccountbalance(acc[mf].getaccountbalance()-100);
144                 show8();
145             }}
146             else if(p==2) {if(acc[mf].getaccountbalance()<500)System.out.println("账户余额不足");
147             else {
148                 acc[mf].setaccountbalance(acc[mf].getaccountbalance()-500);
149                 show8();
150             }}
151             else if(p==3) {if(acc[mf].getaccountbalance()<1000)System.out.println("账户余额不足");
152             else {
153                 acc[mf].setaccountbalance(acc[mf].getaccountbalance()-1000);
154                 show8();
155             }}
156             else if(p==4) {if(acc[mf].getaccountbalance()<1500)System.out.println("账户余额不足");
157             else {
158                 acc[mf].setaccountbalance(acc[mf].getaccountbalance()-1500);
159                 show8();
160             }}
161             else if(p==5) {if(acc[mf].getaccountbalance()<2000)System.out.println("账户余额不足");
162             else {
163                 acc[mf].setaccountbalance(acc[mf].getaccountbalance()-2000);
164                 show8();
165             }}
166             else if(p==6) {if(acc[mf].getaccountbalance()<5000)System.out.println("账户余额不足");
167             else {
168                 acc[mf].setaccountbalance(acc[mf].getaccountbalance()-5000);
169                 show8();
170             }}
171             else if(p==7) {
172                 show7();
173                 int qu=con.nextInt();
174                 if(acc[mf].getaccountbalance()<qu)System.out.println("账户余额不足");
175                 else {
176                     acc[mf].setaccountbalance(acc[mf].getaccountbalance()-qu);
177                     show8();
178                 }
179             }
180             else if(p==8) {
181                 show1();
182                 InputID();
183                 Inputpassword();
184                 int n;
185                 System.out.println("请输入序号:");
186                 n=con.nextInt();
187                 switch(n) {
188                 case 1:{
189                     show4();
190                     cunkuan();
191                     show5();
192                     break;
193                 }
194                 case 2:{
195                     show6();
196                     qukuan();
197                     break;
198                 }
199                 case 3:{
200                     show9();
201                     break;
202                 }
203                 case 4:{
204                     xiugaimima();break;
205                 }
206                 case 5:{
207                     chaxun();
208                     break;
209                 }
210                 }
211             }
212             else if(p==9) {show3();
213             System.out.println("请输入序号:");
214             int n=con.nextInt();
215             switch(n) {
216             case 1:{
217                 show4();
218                 cunkuan();
219                 show5();
220                 break;
221             }
222             case 2:{
223                 show6();
224                 qukuan();
225                 break;
226             }
227             case 3:{
228                 show9();
229                 break;
230             }
231             case 4:{
232                 xiugaimima();break;
233             }
234             case 5:{
235                 chaxun();
236                 break;
237             }
238             }
239 
240             }
241         }
242 
243         //转账
244         public static void show9() {
245             System.out.println("*****************************************");
246             System.out.println("          欢迎"+acc[mf].getaccountname()+"使用中国工商银行自动柜员系统                         ");
247             System.out.println("*****************************************");
248             System.out.println("          请输入转账账户:                  ");
249             System.out.println("*****************************************");
250         }
251         public static void show10() {
252             System.out.println("*****************************************");
253             System.out.println("          欢迎"+acc[mf].getaccountname()+"使用中国工商银行自动柜员系统                         ");
254             System.out.println("*****************************************");
255             System.out.println("          请输入转账金额:                  ");
256             System.out.println("*****************************************");
257         }
258         public static void zhuazhang1() {
259             int flag=0;
260             Scanner con=new Scanner(System.in);
261             String str=con.next();
262             for(int i=0;i<5;i++) {
263                 if(str.equals(acc[i].getaccountID())) {
264                     flag=1;
265                     sf=i;
266                     break;
267                 }
268             }
269             if(flag==0) System.out.println("该账户不存在!");
270             if(flag==1)show10();
271         }
272         public static void zhuanzhang2() {
273             Scanner con=new Scanner(System.in);
274             int mo=con.nextInt();
275             if(acc[sf].getaccountbalance()<mo)System.out.println("账户余额不足!");
276             else {
277                 System.out.println("*****************************************");
278                 System.out.println("          欢迎"+acc[mf].getaccountname()+"使用中国工商银行自动柜员系统                         ");
279                 System.out.println("*****************************************");
280                 System.out.println("         请确认是否向"+acc[sf].getaccountname()+"转账"+mo+"元(Y/N)");
281                 System.out.println("*****************************************");
282                 String a=con.next();
283                 if(a.equals("N")) {
284                     show3();
285                     System.out.println("请输入序号:");
286                     int n=con.nextInt();
287                     switch(n) {
288                     case 1:{
289                         show4();
290                         cunkuan();
291                         show5();
292                         break;
293                     }
294                     case 2:{
295                         show6();
296                         qukuan();
297                         break;
298                     }
299                     case 3:{
300                         show9();
301                         break;
302                     }
303                     case 4:{
304                         xiugaimima();break;
305                     }
306                     case 5:{
307                         chaxun();
308                         break;
309                     }
310                     }
311                 }
312                 if(a.equals("Y")) {
313                     System.out.println("*****************************************");
314                     System.out.println("          欢迎"+acc[mf].getaccountname()+"使用中国工商银行自动柜员系统                         ");
315                     System.out.println("*****************************************");
316                     System.out.println("          当前帐户向"+acc[sf].getaccountname()+"成功转账"+mo+"元");
317                     System.out.println("          当前帐户余额为:"+(acc[sf].getaccountbalance()-mo)+"元");
318                     System.out.println("*****************************************");
319                 }
320             }
321         }
322         //修改密码
323         public static void xiugaimima() {
324             Scanner con=new Scanner(System.in);
325             System.out.println("请输入新密码:");
326             String mima=con.next();
327             acc[mf].setaccountpassword(mima);
328             System.out.println("修改密码成功!");
329         }
330         //查询余额
331         public static void chaxun() {
332             System.out.println("余额为:"+acc[mf].getaccountbalance());
333         }
334         //输入q返回登录账户界面
335         public static void tuichu() {
336             Scanner con=new Scanner(System.in);
337             if(con.next().equals("q")) {
338                 show1();
339                 InputID();
340                 Inputpassword();
341                 int n;
342                 System.out.println("请输入序号:");
343                 n=con.nextInt();
344                 switch(n) {
345                 case 1:{
346                     show4();
347                     cunkuan();
348                     show5();
349                     break;
350                 }
351                 case 2:{
352                     show6();
353                     qukuan();
354                     break;
355                 }
356                 case 3:{
357                     show9();
358                     break;
359                 }
360                 case 4:{
361                     xiugaimima();break;
362                 }
363                 case 5:{
364                     chaxun();
365                     break;
366                 }
367                 }
368             }
369         }
370 
371     public static void main(String[] args) {
372         Scanner con=new Scanner(System.in);
373         AccountManger1 atm=new AccountManger1();
374         show1();
375         InputID();
376         Inputpassword();
377         int n;
378         System.out.println("请输入序号:");
379         n=con.nextInt();
380         switch(n) {
381         case 1:{
382             show4();
383             cunkuan();
384             tuichu();
385             break;
386         }
387         case 2:{
388             show6();
389             qukuan();
390             break;
391         }
392         case 3:{
393             show9();
394             zhuazhang1();
395             zhuanzhang2();
396             tuichu();
397             break;
398         }
399         case 4:{
400             xiugaimima();
401             tuichu();
402             break;
403         }
404         case 5:{
405             chaxun();
406             tuichu();
407             break;
408         }
409         }
410     }
411 }
View Code

 

posted @ 2020-09-23 00:21  大雄的脑袋  阅读(72)  评论(0编辑  收藏  举报