小学生的大宝贝
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 600 | 760 |
• Estimate | • 估计这个任务需要多少时间 | 600 | 760 |
Development | 开发 | 300 | 360 |
• Analysis | • 需求分析 (包括学习新技术) | 60 | 60 |
• Design Spec | • 生成设计文档 | 30 | 30 |
• Design Review | • 设计复审 | 21 | 21 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
• Design | • 具体设计 | 20 | 20 |
• Coding | • 具体编码 | 300 | 360 |
• Code Review | • 代码复审 | 60 | 60 |
• Test | • 测试(自我测试,修改代码,提交修改) | 120 | 120 |
Reporting | 报告 | 20 | 30 |
• Test Repor | • 测试报告 | 20 | 30 |
• Size Measurement | • 计算工作量 | 10 | 10 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 0 | 20 |
合计 | 760 |
二、需求分析
我通过百度的方式了解到,小学一年级数学有如下的几个特点:
- 特点1 小学1年级的加减法数字一般不会超过20,不会有小数
- 特点2 小学1年级减法不会有小减大出现负数答案
经过分析,我认为,这个程序应当:
- 使用的数字小于21且大于0的整数
- 被减数不能小于减数
三、设计
1. 设计思路
说明你如何设计这个程序
比如:
- 这个程序有1个类,在main方法中直接通过构造函数调用
- 确保输入的参数不能过大,必须是正整数
- 将题目和答案存入out.txt文件
- 找到一些输入错误的bug
2. 实现方案
写出具体实现的步骤
比如:
- 准备工作:先在Github上创建仓库,克隆到本地...
- 技术关键点:在循环输出随机数的情况下容易造成死循环,关键是要将生成的式子存入字符串中
- ...
四、编码
- 在编写完运算以后,要将题目和答案都存入文件
- 要考虑多种情况,如输入参数的大小问题
1. 调试日志
要考虑多种情况,如输入参数的大小问题
比如:
-由于创建out.txt的代码位置打错,导致程序无法正常运行,后更换其位置可以正常运行。
- 函数调用没有分清楚,重新整理了代码。
2. 关键代码
for (int i = 1; i <= n; i++) {
//生成两个随机数
x = (int)(Math.random()*100+1);
y = (int)(Math.random()*100+1);
f = (int)(Math.random()*2);
//判断加法和减法 0为加法
if(f==0) {
//生成减法
System.out.println("("+ i +") " + x +" - "+ y + " =");
String str1 = ("("+ i +") " + x +" - "+ y + " = " + (x-y));
//写入数据
out.writeUTF(str1);
// System.out.println(str);
}
else {
//生成加法
System.out.println("("+ i +") " + x +" + "+ y + " =");
String str1 = ("("+ i +") " + x +" + "+ y + " = " + (x+y));
//写入数据
out.writeUTF(str1);
// System.out.println(str);
}
}
out.close();
3. 代码规范
请给出本次实验使用的代码规范:
- 在 if/else/for/while/do 语句中必须使用大括号。 即使只有一行代码,避免使用单行的形式
并人工检查代码是否符合规范 - 方法参数在定义和传入是,多个参数逗号后边必须加空格
- 没有必要增加若干空格来使某一行的字符与上一行的相应字符对齐
五、测试
小学一年级数学加减计算题
请输入题目数量:
2
(1) 63 - 8 =
(2) 53 + 74 =
------------------答案------------------
(1) 63 - 8 = 55
(2) 53 + 74 = 127
六、总结
请总结过程中的教训和经验,思考
- 编程能力较低,时间分配不均,对编程语言的掌握不够熟练。基础不扎实,单独编写代码,尽力只完成了任务一,未来还需要多加练习。