结对编程
211606347周建峰 211606389袁庆杰
一.预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 20 | 25 |
Estimate | 估计这个任务需要多少时间 | 20 | 20 |
Development | 开发 | 500 | 650 |
Analysis | 需求分析 (包括学习新技术) | 70 | 50 |
Design Spec | 生成设计文档 40 | 40 | |
Design Review | 设计复审 | 30 | 30 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 25 |
Design | 具体设计 | 35 | 40 |
Coding | 具体编码 20 | 20 | |
Code Review | 代码复审 | 30 | 25 |
Test | 测试(自我测试,修改代码,提交修改) | 20 | 15 |
Reporting | 报告 | ||
Test Repor | 测试报告 | 45 | 50 |
Size Measurement | 计算工作量 | 20 | 105 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 20 | 30 |
合计 | 1000 |
二、需求分析
我通过百度的方式了解到,小学一二三年级数学有如下的几个特点:
低年级不能出现小数和负数
结果不能达到位数
运算符在3到5个
括号出现的位置和带括号的运算顺序应该考虑
经过分析,我认为,这个程序应当:
使用的数字在1到999之间,且用int类型
出现的数字必须为正数,而且相减的值不能小于零
每道题目占一行
一二年级的功能仍然要保留
三、设计
- 设计思路
这个程序只有一个主函数
输出的答案要正确
运用random生成随即数和题目以及控制括号的位置
- 实现方案
准备工作:先在Github上创建仓库,克隆到本地...
技术关键点:逆波兰函数和随机数的运用
四、编码
1.出现相同的运算符号
解决方法:利用random创建多个随即运算符
2.答案出现负数
解决方法:如果出现负数,则跳过这道题,重新出一道
3.带括号的计算题无法给出答案
还未解决。
- 调试日志
记录编码调试的日志,请记录下开发过程中的 debug 历程
用eclipse运行时出现
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at MathExam6384.main(MathExam6384.java:18)
解决方法:把public static void main(String[] arg)中的arg改为想要输出的数学题数。
2.代码:
else if (grade >= 3) {
ArrayList
String answerinfo = "";
for (int m = 0; m < n; m++) {
String[] str = { "+", "-", "", "/" };
String[] gtr = { "+", "-", "", "/" };
String[] ktr = { "+", "-", "*", "/" };
Random random = new Random();
int index = random.nextInt(str.length);
int gndex = random.nextInt(gtr.length);
int kndex = random.nextInt(ktr.length);
String symbol1 = str[index];
String symbol2 = gtr[gndex];
String symbol3 = ktr[kndex];
int y = (int) (Math.random() * 101);
int z = (int) (Math.random() * 101);
int q = (int) (Math.random() * 101);
int g = (int) (Math.random() * 101);
answerinfo = y + " " + symbol1 + " " + z + " " + symbol2 + " " + q + " " + symbol3 + " " + g + " " + "="
+ " " + (y + symbol1 + z + symbol2 + q + symbol3 + g);
info.add("\n" + "(" + (m + 1) + ")" + " " + answerinfo);
System.out.println("(" + (m + 1) + ")" + " " + y + " " + symbol1
+ " " + z + " " + symbol2 + " " + q + " " + symbol3 + " " + g + " "
+ "=");
}
System.out.println("----------------------" + "标准答案 "
+ "-----------------------");
System.out.println(info);
3.代码规范
请给出本次实验使用的代码规范:
第一条:if语句括号中的等式要有两个等号。
第二条:每个语句结束后要用;收尾。
五、测试
三年级代码结果输出不正确
六、总结
还无法熟练的写入文件,带括号的运算符还无法输出正确的结果
还未想出算法来实现复合运算中的优先顺序。