- 3
- 0
- 约1.13万字
- 约 18页
- 2020-07-09 发布于天津
- 举报
航空航天大学
课 程 设 计 报 告
课程设计名称: 数据结构课程设计
课程设计题目: 算术表达式求值算法
院(系):计算机学院
专 业:计算机科学与技术
班 级:
学 号:
姓 名:
指导教师:丁国辉
完成日期: 2013年 01月 11日
目 录
第 1章 概要设计 1
1.1题目的容与要求 1
1.2总体结构 1
第2章 详细设计 3
2.1栈的顺序存储模块 3
2.2进栈模块 3
2.3出栈模块 4
2.4运算模块 4
2.5判断优先级模块 5
2.6处理表达式主体模块 6
第3章 调试分析 8
第4章 运行结果 9
参考文献 11
附 录(程序清单) 12
第 1 章 概要设计
1.1 题目的容与要求
容:设计程序,其能够求解任意给定算数表达式的值,算数表达式中的操作
符来自于集合 {+ ,-, * ,\} ,表达式允许包括小括号“ ()”,表达式的输入以
“# ”作为结束标志。
要求:
1) 利用栈结构实现表达式求值算法, 即在约定的条件下, 正确输入表达
式,经过程序的运行之后,给出表达式的值;
2) 系统利用 C 语言实现;
3) 独立完成系统的设计、编码和调试。
1.2 总体结构
本程序主要分为六个模块(主要算法模块图见图 1.1 ):栈的顺序存储模块、
进栈模块、出栈模块、运算模块、判断优先级模块、处理表达式主体模块。栈的
顺序存储模块:分别建立两个栈,第一个用来存储运算符,第二个是用来存储数
字。进栈模块:运算符和数字分别存储在运算符栈和数字栈中,以便运算时的调
用。出栈模块:由于运算的需要,就必须把运算符和数字分别从运算符栈和数字
栈中取出来。 运算模块: 程序在遇到运算符的时候, 根据此模块的要求进行运算。
判断优先级模块:找出栈顶算符和即将入栈算符的对应的下标,然后根据算符间
的优先关系表判断出算符的优先关系。处理表达式主体模块:结合运算模块和判
断优先级模块,对表达式进行系统处理,求出算数表达式的值。
算术表达式求值算法
栈 进 出 运 判 处
的 栈 栈 算 断 理
顺 模 模 模 优 表
序 块 块 块 先 达
存 级 式
储 模 主
模 块 体
块
原创力文档

文档评论(0)