提升小学生运算神器

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

1、预估与实际

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

2、需求分析

我经过网上查阅和询问担任担任小学老师的姑姑了解到,小学一年级数学有以下的几个特色:编程

  • 特色1:20之内的加减计算
  • 特色2:会100之内加减乘除法

通过分析,我认为,这个程序应当:加减数目不超过20,而且能够随机生成数字和加减法,减小出现相同题目的几率数组

3、设计

1. 设计思路

说明你如何设计这个程序dom

  • 首先,我先分析了小学生题目的难度,确认了生成随机数的大小
  • 而后就先考虑任务一的需求,生成随机加减法运算
  • 而后思考如何将循环里的数放在另外一个循环里使用
  • 最后测试,而后任务二相似

2. 实现方案

写出具体实现的步骤学习

任务一

  • 首先,我先分析了小学生题目的难度,确认了生成随机数的大小
  • 而后就先考虑任务一的需求,生成随机加减法运算
  • 而后思考如何将循环里的数放在另外一个循环里使用
  • 最后测试任务一测试

    任务二

  • 首先,模仿任务一,生成乘除的题目,考虑余数问题
  • 而后思考如何选择年级生成题目
  • 最后思考如何生成文本编码

4、编码

  • 查到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. 代码规范

请给出本次实验使用的代码规范:设计

  • 第一条:避免相似的名字,或者仅仅是大小写不一样的名字
  • 第二条:左小括号和字符之间不出现空格;一样的,右小括号和字符之间也不出现空格
  • 第三条:题目与标准答案之间空一格

并人工检查代码是否符合规范调试

5、测试

请输入年级与题目数日志

  • 题目数输入100000000,程序会出现故障
  • 年级输入3,程序会出现故障
  • 输入1 10 输出正常
  • 输入2 10 输出正常

6、总结

  • 从刚看到题目时的不知所措,第一想法就是“我不会”,到后来的冷静分析,而后寻找解题的方法,经过上网寻找不会的问题,而后逐渐思路清晰,一个问题一个问题的攻克,让我对软件工程产生了一丢丢小小的成就感,本身编程好久而后测试成功时的喜悦是很难忘的,虽说此次的程序还有不少毛病,可是这也是我经历1个星期时间所完成的,但愿下次能够更加出色的作完任务,Fighting!
相关文章
相关标签/搜索