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

(盐城工学院数据结构课程设计)栈的应用表达式求值

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

数据结构课程设计报告

栈的应用:表达式求值的设计

专业 徐燕萍

学生姓名 班学

级 号

指导教师 完成日期

栈的应用:表达式求值的设计 目 录

1 设计内容…………………………………………………….1 2 设计分析

2.1 系统需求分析……………………………………………..1 2.1.1 系统目标………………………………………………...1 2.1.2 主体功能………………………………………………...1 2.2 系统概要设计……………………………………………..1 2.2.1 系统的功能模块划分………….………………………..1 2.2.2 系统流程图…………………………………...…………2 3 设计实践

3.1 基本分析…………………………………………………..3 3.2 中缀表达式求值…………………………………………..4 3.3 后缀表达式求值…………………………………………..5 3.4 中缀表达式转换成后缀表达式…………………………..6 4 测试方法

4.1 基本测试…………………………………………………..7 4.2 拓展测试…………………………………………………..7 4.3 容错测试…………………………………………………..8 5 程序运行效果……………………………………………….7 6 设计心得…………………………………………………….8 7 附录:源代码……………………………………………….10

栈的应用:表达式求值的设计

栈的应用:表达式求值的设计 1 设计内容 设计一个表达式求值的程序。该程序必须可以接受包含(,),+,-,*,/,%,和^(求幂运算符,a^b=ab)的中缀表达式,并求出结果。如果表达式正确,则输出表达式的结果;如果表达式非法,则输出错误信息。

2 设计分析 2.1系统需求分析 2.1.1系统目标

利用栈设计一个程序,该程序能够用于表达式求值,程序将读入的中缀表达式转换为后缀表达式,然后读取后缀表达式,输出结果。

输入要求:程序从“input.txt”文件中读取信息,在这个文件中如果有多个中缀表达式,则每个表达式独占一行,程序的读取操作在文件的结尾处停止。

输出要求:对于每一个表达式,将其结果放在“output.txt”文件的每一行中。这些结果可能是值(精确到小数点后两位),也可能是错误信息“ERROR IN INFIX NOTATION”。

2.1.2 主体功能

能够处理以字符序列的形式输入的不含变量的实数表达式,正确处理负数与小数,判断表达式是否语法正确(包含分母不能为零的情况),正确实现对算术四则混合运算表达式的求值,能够将计算中遇到的问题和结果以文件的形式予以存储。

2.2系统概要设计 2.2.1系统的功能模块划分

1.判断操作数的函数isnum()

1

栈的应用:表达式求值的设计

判断当前所指字符是否属于数字,是就返回‘1’,不是就返回‘0’。 2.求运算符优先级函数priority() 为了方便判断运算符优先级,先利用switch函数将不同的运算符返回不同的整型数字,在根据数字的大小判断优先级。‘+’,‘-’优先级相同,返回数字相同 ,‘*’,‘/’也是。 3.表达式求值函数infix_value()

此函数是直接按照设计思路完成问题要求的函数,其中要调用到判断操作符的函数isnum()和求运算符优先级的函数priority()。循环结束弹出栈2的数值,并返回。 4.主函数main()

定义一个数组存储表达式整个字符串,将返回的数值直接赋值到浮点型的result,输出result。 5.两个栈的函数设计:

栈的初始化函数charInit_SeqStack() Init_SeqStack() 栈判空 Empty_SeqStack()

char Empty_SeqStack() 入栈函数 Push_SeqStack()

charPush_SeqStack() 出栈函数 Pop_SeqStack() charPop_SeqStack() 取栈顶函数 GetTop_SeqStack() charGetTop_SeqStack() 销毁栈 Destory_SeqStack()

charDestory_SeqStack()

2.2.2系统流程图

2

栈的应用:表达式求值的设计

开始 优先级比较算法 Operate 算法 建立栈 存放操作字符 存放数据 计算 表达式是否合法 输出错误提示 输出表达是值 结束 图1 系统流程图

3设计实践 3.1基本分析

在计算机中,算术表达式的计算往往是通过使用栈来实现的。所以,本表达式求值程序的最主要的数据结构就是栈。可以使用栈来存储输入表达式的操作符和操作数。

输入的表达式是由操作数和运算符以及改变运算次序的圆括号连接而成的式子。

表达式求值是高级语言编译中的一个基本问题,是栈的典型应用实例。任何一个表达式都是由操作数(operand)、运算符(operator)和界限符(delimiter)组成的。操作数既可以是常数,也可以是被说明为变量或常量的标识符;运算符可以分为算术运算符、关系运算符和逻辑运算符三类;基本界限符有左右括号和表达式结束符等。

3

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库(盐城工学院数据结构课程设计)栈的应用表达式求值在线全文阅读。

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