作业一
在第一次作业发布的时候对这次作业比较掉以轻心,因为之前在暑假的时候上过先导课,对面向对象的编程思想和java的语法都比较熟悉,加上有其他的事物分心,所以到了最后一天才开始着手写代码,轻视作业的结果自然是惨不忍睹,仅仅能勉强完成一个能运行、不crash的程序。
作业二&三
我比上一次留了更多的时间来完成作业二,但这仍然不是很够,虽然完成了基本的功能要求,但是却因为是赶着写完的,完全忘了写最基础的输入格式的判断,导致输入报错功能缺失很多。
至于作业三,虽然吸取了前两次作业的教训,一早就准备好开始写第三次的作业,电脑却不幸地坏了……更不幸的是,在借了同学的闲置的电脑之后没用几个小时也坏了……于是在我去到维修中心弄清楚是硬盘坏了并换上了一个新的之后,我只剩不到30个小时从0开始……于是这次作业没交上。
但我还是想分析一下我这次作业的问题,在上一次作业中我设计的思路是逐条读取指令,并判断读取时电梯的运行状态,因此我的时间是跳跃前进的,而在第三次作业中改成了0.5秒0.5秒刷新电梯状态并读取指令,对我的程度来说这样拟真成都比较高的设计思路逻辑比较清晰直观,然而在实际写的过程中难免出bug,在debug的过程中不断的进行大幅改动又没有备份改动前的版本是我这次作业没能完成的两大直接原因,因此也学到了一个新的教训:对自己程序中的bug要有比较清楚的认知和分析后再着手改动,且进行大的改动前最好保留一次备份,以防万一。
分析自己程序的bug
几次作业导致bug的有一个很大的原因都是没有足够仔细的研读指导书,指导书里面许多非常细节的要求,方方面面都要考虑到,当你缺少了哪一个部分或者是理解有偏差,很容易一片江山满地红的。再者就是很多在编写过程中出现的各种大大小小的bug,不仅拖慢编写速度,还会混肴自己的逻辑,这种现象主要来源于自己着手写之前没有进行足够的思考,我认为正确的方式应该是先通读仔细理解指导书,再根据指导书思考程序的架构,想清楚逻辑,把它们写下来,然后再开始着手写代码,写的时候还要时时再看自己写的思路,才不会写着写着变成一团乱麻。
发现别人程序bug所采用的策略
第一次作业主要使用的是阅读对方代码,了解对方的思路再针对性的找bug的方法,但这个方法再第二次作业就行不通了,因为对方的代码非常冗杂,很难理解对方的思路,想了几种测试样例,也测不出来除公测错误之外的错误。
心得体会
虽然OO一直以来都是怨声载道的一门课,我自己也被折磨的不清,常常写不出来挫败感很大(虽然大部分是自己作死),但是每一次折磨过后成长是显而易见的,而且不得不承认在面向对象的编程过程中我还是能感受到乐趣的,虽然一直表现的不好,但我相信坚持改掉缺点,往进步的方向再挪动一点点,到这门课结课的时候一定有很大的改变。与各位同学们共勉吧。