要命的作业
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
• Estimate | • 估计这个任务需要多少时间 | 600 | 926 |
Development | 开发 | ||
• Analysis | • 需求分析 (包括学习新技术) | 100 | 50 |
• Design Spec | • 生成设计文档 | 20 | 25 |
• Design Review | • 设计复审 | 20 | 10 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 30 | 20 |
• Design | • 具体设计 | 100 | 100 |
• Coding | • 具体编码 | 400 | 500 |
• Code Review | • 代码复审 | 50 | 40 |
• Test | • 测试(自我测试,修改代码,提交修改) | 100 | 110 |
Reporting | 报告 | 20 | 25 |
• Test Repor | • 测试报告 | 20 | 26 |
• Size Measurement | • 计算工作量 | 10 | 10 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 10 | 10 |
合计 |
二、需求分析
我通过百度的方式了解到,小学一二年级数学有如下的几个特点:
- 特点1
- 一百以内的加减
-特点2
-一百以内的乘除
经过分析,我认为,这个程序应当:
- 使用的数字小于100
- 小的数不能减大的数
-没有分数
-没有小数
三、设计
1. 设计思路
- 输入两个数第一个是题数第二个是年级数
- 一年级只有加减,并且这两个数都是一百以内
- 如果是减法第一个数要大于第二个数
- 将结果写到txt文件中
2. 实现方案
- 准备工作:先在Github上创建仓库,并在GitHub上fork亓老师主页的MathExam2018仓库,并clone到本地;
在本地仓库新建PSP6372文件夹,创建源文件MathExam6372.java - 技术关键点:Random,PrintStream的用法
四、编码
-输入两个整数题数和年级
-随机生成要求的题数
-把答案记录到out.txt
1. 调试日志
-若只输入一个参数就无法出现题目,应给grade一个初始值。
2. 关键代码
for (int i=0;i<number;i++){
number1[i] = random.nextInt(100);
number2[i] = random.nextInt(100);
int subScript = (1 == grade) ? (random.nextInt(2)) : (random.nextInt(4));
String symbol = ch[subScript];
so[i] = symbol;
switch (symbol){
case "/":
while (number2[i] == 0) {
number2[i] = (int) (Math.random() * 100);
}
answer[i] = number1[i] / number2[i];
break;
case "*":
answer[i]=number1[i]*number2[i];
break;
case "-":
if(number1[i]<number2[i]){
int temp = number1[i];
number1[i]=number2[i];
number2[i]=temp;
}
answer[i]=number1[i]-number2[i];
break;
case "+":
answer[i]=number1[i]+number2[i];
break;
default:
}
判断是一年级还是两年级 一年级的随机输出加减法,两年级随机输出加减乘除
3. 代码规范
请给出本次实验使用的代码规范:
- 第一条...JAVA命名一般应采用小写字母,但类名、接口名以及任何非初始单词的第一个字母要大写。
- 第二条...获取成员函数 被访问字段名的前面加上前缀 get
-第三条 package 行要在 import 行之前,import 中标准的包名要在本地的包名之前,而且按照字母顺序排列。如果 import 行中包含了同一个包中的不同子目录,则应该用 * 来处理。
并人工检查代码是否符合规范
五、测试
六、总结
-先大概的有解题思路,想出比较容易出错的地方,着重解决这些地方;
-遇到错误要多次实验修改代码,不能放弃
-要会注释,这样便于自己下次看代码