第二次作业
211606309 焦成伟 211606373 马祎特
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
• Estimate | • 估计这个任务需要多少时间 | 1600 | 1765 |
Development | 开发 | 300 | 350 |
• Analysis | • 需求分析 (包括学习新技术) | 240 | 300 |
• Design Spec | • 生成设计文档 | 100 | 120 |
• Design Review | • 设计复审 | 80 | 70 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 60 | 70 |
• Design | • 具体设计 | 110 | 120 |
• Coding | • 具体编码 | 60 | 70 |
• Code Review | • 代码复审 | 60 | 80 |
• Test | • 测试(自我测试,修改代码,提交修改) | 300 | 330 |
Reporting | 报告 | 120 | 130 |
• Test Repor | • 测试报告 | 60 | 80 |
• Size Measurement | • 计算工作量 | 10 | 15 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 20 | 30 |
合计 | 1520 | 1765 |
二、需求分析
我通过网上搜索的方式了解到,小学三年级数学有如下的几个特点:
- 特点1:小学三年级有加减乘除运算。
- 特点2:小学三年级可以掌握九九乘法表内的乘除。
- 特点3:小学三年级还没学负数。
经过分析我认为这个程序
- 运算符在2~4个
- 可以加括号
- 减法运算的结果不能有负数
- 除法运算除数不能为0,不能有余数
- 要先算括号内的数
三、设计
1. 设计思路
- 是否能生成符合需求的随机数。
- 判断输入题目是否符合需求。
- 可以生成四则表达式。
- 调用函数实现不同年级不同随机题目生成。
2. 实现方案
- 准备工作:先在Github上创建仓库,克隆到本地。
- 技术关键点:如何判断符号和添加括号,以及题目的生成。
四、编码
1. 调试日志
- 第一次运行时发现出现负数,就在代码上加了一个循环让出现负数的时候跳过重新循环一组数字,但最后发现运行结果会出现NULL,最后我换了种思路,出现负数时X和Y对调,通过这种方法顺利解决了问题。
2. 关键代码
if(args[0].equals("-n"))
{
c[0] = Integer.parseInt(args[1]);
c[1] = Integer.parseInt(args[3]);
flag2=1;
}
else if(args[0].equals("-grade"))
{
c[0] = Integer.parseInt(args[3]);
c[1] = Integer.parseInt(args[1]);
flag2=2;
}
3. 代码规范
- 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵循驼峰形式。
- 代码中的命名均不能以下划线或美元符号开始,也不能一下划线或美元符号结束。
- 没有注意到被除数为0导致的错误 ; 解决方法 :随机数从1开始
五、测试
六、总结
因为基础太差,所以做的很吃力,因此花了非常多时间,多亏了队友的帮助。