oo第一次博客总结

第一次作业总结

分析程序结构

   第一次的作业,简单来说,是写一个能够计算多项式相加减的程序,由于没有学习过java没有接触过面向对象类的编程思想,因此在第一次的作业中我选择的是面向过程的Java程序,就不贴图了。

分析与评价:由于本次的程序并未采用面向对象式的程序设计方法,因此这个程序很明显是一个失败的程序,但若是不从中吸取教训,那本次失败就毫无意义,以现在角度分析第一次的作业代码,能很明显发现java面向对象式的程序设计思想与面向过程式思想的区别。正如我在第一作业中所做,java也可以做出面向过程的程序,但是它更有优势的还是面向对象的程序,这就是因为类,类中规定了一类对象的属性与方法,将属性与方法放在了一个对象中,以对象来思考程序,这个方法解决了很多面向过程设计的固有的问题,与面向过程比,以一种更加贴近现实的方式组织程序,提高了程序的可维护开发能力。

分析程序Bug

在第一次的作业中,由于未采用正则表达式对输入进行判断,只是对某些不合法情况进行了下判断,因此,程序的鲁棒性不高,对很多实例也有无法发现的情况。

分析别人bug策略

第一次的作业中,分给我的同学的程序其实已经将题目的要求都已经做到了,但是由于输出错误为“Error”因此错了一半,在分析这位同学的代码时,并没有明显bug,在运行测试数据时,也很完美。总之,寻找bug时采用策略,一看代码,二看测试数据是否有错误。

第二次作业总结

分析程序结构

第二次作业是写一个傻瓜式的电梯策略,总共有五个类,电梯,楼层,队列,请求,以及调度器。

分析与评价:第二次的作业相较于第一次的作业有了一点点的进步,当然也只有一点点,本次的作业中我的程序的最大的缺点有两个,一个还是对输入的判断,太过繁琐,并且由于太过繁琐导致还是会有一些情况想不到,导致程序crash,第二是类的耦合性太差,在我的程序中,类之间的大小差异太大,而且类中方法的大小差异太大,主要的功能只集中在了其中的几个方法中,这使我的程序显得很丑陋。

分析程序bug

这次的作业中,我对输入的处理是用split函数对输入进行划分,然后分别判断,然后,没有对空行,或者是某个位置上没有字符串进行判断,因此出现了crash。

分析别人bug策略

与第一次情况相同,这次的被分配的程序仍然是很完美的,被分配的同学的公测错误都是因为程序输出错误,而代码中没有明显bug,运行待测数据时都是正确的。

第三次程序总结

分析程序结构

第三次的作业写的是一个一点聪明的电梯策略,由于有第二次的程序作为基础,因此第三次程序与第二次程序相似,只有调度器会不相同。

分析与评价:由于是继承了第二次程序的框架与部分代码,因此,第一次的优缺点仍然存在,不过对第二次bug已经加以修复,但代码的耦合性,复杂度等等仍然存在,并且这次的调度器更为复杂,因此,调度器出现了一些没有想到的bug。

分析程序bug

在这次的bug中,我的想法是在电梯执行主指令时,每上一层楼层进行一个电梯的状态改变,并进行判断,而在这个细节中,我是先判断,在进行电梯状态改变,因此中间在判断时,对此时电梯状态的判断错误,因此出现了某些电梯捎带情况的判断错误。还有一个bug是没有对主请求进行捎带情况的判断,因此少了一种情况,判断失误。

分析别人bug策略

参照上两次,寻找别人bug仍是用分析代码和运行测试用例,我所测的同学在公测中只有一个bug,在运行测试用例时没有出现bug,程序也很好。

心得体会

  这三次的作业给我的教训很重,经过这三次的oo,我觉得首先,一定不要犯拖延症,其次,对指导书和网站上的issue一定要看仔细,很多细节上的问题在这个上面都能够体现,最后,还是要多看书,多学习别人代码,向大神学习。

原文地址:https://www.cnblogs.com/fyd123/p/8711427.html