20165330 结对编程项目-四则运算 第一周

本文介绍了一个能够自动生成小学四则运算题目的程序设计思路与实现过程,重点讨论了真分数运算、多运算符运算的实现方法以及利用JUnit进行单元测试的技术细节。
需求分析
  • 实现一个命令行程序,要求:自动生成小学四则运算题目(加、减、乘、除)
  • 可实现多个运算符一起运算
  • 可以真分数形式输出结果
  • 测试结果的正确性
  • 统计题目完成数并计算正确率

    设计思路
  • 实验首先是完成一个计算器的功能,可以实现简单的+、-、*、/运算
  • 实现多运算符,编入四个类分别实现整数运算、真分数运算、判断结果正确并计算正确率
  • 利用JUnit检测非法输入
  • 设计一个主类生成随机数,生成题目,并判断正确率
  • 设计测试类,利用JUnit测试整数类与分数类的四则运算

    UML类图

    image

功能截图

image

Junit测试

image
image

代码托管地址
实验过程中遇到的困难及解决方法
实验要求生成随机四则运算,最难的在于真分数与多运算符的实现,以及分多个类来实现算法。
  • 我们选择参考邹欣老师的学生编写的代码《编写一个能自动生成小学四则运算题目的程序》尝试写了生成随机数的代码。但是对后续代码依然不知从何下手。而后我们选择请教了其他同学,并且参考了他们的代码。在利用生成随机数和switch语句来实现随机四则运算的代码很是精妙,如下:
Random random = new Random()
random.nextInt()
  • 但是在真分数类的部分代码以及如何实现计算题随机的长度也没弄懂,另外的去重功能也进行了多次尝试,暂时还没有成功,在下周学习我们会加强学习进度。
结对总结及评价
  • 在看到结对编程的题目时,我们首先想到的是C语言里的运用,再运用到java里,大概的思路是有的,整合的过程感觉很难,与同伴学习的过程双方也对问题进行了更全面的分析,在参考老师的资料以及网上找到的资料,同时也结合了同学的解答,有了初步的编程,但过程中遇到多次无法运行的情况,比如找不到一些类名,方法调用语句出错,在IDEA的提示下最终解决。
  • 在之后的学习中,我们的结对学习应该提前进入学习轨道,这周的时间开始的比较晚,虽然有了整体思路,但是没有很快入手,所以我们对彼此的督促作用还需加强,在编程方面,也要对书上的代码进行更多的思考,可以做到多看多记多动手,慢慢转化为自己的东西。
  • 对我的小伙伴,因为互为舍友,彼此很了解,两个人的学习带给我很大的动力,学习的过程也很快乐,很多不懂得地方也会得到清晰的解答,让我找到很多自己思考的漏洞,很感谢我的小伙伴hh希望以后的学习里我们会有更大的进步!
结对学习照片>_<
image
参考或引用的设计、实现
PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划
Estimate估计这个任务需要多少时间360500
Development开发
Analysis需求分析 (包括学习新技术)3035
Design Spec生成设计文档3045
Design Review设计复审 (和同事审核设计文档)2520
Coding Standard代码规范 (为目前的开发制定合适的规范)2040
Design具体设计6080
Coding具体编码180300
Code Review代码复审2025
Test测试(自我测试,修改代码,提交修改)150200
Reporting报告
Test Report测试报告1515
Size Measurement计算工作量1010
Postmortem & Process Improvement Plan事后总结, 并提出过程改进计划6090
合计9601360

转载于:https://www.cnblogs.com/besty-zyx/p/8849822.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值