2017-2018-2 『Java程序设计』课程 结对编程练习_四则运算
相关测试过程截图(JUnit)
JudgeTest:对计算及将整数化为分数的测试


SuffixExpressionTest:中缀转后缀的测试


RationalNumberTest:对RationalNumber类的getNumerator、getDenominator、reciprocal、add、subtract、multiply、divide的测试

代码测试
四则运算测试成功

写入文件的成功实现

小组各个成员信息
- 谭鑫20172305
- 王禹涵20172323
- 方艺雯20172314
测试过程中遇到的困难及解决方法
问题一:在测试的时候发现部分题目计算错误,但是单独使用计算类做测试的时候答案是正确的。

- 问题一解决:之后进行了多次测试与单个类的测试,结果无误,就没有修改代码,也不知道为什么突然就错了。
- 问题二:在最初几个类整合到一起测试时,出现了无法运行的乱码问题,但在多次运行后发现一会正常运行输出无误,一会就乱码了。
- 问题二解决:最后发现是加括号的问题,本来设计的是运算符和数字之间都有一个空格,但是产生的情况是两个空格或有的地方没空格。
问题三:在进行测试的时候输出的为一个“=”。

问题三解决:原因在于计算类写的传入的参数为不带“=”的后缀表达式,而在中缀转后缀时,“=”为终止的符号,删掉有关“=”的代码没有什么大影响就解决了,如图

但是在之后的测试中又发现计算错误,图中的式子计算为错误答案,然后就进行调试,发现是在RationalNumber类中出问题,结果发现小组成员在编写自己的部分时,对RationalNumber类进行修改来满足自己的要求,所以我们用了不同的RationalNumber。
给出小组最终贡献度划分
| 方艺雯 | 王禹涵 | 谭鑫 | |
|---|---|---|---|
| 贡献度 | 33.3% | 33.3% | 33.3% |
小组各成员项目感想
方一文
这次的编程任务我主要负责有关计算方面和JUnit测试的部分。在最初实现四则运算的时候,感觉一头雾水,之后专注于自己负责的代码,助教也帮助修改了错误,小组成员都很努力,在第二周终于每个人都完成了自己的部分并测试无误,但合在一起却发现不能运行成功,由于代码太长助教也无法找出问题所在,一时陷入了僵局,最后谭鑫同学勤勤恳恳修改bug,后来发现测试没有大问题,我的计算类减法运算中两个参数位置写反了,结果算出来1-2=1,还有中缀转后缀中会输出“=”而我写的不需要“=”,稍微修改后合在一起就没有什么大问题了,团队的力量确实很强大。同时两位小伙伴付出了很多,感谢!王二许
本次结对编程我主要负责的是中缀转后缀代码的编写。主要的难点在于中缀转后缀运算符优先级表的建立,我采取的大概是最笨的方法,一个一个的罗列运算符比较的情况,再给出相应的运算方法。但是能预测的情况毕竟有限,所以我花了大量的时间不断的进行测试对没有考虑到的情况进行补充。其中印象比较深的是(1 + 2 * 3)和(1 * 2 + 3)两种情况的补充,最开始我以为两类情况是相同的,所以归于一个方法处理,后来才在测试中发现两者因为运算符的优先级不同,转后缀的步骤是有区别的,当时其实思考了很久。
通过此次结对编程活动,我的编程能力有了一定的提高,特别是问题的分析和解决能力,此外在与组员的沟通中也不断的进行自我纠错,写代码的思路也有了扩宽。
最后感谢两个小伙伴的大力支持!谭三金
四则运算中我是负责生成中缀的式子和加括号,感觉自己的代码是相对前期的任务,所以。在他俩编写的过程,我又弄了一个心灵鸡汤的类,用于安慰一下算错的小同学们,同时又模仿成绩单的方式进行生成文件。在写的过程出现过很神奇的问题,就是那个人机交互有问题,我想是被前后句吞了,所以我改为next就好了。还有的一个问题就是括号的问题,到现在还有问题,特别恶心的很少情况下出现异常。和两位同学合作很给力,遇到困难不退缩,一起解决问题,而且最最重要的是都熬夜敲代码,想思路。合作的过程不光是增长自己的编程能力,而且增强自己的合作意识,未来的项目肯定会越来越大,一人之力肯定是不行的,合作才能最大限度的解决问题的。
给出项目的码云链接
新的UML图

