作业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可以说是很难受了,接下来准备从头看视频补基础吧。

posted on 2018-09-11 15:53  见崎鸣  阅读(158)  评论(1编辑  收藏  举报