第四次作业——计算器(实现“+ - * /”)
参考资料
关于本次作业
一开始看题目就感觉跟之前几次作业的难度有所不同。题目要求把数值与符号存放在两个栈中,然后求值,脑子里最先跳出来的想法就是题目似乎要用到“前缀表达式”“后缀表达式”等相关内容的知识,然而寒假的时候只是大概懂了这几个概念,对于树的遍历还未开始学习。在了解了<stack>
跟<sstream>
的内容后,仍一筹莫展。在询问大神(橘子犇犇)后,告诉我说我百度的关键字可能有错= =,不要去搜索题目中所说的几个STL容器的内容,那样可能学完也不知道怎么完成题目。在他的建议下,通过“算术表达式求值”几个关键字,很快就找到几篇相关的博文。所参考的那篇博文资料= =嗯,跟这次作业的要求基本契合,因为第三次作业中已经把算术表达式压入队列,只需要把博文中的代码改成类存放进项目,然后队列通过参数传入就可以了。至于改成类= =感觉就是开始无脑改了= =
运行结果
第二次更新
与同学聊天的时候提到除数为“0”的情况,突然想起来我没有判断。按照double类型,这样的情况会输出INF,虽然从极限的思想上来看好像没有错,但是正常四则运算应该要报错,所以就手动更改了一下。在改的过程也没有什么大困难,就多加了几个判断。
┆ 凉 ┆ 暖 ┆ 降 ┆ 等 ┆ 幸 ┆ 我 ┆ 我 ┆ 里 ┆ 将 ┆ ┆ 可 ┆ 有 ┆ 谦 ┆ 戮 ┆ 那 ┆ ┆ 大 ┆ ┆ 始 ┆ 然 ┆
┆ 薄 ┆ 一 ┆ 临 ┆ 你 ┆ 的 ┆ 还 ┆ 没 ┆ ┆ 来 ┆ ┆ 是 ┆ 来 ┆ 逊 ┆ 没 ┆ 些 ┆ ┆ 雁 ┆ ┆ 终 ┆ 而 ┆
┆ ┆ 暖 ┆ ┆ 如 ┆ 地 ┆ 站 ┆ 有 ┆ ┆ 也 ┆ ┆ 我 ┆ ┆ 的 ┆ 有 ┆ 精 ┆ ┆ 也 ┆ ┆ 没 ┆ 你 ┆
┆ ┆ 这 ┆ ┆ 试 ┆ 方 ┆ 在 ┆ 逃 ┆ ┆ 会 ┆ ┆ 在 ┆ ┆ 清 ┆ 来 ┆ 准 ┆ ┆ 没 ┆ ┆ 有 ┆ 没 ┆
┆ ┆ 生 ┆ ┆ 探 ┆ ┆ 最 ┆ 避 ┆ ┆ 在 ┆ ┆ 这 ┆ ┆ 晨 ┆ ┆ 的 ┆ ┆ 有 ┆ ┆ 来 ┆ 有 ┆
┆ ┆ 之 ┆ ┆ 般 ┆ ┆ 不 ┆ ┆ ┆ 这 ┆ ┆ 里 ┆ ┆ 没 ┆ ┆ 杀 ┆ ┆ 来 ┆ ┆ ┆ 来 ┆