提高小学生运算神器

隔壁村小学的小朋友都羡慕哭了


一、预估与实际

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!
posted @ 2018-09-11 19:23  妖怪一样  阅读(275)  评论(6编辑  收藏  举报