大气又可爱的标题
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 600 | 560 |
• Estimate | • 估计这个任务需要多少时间 | 600 | 560 |
Development | 开发 | 600 | 560 |
• Analysis | • 需求分析 (包括学习新技术) | 70 | 50 |
• Design Spec | • 生成设计文档 | 50 | 70 |
• Design Review | • 设计复审 | 20 | 30 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 30 | 20 |
• Design | • 具体设计 | 185 | 185 |
• Coding | • 具体编码 | 185 | 185 |
• Code Review | • 代码复审 | 30 | 30 |
• Test | • 测试(自我测试,修改代码,提交修改) | 30 | 30 |
Reporting | 报告 | 60 | 50 |
• Test Repor | • 测试报告 | 30 | 30 |
• Size Measurement | • 计算工作量 | 10 | 10 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 10 | 20 |
合计 | 1260 | 1170 |
二、需求分析
我通过百度的方式了解到,小学一年级数学有如下的几个特点:
- 加减数字不过百
- 不会出现的负数加减
- 没有小数加减
- 没有乘除
经过分析,我认为,这个程序应当: - 使用的数字小于等于100
- 应当对输入的数据进行检测,使之符合实际值
三、设计
1. 设计思路
说明你如何设计这个程序
比如:
-
这个程序有x个类,x个函数,函数之间的调用关系是怎样的?
- 1个类,5个函数。主函数和4个其余函数。
- 先调用初始化文件函数,初始化文件、创建文件及创建文件输入流函数
- 调用输入函数,输入题数等相关需求信息,并进行判断输入字符是否有异常,是否为数字等等
- 然后在主函数中进行数据的判断及随机数和符号的生成
- 调用写入题目的函数
- 调用写入题目和答案的函数
-
关键函数的流程图是怎样的?
-
算法的关键的关键是什么?
- 合理。需要做的就是处理数据异常,溢出,不合理情况。
2. 实现方案 写出具体实现的步骤
比如:
- 准备工作:先在Github上创建仓库,克隆到本地...
- 技术关键点:梳理一下设计思路,可能遇到哪些技术关键点
- 克隆代码怎么写?
- 仓库如何建立?
- 如何提交到仓库?
- 分支是什么?会不会提交错误?
四、编码
- 请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程
- 遇到几个问题
- 创建字符串数组static String[] str =new String[]{};,无法自动开辟字符串数组空间?
- 改用List泛型解决
- int变量未初始化,调用时一直报异常。
- 在txt中使用换行需要在输入流中添加 才能成功换行
1. 调试日志
记录编码调试的日志,请记录下开发过程中的 debug 历程
比如:
- 在代码的什么位置,代码出现了什么问题,问题会导致什么结果,怎么解决的
- Calculation_Num未赋值,后来调用时,Calculation_Num++;一直异常。断点,看到null指针异常。
2. 关键代码
请展示一段程序的关键代码,并解释代码的作用
private static void iteration_part(int grade)
{
Symbol = ranStr.nextInt(4);
if(grade==1 && Symbol<=1)
return;
else if(grade==2 && Symbol<=3)
return;
else
iteration_part(grade);
}
这是迭代,通过判断输入的年级为1或为2来控制生成的是加减还是加减乘除。
如果符合要求就完成函数,不符合要求则不断迭代直至生成符合要求的加减乘除。
3. 代码规范
请给出本次实验使用的代码规范:
- 第一条...
- 第二条... 并人工检查代码是否符合规范
- 第三条… 异常进行手动处理,不抛出。
- 第四条… 不反复开辟空间,合理利用开辟的空间
- 第四条… 进行适当合理的代码注释,方便理解,修正
五、测试 请思考并记录你认为必要的测试点,并记录测试用例与测试结果
测试用例 | 测试结果 |
---|---|
java MathExam6367_2 10 2 | 正常输出out.txt |
java MathExam6367_2 10 -2 | 输入的年级不合法!请重新输入题数: |
java MathExam6367_2 -10 2 | 输入的题数不合法!请重新输入题数: |
java MathExam6367_2 0 2 | 不生成题目和答案 |
六、总结 请总结过程中的教训和经验,思考
-
是否使用了“软件开发的基本策略:分而治之”,是否需要重构
答:是,需要 -
“高质量的设计、规范的编码以及有效的测试是保证软件产品质量的三个重要方面”,你是否采用了相关的手段,是否需要重构
答:是,需要