作业1MathExam
自己取一个大气又可爱的标题
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 720 | 1000 |
• Estimate | • 估计这个任务需要多少时间 | 720 | 1000 |
Development | 开发 | 500 | 720 |
• Analysis | • 需求分析 (包括学习新技术) | 30 | 30 |
• Design Spec | • 生成设计文档 | 15 | 30 |
• Design Review | • 设计复审 | 15 | 30 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 40 | 60 |
• Design | • 具体设计 | 40 | 60 |
• Coding | • 具体编码 | 200 | 360 |
• Code Review | • 代码复审 | 30 | 50 |
• Test | • 测试(自我测试,修改代码,提交修改) | 60 | 120 |
Reporting | 报告 | 30 | 40 |
• Test Repor | • 测试报告 | 30 | 40 |
• Size Measurement | • 计算工作量 | 10 | 20 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 20 | 20 |
合计 | 1000 |
二、需求分析
我通过百度的方式了解到,小学一年级数学有如下的几个特点:
- 特点1 只有加减法
- 特点2 运算不大于100,不小于0
经过分析,我认为,这个程序应当:
- 使用的数字小于100
- 并且大于0
三、设计
1. 设计思路
说明你如何设计这个程序
比如:
- 这个程序有1个类,2个函数
- 命令行获取参数后通过函数方法随机生成所需题目,最后通过out.txt输出所需格式
- 判断命令行参数的大小,随机生成数和随机获取+-*/号
2. 实现方案
写出具体实现的步骤
比如:
- 准备工作:先在Github上创建仓库,克隆到本地,完成代码后提交。
- 技术关键点:cmd命令运行java,代码的编写。
四、编码
请说明你如何按照设计思路进行编码,并记录你在开发中遇到的问题,与解决过程
1. 调试日志
记录编码调试的日志,请记录下开发过程中的 debug 历程
比如:
-起初在代码的第十行定义命令行参数后出现Exception in thread "main" java.lang.ArrayIndexOutOFBoundsException:0的报错,是数组越界了,后在try前加入对命令行参数输入的长度进行判断消除了错误。
-由于创建out.txt的代码位置打错,导致程序无法正常运行,后更换其位置可以正常运行。
-函数调用没有分清楚,重新整理了代码。
2. 关键代码
int fu=new Random().nextInt(2);//随机生成+或-号,若0为+,若1为- if(fu==0) { int x=(int)(Math.random()*100);//随机100以内一个数x int y=(int)(Math.random()*(100-x)); r=x+y; System.out.println("(" + i + ") " + x + " + " + y + " ="); da = "(" + i + ") " + x + " + " + y + " = " + r; }
3. 代码规范
请给出本次实验使用的代码规范:
- 在 if/else/for/while/do 语句中必须使用大括号。 即使只有一行代码,避免使用单行的形式
并人工检查代码是否符合规范 - 方法参数在定义和传入是,多个参数逗号后边必须加空格
- 采用4个空格缩进
- 大括号的使用约定
- 代码块缩进4个空格,如果使用tab缩进,请设置成1个tab为4个空格。
- 没有必要增加若干空格来使某一行的字符与上一行的相应字符对齐。
五、测试
输入java MathExam 5 结果正确
输入java MathExam 1000 结果正确
输入java MathExam 1.5 结果正确
六、总结
编程能力较低,时间分配不均,对编程语言的掌握不够熟练。基础不扎实,写起代码就超难,单独编写代码,尽力只完成了任务一,未来还需要多加练习。