简易四则运算
本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166
Github地址:https://github.com/LRZLUCK/nice
一、题目要求:
任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。
1) 要求能出和真分数 (二分之一, 十二分之五,等)相关的练习题。
2) 并且要求能处理用户的输入,并判断对错,打分统计。 要求能处理用户输入的真分数, 如 1/2, 5/12 等。
二、个人软件过程耗时估计与统计表
PSP2.1 | Personal Software Process Stages | 预估时间(h) | 实际时间(h) |
Planning |
计划 | 2 | 3 |
Estimate | 估计这个任务需要多少时间 | 4 | 6 |
Development | 开发 | 2 | 3 |
Analysis | 需求分析 (包括学习新技术) | 0.2 | 1 |
Coding Standard | 代码规范 | 0.1 | 0.4 |
Design | 具体设计 | 0.5 | 0.5 |
Coding | 具体编码 | 1 | 1.5 |
Code Review | 代码复审 | 0.1 | 0.4 |
Test | 测试(自我测试,修改代码,提交修改) | 0.2 | 0.4 |
项目构思
四则运算的三元二次方程里面应该有三个随机数和两个运算符号,其中两个运算符号组合有16种,因此我采用swith,case语句进行判断,将16种情况一一列出来
项目问题和解决方案
如何判断运算的优先级,这里最正确 的做法是使用栈的方式来解决,但是我对这方面不是很熟悉,基础比较薄弱,因此我才用最笨的方式,我将三元二次方程里面可能出现的16种运算情况都罗列出来,进行判断。
一开始是想着用for()循环来将16种情况进行随机生成的,但发现因为我们不能要负数的结果,当产生负数结果时要再循环产生一次,我发现for()循环很难进行算式的个数统计,因此在参考别 的同学的代码后就采用了do()while循环来做,当随机产生的结果时负数时,用continue跳出再循环。
然后计算正确率时一开始一直得不到答案,然后发现自己把正确率定义为整型。
项目不足之处
真分数的答案我还解决不了,其次就是遇到有小数的取整,我只取整数位。
项目截图