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 姓名 :曾程 伙伴第一周博客地址: 对结对伙伴的评价:一个很优秀的同学,在这次项目中 ...
随机推荐
- haproxy + lvs异同(优点-缺点)
LVS和HAProxy相比,它的异同是什么? 1. 两者都是如软件负载均衡.但lVS是基于linux操作系统实现的一种软负载均衡,Haproxy是根据第三 方应用实现的软负载均衡. 2. LVS是 ...
- 谈谈我的js学习过程(二)——“Hello World!”
在<谈谈我的js学习过程(一)>中,我简单聊了一下我认为的javascript的学习方法,接下来我们可以尝试来写一个最简单的js代码. "Hello World!"对于 ...
- Angular动态表单生成(五)
动态表单生成之布局 到上面的篇章为止,我们已经把表单比较完整的生成出来了,也实现了一些验证功能,可以说,我们截止这里,就已经可以满足我们的大部分表单生成需求了~ 但是: 目前来说,我们对于表单的布局只 ...
- p标签不自动换行原因
前言:发现以前写的就像是笔记,哪像博客啊,这里再次修改. 问题描述: 在固定宽度的p元素里(任何块级元素同理),长单词不自动换行,中文字符会自动换行,效果如:http://codepen.io/ali ...
- iOS开发-Object-C获取手机设备信息(UIDevice)
一.获取UiDevice设备信息 // 获取设备名称 NSString *name = [[UIDevice currentDevice] name]; // 获取设备系统名称 NSString *s ...
- Tarjan算法初探 (1):Tarjan如何求有向图的强连通分量
在此大概讲一下初学Tarjan算法的领悟( QwQ) Tarjan算法 是图论的非常经典的算法 可以用来寻找有向图中的强连通分量 与此同时也可以通过寻找图中的强连通分量来进行缩点 首先给出强连通分量的 ...
- BZOJ2194: 快速傅立叶之二(NTT,卷积)
Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 1776 Solved: 1055[Submit][Status][Discuss] Descript ...
- 一、用Delphi10.3 创建一条JSON数据
一.用Delphi10.3构造一个JSON数据,非常之容易,代码如下: uses System.JSON; procedure TForm1.Button1Click(Sender: TObject) ...
- Memcached 集群架构问题归纳
集群架构方面的问题o memcached是怎么工作的?o memcached最大的优势是什么?o memcached和MySQL的query cache相比,有什么优缺点?o memcached和服务 ...
- linux 监控文件变化
介绍 有时候我们常需要当文件变化的时候便触发某些脚本操作,比如说有文件更新了就同步文件到远程机器.在实现这个操作上,主要用到两个工具,一个是rsync,一个是inotifywait .inotifyw ...