OO第一次总结博客
第一次作业:
1.分析:
第一次作业是简单的多项式相加,主要是想让我们体会面向对象式编程,和严密的考虑各种输入情况。整个程序主要的难点就在于正则表达式,搞定了这个其它便迎刃而解了。然而作为第一次写java的小白,然而我的程序依旧没能摆脱面向过程式的思考方式,只写了一个类,并且虽然看了很长时间的指导书,但还是没能考虑到所有情况。
2.自身Bug:
没有考虑到前加号的情况,正则表达式错误,另外正则表达式过长,导致边界正常输入crash。
3.分析别人bug策略:
第一次我便分到了一个全a的程序,首先将一些自己觉得易错的数据测试,然后根据错误分支树依次编数据并测试。虽然最后也没找到错误,但这个过程还是很有意义的。
度量分析:
类图:
只有一个类,便不放了。
第二次作业:
1.分析:
第二次作业是傻瓜电梯调度,这次作业难点主要在于类的创建,搞清楚几个类的关系以及起作用就ok了。
2.自身bug:
虽然公测时没有bug,但是我的正则表达式时间只能匹配10位,这就导致时间为10位有效数时不能有前零。
3.分析别人bug策略:
这次我分到的程序公测错了相当多,通过分析我发现他没有考虑开关门时间,于是正常功能测试基本全挂,实在可惜。
度量分析:
类图:
第三次作业:
1.分析:
第三次作业相比第二次作业在难度上跨越了一个等级,这次作业主要难点在于调度算法上,因为要考虑捎带,这就导致不能按顺序读入并执行指令,最开始我想先选得主指令,后判断其下有哪些指令可以被捎带,然而这种方法相当复杂,因为前面的指令会影响后面的指令是否能在捎带范围内,而后面的指令又有可能影响前面的指令。然后我就思考现实中的电梯,现实中的电梯是一层一层走的,所以能够动态接受命令,于是我就按照这个思路,也是先选取主指令,然后在去往目的地的途中一层一层上升,并考虑当前层的所有指令。这样算法便简单明白了许多。
2.自身bug:
这次我写完时,用了大量的数据来测自己的程序,所以最后没有发现bug
3.分析别人bug策略:
这次分到的程序也是公测没有全部通过,于是我首先分析他的错误原因,然后测试与其相近的数据,最后按照错误分支树来进行数据测试,最后找到两个bug。
度量分析:
类图:
心得体会:
1.java的思考方式与c语言几乎完全不同了,c是面向过程,而java则是面向对象,经过这三次作业,我深深的体会到了它们的不同。
2.java作业成功的治好了我的拖延症,第一次作业我是在ddl前1天才开始写,所以理所应当的就修仙了,第二次作业我学聪明了,ddl前2天开始写,然后发现时间还是很紧张,然后这第三次作业我终于在周末就开始准备了,所以程序的调试就做的十分充足,这样就能尽量的减少bug了。
3.以前写c时,输入格式一般都是固定好的,基本不会考虑无效输入,然而这几次作业在格式输入上下了很大功夫,我开始觉得很繁琐,需要考虑很多种情况,然而现在我发现我的程序健壮性提高了许多,不会再动不动就报错或者直接crash掉,我想这在我将来的工作中也是很有必要的吧。