全球旧事资料 分类
完美WORD格式
实习报告
题目:设计一个演示用运算优先法对算数表达式求值过程的程序。班级:姓名:学号:完成日期:一、需求分析1建立运算数栈SqStack1和运算符栈SqStack2辅助分析算符有限关系2用户输入以“”结尾的算数表达式,本程序需要用户自行输入表达式(运算符可以是加();减();乘();除();括号(())),以字符形式读入,在读入的同时,完成运算符和运算数的识别处理,在识别出运算数的同时,要将其字符序列形式转换成整数形式。3在程序的适当位置输出运算符栈、运算数栈、输入字符和主要操作的内容,即演示运算操作。4测试数据见原题。5程序执行的命令包括:
(1)建立算数表达式;(2)得到运算表达式的值;(3)演示运算过程。二、概要设计1设定栈的抽象数据类型定义:ADTStack数据对象
D=aiai∈charSeti12
≥0
专业整理知识分享
f完美WORD格式
数据关系:R1=ai1aiai1ai∈Di2
(约定a
端为栈顶,a1端为栈底)
基本操作:I
itStack(S)操作结果:构造一个空栈S。GettopSe初始条件:栈S已存在。操作结果:若栈S不空,则以e返回栈顶元素。PushSe初始条件:栈S已存在。操作结果:插入元素e为新的栈顶元素。PopSe初始条件:栈S已存在且非空。操作结果:删除S的栈顶元素,并用e返回其值。
ADTStack2本程序包括三个模块(1)主程序模块:Voidmai
初始化;函数;
专业整理知识分享
f完美WORD格式
(2)栈模块实现栈抽象数据类型(3)运算模块实现运算并演示其过程模块各模块之间调用关系如下:
主程序模块
运算模块
栈模块
三、详细设计
1、元素类型、结点类型
typedefstruct
i
tbase
i
ttop
i
tstacksize
SqStack1
操作数栈
typedefstruct
charbase
chartop
i
tstacksize
SqStack2
操作符栈
专业整理知识分享
f完美WORD格式
2、栈类型
typedefstruct
charbase
chartop
i
tstacksize
Stack
栈类型
栈的基本操作设置如下:
voidI
itStackStackS
初始化,设S为空栈(StopNULL)
StatusGetTopStackSElemTypee
若栈S不空,则以e带回栈顶元素并返回TRUE,否则返回FALSE
StatusPushStackSElemTypee
若分配空间成功,则在S的栈顶插入新的栈顶元素e,并返回TRUE,
否则返回FALSE其中部分操作的算法:
StatusPushStackSElemTypee

若分配空间成功,则在S的栈顶插入新的栈顶元素e,并返回TRUE;
否则栈不变,并返回FALSE
ifMakeNodepe
P
extStopStopp
Ssize
Retur
TRUE
专业整理知识分r
好听全球资料 返回顶部