第三次作业:个人项目-小学四则运算 “软件”之初版

本次作业要求来自: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
 · Design 具体设计  10 11
 · Coding 具体编码  36  30
 · Code Review 代码复审  7
 · 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类型

六.截图

 

posted @ 2018-10-09 23:46  Leo木子李  阅读(168)  评论(1编辑  收藏  举报