相关测试过程截图(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程序设计』课程 结对编程练习_四则运算的更多相关文章

  1. 2017-2018-2 165X 『Java程序设计』课程 结对编程练习_四则运算

    2017-2018-2 165X 『Java程序设计』课程 结对编程练习_四则运算 经过第一阶段的学习,同学们已经熟悉了这门语言基本的用法.在一次又一次对着电脑编写并提交代码,进行练习的时候,有没有觉 ...

  2. 2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周

    2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周 博客要求 组内同学需各自发表博客 博客中需包含以下内容: 相关过程截图 关键代码解释 遇到的困难及解决 ...

  3. 2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算_第三周

    2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算 组队成员: 仇夏 学号: 20172310 博客地址: @王志伟 四则运算第一周博客 @仇夏四则运算第一周博客 ...

  4. 2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算——第一周

    2017-2018-20172309 『Java程序设计』课程 结对编程练习_四则运算 组队成员: 仇夏 学号: 20172310 博客地址:点击这里 1. 需求分析: 可生成题目: - 输入要想生成 ...

  5. 2017-2018-2 20165225『Java程序设计』课程 结对编程练习_四则运算

    2017-2018-2 20165225『Java程序设计』课程 结对编程练习_四则运算 需求分析: 支持整数,可进行多运算符运算,有优先级. 设计思路: 在有括号的情况下,先计算得出括号中的结果,如 ...

  6. 20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结

    20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结 结对伙伴 学号:20172306 姓名:刘辰 在这次项目的完成过程中刘辰同学付出了很多,在代码的实践上完成的很出色,在技 ...

  7. 20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结

    20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结 结对伙伴 学号 :20172307 姓名 :黄宇瑭 伙伴第一周博客地址: http://www.cnblogs.com/ ...

  8. 20172311『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结

    20172311『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结 结对伙伴 学号 :20172307 姓名 :黄宇瑭 伙伴第一周博客地址 对结对伙伴的评价:黄宇瑭同学的优势在于能够想出一 ...

  9. 20172313『Java程序设计』课程结对编程练习_四则运算第二周阶段总结

    20172313『Java程序设计』课程结对编程练习_四则运算第二周阶段总结 结对伙伴 20172326康皓越 博客地址(http://www.cnblogs.com/326477465-a/p/90 ...

  10. 20172321『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结

    20172321『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结 结对伙伴 学号 :20172324 姓名 :曾程 伙伴第一周博客地址: 对结对伙伴的评价:一个很优秀的同学,在这次项目中 ...

随机推荐

  1. [图解tensorflow源码] Simple Placer节点布放算法

  2. 手动增加swap分区

    第一步:创建一个大小为6G的文件:#dd if=/dev/zero of=/swapfile bs=1G count=6第二步:把这个文件变成swap文件:#mkswap /swapfile第三步:启 ...

  3. WebLogic远程命令执行

    靶机说明 目标ip:172.16.53.28(window 2003) 本靶机所针对的序列化漏洞系列以及常见安全问题如下: 弱口令登陆控制台部署war包webshell CVE-2018-2893 C ...

  4. react fake double , bind click and dblclick on the same element

    smartClick:function(id,name,waiter,e){ var desk = $$(e.currentTarget).data('raw'); if(this.lastClick ...

  5. cnn 滤波

    http://blog.csdn.net/zouxy09/article/details/49080029

  6. 3- 功能2:基于forms组件和ajax实现注册功能

    1.forms组件的注册页面 url from django.urls import path, re_path from blog import views from django.views.st ...

  7. SQL Server 中SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

    1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Tab ...

  8. 开箱即用 - Memcache缓存

    废话少说,先上代码C# memcache Demo memcache 是服务器缓存系统,以键值对方式保存数据到内存中,把对象序列化后,理论上可支持所有的数据类型. 使用情景:怎么用都可以,注意的是它只 ...

  9. nodejs 不支持 typescript (...paramName:any[])剩余参数。变相支持方式。

    node es6 变相实现支持ts的剩余参数实现方式 //.ts method assign(to: any, options?: AssignOptions, ...forms: any[]){} ...

  10. 微信小程序中的 hover-class

    微信小程序中,可以用 hover-class 属性来指定元素的点击态效果.但是在在使用中要注意,大部分组件是不支持该属性的. 目前支持 hover-class 属性的组件有三个:view.button ...