OO第一单元作业总结——Java实现表达式求导

程序结构分析

  • 第一次作业

(1)类方法复杂度

(2)类图

  可以看出本次作业总体来说类的耦合程度比较小,因为本次作业比较简单也不会涉及到类的复用问题,由于第一次写Java程序,基本复杂度ev(G)和循环复杂度v(G)都比较高,在输入处理方法中特别明显,需要加以改进。

  • 第二次作业

(1)类方法复杂度

(2)类图

 

  其中大部分复杂度高的原因与第一次作业相同,这里不再赘述,第二次作业难度与第一次相比不是很大,对Java语言更加熟练的使用使部分类的复杂度甚至下降。通过类图可以看出本次作业的大体架构,设Item这一个类使得此次作业得意快速完成。

  •  第三次作业

(1)类方法复杂度

 (2)类图

  本次作业的架构相对前两次改动较大,几乎从头开始改写了程序。因为本次作业会有多层括号嵌套问题,由于需要多层判断,所以复杂度相对比较高。通过主类递归调用方法进行输入检测以及求导。

个人bug分析

  • 第一次作业爆栈问题

原因:正则表达式匹配过程中回溯造成爆栈。

解决措施:在正则表达式尾加上'+'符号,采用独立匹配。

  • 第三次作业括号嵌套问题

原因:在读入如sin((((x))))会发生错误。

解决措施:将括号不传进表达式。

互测策略

  1. 下载下各个同学的程序,使用git批量处理;
  2. 盲测自己在写程序的过程中发现的bug;
  3. 观察正则表达式,发现bug;
  4. 随机生成测试用例。

Applying Creational Pattern

本单元的第三次作业中可以使用二叉树构建,更多的使用继承以及接口,简化程序。

转载于:https://www.cnblogs.com/HobbitByDyk/p/10604220.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值