BUAA_OO第一单元作业总结
一.基于度量来分析自己的程序结构
Homework1
第一次做面向对象作业,经验不足,题也比较简单,就分了2个类:Poly 和PolyItem。PolyItem就解决了大数的问题,把需要大数操作封装在类里,其他代码都写在Poly里。
UML类图


方法复杂度分析

比较长的方法是读入和输出部分。
总结
缺点:太多东西写在main里了。
优点:知道要把关于大数的操作独立成一个类,跨出了面向对象第一步。
Homework2
Yinzi类:是以因子为最基本单位,里面有幂指数系数,带符号整数,sin,cos和符号。方法就多半是get之类的,不赘述。
Stackk类:有个yinzi的ArrayList,模拟表达式。
Main类:有总体流程函数。
总体思路是利用后缀表达式去括号,再把它求导输出。
UML类图

方法复杂度分析



main里的把输入的表达式转换成后缀表达式的函数太长了!
总结
缺点:当时时间紧迫,没来得及把一些很长的函数拆开(也是编程习惯差),扣了40分代码风格。
Homework3
重构了代码,分成sin,cos等很小的类的,很有oo的感觉。

方法复杂度分析










总结
优点:方法复杂度分析好看了不少
缺点:还是没养成写注释的习惯
二.分析自己程序的bug
自己一开始没搞清楚表达式中连接的+-号和带符号整数的+-号,导致homework2有一个中测没过。
三.分析自己发现别人程序bug所采用的策略
手动构造一些边界的例子,不像某些评测机大佬那么强,但是自己构造的例子对检查自己的代码也有帮助。
四.重构经历总结
总之就是十分折磨,下次一定在1或2次作业就考虑清楚,分好类。
五.心得体会
寒假的时候没做pre,开学了才狂补,导致第一单元总体完成得很差,pre3也有几题没补完。每做完一次作业,都觉得上次简直是小儿科,这种感觉真有趣。希望oo不挂。

浙公网安备 33010602011771号