作业02-关于小学数学运算
其实吧头发也没掉的那么多
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 600 | 650 |
• Estimate | • 估计这个任务需要多少时间 | 600 | 650 |
Development | 开发 | 500 | 530 |
• Analysis | • 需求分析 (包括学习新技术) | 300 | 300 |
• Design Spec | • 生成设计文档 | 60 | 60 |
• Design Review | • 设计复审 | 30 | 30 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 90 | 100 |
• Design | • 具体设计 | 400 | 420 |
• Coding | • 具体编码 | 20 | 20 |
• Code Review | • 代码复审 | 60 | 40 |
• Test | • 测试(自我测试,修改代码,提交修改) | 60 | 80 |
Reporting | 报告 | 30 | 60 |
• Test Repor | • 测试报告 | 15 | 30 |
• Size Measurement | • 计算工作量 | 10 | 15 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 10 | 10 |
合计 | 750 |
二、需求分析
我通过万能的度娘了解到,小学一年级数学有如下的几个特点:
- 特点1
都是正整数,范围在0-100以内 - 特点2
乘除应该满足乘法表且不能有余数
经过分析,我认为,这个程序应当:
- 使用的数字小于100
- 还要判断输入的不是正常数的报错情况
- 得数不能有负数小数
- 小学二年级是10以内的乘法口诀表的乘除法
- 得数不能有余数,小数或者负数
三、设计
1. 设计思路
说明你如何设计这个程序
比如:
- 这个程序有x个类,x个函数,函数之间的调用关系是怎样的?
- 关键函数的流程图是怎样的?
- 算法的关键的关键是什么?
- IO流文件将题目和答案写入
- 判断参数的输入是否符合题目要求
- out.txt文本的建立和写入
2. 实现方案
写出具体实现的步骤
比如:
- 准备工作:先在Github上创建仓库,然后fork,clone到本地并且下载git创建文件等
- 技术关键点:关于文本创建的一系列方法,清空文本的数据方法,以及判断是一年级还是二年级的方法
四、编码
查到Math.random()是用于随机数的生成
IOException写入out.txt的方法
运用数字0代表+ 1代表-
1. 调试日志
修改了关于小数的结果
检查文本是否存在,对生成文本的目录如果创建失败的情况
忽略文本里没有自己的学号姓名等个人信息
2. 关键代码
private static boolean makeTxt(File file){
if(!file.exists()){
file.getParentFile().mkdirs();
}
if(! file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
throw new RuntimeException("文件创建失败", d);
}
}
FileWriter fileWrite = null;
try {
fileWrite = new FileWriter(file);
fileWrite.write("");
fileWrite.flush();
} catch (IOException e) {
throw new RuntimeException("文件清空发生异常", d);
}
3. 代码规范
请给出本次实验使用的代码规范:
1.左大括号前不换行,后换行,右括号前换行。
2.源代码文件以文件内容中的最顶层的Java类命名,而且大小写敏感,文件扩展名为 .java,同时,文件的编码格式统一为UTF-8。
3.接口方法定义:public abstract void f();
五、测试
|输入 |输出 |是否符合要求 |
| --------------------------------------- | -------------------------------- | -------- | -------- |
| a | 输入错误请重新输入 |是 |
|0 | 文本为空 |是 |
| -999 | 输入题目数量有误请重新输入 |是 |
| 100 | 正确输出 |是 |
|sb | 输入错误请重新输入 |是 |
| 5 3 | 输入年级错误 |是 |
| 10 2 |正确输出 |是
六、总结
虽然上个学期我已经学习了java但是自己只是为了应付作业,死记硬背完全不理解,基本全忘光了。所以导致在过程中一直寻求help,心里也很烦躁。有体会的一点就是千万不要赶进度不然后期修复bug的时间更长。作为一个青铜5可以说是很难受了,接下来准备从头看视频补基础吧。