小学生就应该学习 别打排位

MathExam

一、预估与实际

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划
• Estimate • 估计这个任务需要多少时间 10 30
Development 开发
• Analysis • 需求分析 (包括学习新技术) 150 50
• Design Spec • 生成设计文档 10 30
• Design Review • 设计复审 20 30
• Coding Standard • 代码规范 (为目前的开发制定合适的规范) 20 35
• Design • 具体设计 20 40
• Coding • 具体编码 150 360
• Code Review • 代码复审 10 20
• Test • 测试(自我测试,修改代码,提交修改) 45 120
Reporting 报告
• Test Repor • 测试报告 20 30
• Size Measurement • 计算工作量 10 10
• Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 20 30
合计 685

二、需求分析

我通过度娘的方式了解到,小学一年级数学有如下的几个特点:

  • 1)100以内的所有整数
  • 2)100以内的乘除法(可参考99乘法表)
  • 3)没有负数和小数

经过分析,我认为,这个程序应当:

  • 使用的数字应在0到100之间,且为整数,即int类型
    -不能使用负数和产生负数
    -不能使用小数
    -输入的数要符合要求

    三、设计

1. 设计思路

  • 先创建一个输入框
  • 对输入的数做判断,看是否符合要求,如果不符合,则报错
  • 之后随机生成两个数字运算
  • 最后将结果放到355.txt中

2. 实现方案

  • 准备工作:先在Github上创建仓库,克隆到本地,创建新的文件夹
  • 技术关键点:梳理一下设计思路,可能遇到哪些技术关键点
  • 把握好范围,避免不必要的失误
    -将结果放到355.txt中

四、编码

请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程
-一开始觉得输出是整数就行,没考虑输入的情况
-JAVA基本忘光了,问了同学才明白

1. 调试日志

修改了关于小数的结果
检查文本是否存在,对生成文本的目录如果创建失败的情况

2. 关键代码

while(p)
{
k=r.nextInt(100);
m=r.nextInt(100);
f=r.nextInt(10);
if (f%2==0) { //加法
if(k+m<=100)
{
first[i]=k;
second[i]=m;
fuhao[i]="+";
pass[i]=k+m;
i++;

            }
        }
        else    //减法
        {
            if(k-m>=0)
            {
                //System.out.println("("+(i+1)+") "+k+" - "+m+" = ");
                first[i]=k;
                second[i]=m;
                fuhao[i]="-";
                pass[i]=k-m;
                i++;
            }
        }
        if(i==n)
            break;
    }

3. 代码规范

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

  • 类名首字母应该大写。每个单词的首字母大写。
  • 避免异常
  • 人工检查代码是否存在错误
  • 包名必须小写等等

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

五、测试

1.mathexam1.0.测试结果:生成符合数目的几道一年级题目和答案 结果: 符合
2.mathexam2.0测试结果:输入有误,请重新输入 结果:符合

六、总结

请总结过程中的教训和经验,思考

  • 是否使用了“软件开发的基本策略:分而治之”,是否需要重构
  • “高质量的设计、规范的编码以及有效的测试是保证软件产品质量的三个重要方面”,你是否采用了相关的手段,是否需要重构

猜你喜欢

转载自www.cnblogs.com/sakura666/p/9631819.html