20165235 结对编程项目-四则运算 整体总结
Posted qy20165235
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20165235 结对编程项目-四则运算 整体总结相关的知识,希望对你有一定的参考价值。
20165235 结对编程项目-四则运算 整体总结
一、需求分析
本次实验需要产生随机数然后对其进行相应的计算。产生随机数可以直接在主类中进行,四则运算可以通过堆栈实现,可能会出现分母为零的
bug
,也要对其进行相应的修复。可以将字符序列装换成字符数组,在对字符数组中“/”
符号之后的数字进行判断,如果是0就返回-1。二、设计思路
- 本次实验总共分为两个思路:(1)是通过类
Operate
中的calculate
方法进行计算,计算的数值由主类Main
给出。并对其修复了分母为零的bug
(在Main
类中进行了修改),如果你在输入中存在除了0-9
以及运算符以外的数字则不影响结果,所以没有改。(因为字符堆栈SignStack
只将加减乘除字符压入堆栈中,其余的会略过)。(2)我用question
主类产生随机数然后调用Operate1
类(其实跟(1)中Operate
没什么区别,只是bug
是直接在本类中修改)中的calculate
方法进行计算。(计算有些误差!!!还没找到解决办法) 以下就是我思路(1)的UML图。
运行过程截图
思路一的测试
- 主函数输入图:
- 结果图:
Bug修复测试图(如果输入的是正常结果会计算下去,如果分母为零则会输出error并返回-1,本来想让程序直接退出,但是不方便进行Junit测试,所以没有修改)
思路二的测试
主函数产生随机数,并进行四则运算
Junit测试
在本次测试中对正常值和分母为零的异常值进行了测试,对与输入的字符序列中有其他字符没有进行测试,因为不影响结果。我俩也没能想出其他的异常情况。所以就测试了这两组。在测试中要把在Main中的修复bug的部分代码移入
Operate1
类中,然后对Operate1
进行测试,(的确有些复杂,这是我当初设计时候的失误)。测试图如下:
代码托管
思路一代码托管
- 代码一:在主类中修复了分母为0的bug
- 代码二:Operate1使用堆栈进行四则运算
- 代码三:判断是否为数字,是则压入NumStack
- 代码四:修复bug之后的测试代码
-
思路二代码托管(我将Operate1与question两个类放入一个文件夹中主要是
question
类,Operate
类跟上面差不多) -
遇到的困难及解决方法
- 问题1:在用产生的随机数计算时会产生误差问题如图
其结果如果转化为
double
类型,结果无误,但是如果转化了会报错(堆栈在某一时刻为空),我跟队友找了很多方法都没能解决。结队感受
上次结队编程误解了题意,是要用随机数进行简单的计算,我给写成了直接进行四则运算。但是这次我俩共同的努力实现了用随机数进行四则运算,并对其进行了
bug
修复,很好的解决了分母为零的情况。这次编程是对上次编程代码修改和改进,最大的不足就是没法解决精度问题,以及对bug
的测试太少,因为对可能的异常情况想的太少,这些是我们应该改进的地方。结队互评
- 在结队学习过程中认真对待,他的博客排版简洁明了。
-
结对照片
以上是关于20165235 结对编程项目-四则运算 整体总结的主要内容,如果未能解决你的问题,请参考以下文章