一个用C++写的表达式求值问题 - 数构经典课设题目_氧气_新浪博客

 

从main入口,实例化栈的对象并初始化,调用求值函数Solution()所求得结果作为返回值输出。

Solution()函数简要流程:

#入栈,初始化各个变量,开始输入表达式,输入数字时入opnd,运算符时入optr,否则提示出错。

运算符时入optr时先调用Precede()判断optr栈顶元素和当前输入运算符的优先级,

若返回<时入栈,返回>时弹出上一个运算符合上两个数,调用Operate(a,op,b)运算并返回结果入栈;返回=时说明运算结束,出栈并结束;返回RPL时对应提示相应的出错信息。 

容错处理考虑到了很多种可能的错误:

1.直接输入回车

一个用C++写的表达式求值问题 <wbr>- <wbr>数构经典课设题目

2.输入其他字符

一个用C++写的表达式求值问题 <wbr>- <wbr>数构经典课设题目

3.不输入#

一个用C++写的表达式求值问题 <wbr>- <wbr>数构经典课设题目

4.输入多个小数点

一个用C++写的表达式求值问题 <wbr>- <wbr>数构经典课设题目

5.输入不匹配的括号

一个用C++写的表达式求值问题 <wbr>- <wbr>数构经典课设题目

一个用C++写的表达式求值问题 <wbr>- <wbr>数构经典课设题目

6.连续输入运算符

一个用C++写的表达式求值问题 <wbr>- <wbr>数构经典课设题目

 

7.输入小数时直接输入小数点

一个用C++写的表达式求值问题 <wbr>- <wbr>数构经典课设题目 

8.表达式开始输入运算符

一个用C++写的表达式求值问题 <wbr>- <wbr>数构经典课设题目

 

 

 

 

 

 

测试数据     (32.04123+.259)*700/2.3-20#

一个用C++写的表达式求值问题 <wbr>- <wbr>数构经典课设题目

这个程序从设计到完成用了将近3天的时间,感觉自己能力提高了,上一个程序写了一个星期左右,这次有一定的提高。

在这个程序里我{dy}次用了模板,感觉用法很容易,就是会显得有点乱。设计多位整数和小数的算法的时候没有写流程图,直接就写,一边写一边想,用了2个小时的时间,这个功能是放在{zh1}才加进去的。

 

弄明白了getchar()这个函数是如何运作的:{dy}次调用getchar(),输入字符串,存入缓冲区,指针指向缓冲区的{dy}个位置并取出来;下一次调用getchar()指针后移一位,也就是取出下一位。掌握了构造函数和析构函数的使用。

部分源码下载: 

已投稿到:
郑重声明:资讯 【一个用C++写的表达式求值问题 - 数构经典课设题目_氧气_新浪博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——