20172303 20172322 2017-2018-2 《程序设计与数据结构》结对编程项目-四则运算 项目总结
20172303 20172322 2017-2018-2 《程序设计与数据结构》结对编程项目-四则运算 项目总结
结对对象
- 姓名:范雯琪
- 学号:20172303
- 码云地址
- 第一周博客地址
- 第二周博客地址
- 担任角色:
- 领航员:范雯琪
- 驾驶员:张昊然
- 所有基础要求已经满足,另虽然我们是两人小组,但是也实现了括号(虽然不尽完美),拓展需求中的文件处理也在上周的编写中实现,本周主要的主要完成的内容是对代码进行JUnit测试,首先我们先复习了上回实验学的JUnit的相关内容,我比范雯琪看得快,所以我先开始了测试类的编写,她在看完之后与我讨论了两个人对测试类的思路,在进行了一些尝试后决定使用她的思路,代码的编写还是由我完成。
需求分析
第一周实现的需求:
- 可自动生成题目,题目的难度和数量可由用户自己输入
- 题目支持整数、真分数和加减乘除四则运算
- 可判断用户答案是否正确并输出正确答案,最后计算用户的正确率
第二周主要实现的拓展需求:
- 文件处理:在实现上周的要求下将随机生成的题目放入Exercises.txt文件中,让用户在其中写出答案后保存文件,运行另一个类使得题目得到判断,并且使得判断结果生成在ExercisesResult.txt文件中。
本周主要实现的要求:
- 完善规范了部分代码的写法,增加了一些批注,修改了一些小错误,尝试改进括号_(:з」∠)_
- 完成对Calculator类、InfixToSuffix类和RationalNumber类的测试。
设计思路
-
主要思想:使用Junit4进行测试。
- 对"Calculator"(计算类)测试运算符、后缀式计算、真分数化简。
- 对"InfixToSuffix"(中缀转后缀)测试中缀表达式转为后缀表达式是否正确。
- 对"RationalNumber"(有理数的运算)测试两个有理数(分数)的获取其分母、分子、和它们的加减乘除和倒数。
-
UML图
相关过程及解释
- 本周主要实现对"Calculator"(计算类)"InfixToSuffix"(中缀转后缀)"RationalNumber"(有理数的运算)三个类的测试。
- 之前的比较完善的编程让本周测试类的编写比较容易,主要是对最初思考需求实现的复现,或许在"Calculator"(计算类)"中所取的数不太好算,但是都是计算好以后再写入测试类中。
遇到的困难及解决方法
- 本周编写测试类遇到最大的困难就是进行的过于顺利以至于我们找不到可以写下来的有意义有价值的困难和解决方法_(:з」∠)_
团队共同成果
- 我们觉得在两人组中我们的“四则运算”编程项目已经算做得不错了,虽然括号没有完美实现。在编写完测试类后我们都炒鸡开心,这个持续三周的大项目被搞定啦!!!!
放上一张结对编程的图片
小组最终贡献度划分
- 张昊然:55%
- 主要贡献:前期大部分代码的编写,中期文件处理的代码实现,后期JUnit测试类的编写,提供中缀转后缀和如何在题目中加括号的思路,修改和完善代码内容
- 范雯琪:45%
- 主要贡献:确定项目中类的个数及相应的功能,加括号部分代码的编写,前期小部分代码的编写文件处理和测试类的思路提供,修改和完善代码内容和规范
- 划分依据:我们在商量了好久之后决定还以延续上周的贡献度划分,我们组划分贡献度的主要依据是编写的代码量,因为这个项目的代码量真的真的真的不小,其次是思路提供,然后是博客编写,最后再考虑一些杂七杂八的小项。
成员项目感想
- 张昊然:一开始在接到这个项目的时候真的觉得自己很难完成,但是在经过两个人的努力,不仅完成了项目的基础需求,还完成了部分拓展需求,真的很开心,真的超有成就感,感觉经过这三周的编程,自己的相关知识也增长了很多,现在越来越感受到了JAVA这门编程语言的吸引力,希望自己能够再接再厉,不忘初心,继续前行!
- 范雯琪:现在不禁感慨终于把这个项目做完了,刚开始真的觉得有种举步维艰的感觉,不知道从哪里下手,后来硬逼着自己一块一块的啃下来,现在回想起来还是很有成就感的!其实大部分工作都是在第一周完成的,第二三周相对就轻松了许多。在这个过程中要感谢我的结对小伙伴张昊然同学,我一直觉得他在这个项目中付出的比我多得多,真的是非常辛苦了。