小学生计算题生成器,燃烧你的梦啊!!

一、预估与实际

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

60

60

• Estimate

• 估计这个任务需要多少时间

600

600

Development

开发

300

300

• Analysis

• 需求分析 (包括学习新技术)

45

30

• Design Spec

• 生成设计文档

10

10

• Design Review

• 设计复审

10

10

• Coding Standard

• 代码规范 (为目前的开发制定合适的规范)

30

30

• Design

• 具体设计

30

30

• Coding

• 具体编码

60

60

• Code Review

• 代码复审

30

30

• Test

• 测试(自我测试,修改代码,提交修改)

10

10

Reporting

报告

10

10

• Test Repor

• 测试报告

10

10

• Size Measurement

• 计算工作量

10

10

• Postmortem & Process Improvement Plan

• 事后总结, 并提出过程改进计划

20

20

合计

700

二、需求分析

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

  • 特点1 一年级数学,两个加数都是100以下
  • 特点2 结果不能出现负数

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

  • 特点1 二年级数学,有乘法和除法了
  • 特点2 除法结果不能出现小数,分数

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

  • 使用的数字小于100
  • 减法的被减数比减数大
  • 除法的结果要用有余数的表示方法

三、设计

1. 设计思路

说明你如何设计这个程序

-这个程序有一个类,主要有四个方法以实现以下的目的
--一,判断输入的题目数量,年纪等参数是否合法,不是则重新输入
--二,生成随机数,用以构建算式
--三,将题目与答案输入到文档当中

2. 实现方案

-准备工作 : 先在Github上创建仓库,,并fork老师的Mathexem2018仓库,最后克隆到本地

  • 技术关键点:如何随机生成数字,与随机生成运算符

四、编码

1. 调试日志

  • 最开始,我使用了int类型作为输入题目数量的参数类型,但是在运行过程中发现如果输入的不是数字程序会直接报错。后来改成了字符串类型解决了这个问题

2. 关键代码

if (grade1) {

char[] ch= {'+','-'};

for (int i=0;i<s1.length;i++) {

s1[i]=(int)(Math.random()100+1);

s2[i]=(int)(Math.random()100+1);

sign[i]=ch[ra.nextInt(ch.length)];

if (s1[i]<s2[i]) {

H=s1[i];s1[i]=s2[i];s2[i]=H;

}

if (sign[i]'+') {

s3[i]=s1[i]+s2[i];	

}

else {

s3[i]=s1[i]-s2[i];

}

str[i]="("+(i+1)+")"+" "+String.valueOf(s1[i])+" "+String.valueOf(sign[i])+" "+String.valueOf(s2[i])+"\r\n";

str2[i]="("+(i+1)+")"+" "+String.valueOf(s1[i])+" "+String.valueOf(sign[i])+" "+String.valueOf(s2[i])+" "+"="+String.valueOf(s3[i])+"\r\n";

}


-这段代码的作用是,获取随机数,然后将算式整合保存成字符串类型

3. 代码规范

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

  • 第一条:在 if/else/for/while/do 语句中必须使用大括号。 即使只有一行代码,避免使用单行的形式: if (condition) statements;
  • 第二条:方法名首字母小写
    -第三条: 尽量使代码排版简洁

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

五、测试

-输入 输出
-1 请输入年级
-2 两道乘除法计算题
-dsa 请输入数字
-10 请输入年纪
-3 请输入正确年级,1或者2

六、总结

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

注意将每个功能的代码单独写成一个方法,便于查看和理解;尽量将代码简化优化,减少不必要的变量的使用,选用更优的算法,避免开辟不必要的空间内存;注意理清代码的层次与结构,以及每个方法之间的联系