77范文网 - 专业文章范例文档资料分享平台

算术表达式求值演示程序

来源:网络收集 时间:2020-02-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

软 件 学 院

课程设计报告书

课程名称 数据结构 设计题目 算术表达式求值演示程序 专业班级 学 号

姓 名 指导教师

2012年 1月

0

目录

1.设计时间 ..................................................... 2 2.设计目的 ..................................................... 2 3.设计任务 ..................................................... 2 4.设计内容 ..................................................... 2 4.1需求分析 ................................................... 2 4.2总体设计 ................................................... 2 4.2.1抽象数据类型的定义 ........................................ 2 4.2.2函数模块说明 .............................................. 3 4.2.3主函数流程图 .............................................. 4 4.2.4函数模块调用关系 .......................................... 5 4.2.5运算符间的优先关系 ........................................ 5 4.3详细设计 ................................................... 6 4.3.1数据类型的定义 ............................................ 6 4.3.2函数调用关系 .............................................. 8 4.3.3主要模块的算法描述 ........................................ 8 4.4测试与分析 ................................................ 10 4.4.1测试 .................................................... 10

word文档 可自由复制编辑

4.4.2分析 .................................................... 11 4.5附录 ...................................................... 11 5.总结与心得体会 .............................................. 16 参考文献 ...................................................... 17 成绩评定 ......................................................

word文档 可自由复制编辑

17

1 设计时间 2012.1.4-2012.1.6 2 设计目的 掌握栈的使用和把一个表达式翻译成能够正确求值的一个机器指令序列的原理。 3设计任务 设计一个程序,演示用算符优先法对算术表达式求值的过程。 4 设计内容 4.1需求分析 1、程序所能达到的功能:能够处理以字符序列的形式输入的不含变量的实数表达式,正确处理负数与小数,判断表达式是还语法正确(包含分母不能为零的情况),正确实现对算术四则混合运算表达式的求值,能够将计算中遇到的问题和结果以文件的形式予以存储。 2、输入的形式和输入值的范围:以字符串的形式输入表达式,以“#”结束。 3、输出的形式:在计算过程中遇到的问题或最终的答案将显示在屏幕上,同时所计算的表达式的最终的结果也将保存在文件中。 4、测试数据:输入“3*(7-2)#”时,输出“15.000000”,测试正确;输入“!(9-2)#”时,输出“输入错误!”,测试正确。 4.2总体设计 4.2.1抽象数据类型定义 ADT Stack{ 数据对象:D={ai |ai∈ElemSet,i=1,2,…,n, n≧0} 数据对象:R1={|ai?1,ai?D,i=2,…,n} 约定an端为栈顶,ai端为栈底。 基本操作: InitStack(&S) 操作结果:构造一个空栈S。 word文档 可自由复制编辑

GetTop(S) 初始条件:栈S已存在。 操作结果:用P返回S的栈顶元素。 Push(&S,ch) 初始条件:栈S已存在。 操作结果:插入元素ch为新的栈顶元素。 Pop(&S) 初始条件:栈S已存在。 操作结果:删除S的栈顶元素。 In(ch) 操作结果:判断字符是否是运算符,运算符即返回1。 Precede(c1, c2) 初始条件:c1,c2为运算符。 操作结果:判断运算符优先权,返回优先权高的。 Operate(a,op,b) 初始条件:a,b为整数,op为运算符。 操作结果:a与b进行运算,op为运算符,返回其值。 num(n) 操作结果:返回操作数的长度。 EvalExpr() 初始条件:输入表达式合法。 操作结果:返回表达式的最终结果。 }ADT Stack 4.2.2函数模块说明 为实现算符优先算法,可以使用两个工作栈。一个称做OPTR,用以寄存运算符;另一个称做OPND,用以寄存操作数或运算结果。算法的基本思想是: (1)首先置操作数栈为空栈,表达式起始符“#”为运算符栈底元素 (2)依次读入表达式中每个字符,若是操作数则进OPND栈,若是运算符则和OPTR栈的栈顶运算符比较优先权后作相应操作,直至整个表达式求值完毕(即OPTR栈的栈顶word文档 可自由复制编辑

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库算术表达式求值演示程序在线全文阅读。

算术表达式求值演示程序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/782916.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: