开学之初,java课程迎来了第一次考试。Java开学测试,测验的是在暑期期间,同学们自学java的结果。考试试题由老师亲自出题,难度系数差不多就是java基础课程的水平。
考试题目本来应该是去年的题,因为受疫情影响,我们在家里待了得有差不多十个月,老师也怕我们一点没学到时候都挂了,也就给了我们条活路,但是,有人已经做了去年的题了,故出的是另一道题目,贼难,题目是实现ATM机的基本功能。考试要求为:ATM机的账户记录Account有账户的唯一性标识(8个数字的组合),用户的姓名,操作日期(Date),操作类型,账户密码(六位的数字,可以用0开头),当前的余额(可以为0)。该程序模拟ATM的功能设计,当用户插卡后显示,输入密码界面,用户输入正确密码(用户输入错误密码,则提示该卡已被锁定,无法操作),则弹出选择界面:存款、取款、转账汇款、修改密码、查询余额。
在看到试卷时,我首先是直接一股脑地看着题目要求什么就写什么,但写了一会儿就感觉写的很迷茫,后来就花费了大概20分钟时间设计并整理思路,之后便进行了私有变量、get()、set()函数的定义,这俩方法在之前请教过舍友,才知道eclipse上有简便方法可以让系统直接生成这俩方法,这可是大大节约了我的时间,虽然到最后还是没有写完。接下来便是实现向accountinformation.txt、accountlist.txt文件中输入信息并实现输出,讲道理,我这一点在暑假是偷懒来,当时看了看java的文件操作部分,感觉好难好复杂啊,然后当时只是看了一遍,学了个大概就不想了,正好这也是老师要求学的最后一章,所以之后也没再看,要是试卷没改就好了,那个程序我以前也没写过,但看着要比这个简单得多。在程序中,比较困难的是账号和密码与储存在对象信息对比,因为我也没用文件操作,直接就用数组代替了,故而也不需要和文件里的数据对比,也简单一些,但是我java学的还是不太行,太生疏了,所以写这个要写很长时间,之后调用getaccountID()和getaccountpassword()对比实现,这个有一个地方是卡了我很长时间,就是java里面判断字符串相等,不能直接用==或!=,不然程序运行的时候会报错,得用一个函数equals()来实现,这个当时真的是恶心的我不行。接下来的功能也都通过类似的方法一一实现,操作流水信息则是每操作一次便将操作信息存入accountlist.txt文件中,这个也占0.5分,我也舍弃了,没办法,为暑假的懈怠买单,这也是给了我个教训。最后我也没有写完,那五个功能只有前俩完整的写了下来,后面两个都差一点写完,当然写了的这四个功能也是没有文件操作部分,这次扣分扣了5.5,其中4.5都扣得文件上了,最后的查询功能是一点没写。
讲真,我在暑假期间其实学习习惯和学习态度很差,老师要求每天学习一个小时java,我每天顶多半个小时,只是把基础的知识学完了,但java程序实例,在开学前的最后一周才匆忙的练习了几个,也是c++的实验里面的程序,用java编出来,在学习的时候也会不由自主的和c++和c语言比较,发现学c和c++也是真的有用,这些程序语言感觉都是大同小异,尤其c++和java,几乎一样,不过是一个主函数在类里面,一个在外面,别的整体思路基本一样,像循环语句的使用什么的。
本次考试对于我的帮助其实还是很大的,在家里在宿舍看一天的书,或者是去教室上那些理论课,都不如这么考一次,测一次来的实在,来的有作用,在平常上课,即时有上机课,也因为没有什么明确的目标,一大半的时间都是混过去的,这个测试可就差多了,直接关联期末考试,这样就算平常在家再不想学习,都得抽空学那么一会儿,怕挂科啊。然后呢,也让我认识到了我的许多不足之处,其中敲代码敲得太慢了,这对于我一个专门学编程的学生来说是很不好的,虽然也与我用的不是平常用的键盘有关,还有心理素质也很差,考试的时候有点慌,思维比较混乱,这也是我第一次进行这种考试,另外到最后也没有写完,程序界面也不够美观,基本上没有注释,我也学到了一些东西,自己感觉很重要的一个就是老师要求的学习习惯,在编写完一段程序之后先运行一下看看有没有问题再往下写,之前基本没有这个习惯,都是写完了再运行,然后直接蹦出来五六十个错误,人都傻了,这次老师课上也强调了,我也是第一次照做了,感觉很不错。在接下来的学习中,我会更加努力,调整好自己的心态,在编程前整理好思路,注重编程中的细节,让程序变得更加美观,我相信在老师的带领下,我的能力会得到进一步的提升。