首页 > 技术文章 > 套你猴子的小学计算

dididididi 2018-09-11 21:34 原文

# 套你猴子的小学计算
## 一、预估与实际

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

## 二、需求分析

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

- 特点1 不能小数运算
- 乘除法只能十以内
- ...

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

- 使用的数字小于...100
- ...

## 三、设计

### 1. 设计思路

说明你如何设计这个程序

比如:

- 这个程序有个类,2个函数,函数之间的调用关系是怎样的?
- 关键函数的流程图是怎样的?
- 算法的关键的关键是什么?
- 关键就是对数据的判断
- ...

### 2. 实现方案

写出具体实现的步骤

比如:

- 准备工作:先在Github上创建仓库,克隆到本地...
- 技术关键点:最主要是是数的判断
- ...

## 四、编码

请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程

### 1. 调试日志

记录编码调试的日志,请记录下开发过程中的 debug 历程

比如:

- 在代码的什么位置,代码出现了什么问题,问题会导致什么结果,怎么解决的
- 除法判断错误 2年级无法对小数进行计算

### 2. 关键代码

请展示一段程序的关键代码,并解释代码的作用
for(int i=0;i<n;i++) {
Random R=new Random();
int a = (int)(Math.random() * 10);
int b = (int)(Math.random() * 10);
int x = (int)(Math.random() * 2);
if(x==0) {
s1[i]="("+(i+1)+")"+" "+a+"*"+b+"=";
s2[i]="("+(i+1)+")"+" "+a+"*"+b+"="+(a*b);
}
if(x==1) {
if(a2%a3==0) {
s1[i]="("+(i+1)+")"+" "+a+"%"+b+"=";
s2[i]="("+(i+1)+")"+" "+a+"%"+b+"="+(a%b);
}
else
break;

}
}
}

### 3. 代码规范

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

- 第一条...
- 第二条...

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

## 五、测试

请思考并记录你认为必要的测试点,并记录测试用例与测试结果
主要是对除法的测试。。错误没有记录


## 六、总结

请总结过程中的教训和经验,思考
百度真重要啊!思路更重要

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

 

推荐阅读