结对编程

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类型
出现的数字必须为正数,而且相减的值不能小于零
每道题目占一行
一二年级的功能仍然要保留

三、设计

  1. 设计思路

这个程序只有一个主函数
输出的答案要正确
运用random生成随即数和题目以及控制括号的位置

  1. 实现方案

准备工作:先在Github上创建仓库,克隆到本地...
技术关键点:逆波兰函数和随机数的运用

四、编码

1.出现相同的运算符号
解决方法:利用random创建多个随即运算符
2.答案出现负数
解决方法:如果出现负数,则跳过这道题,重新出一道
3.带括号的计算题无法给出答案
还未解决。

  1. 调试日志
    记录编码调试的日志,请记录下开发过程中的 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 info = new 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语句括号中的等式要有两个等号。
第二条:每个语句结束后要用;收尾。

五、测试
三年级代码结果输出不正确

六、总结

还无法熟练的写入文件,带括号的运算符还无法输出正确的结果
还未想出算法来实现复合运算中的优先顺序。

posted on 2018-09-19 11:15  小可爱啊  阅读(133)  评论(2编辑  收藏  举报