数据结构课程设计---中缀算术表达式求值.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文档。上传文档
查看更多
课 程 设 计 报 告 课程名称 数据结构课程设计 课题名称 中缀算术表达式求值 专 业 通信工程 班 级 1001班 学 号 4 姓 名 彭琼林 指导教师 田娟秀 胡瑛 曹燚 2012年 7 月 6 日 湖南工程学院 课 程 设 计 任 务 书 课程名称 数据结构 课 题 中缀算术表达式求值 专业班级 通信工程1001班 学生姓名 彭琼林 学 号 4 指导老师 田娟秀 胡瑛 曹毅 审 批 任务书下达日期 2012 年 7 月 1 日 任务完成日期 2012 年 7 月 6 日 1. 考核方式 指导老师负责验收程序的运行结果,并结合学生的动手能力创新精神报告综合考评优、良、中、及格和不及格程序结构合理与否(程序(0%)(0%)独立完成情况(0%) (1)运行所设计的系统。 (2)回答有关问题。 (3)提交课程设计报告。 (4)提交软盘(源程序、设计报告文档)。 (5)依内容的创新程度,完善程序情况及对程序讲解情况打分。 3.进度安排 第 20 周:星期一 8:00——12:00 上课 星期一 14:30——18:30 上机 星期二 14:30——18:30 上机 星期三 8:00——12:00 上机 附: 课程设计报告装订顺序:封面、任务书、目录、正文、评分表、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。 正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。 正文总字数要求在5000字以上(不含程序原代码)。 1.1设计内容 课题三:中缀算术表达式求值 我们很早就学习如何书写及计算表达式,诸如:8+5*(7-3)之类的表达式,先算括号内的7减去3,得到4,然后再算5乘以4,得到20,再计算8加上20,得到28,因此该表达式的值为28。这是人们熟悉的运算规则额:有括号先算括号内;无括号时,先做乘除法,后做加减法;对于相同级别的运算按从左到右的次序运算。而计算机是如何实现表达式的计算的呢?应用栈的相关知识,编程序实现之。 设计思路:从键盘输入中缀表达式,然后将中缀表达式转换为后缀表达式,利用后缀表达式求值。要求以字符序列的形式从终端输入语法正确的、不含变量的整数表达式,利用给定的算术符优先关系,实现对算数四则混合运算表达式的求值,并演示在求值过程中运算符栈、操作符栈、输入字符和主要操作的变化过程。 1.2需求分析 a.程序的功能。 该程序能够对任意的四则运算表达式进行中缀表达式向后缀表达式的转换,并得出其计算结果。 输入输出均是阿拉伯数字和四则运算操作符以及括号运算符,按照程序所给提示进行标准输入输出即可。 1.4详细设计 a.采用C语言定义相关的数据类型。 写出各模块的类C码算法。 c.画出各函数的调用关系图、主要函数的流程图。 1.4.1数据类型定义 表达式求值中运算符对应优先级的定义 struct { char ch; int pri; }lpri[7]={{=,0},{(,1},{*,5},{/,5},{+,3},{-,3},{),6}},rpri[7]={{=,0},{(,6},{*,4},{/,4},{+,2},{-,2},{),1}}; //运算符优先级的定义 1.4.2将中缀表达式转换成后缀表达式 先初始化栈,然后将‘=’进栈,从exp中读取字符,若它为数字则一次存入postexp中,并以空格标志结束。若为运算符,则和栈顶运算符比较,如果栈顶运算符优先级低则该运算符进栈。待字符串exp扫描完毕,则将运算符栈中‘=’之前所有运算符出栈并存放带postexp中,最后得到后缀表达式postexp。 void trans(char *exp,char postexp[]) //将算术表达式exp转换为后缀表达式postexp { char st[MaxSize]; int t

文档评论(0)

sanshengyuan + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档