提高小学生运算神器
Posted li-zhen-cn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了提高小学生运算神器相关的知识,希望对你有一定的参考价值。
# 隔壁村小学的小朋友都羡慕哭了
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 600 | 900 |
? Estimate | ? 估计这个任务需要多少时间 | 600 | 900 |
Development | 开发 | 600 | 800 |
? Analysis | ? 需求分析 (包括学习新技术) | 60 | 100 |
? Design Spec | ? 生成设计文档 | 20 | 30 |
? Design Review | ? 设计复审 | 10 | 30 |
? Coding Standard | ? 代码规范 (为目前的开发制定合适的规范) | 10 | 10 |
? Design | ? 具体设计 | 60 | 60 |
? Coding | ? 具体编码 | 600 | 650 |
? Code Review | ? 代码复审 | 20 | 15 |
? Test | ? 测试(自我测试,修改代码,提交修改) | 60 | 45 |
Reporting | 报告 | 70 | 60 |
? Test Repor | ? 测试报告 | 30 | 30 |
? Size Measurement | ? 计算工作量 | 20 | 15 |
? Postmortem & Process Improvement Plan | ? 事后总结, 并提出过程改进计划 | 20 | 30 |
合计 | 900 |
二、需求分析
我通过网上查阅和询问担任担任小学老师的姑姑了解到,小学一年级数学有如下的几个特点:
- 特点1:20以内的加减计算
- 特点2:会100以内加减乘除法
经过分析,我认为,这个程序应当:加减数目不超过20,并且可以随机生成数字和加减法,减少出现相同题目的概率
三、设计
1. 设计思路
说明你如何设计这个程序
- 首先,我先分析了小学生题目的难度,确认了生成随机数的大小
- 然后就先考虑任务一的需求,生成随机加减法运算
- 然后思考如何将循环里的数放在另一个循环里使用
- 最后测试,然后任务二类似
2. 实现方案
写出具体实现的步骤
任务一
- 首先,我先分析了小学生题目的难度,确认了生成随机数的大小
- 然后就先考虑任务一的需求,生成随机加减法运算
- 然后思考如何将循环里的数放在另一个循环里使用
最后测试任务一
任务二
- 首先,模仿任务一,生成乘除的题目,考虑余数问题
- 然后思考如何选择年级生成题目
最后思考如何生成文本
四、编码
- 查到math.random()是生成随机数的方法
- 运用判别法判定加减法(乘除法)
1. 调试日志
- 在数组中存入数据,调用时发生越界
- 循环中创数
2. 关键代码
for(int a=0; a<n;a++)
{
int i=(int) Math.floor(Math.random()*20+1); //生成随机数,并确保不为0
int j=(int) Math.floor(Math.random()*20+1);//生成随机数,并确保不为0
int x=(int) Math.floor(Math.random()*2+1);//生成随机数,并确保不为0
ai[a]=i;
aj[a]=j;
ax[a]=x;
ax[a]=x;
if(x%2==1) { //判别加或减
System.out.println("(" + m1 + ") "+ i +" + " + j + "="); //输出
}else {
System.out.println("(" + m1 + ") "+ i + " - "+j+"= ");
}
m1++; //左边序号的增加
}
3. 代码规范
请给出本次实验使用的代码规范:
- 第一条:避免类似的名字,或者仅仅是大小写不同的名字
- 第二条:左小括号和字符之间不出现空格;同样的,右小括号和字符之间也不出现空格
- 第三条:题目与标准答案之间空一格
并人工检查代码是否符合规范
五、测试
请输入年级与题目数
- 题目数输入100000000,程序会出现故障
- 年级输入3,程序会出现故障
- 输入1 10 输出正常
- 输入2 10 输出正常
六、总结
- 从刚看到题目时的不知所措,第一想法就是“我不会”,到后来的冷静分析,然后寻找解题的方法,通过上网寻找不会的问题,然后逐渐思路清晰,一个问题一个问题的攻克,让我对软件工程产生了一丢丢小小的成就感,自己编程很久然后测试成功时的喜悦是很难忘的,虽然说这次的程序还有很多毛病,但是这也是我经历1个星期时间所完成的,希望下次可以更加出色的做完任务,Fighting!
以上是关于提高小学生运算神器的主要内容,如果未能解决你的问题,请参考以下文章