博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oo第一单元总结
阅读量:5916 次
发布时间:2019-06-19

本文共 836 字,大约阅读时间需要 2 分钟。

1.程序结构

三次作业的类图如上图所示。

2.程序中存在的BUG:

  第一次作业的主要BUG出现在大整数的处理上面,当时对数据规模并没有一个比较具体的概念,就简单的使用了long而不是biginteger来储存幂函数的系数和指数。还有部分BUG出现在正则表达式爆栈上。

  第二次作业的主要BUG出现在对于前导+是作为运算符还是作为正负号的判断上面。按照更新后的解释,++++++是不合法的。同时第一次作业中缺少hasnextline()的错误带到了第二次作业中

  第三次作业的主要BUG集中在构建表达式语法树过程中。直接的原因是底层的设计出现了比较大的问题,忽略了对接口和继承的使用。导致层次结构过于复杂,多次调用后难以调试。

3.互测BUG部分:

  我自己hack的很少。在第一次研讨课上有同学提出了面向测试的设计思路,这对于我第二次作业的进行是一个启发。每完成一个类或者一个方法时都会尝试对其进行测试,来反思自己的思路是否正确。构建测试点的方法也主要是基于自己在思考指导书的规格要求时发现的一些容易被忽略的点来进行构造。

4.Applying Creational Pattern

  相比之下,第二次作业我直接把第一次作业的结果推倒重来。主要原因在于相较于第一次作业中使用的正则表达式,递归向下的分析法由于其逐字符判断的优点使得对输入流的分析相当具体,哪一部分被识别为了什么内容我都能看的十分清楚。但是存在的问题在于,在第二次作业中,我依然是用四个数字(常数系数,幂函数指数,sin指数,cos指数)来作为一个项的基本组成成分,这就导致了第二次作业求导的思路不能在第三次作业上进行复用。事实上我在第二次作业中尝试过使用和第三次的设计相同的思路来进行语法树的构造,但是当时因为比较复杂就放弃了这个思路。这一部分缺少的思考也让我在第三次的设计中吃了亏。

转载于:https://www.cnblogs.com/a624709772/p/10608482.html

你可能感兴趣的文章
Hamburger
查看>>
hdoj 题目分类
查看>>
软件测试工程师又一大挑战:大数据测试
查看>>
web 项目 布在tomcat服务器上出现的问题小记
查看>>
衡量线性回归法的指标MSE, RMSE,MAE和R Square
查看>>
js 创建对象
查看>>
Hibernate写配置文件无提示信息解决
查看>>
Windows平台下,Scrapy Installation,安装问题解决
查看>>
WCF数据契约代理和已知类型的使用
查看>>
EJB 的理解
查看>>
css样式初始化
查看>>
孙子算经 卷下
查看>>
我的第一个WinForm程序
查看>>
完美分页存储过程(有缺陷,无法加入条件)
查看>>
oracle主键自增
查看>>
PHP入门part2
查看>>
Java学习笔记-方法总结
查看>>
P1250 种树
查看>>
模拟滤波器到数字滤波器的转化
查看>>
[三]基础数据类型之Integer详解
查看>>