小学生计算机
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 800 |
• Estimate | • 估计这个任务需要多少时间 | 400 | 600 |
Development | 开发 | 600 | 900 |
• Analysis | • 需求分析 (包括学习新技术) | 60 | 120 |
• Design Spec | • 生成设计文档 | 20 | 20 |
• Design Review | • 设计复审 | 30 | 45 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 20 | 25 |
• Design | • 具体设计 | 100 | 80 |
• Coding | • 具体编码 | 500 | 570 |
• Code Review | • 代码复审 | 30 | 25 |
• Test | • 测试(自我测试,修改代码,提交修改) | 60 | 60 |
Reporting | 报告 | 40 | 80 |
• Test Repor | • 测试报告 | 30 | 30 |
• Size Measurement | • 计算工作量 | 20 | 15 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 20 | 40 |
合计 | 900 |
二、需求分析
我通过网络上查阅发现小学计算有几个特点
- 特点1:一百以内的加减法
- 特点2:一百以内的乘除
- 特点3:不允许混搭计算
- 特点4:只有整数加减乘除
所以我认为生成的题目不应该出现由混合运算和100以外的数据,随机生成加减法,减少相同题目出现的机率
三、设计
1. 设计思路
说明你如何设计这个程序
首先就是确定题目难度
- 其次考虑任务一的需求,以及随机出现的加减题目
- 怎么重复利用一个数据
- 最后测试程序
2. 实现方案
写出具体实现的步骤
任务一
-
首先就是确定题目难度
- 其次考虑任务一的需求,以及随机出现的加减题目怎么
- 重复利用一个数据
- 最后测试任务一
任务二
- 同任务一,生成随机数,注意余数
- 选择不同年级的作业难度
- 最后思考如何生成文本
四、编码
- 查到math.random()是生成随机数的方法
- 运用判别法判定加减法(乘除法)
1. 调试日志
- 在数组中存入数据,调用时发生越界
- 循环中创数
2. 关键代码
for(int a=0; a<n;a++)
{
int i=(int) Math.floor(Math.random()*20+1);
int j=(int) Math.floor(Math.random()*20+1);
int k=(int) Math.floor(Math.random()*2+1);
ai[a]=i;aj[a]=j;ax[a]=k;ax[a]=k;
if(x%2==1) {
System.out.println("(" + T + ") "+ i +" + " + j + "=");
}
else {
System.out.println("(" + T + ") "+ i + " - "+j+"= ");
}
T++; }
3. 代码规范
请给出本次实验使用的代码规范:
- 第一条:避免类似名字
- 第二条:注意空格
- 第三条:题目和答案之间的空格
并人工检查代码是否符合规范
五、测试
请输入年级与题目数
- 题目输入大于100的数会导致崩溃
- 输入大于2的年级也会导致崩溃
- 输入1 8 正常
- 输入2 8 正常
六、总结
第一次接触这种开发编程的实际应用的类型实验心里还是有点小紧张的毕竟之前并没有接触过,所以这次任务对我来说是一个挑战,让我认识到了自己的不足,以及许多理论性的东西应用到实际问题上的一些问题,以后会更多的接触这种题目来完善自己。