- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实习报告
题目:编制一个演示表达式求值的操作的程序
班级:计算机(信息安全) 姓名:学号: 完成日期:2009.3.27
需求分析
本演示程序中,元素限定为int整型和char型。
演示程序以用户和计算机的对话方式执行,即在计算机终端显示“提示信息“后,由用户在键盘上输入演示程序中规定的数值和运算符;相应的结果会显示其后。
程序执行命令包括:
根据用户给出的表达式进行运算 2)输出结果
测试数据
用户输入:1+2# 结果:3
用户输入:12*(2+3)# 结果:60
用户输入:13+5*(23+129)-187# 结果:586
概要设计
为实现上述程序功能,需要一个抽象数据类型:栈
1.栈的抽象数据类型定义为:
ADT Stack {
数据对象:D={ai ∈ElemSet …}
数据关系:R={ ai-1,ai…}
基本操作:
InitStack(S); //构造空栈S
DestroyStack(S); //销毁栈S
ClearStack(S); //清空栈S
StackEmpty(S); //判断栈空
StackLength(S); //求栈长
GetTop(S,e); //取栈顶
Push(S,e); //入栈
Pop(S,e); //出栈
StackTraverse(S,visit()); //遍历
} ADT Stack
2.本程序包含四个模块:
1)主程序模块:
main()
{
初始化;
进入用户输入表达式阶段;
根据用户输入的表达式进行计算(利用while循环和栈)
输出运算结果
}
2) 栈单元模块――实现栈抽象数据类型;
3)节点结构单元模块――定义有序表的节点结构。
各模块是之间关系如下:
详细设计
元素类型(此程序固定为int和char) 结点类型
#define STACK_INT_SIZE 100
#define STACKINCREAMENT 10
Typedef char SElemType1;
Typedef int SElemType2;
typedef struct {
SElemType1 *base;
SElemType1 *top;
int stacksize;
} SqStack1; //节点类型(栈)
typedef struct {
SElemType2 *base;
SElemType2 *top;
int stacksize;
} SqStack2;
2.栈的基本操作:
InitStack(L); //构造空栈L
GetTop(L,e); //取栈顶
Push(L,e); //入栈
Pop(L,e); //出栈
栈部分操作伪码:
InitStack1(SqStack1 L){ //初始化栈
L.base = (SElemType1 *)malloc(STACK_INIT_SIZE *sizeof(SElemType1));
if(!L.base) exit(OVERFLOW);
L.top = L.base; //置空栈
L.stacksize =SIZE_INIT_SIZE; }
InitStack2(SqStack12L){ //初始化栈
L.base = (SElemType2*)
malloc(STACK_INIT_SIZE *sizeof(SElemType2));
if(!L.base) exit(OVERFLOW);
L.top = L.base; //置空栈
L.stacksize =SIZE_INIT_SIZE; }
GetTop1(SqStack1 L){ //取栈顶元素
if(L.top == L.base)
return ERROR; //空
return *(L.top-1);//栈顶指针不变
}
GetTop2(SqS
您可能关注的文档
- javascript上机练习实验报告css使用alart.doc
- 十八项医疗质量安全核心制度解读.ppt
- 华杰芯片公司介绍-2011.pdf
- 人教版四年级数学上册《画垂线》说课稿.doc
- 工艺美术——试题库.doc
- 数据库实验报告_5.doc
- 模拟信号源实验报告.doc
- 新工厂布局规划案例共106页.ppt
- 加油站环境保护奖罚制度.pdf
- 当今世界地区冲突背后的宗教因素和现实根源2011年02月26日 20.doc
- 某区纪委书记年度民主生活会“四个带头”个人对照检查材料.docx
- 某县纪委监委2024年工作总结及2025年工作计划.docx
- 某市场监督管理局2024年第四季度意识形态领域风险分析研判报告.docx
- 县委书记履行全面从严治党“第一责任人”职责情况汇报.docx
- 税务局党委书记2024年抓党建工作述职报告.docx
- 某市税务局副局长202X年第一季度“一岗双责”履行情况报告.docx
- 副县长在全县元旦春节前后安全生产和消防安全工作部署会议上的讲话.docx
- 某市委书记个人述职报告.docx
- 某县长在县委常委班子年度民主生活会个人对照检查材料1.docx
- 某县长在县委常委班子年度民主生活会个人对照检查材料.docx
文档评论(0)