Java开学测试感想
Posted 李旭2018
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java开学测试感想相关的知识,希望对你有一定的参考价值。
开学第一堂课就是测试,测试暑假的自学成果,老师说试卷适当提高了难度,所以允许查书和使用网络查询,经过近三个钟头的努力奋斗和痛苦挣扎,我只完成了一小部分的代码,只有简单的set()get()函数,以及简单的输出界面,能够输出ATM的初始界面,能够输入银行卡号并进行判断是否正确,但是不能进行文件的输入和输出,无法完成要求在txt文本文件中完成的项目。也只实现了第一个功能,只能进行存款。
课下利用空闲时间,我又重新对代码进行了修改,将一些常用的输出语句分类写到了函数中,稍稍简化了main函数,能够实现老师要求的存款,取款,转账汇款,查询余额功能,但是在刚刚完成代码时,发现无法进行循环,或者完成一项功能之后程序就会结束。我重新检查了代码中的for循环和while循环,改变了一些循环的条件,并进行了完善,可以在密码输入错误三次时候输出多次错误,并跳转回到账号输入界面。后来的测试中发现按照老师所给定的要求,输入q不能退出并跳转到初始界面。为了解决这一问题,我对整个函数加入了一个新的do while循环,并声名string l,但是新的问题也出现了,跳出循环的语句无法正常执行,查阅资料发现string是不能像int那种表示方式l!=q,在网上查找,想到了遍历字符串的方法,l.charAt(0)!=‘q‘使用这一表示形式,解决了循环不能跳出的问题。但是有一个问题尚未解决,就是文件的导入导出,查询资料后还是没有理解,所以程序中有关文件的操作没有完成,不能进行账号和操作流水的储存,只能用另外一种形式进行临时替代,在后续的学习中,要继续学习文件的知识,然后完善这次的代码,将现在没有完成的功能进行实现,为以后的链接数据库打好基础。
通过这一次的课堂测试,和后续对代码的完善修改,使我充分认识到自己在代码方面的欠缺,逻辑体系不够明确,不能在开始写程序之前就构思好整个框架,只能写一步看一步,眼光比较局限,没有全局意识,写出的代码不够整齐规范。Java的许多知识还有很大漏洞,有很多知识还未涉及,自学只学到了一点点东西,很难满足现在的代码需求,尤其是文件方面,在以后的学习中地位也很重要,所以后续还要进行更加深入的学习,规范自己写代码的习惯,注意保存和添加注释,不然回过头来自己都看不懂,浪费时间。这次的代码有一些问题是找学长帮忙解决的,非常感谢学长的帮助,以后也要经常像学长和同学请教解决问题的方法和思路,选择最佳的解决问题的途径,利用更少的代码解决问题。当然最重要的还是要不断学习,增加自己的代码积累量增加自己的经验,这样才能更快的想出解决问题的最优解。
1 //信1705-3 20173598 李旭 2 package atm; 3 public class Account 4 { 5 private String accountID; 6 private String accountname; 7 private String operatedate; 8 private int operatetype; 9 private String accountpassword; 10 private int accountbalance; 11 private int amount; 12 13 public void setaccountID(String a) 14 { 15 accountID=a; 16 } 17 public void setaccountname(String b) 18 { 19 accountname=b; 20 } 21 public void setoperatedate(String c) 22 { 23 operatedate=c; 24 } 25 public void setoperatetype(int d) 26 { 27 operatetype=d; 28 } 29 public void setaccountpassword(String e) 30 { 31 accountpassword=e; 32 } 33 public void setaccountbalance(int f) 34 { 35 accountbalance=f; 36 } 37 public void setamount(int g) 38 { 39 amount=g; 40 } 41 42 43 public String getaccountID() 44 { 45 return accountID; 46 } 47 public String getaccountname() 48 { 49 return accountname; 50 } 51 public String getoperatedate() 52 { 53 return operatedate; 54 } 55 public int getoperatetype() 56 { 57 return operatetype; 58 } 59 public String getaccountpassword() 60 { 61 return accountpassword; 62 } 63 public int getaccountbalance() 64 { 65 return accountbalance; 66 } 67 public int getamount() 68 { 69 return amount; 70 } 71 public Account() {} 72 public void menu(int i) 73 { 74 75 System.out.println("***************************************************************"); 76 System.out.println(" 欢迎"+i+"使用中国工商银行自助柜员系统"); 77 System.out.println("***************************************************************"); 78 System.out.println(" 输入您的密码:"); 79 System.out.println("***************************************************************"); 80 } 81 public void menu0() 82 { 83 System.out.println("***************************************************************"); 84 System.out.println(" 欢迎使用中国工商银行自助柜员系统"); 85 System.out.println("***************************************************************"); 86 System.out.println(" 输入您的账号:"); 87 System.out.println("***************************************************************"); 88 } 89 public void menu1(int i) 90 { 91 System.out.println("***************************************************************"); 92 System.out.println(" 欢迎"+i+"(账户名称)使用中国工商银行自助柜员系统"); 93 System.out.println("***************************************************************"); 94 System.out.println(" 1.存款"); 95 System.out.println(" 2.取款"); 96 System.out.println(" 3.转账汇款"); 97 System.out.println(" 4.修改密码"); 98 System.out.println(" 5.查询余额"); 99 System.out.println("***************************************************************"); 100 } 101 public void menu2(int i) 102 { 103 System.out.println("***************************************************************"); 104 System.out.println("欢迎"+i+"(账户名称)使用中国工商银行自助柜员系统"); 105 System.out.println("****************************************************************"); 106 System.out.println("请输入存款金额;"); 107 System.out.println("****************************************************************"); 108 } 109 public void cun(double m,int i) 110 { 111 System.out.println("***************************************************************"); 112 System.out.println("欢迎"+i+"使用中国工商银行自助柜员系统"); 113 System.out.println("****************************************************************"); 114 System.out.println("当前账户存款操作成功。"); 115 System.out.println("当前账户余额为:"+m+"元"); 116 System.out.println("****************************************************************"); 117 } 118 public void qu(int i) 119 { 120 System.out.println("***************************************************************"); 121 System.out.println("欢迎"+i+"使用中国工商银行自助柜员系统"); 122 System.out.println("****************************************************************"); 123 System.out.println("当前账户每日可以支取 2 万元。"); 124 System.out.println("1. 100"); 125 System.out.println("2. 500"); 126 System.out.println("3. 1000"); 127 System.out.println("4. 1500"); 128 System.out.println("5. 2000"); 129 System.out.println("6. 5000"); 130 System.out.println("7. 其他金额 "); 131 System.out.println("8. 退卡 "); 132 System.out.println("9. 返回"); 133 System.out.println("****************************************************************"); 134 } 135 public void zhuan(int i) 136 137 { 138 System.out.println("*************************************************************** "); 139 System.out.println("欢迎 "+i+"使用中国工商银行自助柜员系统 "); 140 System.out.println("**************************************************************** "); 141 System.out.println("请输入转账账户; "); 142 System.out.println("**************************************************************** "); 143 } 144 public void jine(int i) 145 { 146 System.out.println("*************************************************************** "); 147 System.out.println("欢迎"+i+" 使用中国工商银行自助柜员系统 "); 148 System.out.println("*************************************************************** "); 149 System.out.println("请输入转账金额; "); 150 System.out.println("*************************************************************** "); 151 } 152 public void mima(int i) 153 { 154 System.out.println("*************************************************************** "); 155 System.out.println("欢迎"+i+" 使用中国工商银行自助柜员系统 "); 156 System.out.println("*************************************************************** "); 157 System.out.println("请输入当前密码: "); 158 System.out.println("请输入修改密码: "); 159 System.out.println("请输入确认密码: "); 160 System.out.println("*************************************************************** "); 161 } 162 163 164 }
//信1705-3 20173598 李旭 package atm; import java.util.Scanner; import java.util.ArrayList; public class AccountManager { public static void main(String[] args) { Account account = new Account (); double m=0; int i=0; int k=0; int j=0; String l=""; Scanner in=new Scanner(System.in); boolean ture = false; while(!ture) { do { account.menu0(); i=in.nextInt(); while(i<10000000||i>99999999) { System.out.println(" 该卡不是工行卡 "); System.out.println(" 重新输入您的账号"); i=in.nextInt(); } account.menu(i); for(k=0;k<3;k++) { j=in.nextInt(); if(j>100000&&j<999999) { k=5; break; } else if(j<100000||j>999999) { System.out.println("密码输入错误"); } else if(j==888888) { System.out.println("密码输入错误"); } } if(k==3) { System.out.println("该账号三次录入密码错误,该卡已被系统没收,请与工行及时联系处理"); } }while(k!=5); do { account.menu1(i); l=in.next(); switch(l){ case "1": { account.menu2(i); m=in.nextDouble(); while(m<0||m-(int)m>0.00001) { System.out.println("输入金额有误"); account.menu2(i); m=in.nextInt(); } account.cun(m,i); };break; case "2": { account.qu(i); int n; n=in.nextInt(); switch(n) { case 1: { if(m<100) System.out.println("账户余额不足"); else m=m-100; };break; case 2:{ if(m<500) System.out.println("账户余额不足"); else m=m-500; };break; case 3:{ if(m<1000) System.out.println("账户余额不足"); else m=m-1000; };break; case 4:{ if(m<1500) System.out.println("账户余额不足"); else m=m-1500; };break; case 5:{ if(m<2000) System.out.println("账户余额不足"); else m=m-2000; };break; case 6:{ if(m<5000) System.out.println("账户余额不足"); m=m-5000; };break; case 7:{ System.out.println("*************************************************************** "); System.out.println("欢迎"+i+" 使用中国工商银行自助柜员系统"); System.out.println("**************************************************************** "); System.out.println("请输入取款金额:"); System.out.println("**************************************************************** "); int jin; jin=in.nextInt(); if(m<jin) System.out.println("账户余额不足"); else m=m+jin; };break; case 8:account.menu0();;break; case 9:account.menu1(i);break; } } case "3":{ account.zhuan(i); int zhanghu; zhanghu=in.nextInt(); account.jine(i); int jine; jine=in.nextInt(); if(m<jine) System.out.println("账户余额不足"); else { System.out.println("*************************************************************** "); System.out.println("欢迎"+i+"使用中国工商银行自助柜员系统 "); System.out.println("**************************************************************** "); System.out.println("请确认是否向"+zhanghu+"转账"+jine+"元"); System.out.println("当前账户余额为:"+(m-jine)+" 元 "); } };break; case "4":{ account.mima(i); int ymi,nmi,nmi2; ymi=in.nextInt(); nmi=in.nextInt(); nmi2=in.nextInt(); if(ymi==j) { if(nmi==nmi2) { System.out.println("***************************************************************"); System.out.println("欢迎 "+i+"使用中国工商银行自助柜员系统 "); System.out.println("***************************************************************"); System.out.println("当前账户密码修改成功 "); System.out.println("***************************************************************"); } else System.out.println("修改密码与确认密码不一致"); } else System.out.println("当前密码录入错误"); };break; case "5":System.out.println("当前余额:"+m);break; } }while(l.charAt(0)!=‘q‘); } } }
以上是关于Java开学测试感想的主要内容,如果未能解决你的问题,请参考以下文章