给出小组结对编程照片

2017-2018-2 『Java程序设计』课程 结对编程练习_四则运算的更多相关文章
- 2017-2018-2 165X 『Java程序设计』课程 结对编程练习_四则运算
2017-2018-2 165X 『Java程序设计』课程 结对编程练习_四则运算 经过第一阶段的学习,同学们已经熟悉了这门语言基本的用法.在一次又一次对着电脑编写并提交代码,进行练习的时候,有没有觉 ...
- 2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周
2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周 博客要求 组内同学需各自发表博客 博客中需包含以下内容: 相关过程截图 关键代码解释 遇到的困难及解决 ...
- 2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算_第三周
2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算 组队成员: 仇夏 学号: 20172310 博客地址: @王志伟 四则运算第一周博客 @仇夏四则运算第一周博客 ...
- 2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算——第一周
2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算 组队成员: 仇夏 学号: 20172310 博客地址:点击这里 1. 需求分析: 可生成题目: - 输入要想生成 ...
- 2017-2018-2 20165225『Java程序设计』课程 结对编程练习_四则运算
2017-2018-2 20165225『Java程序设计』课程 结对编程练习_四则运算 需求分析: 支持整数,可进行多运算符运算,有优先级. 设计思路: 在有括号的情况下,先计算得出括号中的结果,如 ...
- 20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结
20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结 结对伙伴 学号:20172306 姓名:刘辰 在这次项目的完成过程中刘辰同学付出了很多,在代码的实践上完成的很出色,在技 ...
- 20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结
20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结 结对伙伴 学号 :20172307 姓名 :黄宇瑭 伙伴第一周博客地址: http://www.cnblogs.com/ ...
- 20172311『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结
20172311『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结 结对伙伴 学号 :20172307 姓名 :黄宇瑭 伙伴第一周博客地址 对结对伙伴的评价:黄宇瑭同学的优势在于能够想出一 ...
- 20172313『Java程序设计』课程结对编程练习_四则运算第二周阶段总结
20172313『Java程序设计』课程结对编程练习_四则运算第二周阶段总结 结对伙伴 20172326康皓越 博客地址(http://www.cnblogs.com/326477465-a/p/90 ...
- 20172321『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结
20172321『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结 结对伙伴 学号 :20172324 姓名 :曾程 伙伴第一周博客地址: 对结对伙伴的评价:一个很优秀的同学,在这次项目中 ...
随机推荐
- ZOJ 3212 K-Nice(满足某个要求的矩阵构造)
H - K-Nice Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Submit Sta ...
- iOS 基础函数解析 - Foundation Functions Reference
iOS 基础函数解析 - Foundation Functions Reference 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名- ...
- 解决安装macports更新失败问题
安装 macports 先是卡在开始,xcode的路径指定错误,重新指定一下,然后再sudo port selfupdate,就卡再ports.tar那里不动了.经过google和百度查到参考网 ...
- MacOS(10.11.6)+Qt(5.5.1)+Xcode(8.2) C++开发环境配置
VMware虚拟机安装MacOS(这里安装的是MacOS X 10.11.6), 百度很多, 不再详述. 安装Xcode(这里安装的是Xcode8.2) 下载(https://developer.ap ...
- Scala的类继承
Scala的类继承 extend Scala扩展类的方式和java一样使用extends关键字 class Employee extends Person { } 与java一样,可以在定义的子类重写 ...
- cnn 滤波
http://blog.csdn.net/zouxy09/article/details/49080029
- 24-[jQuery]-属性,文档,位置,筛选
1.jquery的属性操作 jquery对象有它自己的属性和方法,我们先研究一下jquery的属性操作.jquery的属性操作模块分为四个部分:html属性操作,dom属性操作,类样式操作和值操作 h ...
- 【HNOI2013】数列
题面 题解 设\(\{a_n\}\)为差分数组,可以得到柿子: \[ \begin{aligned} ans &= \sum_{a_1 = 1} ^ m \sum_{a_2 = 1} ^ m ...
- Oracle GUID转换为String
Oracle中guid属于Raw(16)类型, 查询的时候如果不使用下面的函数, 程序中得到的是数组(byte[]). 在extjs环境下, 会带来数组的反序列化问题(newtonsoft.json) ...
- ubuntu下su: Authentication failure的解决办法(su和su - root的区别)
参考:ubuntu下su: Authentication failure的解决办法(su和su - root的区别)