第三次作业:个人项目-小学四则运算 “软件”之初版
本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166
本次作业github:https://github.com/leo0620/Calculate
一.个人软件过程耗时估计与统计表
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
Planning | 计划 | 8 | 10 |
· Estimate | 估计这个任务需要多少时间 | 8 | 10 |
Development | 开发 | 80 | 100 |
· Analysis | 需求分析 (包括学习新技术) | 6 | 7 |
· Design Spec | 生成设计文档 | 5 | 6 |
· Design Review | 设计复审 | 4 | 6 |
· Coding Standard | 代码规范 | 3 | 3 |
· Design | 具体设计 | 10 | 11 |
· Coding | 具体编码 | 36 | 30 |
· Code Review | 代码复审 | 7 | 8 |
· Test | 测试(自我测试,修改代码,提交修改) | 10 | 8 |
Reporting | 报告 | 9 | 6 |
测试报告 | 3 | 3 | |
计算工作量 |
2 | 1 | |
并提出过程改进计划 | 3 | 3 |
二.构思
具体要求:任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。 如:
23 - 3 * 4 = 11
1.需求分析:生成若干条式子并算出答案,答案不为负数,式子含2个以上的运算符,数字在100之内。
2.初步构思:若干的式子通过for循环可以完成;答案不为负数,使用if(result>0)i--;过滤掉答案为负数的式子,并再次生成式子;运算以及运算数字可以使用随机数math,random()来完成。
三.设计
开发工具:eclipse
编程语言:java
函数设计:负责生成式子的函数MakeFormula();负责判断优先级并计算答案的函数Solve();主函数main();判断用户答案是否正确并记录分数函数Score();
四.遇到的问题
1.优先级的判断,*/优先计算:需要查看式子中运算符的情况并作记录,没有思路去解决。
2.式子是String类型的,要转换为int类型才能运算结果,String与int之转换出现了问题。
3.除法的计算,整数相除会出现0的结果,比如说6/9=0,这并非正确答案。
五.解决问题
1.考虑到优先级的问题,使用了堆栈Stack去记录运算符,把*/放在栈顶
2.int类型不能计算除法问题,改用float类型
六.截图