表达式类型的实现毕业设计(论文)(已处理)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

表达式类型的实现毕业设计(论文)(已处理)课程设计表达式类型的实现

学院计算机学院专业计算机科学与技术年级班别 2006级01班学号3106006394

学生姓名方锐洲辅导教师__ 吴伟民_______ 成绩_______ ______

2008年7月 3 日

表达式类型的实现

目录

一需求分析

二概要设计

1数据类型的声明

2表达式的抽象数据类型定义

3整体设计

三详细设计

1二叉树的存储类型

2顺序栈的存储类型

3表达式的基本操作

4主程序和其他伪码算法

5函数的调用关系

四设计和调试分析

五用户手册

六测试

七课程设计的心得和心得以及问题-----18

八参考文献

九附录程序清单

一需求分析课程设计要求

问题的描述

一个表达式和一棵二叉树之间存在着自然的对应关系写一个程序实现

基于二叉树表示的算术表达式Expression的操作

基本要求

一必做部分

假设算术表达式Expression内可以含有变量a-z常量0-9和二元运算

符-乘幂实现以下操作

1ReadExpr E ――以字符序列的形式输入语法正确的前缀表达式并构造

表达式E

2WriteExpr E ――用带括号的中缀表达式输出表达式E

3Assign Vc ――实现对变量V的赋值V c变量的初值为0

4Value E ――对算术表达式E求值

5CompoundExpr pE1E2 ――构造一个新的复合表达式E1pE2

二选做部分

1以表达式的原书写形式输入支持大于0的正整数常量 2增加常数合并操作MergeConst E 合并表达式E中所有常数运算例如对表

达式E 23-a b34 进行合并常数的操作后求得E 5-a b12 测试数据

分别输入0a-91abc5x28x32x2x6并输出

每当输入一个表达式后对其中的变量赋值然后对表达式求值还有很多测试的数据详细请见附上的文件Testtxt 二概要设计

1数据类型的声明

在这个课程设计中采用了链表二叉树的存储结构以及两个顺序栈的辅助

存储结构

头文件以及存储结构

include

include

include

include

define TRUE 1

define FALSE 0

define OK 1

define ERROR 0

define OVERFLOW 0

typedef int Status

2表达式的抽象数据类型定义

ADT Expression

数据对象DD是具有数值的常量C和没有数值的变量V

数据关系R V或者C P V或者C VC?D V或者C P V或者C 表示由运算符P结合起来的表达式E

基本操作

Status Input_Expr stringflag

操作结果以字符序列的形式输入语法正确的前缀表达式保存到字符串string 参数flag表示输出的提示信息是什么输入成功返回OK否则返回ERROR void judge_value Estringi

初始条件树E存在表达式的前缀字符串string存在

操作结果判断字符string[i]如果是0-9常量之间二叉树结点E存为整型否则存为字符型

Status ReadExpr Eexprstring

初始条件表达式的前缀形式字符串exprstring存在

操作结果以正确的前缀表示式exprstring并构造表达式E构造成功返回OK否则返回ERROR

Status Pri_Compare c1c2

初始条件c1和c2是字符

操作结果如果两个字符是运算符比较两个运算符的优先级c1比c2优先返回OK 否则返回ERROR

void WriteExpr E

初始条件表达式E存在

操作条件用带括弧的中缀表达式输入表达式E

void Assign EVcflag

初始条件表达式E存在flag为标志是否有赋值过

操作结果实现对表达式E中的所有变量V的赋值 V c long Operate

opr1opropr2

初始条件操作数opr1和操作数opr2以及操作运算符opr 操作结果运算符运算求值参数opr1opr2为常量opr为运算符根据不同的运

算符实现不同的运算返回运算结果

Status Check E

初始条件表达式E存在

操作结果检查表达式E是否还存在没有赋值的变量以便求算数表达式E的值long Value E

初始条件表达式E存在

操作结果对算术表达式求值返回求到的结果

void CompoundExpr PE1E2

初始条件表达式E1和E2存在

操作条件构造一个新的复合表达式 E1 P E2

Status Read_Inorder_Expr stringpre_expr

操作结果以表达式的原书写形式输入表达式的原书写形式字符串string变为字符串pre_expr后调用reversal_string 函数反转得到前缀表达式

pre_expr得到正确的前缀表达式返回OK否则返回ERROR

void MergeConst E

操作结果常数合并操作合并表达式E中所有常数运算

ADT Expression

3整体设计

在这个课程设计中有两个源代码文件expressionh和expressionc

在expressionh文件中包含了各个存储结构的声明和辅助存储结构的两个栈的基本操作在expressionc文件中是实现课程设计要求的各个函数

《一》expressionh文件的整体结构

1各个存储结构的声明

2两个除了栈名和栈存储的元素不一样的顺序栈的基本操作其基本操作如下对于栈SqStack

Status InitStack SqStack S 构造一个空栈S

Status StackEmpty SqStack S 若栈S为空栈则返回TRUE否则返回FALSE Status Push SqStack SSElemType e 插入元素e为新的栈顶元素

相关文档
最新文档