- 34
- 0
- 约8.37千字
- 约 13页
- 2018-04-28 发布于湖北
- 举报
《数据结构 课程设计》表达式求值 实验报告[精品]
实验课程名称
专 业 班 级
学 生 姓 名
学 号
指 导 教 师
20 至 20 学年第 学期第 至 周
算术表达式求值演示
概述
数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
在这次的课程设计中我选择的题目是算术表达式求值演示。表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子。设计一个程序,演示用算符优先法对算术表达式求值的过程。深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们,同时加深对这种结构的理解和认识。
二、 系统分析
?
以字符列的形式从终端输入语法正确的、不含变量的整数表达式。利用已知的算符优先关系,实现对算术四则混合运算表达式的求值,并仿照教科书的例子在求值中运算符栈、运算数栈、输入字符和主要操作的变化过程。
一般来说,计算机解决一个具体问题时,需要经过几个步骤:首先要从具体问题抽象出一个适当的数学模型,然后设计一个解决此数学模型的算法,最后编出程序,进行测试,直至得到想要的答案。对于算术表达式这个程序,主要利用栈,把运算的先后步骤进行分析并实现简单的运算
程序执行时的命令:
本程序为了使用具体,采用菜单式的方式来完成程序的演示,几乎不用输入什么特殊的命令,只需按提示输入表达式即可。(要注意输入时格式,否者可能会引起一些错误)
5. 测试数据。
三、 概要设计
一个算术表达式中除了括号、界限符外,还包括运算数据和运算符。由于运算符有优先级别之差,所以一个表达式的运算不可能总是从左至右的循序执行。每次操作的数据或运算符都是最近输入的,这与栈的特性相吻合,故本课程设计借助栈来实现按运算符的优先级完成表达式的求值计算。
算法设计
程序包含三个模块
(1) 主程序模块,其中主函数为
void main{
输入表达式;
根据要求进行转换并求值;
输出结果;
}
(2) 表达式求值模块——实现具体求值。
(3) 表达式转换模块——实现转换。
各个函数之间的调用关系
栈的抽象数据类型定义ADT SqStack{
数据对象:D={ai| ai ∈ElemSet,i=1,2,3……,n,n≥0}
数据关系:R1={ai-1,ai| ai-1,ai ∈D,i=1,2,3,……,n}
约定其中ai端为栈底,an端为栈顶。
操作集合:
}ADT SqStack
结构分析:
栈中的数据节点是通过数组来存储的因为在C语言中数组是用下标从零开始的,因此我们在调用他们的数据是要特别注意。指针变量的值要么为空(NULL),不指向任何结点;要么其值为非空,即它的值是一个结点的存储地址。注意,当P为空值时,则它不指向任何结点,此时不能通过P来访问结点,否则会引起程序错误。如果输入的数字不符合题目要求,则会产生错误结果。算法的时空分析:
#includeiostream
using namespace std;
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef struct //运算符栈
{
char *base;
char *top;
int stacksize;
}SqStack1;
typedef struct //运算数栈
{
float *base;
float *top;
int stacksize;
}SqStack2;
void InitStack1(SqStack1 S1);//声明栈建立函数
void InitStack2(SqStack2 S2);//声明栈建立函数
void evaluate(SqStack1 S1,SqStack2 S2);//确定如何入栈函数
void Push1(SqStack1 S1,char e);//声明入栈函数
void Push2(SqStack2 S2,float e);//声明入压栈函数
char GetTop1(SqStack1 S1);//声明取栈顶元素函数
float GetTop2(SqStack2 S2);//声明取栈顶元素函数
char Pop1(SqStac
您可能关注的文档
最近下载
- 2025第5版共识指南:术后恶心呕吐的管理(概要)解读PPT课件.pptx VIP
- 专题07 5天速记2025年修订版课标新增词汇(知识清单)(背诵版).docx VIP
- 八篇2025年度民主生活会个人“五个方面”对照检查发言材料.docx VIP
- 专题07 5天速记2025年修订版课标新增词汇(知识清单)(默写版) .docx VIP
- 2025年度民主生活会个人对照检查发言材料 八篇.docx VIP
- 04-6 班子对照-高校党委领导班子2025年度民主生活会对照检查材料.docx VIP
- Philips 飞利浦Series 1200 全自动浓缩咖啡机 EP1221 82产品支持与说明书 全自动浓缩咖啡机.pdf
- 2024年枣庄科技职业学院单招职业技能测试题库及答案解析.docx VIP
- 全髋置换术后护理查房 (2).pptx VIP
- 纯碱,新生焕发,景气不减.pdf VIP
原创力文档

文档评论(0)