面向对象OO第1-3次作业总结
学习OO已经四周了,对OO以及JAVA的编程也算终于了解了一丢丢。现在做完了三次的编程作业,对前三次的作业做一次总结。
第一次作业
----------------------------------
----------------------------------
第一次作业
自己程序的bug:
1.第一次作业压力测试没过
2.第一项是负号的情况下没有按照负号进行运算
别人程序的bug:对输入的格式判断不够全面,有多种格式问题
自己设计结构的问题:没有严格按照面向对象的结构来编程,没有考虑第一项为负的情况。
自己发现别人程序bug所采用的策略
按照提供的错误分类树,在每一个叶节点上自己编了一个测试样例然后进行测试,就发现了测试对象的bug
心得体会
用了不到一周的时间来学习一门新的语言,对我来说有很大的难度,加上对面向对象的理解不够,所以只能勉强地用面向过程的写法来完成第一次的作业。第一次作业的难度我觉得主要在判断输入的格式的合法性,我在这个地方纠结了差不多两天,第一天一直在尝试用有限状态机来分析输入的各种情况,但是试验了一天后发现这个方法不可取啊,因为可能的输入情况真的太多了,而且太多的if/else嵌套很容易出bug,因此第二天开始学习使用正则表达式,终于在第二天写出了用正则表达式来判断输入的合法性。正则表达式真的非常好用。
第二次作业
----------------------------------------
------------------------------------------
第二次作业
自己程序的bug:1.时间为uint-1/uint/uint+1的情况下输出错误
别人程序的bug:完全没发现bug
自己设计的问题:对time的值考虑情况不够,用了double的类型但是还是出了问题,问题出现在将时间由字符串转换成数字类型时转换成了int,然而要求的是unsignedint,所以产生了问题。
心得体会
第二次作业终于写出了所谓的面向对象设计的程序,开始体会到java编程的方便之处,第二次作业的电梯是个傻瓜电梯,设计起来还是比较容易的,有了第一次作业的经验,在判断输入上也轻松了很多。
第三次作业
-------------------------------------
---------------------------------------
第三次作业
自己程序的bug:1.时间超出范围时错误
2.同一请求被执行多次
3.电梯请求e.e_n<r.n<=e.n/r.n>e.n捎带
4.楼层请求e.n<=rln<e.e_n捎带
5.请求楼层全部处于(e.e_n,r主.n]/[r主.n,e.e_n)全部捎带
别人程序的bug:输出INVALID的时候错误输出成#INVALID
心得体会
第三次作业写得我非常头疼,一直没有清晰的弄清楚到底什么时候捎带什么时候不捎带,在自己理清了一条一条的捎带规则之后,多条规则混合在一起时就产生了各种各样的bug,还是自己的设计有问题。相反看了自己测试的同学的近乎完美的测试,看了他的代码也让我学习了许多。自己在阅读指导书的时候还是不够细心和耐心,还不太习惯阅读这种指导书,希望在以后一次一次的锻炼中赶紧适应。