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 }
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 }