结对编程项目-四则运算 第一周输出阶段总结博客 20162305
结对编程项目-四则运算 第一周输出阶段总结博客 20162305
需求分析
- 本周的结对编程项目是四则运算。四则运算,要求我们使用Java编程语言编写一个程序能够实现自动出题,自动判断正误并计算正确率。
设计思路
关于自动出题
- 实现自动出题这一功能,我使用了Java中的随机数,先定义两个int变量,再利用nextInt这一语句产生两个一定范围内的随机整数进行计算。关于运算符的产生,我先定义了一个string数值,将四个运算符放在数组当中,变量名称为operation。然后,我又定义了一个op的int量,将随机产生的数赋值给op,并利用op的值确定调用什么符号进行计算。确定了数值和符号,再将其格式化输出,产生算式,并将算式的正确结果赋值给key变量。
关于判断正误
- 这一功能相对容易实现,scan.nextInt获取用户输入的结果,将这个结果赋值给answer变量。将answer变量和key变量的值进行比较,如果两者的数值不等,则输出error,并在表示错误题数的变量errorcase上加1。等到循环结束时,利用这个变量的值计算正确率并输出。
关于程序自动化
- 利用while语句,判断需要产生题目的数量进而确定循环的次数。每次循环结束后,在变量rightcase上加1,将变量rightcase的值和while语句中条件比较,然后自动结束。
整数/多运算符(题目生成/题目运算判题)
- 多运算符通过string数组和一个变量op随机生成确定,整数是使用随机数产生。
- 题目的生成,将产生的数字和运算符利用%d %s %d进行格式化输出,产生算式。
- 判断题目的正误,将正确结果和用户输入的值分别赋给两个变量,并将两个变量进行对比,相等的话则输出正确,不等的话则输出错误,并记录错误字母的数量。
JUnit测试
-
在idea中对这个代码进行测试。
测试显示这个代码可以运行,并且能够统计正确率。
扩展需求
-
在测试的时候,我发现了一个问题。
如果在计算除法的时候,会出现这个问题,不能够显示正确的结果,而是显示0。这个问题我还没有解决,需要继续和我的合作同学好好探讨学习一下。
-
这个代码现在只能够运算整数的加减乘法,除法存在问题。四则运算中应该也可以进行分数的运算,可这部分我却还没有想好如何解决。
一些感想
- 结对编程是个合作的过程,在和陈是奇同学合作的过程中,他给我的代码指出了很多的问题。并且我俩合作想出了代码的大体思路,他是个很好的合作伙伴,期待和他下周合作将这个代码的问题解决并完善好。
| PSP2.1| Personal Software Process Stages|预估耗时(分钟)|实际耗时(分钟)|
--- | :----------------😐:----------------😐:---------------: |:-----😐
| Planning | 计划 | 30 | 20 |
| Estimate | · 估计这个任务需要多少时间 | 900 | 600 |
|Development | 开发 | 20 | 20 |
| · Analysis | 需求分析 (包括学习新技术) | 30 | 30 |
|· Design Spec | 生成设计文档 | 50 | 50 |
|Design Review | 设计复审 (和同事审核设计文档) | 60 | 60 |
|· Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 70 | 60 |
|· Design | · 具体设计 | 140 | 110 |
|· Coding | · 具体编码 | 120 | 150 |
|· Code Review | · 代码复审 | 50 | 50 |
|· Test | · 测试(自我测试,修改代码,提交修改) | 40 | 40 |
|Reporting | 报告 | 60 | 40 |
|· Test Report | · 测试报告 | 20 | 20 |
|· Size Measurement | · 计算工作量 | 30| 30|
| · Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 10 | 10 |