算术表达式求值演示-课程设计报告.doc

算术表达式求值演示-课程设计报告.doc

ID:57649023

大小:1.60 MB

页数:11页

时间:2020-08-30

算术表达式求值演示-课程设计报告.doc_第1页
算术表达式求值演示-课程设计报告.doc_第2页
算术表达式求值演示-课程设计报告.doc_第3页
算术表达式求值演示-课程设计报告.doc_第4页
算术表达式求值演示-课程设计报告.doc_第5页
资源描述:

《算术表达式求值演示-课程设计报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、题目:算术表达式求值演示班级:031021班姓名:李鑫学号:03102067完成日期:2011.12一、需求分析1.问题描述:表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个经典例子。设计一个程序演示用算符优先法对算术表达式求值的过程。2.基本要求:利用教科书表3.1给出的算符优先关系,实现对算术四则混合运算表达式的求值。3.测试数据:教科书例3-1的算术表达式3*(7-2)。二、概要分析栈的抽象数据类型定义ADTSqStack{数据对象:D={ai

2、ai∈ElemSet,i=1,2

3、,3……,n,n≥0}数据关系:R1={

4、ai-1,ai∈D,i=1,2,3,……,n}约定其中ai端为栈底,an端为栈顶。操作集合:(1)voidInitStack1(SqStack1&S1);//声明栈建立函数(2)voidInitStack2(SqStack2&S2);//声明栈建立函数(3)voidevaluate(SqStack1&S1,SqStack2&S2);//确定如何入栈函数(4)voidPush1(SqStack1&S1,chare);//声明入栈函数(5)v

5、oidPush2(SqStack2&S2,floate);//声明入压栈函数(6)charGetTop1(SqStack1&S1);//声明取栈顶元素函数(7)floatGetTop2(SqStack2&S2);//声明取栈顶元素函数(8)charPop1(SqStack1&S1);//声明出栈函数(9)floatPop2(SqStack2&S2);//声明出栈函数(10)charCompare(charm,charn);//声明比较函数(11)floatOperate(floata,charrh

6、eta,floatb);//声明运算函数(12)voidDispStack1(SqStack1&S1);//从栈底到栈顶依次输出各元素(13)voidDispStack2(SqStack2&S2);//从栈底到栈顶依次输出各元素}ADTSqStack三、详细设计10源程序#includeusingnamespacestd;#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10typedefstruct//运算符栈{char*base;c

7、har*top;intstacksize;}SqStack1;typedefstruct//运算数栈{float*base;float*top;intstacksize;}SqStack2;voidInitStack1(SqStack1&S1);//声明栈建立函数voidInitStack2(SqStack2&S2);//声明栈建立函数voidevaluate(SqStack1&S1,SqStack2&S2);//确定如何入栈函数voidPush1(SqStack1&S1,chare);//声明入

8、栈函数voidPush2(SqStack2&S2,floate);//声明入压栈函数charGetTop1(SqStack1&S1);//声明取栈顶元素函数floatGetTop2(SqStack2&S2);//声明取栈顶元素函数charPop1(SqStack1&S1);//声明出栈函数floatPop2(SqStack2&S2);//声明出栈函数charCompare(charm,charn);//声明比较函数floatOperate(floata,charrheta,floatb);//声明

9、运算函数voidDispStack1(SqStack1&S1);//从栈底到栈顶依次输出各元素voidDispStack2(SqStack2&S2);//从栈底到栈顶依次输出各元素/*主函数*/voidmain(){SqStack1S1;//定义运算符栈10SqStack2S2;//定义运算数栈//freopen("data1.in","r",stdin);//freopen("data1.out","w",stdout);InitStack1(S1);//调用栈建立函数InitStack2(S2

10、);//调用栈建立函数evaluate(S1,S2);//调用确定如何入栈函数cout<<"按任意键结束!"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。