211606392 郑俊瑜 211606327 冉繁盛
第一次作业升级
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
Estimate | 估计这个任务需要多少时间 | 700 | 870 |
Development | 开发 | ||
Analysis | 需求分析 (包括学习新技术) | 50 | 50 |
Design Spec | 生成设计文档 | 10 | 10 |
Design Review | 设计复审 | 5 | 5 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 15 | 10 |
Design | 具体设计 | 30 | 50 |
Coding | 具体编码 | 600 | 660 |
Code Review | 代码复审 | 10 | 10 |
Test | 测试(自我测试,修改代码,提交修改) | 35 | 55 |
Reporting | 报告 | ||
Test Repor | 测试报告 | 10 | 10 |
Size Measurement | 计算工作量 | 5 | 10 |
Postmortem & Process Improvement Plan | ? 事后总结, 并提出过程改进计划 | 10 | 15 |
合计 | 770 | 870 |
二、需求分析
我通过百度的方法了解到小学三年级四则混合运算有如下的几个特点:
- 特点1
- 运算符在2~4个,数字不会超过1000
- 特点2
- 可以加括号
- 特点3
- 减法运算的结果不能有负数
- 特点4
- 除法运算除数不能为0,不能有余数
经过分析,我认为,这个程序应当:
- 1.使用的数字小于1000的整数
- 2.不可以减为负数
- 3.除数需要被除尽不能有余数
- 4.不需要很长的式子
三、设计
1. 设计思路
当输入参数要显示三年级算式时,生成随机数
生成四则运算式子,判断式子是否合理
- 需要用到随机生成数和随机运算符
- 需要将一二年级的算法功能保留
- 可以随机生成随机运算符
- 将记录写入文本
2. 实现方案
比如:
- 准备工作:先在Github上创建仓库,克隆到本地
- 然后和结对人仓库合并。
- 技术关键点:生成括号内的算法,还要正确输出
四、编码
1. 调试日志
- 怎样将一二三年级的算法分开; 解决办法:每个年级都单独做一个类
- 余数的设置不符合要求,在三年级运算的过程中,总会有出现余数的结果;
通过if来判断,摸出为零。
2. 关键代码
if (kuohao) {
// 生成括号
int index1 = (int)(Math.random() * (size - 1));
if (index1 % 2 == 0) { }
else { index1 -= 1; }
int index2 = index1 + 3;
exp.add(index1, "(");
exp.add(index2 + 1, ")"); }
}
while (calc(nibolan(exp)) < 0 || calc(nibolan(exp)) % 1 !=0 || calc(nibolan(exp)) > 1000);
// 最终结果不能小于0大于1000和小数
for (String s : exp) {
shizi += s;
shizi += " "; }
strArrayQ.add("(" + j + ") " + shizi);
strArrayA.add("(" + j + ") " + shizi + " = " + (int) calc(nibolan(exp))); }
}
3. 代码规范
请给出本次实验使用的代码规范:
- 第一条:类型与括号紧紧相连来定义数组
- 第二条:用到的常量开头命名必须大写
- 第三条:简洁,能够在表明意思的同时尽量简洁
- 第四条:注意英文和拼音
- 第五条:注释宜少二精,不宜多而滥,更不能误导
五、测试
- 多次输入检查是否出现负数
- 当年级参数输入时大于3时,程序结果
- 生成四则混合运算时,生成的括号是否有误
六、总结
-果然两个人写代码一起讨论比一个人的效率高。