结对作业
三年级
学号1:211606386 姓名:姚皓钰 学号2:211606323 姓名:刘世华
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
• Estimate | • 估计这个任务需要多少时间 | 10 | 30 |
Development | 开发 | ||
• Analysis | • 需求分析 (包括学习新技术) | 120 | 240 |
• Design Spec | • 生成设计文档 | 10 | 20 |
• Design Review | • 设计复审 | 5 | 15 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 10 | 20 |
• Design | • 具体设计 | 30 | 60 |
• Coding | • 具体编码 | 60 | 60 |
• Code Review | • 代码复审 | 10 | 20 |
• Test | • 测试(自我测试,修改代码,提交修改) | 20 | 30 |
Reporting | 报告 | ||
• Test Repor | • 测试报告 | 10 | 20 |
• Size Measurement | • 计算工作量 | 5 | 15 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 50 |
合计 | 580 |
二、需求分析
我通过百度一下的方式了解到,小学三年级数学有如下的几个特点:
- 特点1:小学三年级进行四则混合运算,运算符在2~4个之间,可以加括号,减法运算的结果不能有负数,除法运算除数不能为0,不能有余数。
- 特点2:在没有括号的算式里,如果只有加、减法或者只有乘、除法,都要从左往右按顺序计算。
- 特点3:算式有括号,要先算括号里面的,再算括号外面的;大、中、小括号的计算顺序为小→中→大。括号里面的计算顺序遵循以上1、2、3条的计算顺序。
三、设计
1. 设计思路
- 1、首先生成随机数
- 2、生成随机四则算式
- 3、计算
- 4、输出到txt文件
2. 实现方案
- 准备工作:先在Github上创建仓库,克隆到本地...
- 正则表达式拆分
- 逆波兰表达式
四、编码
- 首先明确需要几个函数,类。
- 其次列举一些注意事项,以及编码规范。
- 然后在开始编码。
- 最后检查bug。
1. 调试日志
- 运算顺序有误,没有按照括号内的先运算。
2. 关键代码
Stack<String> stack = new Stack<String>();
double result = 0;
double number1,number2;
String oper;
for(String s : suanshi){
if(isNumber(s)){
stack.push(s);
}
else{
oper=String.valueOf(s);
number1=Double.parseDouble(stack.pop());
number2=Double.parseDouble(stack.pop());
switch(oper){
case"+":
result = number2 + number1;
break;
case"-":
result = number2 - number1;
break;
case"*":
result = number2 * number1;
break;
case"/":
result = number2 / number1;
break;
default:
break;
}
stack.push(String.valueOf(result));
}
}
return
Double.parseDouble(stack.pop());
}
3. 代码规范
- 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
- 未定义的常量不可使用在代码中
- 左大括号前不换行。左大括号后换行。右大括号前换行。右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。
- 在 if/else/for/while/do 语句中必须使用大括号,且保留字与括号之间都必须加空格。
五、测试
测试先输入年级(1、2、3)结果正确,输入年级(5、a)错误。
输入题目数量得到相应数量相应年级的题目及答案。
六、总结
双人结对完成任务效率要比一个人更高,出错率也会更低。因为有同伴的监督,也会更加勤奋的学习。