数据结构课程的设计算术表达式求值.docVIP

数据结构课程的设计算术表达式求值.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程的设计算术表达式求值

计算机科学系 《数据结构 课程设计》报告 课题名称: 算术表达式求值 目录 1.问题描述-----------------------------------------------------------3 2.基本要求-----------------------------------------------------------3 3.工具/准备工作----------------------------------------------------3 4.分析与实现--------------------------------------------------------4 5. 课程设计体会与感悟------------------------------------------16 1.问题描述 从键盘上输入中缀算术表达式,包括括号,计算出表达式的值。 2.基本要求 (1)程序能对所输入的表达式做简单的判断,如表达式有错,能给适当提示。 (2)能处理单目运算符:+,-。 3.工具/准备工作 在开始项目之前,应回顾复习相关内容。 需要一台计算机装有visual C++。 4.分析与实现 对于中缀表达式,一般运算规则如下: 先乘方,再乘除,最后加减; 同级运算从左算到右; 先括号内再括号外; 用到的头文件”utility.h”,”lk_stack.h”,”node.h”,”calculator.h”. 根据实践经验,可以对运算符设置统一的优先级,从而方便比较。表中给出了包括加、减、乘、除、求余、左括号、右括号和分界符的优先级。 运算符 ‘=’ ‘(’、‘)’ ‘+’、‘—’ ‘*’、‘/’‘%’ ‘^’ 优先级 1 2 2 4 5 上面讨论的的+、—为双目运算符,如为单目运算符,编程实现时,可在前面加上0而转化为双目运算符。如在+、—的前一个字符(如当前字符不是运算符时,规定用0表示)为‘=’或‘(’,则为单目运算符。 具体实现算法时,可设置两个工作栈,一个为操作栈,一个为操作符栈optr,另外一个为操作数栈opnd,算法基本思路如下: 将optr栈和opnd栈清空,在optr栈中加入一个‘=‘。 从输入流获取一字符ch,循环执行步骤(3)至步骤(5)直到求出表达式的值为止。 取出optr的栈顶optrTop,当optrTop=‘=‘且ch=’=‘时,整个表达式求值完毕,这时opnd栈的栈顶元素为表达式的值。 若ch不是操作符,则字符放回输入流(cin.putback),读操作数operand;将operand加入opnd栈,读入下一个字符ch。 如ch是操作符,按如下方式进行处理: a.如果ch为单目运算符,则在ch前面加上操作数0,也就是将0入opnd栈; b.如果optrTop与ch不匹配,例如optrTop=‘)‘且ch=’(‘,显示错误信息; c.如果optrTop=‘(‘且ch=’)‘,则从optr退出栈顶的’(‘,去括号,然后从输入流中读入字符并送入ch; d.如果ch=’(’活optrTop比ch 的优先级低,则ch入optr栈,从输入中取下一字符ch; e.如果optrTop大于或等于ch的优先级,则从opnd栈退出left和right,从optr栈退出theta,形成运算指令(left)theta (right),结果如opnd栈。 对于界面处理: (1)用文件流建立一个小小的界面,美化处理一些操作,文件名为dd.txt //dd.txt文档内容 * * * * * * * * * * * * * * * * * * * 欢迎进入运算界面 * * * * * * * * * * * *

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档