第一单元总结

1、基于基度来分析三次作业的程序结构

(1)第一次作业:

 第一次作业是对包含幂函数和常数项的简单多项式的求导。

第一单元总结_第1张图片

第一单元总结_第2张图片

第一单元总结_第3张图片

(2)第二次作业:

第二次作业在第一次作业的基础上增加了sin(x),cos(x)的三角函数项,还增加了乘法的组合。

第一单元总结_第4张图片

第一单元总结_第5张图片

第一单元总结_第6张图片

(3)第三次作业:

第三次作业在前两次的基础上,增加嵌套组合方式,增加了较大的难度,在本次作业中我使用了继承和多态,为每一种因子,每一种组合都创建了一个类。关于表达式是否合法的判断,在前两次的作业中对于表达式是否合法的判断主要是通过,构建合法表达式的正则表达式,对输入的表达式进行匹配。

第一单元总结_第7张图片

第一单元总结_第8张图片

在三次作业中我都出现了方法过长,类的规模过于繁重的问题,在设计中,应该更加合理地进行方法和类的定义和拆分,避免这种问题。

2、自己及互测bug分析:

在三次的作业中均出现了一些bug,在第一次的作业中,由于在化简中,对于结果为0的项不进行输出,最后对于求导结果为0的表达式,也没有输出,导致了bug的产生。

在第二次作业中,对于乘法组合的求导运算,如-x*sin(x)会得到-x*cos(x)+sin(x)的结果,对于第二项的符号没有进行处理,导致出现的bug。

在第三次作业中,由于在化简的过程中,缺乏判断语句,过度化简,导致了bug的产生。

第一次作业和第二次作业在设计中,在负责求导的类里由于对于各种求导的情况没有周全的列举出来,造成了bug。

第三次作业一开始并没有一个清晰的结构划分,在未得出正确的结果之前就进行了化简,对整个过程造成了一些不好的影响。

互测时采取的策略:

首先分析代码的层次结构,对不同的功能进行测试,对自己出现的一些问题,或者是自己在写代码的过程中,考虑到特殊情况结合他的代码设计进行测试。

3、应用对象创建模式以及对比的心得体会:

在本单元的作业中,第二次作业基本上延续了第一次作业的设计思路,但为了处理乘法组合,在第一次的基础上对poly又进行了一步的划分。

而第三次作业,与前两次作业有了一次较大的改动,在第三次作业中,我使用了继承和多态,为每一种因子设了一个类,之后再为乘法、加法、嵌套不同的运算法则定义一个类,进行每层的加工运算,最后定一个工厂类,定义了对每个类的调用加工顺序。

心得体会:在动手之前,应该先分析好层次结构,对于每一个类,就单独实现他的属性功能,运用继承和多态来解决多个并列种类的问题,而对于特殊情况的分析贯穿在设计,动手写代码,和后期测试的过程中,在实现通用数据正确的前提下,对特殊情况进行考虑处理,在能够得到正确的结果之后,对最终的结果进行化简。对比优秀代码,代码层次结构的设计是很重要的,如何把代码进行合理的分包,进行合理的代码组织,同时要考虑对未来迭代的拓展,是写好oo代码的重要前提。

 

你可能感兴趣的:(第一单元总结)