作业
作业
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
• Estimate | • 估计这个任务需要多少时间 | 600 | 800 |
Development | 开发 | ||
• Analysis | • 需求分析 (包括学习新技术) | 60 | 80 |
• Design Spec | • 生成设计文档 | 30 | 40 |
• Design Review | • 设计复审 | 60 | 80 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 30 | 60 |
• Design | • 具体设计 | 120 | 140 |
• Coding | • 具体编码 | 120 | 140 |
• Code Review | • 代码复审 | 60 | 100 |
• Test | • 测试(自我测试,修改代码,提交修改) | 30 | 40 |
Reporting | 报告 | ||
• Test Repor | • 测试报告 | 30 | 40 |
• Size Measurement | • 计算工作量 | 40 | 40 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 30 | 40 |
合计 | 800 |
二、需求分析
我通过百度的方式了解到,小学一年级数学有如下的几个特点:
- 特点1.100以内的加减法。
- 特点2.都是整数计算
经过分析,我认为,这个程序应当:
- 使用的数字小于100
- 计算的数字都是整数
- 计算简单
- 不能出现负数
三、设计
1. 设计思路
- 输入的数据要合理
- 随机生成两个100以内的数
- 随机生成加减法
- 结果的题目和答案并放入文件中
- 算法的关键的关键是检验输入的参数是否合理
2. 实现方案
- 准备工作:先在Github上创建仓库,克隆到本地...
- 建立PSP6340文件夹
- 技术关键点:
- 数字要合理不能超出100
- 所有的题目都要随机生成
- 导入.txt
四、编码
- 在编写完运算以后,要将题目和答案都存入文件
- 运用判别法判定加减法(乘除法)
- 如果直接使用生成的随机数进行运算,减法时会出现负数,要加一个判断,确保第一个数比第二个数大。
1. 调试日志
- 二年级除法中要判断除数是否为零
- 不知道如何写入文件,百度后才知道
2. 关键代码
for (int i=0;i<number;i++){
num1[i] = random.nextInt(100);
num2[i] = random.nextInt(100);
int subScript = (1 == grade) ? (random.nextInt(2)) : (random.nextInt(4));
String symbol = ch[subScript];
so[i] = symbol;
switch (symbol){
case "+":
sum[i]=num1[i]+num2[i];
break;
case "-":
if(num1[i]<num2[i]){
int temp = num1[i];
num1[i]=num2[i];
num2[i]=temp;
}
sum[i]=num1[i]-num2[i];
break;
case "*":
sum[i]=num1[i]*num2[i];
break;
case "/":
while (num2[i] == 0) {
num2[i] = (int) (Math.random() * 100);
}
sum[i] = num1[i] / num2[i];
if (num1[i] % num2[i] == 0) {
break;
} else {
if (num1[i] < num2[i]) {
remainder = num1[i];
} else if (num1[i] > num2[i]) {
remainder = num1[i] % num2[i];
}
}
break;
default:
}
判断加减乘除的情况
3. 代码规范
请给出本次实验使用的代码规范:
- 类名首字母应该大写。每个单词的首字母大写。
- 尽量使用if{}else,不要一直if去判断.
- 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵循驼峰形式。
- 静态变量(static)前面加上小写s;
- 静态常量(static final)全大写
- 任何二目、三木运算符的左右两边都需要加一个空格。 说明:运算符包括赋值运算符=、逻辑运算符&&、加减乘除符号等。
五、测试
- 输入 java MathExam 100000000000000 1 出现故障
- 输入java MathExam 10 1 正确
- 输入java MathExam a b 出现错误
六、总结
- 需要阅读很多资料才能勉强完成
- 代码打得不够多,知识不够全面