出题
设计报告
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
• Estimate | • 估计这个任务需要多少时间 | 1000 | 1370 |
Development | 开发 | ||
• Analysis | • 需求分析 (包括学习新技术) | 120 | 89 |
• Design Spec | • 生成设计文档 | 37 | 17 |
• Design Review | • 设计复审 | 45 | 37 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 70 | 80 |
• Design | • 具体设计 | 120 | 124 |
• Coding | • 具体编码 | 450 | 400 |
• Code Review | • 代码复审 | 20 | 40 |
• Test | • 测试(自我测试,修改代码,提交修改) | 17 | 34 |
Reporting | 报告 | 20 | 18 |
• Test Repor | • 测试报告 | 10 | 16 |
• Size Measurement | • 计算工作量 | 13 | 24 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 31 | 28 |
合计 | 2105 |
二、需求分析
我通过百度的方式了解到,小学一年级数学和二年级有如下的几个特点:
- 特点1:小学数学算式内的两个加数都应该小于20。
- 特点2:小学数学算式应为99乘法表内。
- 特点3:小学数学运算结果不能为负数。
经过分析,我认为,这个程序应当:
- 一年级函数中,需要判断两数相加或相减是否小于等于20大于等于0。
- 不能出现负数。
- 100以内的除法不能出现分数。
三、设计
1. 设计思路
说明你如何设计这个程序
- 构建一个类,创建四个方法
- 判断随机数是否为0
2. 实现方案
写出具体实现的步骤
- 准备工作:先在Github上创建仓库,克隆到本地。
- 技术关键点:如何通过String[] args数组进行输入,字符串与整型的转换
四、编码
请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程
1. 调试日志
记录编码调试的日志,请记录下开发过程中的 debug 历程
比如:
- 没有输入参数直接运行,结果无任何显示,与预期结果不一致。
- 没有考虑到用户输入时会输入非数字的情况,编译出现异常。
2. 关键代码
for (int i = 1; i <= n; i++) {
x1 = (int) (Math.random() * 100);
x2 = (int) (Math.random() * 100);
fh = (int) (Math.random() * 2);
if (fh==0) {
System.out.println("("+i+")"+x1+"+"+x2+"=");
ans [i-1] = "("+i+")"+x1+"+"+x2+"="+(x1+x2);
} else {
System.out.println("("+i+")"+x1+"-"+x2+"=");
ans [i-1] = "("+i+")"+x1+"-"+x2+"="+(x1-x2);
}
}
3. 代码规范
请给出本次实验使用的代码规范:
- 第一条类型与中括号紧挨相连来定义数组。
- 第二条采用4个空格缩进,禁止使用tab字符
- 第三条左小括号和字符之间不出现空格;同样的,有小括号和字符之间也不出现空格。
五、测试
请思考并记录你认为必要的测试点,并记录测试用例与测试结果
六、总结
- 一定要确定自己的发展方向,并为此目的制定可行的计划。详细制定自己软件开发专业知识学习计划,并注意及时修正和调整(软件开发技术变化实在太快)