小学生福利
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 600 | 630 |
• Estimate | • 估计这个任务需要多少时间 | 500 | 630 |
Development | 开发 | 340 | 330 |
• Analysis | • 需求分析 (包括学习新技术) | 50 | 50 |
• Design Spec | • 生成设计文档 | 50 | 80 |
• Design Review | • 设计复审 | 50 | 50 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 10 | 20 |
• Design | • 具体设计 | 50 | 50 |
• Coding | • 具体编码 | 80 | 50 |
• Code Review | • 代码复审 | 40 | 20 |
• Test | • 测试(自我测试,修改代码,提交修改) | 20 | 10 |
Reporting | 报告 | 200 | 300 |
• Test Repor • 测试报告 | 100 | 80 | |
• Size Measurement | • 计算工作量 | 50 | 40 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 100 | 180 |
合计 | 630 |
二、需求分析
我通过百度的方式了解到,小学一年级数学有如下的几个特点:
- 特点1
1.算式得出的结果不超过100。
2.运算结果不能为负数。
3.没有乘除运算。
经过分析,我认为,这个程序应当:
- 使用的数字小于50
- 减法结果小于0的重新取值
- 不加入乘除运算
三、设计
1. 设计思路
- 这个程序有一个类,3个函数,分别为main(主函数),print(写了文件),CreateFile(创建out.txt文件)
- 算法的关键在于判断控制台的输入数据
2. 实现方案
写出具体实现的步骤
- 准备工作:先在Github上创建仓库,克隆到本地
- 技术关键点:判断控制台输入数据
四、编码
请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程
按照大脑中的构思进行编写代码。先进行createFile
要随机出题就需要随机数,百度查看大神们如何解决随机数。
判断输入的数据是否符合要求,百度查看大佬如何解决。
1. 调试日志
记录编码调试的日志,请记录下开发过程中的 debug 历程
- 在除法时无法整除后改完用积来代替随机被除数
2. 关键代码
if(args[0]!= null && args[0].matches("0*[0-9]{0,3}"))
3. 代码规范
- 第一条:保留了原有规范的4空格缩进
- 第二条:放松了对import语句的组织方式要求。只要有一定逻辑性即可,不做严格限制。
- 第三条:但要求未使用的import语句必须删除
五、测试
测试内容 | 输入 | 预期 | 实际 |
---|---|---|---|
------ | 5 | 运行正确 | 运行正确 |
------ | 00000000000004 | 运行正确 | 运行正确 |
------ | 10000000000000 | 请输入合法参数(范围在1~999的整数) | 请输入合法参数(范围在1~999的整数) |
------ | 请输入合法参数 | 请输入合法参数(范围在1~999的整数) | 请输入合法参数(范围在1~999的整数) |
------ | -1 | 请输入合法参数(范围在1~999的整数) | 请输入合法参数(范围在1~999的整数) |
------ | 0.12 | 请输入合法参数(范围在1~999的整数) | 请输入合法参数(范围在1~999的整数) |
六、总结
请总结过程中的教训和经验,思考
- 是否使用了“软件开发的基本策略:分而治之”,是否需要重构
- “高质量的设计、规范的编码以及有效的测试是保证软件产品质量的三个重要方面”,你是否采用了相关的手段,是否需要重构