首页 > 其他 > 详细

OO Unit1

时间:2020-03-18 13:31:40      阅读:55      评论:0      收藏:0      [点我收藏+]

OO Unit1 总结

题目描述——多项式求导

  1. 形如3*x-x**2+x-1,仅包含幂函数及常数项。组合规则为+,单次*,**。
  2. 形如sin(x)*cos(x)*x**04*-6+8,包含三角函数,幂函数,常数项。组合规则为+,*,**。
  3. 形如sin(x)*cos((-x))*(x**04*-6+8),包含三角函数,幂函数,常数项。组合规则为+,*,**,嵌套。

代码分析

思路分析

前两次作业相对简单,都没有用到设计模式和层次化设计。
  • 第一次作业,使用Term类描述多项式中的每一个项,存储项的系数,x的指数。

  • 第二次作业,仍旧使用Trem描述多项式中的每一个项,存储项的系数,x的指数,sin(x)的指数,和cos(x)的指数。

前两次作业由于没有使用层次化结构,导致了第三次作业代码重构的工作量变得很大。sin,cos,x,constant和poly都继承父类Factor,使用工厂模式创造对象实例。具体分为以下几个方面:
  • 字符串预处理:正难则反原则,分类判断有限的错误情况,尤其是空白字符串的判断。

  • 嵌套和循环调用:Poly类既是存储整个表达式的类,又是继承factor,作为一个因子的类。

  • 拆解大正则,统一由factory在创建对象时判断输入是否合法。

UML类图

homework1

技术分享图片

homework2

技术分享图片

homework3

技术分享图片

OO度量分析

homework1

技术分享图片

homework2

技术分享图片

homework3

技术分享图片


通过类图和度量分析可以看出,代码中尚存在较多非结构化成分,且结构复杂度也存在偏高的情况下,仍需要改进。

bug修复

我的bug

  • 第一次作业中未被测出bug。
  • 第二次作业存在两处bug
    1. 变量名相似,在利用IDEA的代码自动补全功能时出错。
    1. 情况判断不全面,在输入处理的部分缺少一些情况的判断。
  • 第三次作业中存在一处bug:由于时间原因,性能优化部分未能在本次作业中完成,尝试优化的残存代码有遗漏,导致求导出错。

我测出的bug

求导错误、缺少部分情况的判断导致程序崩溃、正负号的处理出错

OO Unit1

原文:https://www.cnblogs.com/probie/p/12516633.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!