类图:
复杂度(使用Metrics):
设计思路:
入口是Main类,在Polynomial中有生成列表、合并同类项等等方法。
优缺点:
功能性和性能较为完善,但是没有领会面向对象的思想,导致程序框架比较难看。
分析自己程序的bug:
第一次作业没有Bug。
分析自己发现别人程序bug所采用的策略:
手写对拍器,自动化寻找bug,发现错误时输出。
复杂度:
设计思路:
不同功能放在不同类,Deri求导,Mono分解等等……但是没有继承和多态。
分析自己程序的bug:
在化简时,对List进行remove操作,但是没想到其调用了对象的equal方法,true则remove,而我重写了equal,因此删除了错误的对象。
复杂度:
设计思路:
建立表达式树,加、乘法、三角函数设为Operat的子类,形成继承关系。使用了重载、重写方法。
由于使用递归,导致复杂度较高。
未发现bug。
总结:
这三次作业让我有了完成较复杂项目的经验,也是OO思想的一次学习,让我受益匪浅。
学习其他同学的代码也是一项有意思的工作,非常有意义。
关于重构,应该结合Interface来重构,更好地诠释OO的含义。