通向成功的必经之路
一、需求分析
随着时代的进步,科技的发展,人们的生活向着更高水平迈进,逐渐的,笔纸被键盘,鼠标所替代。人们的环保意识渐渐增强,大量的工作,学习在网上进行,而不是简单的笔纸运算。
二、功能设计
2.1基本功能
(1)自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
(2)剔除重复算式。 2 + 3 = 和 2 + 3 = 是重复算式 2 + 3 = 和 3 + 2 = 不属于重复算式
(3)题目数量可定制
(4)相关参数可控制
是否包含乘法和除法
操作数数值范围可控(如操作数 在100以内 还是1000以内)
操作数是否含负数
(5)生成的运算题存储到外部文件result.txt中
2.2扩展功能
能够检查自己的答案是否正确
三、设计实现
HomeWorkDemo_1类,类中主要写了fun(),函数有两个参数,可以设定题目的数量和取值的范围,通过在主函数中的调用,可以完成设定。函数中主要的作用随机生成数,来随机进行运算。每个算式运算的结果都不能大于100。随机生成的数存到一个数组中,将每两个数的答案存到另一个数组中。通过判断第二个数组的数是否大于100来决定是否覆盖上一组数据。最后的算式利用文件输入到指定的目录下。
FileWriter fw = null; BufferedWriter bufw = null; try { fw = new FileWriter("D:\\result.txt",true); bufw = new BufferedWriter(fw); 通过FileWriter第二个参数来判断是否保存上几次的计算题
四、测试运行
for(int i = 0;i<count;i++) { num[number_1++] = random.nextInt(scope)+1; num[number_1++] = random.nextInt(scope)+1; number_5 = random.nextInt(4)+1; int flag = number_5%4; switch(flag) { case 0:total[number_3++] = (num[number_2++])+(num[number_2++]);break; case 1:total[number_3++] = (num[number_2++])-(num[number_2++]);break; case 2:total[number_3++] = (num[number_2++])*(num[number_2++]);break; case 3:total[number_3++] = (num[number_2++])/(num[number_2++]);break; } symbol[number_6++] = flag; if(number_4<=count) { if(total[number_4++]>100) { number_1--; number_1--; number_2--; number_2--; number_3--; number_4--; number_6--; count++; } } 方法不是很好。如果有什么更好的方法,可以一起交流
五、PSP
PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
Planning | 计划 | 120 | 180 |
Estimate | · 估计这个任务需要多少时间,并规划大致工作步骤 | 120 | 180 |
Development | 开发 | 80 | 120 |
Analysis | 需求分析 (包括学习新技术) | 20 | 20 |
Design Spec | 生成设计文档 | 10 | 4 |
Design Review | 设计复审 (和同事审核设计文档) | 10 | 10 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 1 | 1 |
Design | 具体设计 | 3 | 10 |
Coding | 具体编码 | 4 | 10 |
Code Review | 代码复审 | 12 | 5 |
Test | · 测试(自我测试,修改代码,提交修改) | 10 | 10 |
Reporting | 报告 | 17 | 10 |
Test Report | 测试报告 | 10 | 5 |
Size Measurement | 计算工作量 | 10 | 5 |
Postmortem & Process Improvement Plan | 事后总结 ,并提出过程改进计划 | 5 | 5 |