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

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

ID:36729310

大小:158.92 KB

页数:36页

时间:2019-05-14

(盐城工学院大大数据结构课程设计)栈地应用表达式求值_第1页
(盐城工学院大大数据结构课程设计)栈地应用表达式求值_第2页
(盐城工学院大大数据结构课程设计)栈地应用表达式求值_第3页
(盐城工学院大大数据结构课程设计)栈地应用表达式求值_第4页
(盐城工学院大大数据结构课程设计)栈地应用表达式求值_第5页
资源描述:

《(盐城工学院大大数据结构课程设计)栈地应用表达式求值》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实用标准文案数据结构课程设计报告栈的应用:表达式求值的设计精彩文档实用标准文案专业学生姓名班级学号指导教师徐燕萍完成日期精彩文档实用标准文案目录1设计内容…………………………………………………….12设计分析2.1系统需求分析……………………………………………..12.1.1系统目标………………………………………………...12.1.2主体功能………………………………………………...12.2系统概要设计……………………………………………..12.2.1系统的功能模块划分………….………………………..12.2.2系统流程图………………………………

2、…...…………23设计实践3.1基本分析…………………………………………………..33.2中缀表达式求值…………………………………………..43.3后缀表达式求值…………………………………………..53.4中缀表达式转换成后缀表达式…………………………..64测试方法精彩文档实用标准文案4.1基本测试…………………………………………………..74.2拓展测试…………………………………………………..74.3容错测试…………………………………………………..85程序运行效果……………………………………………….76设计心得…………………………………

3、………………….87附录:源代码……………………………………………….10精彩文档实用标准文案栈的应用:表达式求值的设计1设计内容设计一个表达式求值的程序。该程序必须可以接受包含(,),+,-,*,/,%,和^(求幂运算符,a^b=ab)的中缀表达式,并求出结果。如果表达式正确,则输出表达式的结果;如果表达式非法,则输出错误信息。2设计分析2.1系统需求分析2.1.1系统目标利用栈设计一个程序,该程序能够用于表达式求值,程序将读入的中缀表达式转换为后缀表达式,然后读取后缀表达式,输出结果。输入要求:程序从“input.txt”文件中读取信息,在这个

4、文件中如果有多个中缀表达式,则每个表达式独占一行,程序的读取操作在文件的结尾处停止。输出要求:对于每一个表达式,将其结果放在“output.txt”文件的每一行中。这些结果可能是值(精确到小数点后两位),也可能是错误信息“ERRORININFIXNOTATION”。2.1.2主体功能能够处理以字符序列的形式输入的不含变量的实数表达式,正确处理负数与小数,判断表达式是否语法正确(包含分母不能为零的情况),正确实现对算术四则混合运算表达式的求值,能够将计算中遇到的问题和结果以文件的形式予以存储。2.2系统概要设计2.2.1系统的功能模块划分1.判断操作

5、数的函数isnum()精彩文档实用标准文案判断当前所指字符是否属于数字,是就返回‘1’,不是就返回‘0’。2.求运算符优先级函数priority()为了方便判断运算符优先级,先利用switch函数将不同的运算符返回不同的整型数字,在根据数字的大小判断优先级。‘+’,‘-’优先级相同,返回数字相同,‘*’,‘/’也是。3.表达式求值函数infix_value()此函数是直接按照设计思路完成问题要求的函数,其中要调用到判断操作符的函数isnum()和求运算符优先级的函数priority()。循环结束弹出栈2的数值,并返回。4.主函数main()定义一个

6、数组存储表达式整个字符串,将返回的数值直接赋值到浮点型的result,输出result。5.两个栈的函数设计:栈的初始化函数charInit_SeqStack()Init_SeqStack()栈判空Empty_SeqStack()charEmpty_SeqStack()入栈函数Push_SeqStack()charPush_SeqStack()出栈函数Pop_SeqStack()charPop_SeqStack()取栈顶函数GetTop_SeqStack()charGetTop_SeqStack()销毁栈Destory_SeqStack()char

7、Destory_SeqStack()2.2.2系统流程图精彩文档实用标准文案开始优先级比较算法Operate算法建立栈存放操作字符存放数据计算结束表达式是否合法输出表达是值输出错误提示图1系统流程图3设计实践3.1基本分析在计算机中,算术表达式的计算往往是通过使用栈来实现的。所以,本表达式求值程序的最主要的数据结构就是栈。可以使用栈来存储输入表达式的操作符和操作数。输入的表达式是由操作数和运算符以及改变运算次序的圆括号连接而成的式子。精彩文档实用标准文案表达式求值是高级语言编译中的一个基本问题,是栈的典型应用实例。任何一个表达式都是由操作数(ope

8、rand)、运算符(operator)和界限符(delimiter)组成的。操作数既可以是常数,也可以是被说明为变量或常量

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。