提高小学生运算神器

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

一、预估与实际

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!

猜你喜欢

转载自www.cnblogs.com/Li-zhen-cn/p/9595461.html
今日推荐