




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C与C+课程设计报告设计题目: 专 业 班 级 学 生 学 号 指导教师 起止时间 2013年 秋季 学期 一、具体任务 题目:后缀表达式求值基本要求:使用模板设计后缀表达式求值,模拟一个计算器操作。要求定义一个计算器类,模拟后缀表达式的计算过程。例如:四则运算式32*6-15+35,后缀表达 式为32 6 15 - * 35 + 。 二、软件环境win7下的VC+6.0三、算法思想使用一个存放操作数的栈,求值过程顺序扫描后缀表达式,每次遇到操作数便将它压入堆栈;遇到运算符,则从栈中弹出两个操作数进行计算,然后再把结果压入堆栈。这样,等到扫描结束时,留在栈顶的整数就是所求表达式的值。四、源代码#include#include#include#include#include#define LEN sizeof(Stack)#define MaxSize 100using namespace std;struct stufloat dataMaxSize;int top;*st;structchar ch;int pri;lpri= =,0,(,1,*,5,/,5,+,3,-,3,),6 ,rpri= =,0,(,6,*,4,/,4,+,2,-,2,),1 ;char postexpMaxSize;/后缀表达式int index=0;/用来启示录POSTEXP原素位置char exMaxSize;/表达式int count;/计算位数typedef struct stackchar chMaxSize;int top;Stack;void InitStack(Stack *&s)s=(Stack*)malloc(LEN);s-top=-1;void Free(Stack *&s)free(s);int change_into_dig(int i,int l,char e)int j,power=0;int s=0;count=1;for(j=i+1;j=48 & ej=i)s=s+(ej-48)*pow(10,power);j-;power+;return s;void PushStack(Stack *&s,int elem)if(s-top=MaxSize-1)coutfulltop+;s-chs-top=elem;int compare(char ex,char op)int pri_ex,pri_op;for(int i=0;ipri_op)return 1;else if(pri_ex=pri_op)return 0;elsereturn -1;void Pop(Stack *&s)if(s-top=-1)coutemptytop-;void tran(Stack *&op) int l,i,k,s,value;l=strlen(ex);for(i=0;i=48 & exi=48 & exj=57 & j=48&exk=57&kchop-top)case 1:PushStack(op,exi);break;case 0:Pop(op);break;case -1:postexpindex+=op-chop-top;op-top-;i-; while(op-chop-top!=)postexpindex+=op-chop-top-;postexpindex=0;float compvalue()st=(struct stu*)malloc(sizeof(struct stu) );st-top=-1;int value;int i,l;l=strlen(postexp);for(i=0;i=48&postexpitop+;st-datast-top=value;i=i+count; else if(postexpi=s|postexpi=c|postexpi=t)value=change_into_dig(i+1,strlen(postexp),postexp);coutvalueendl;float tri_value;switch(exi)case s:tri_value=sin(value);break;case c:tri_value=cos(value);break;case t:tri_value=tan(value);break;couttri_valuetop+;st-datast-top=tri_value;i=i+count+1;elsechar c=postexpi;int v1=st-datast-top-,v2=st-datast-top-,v;switch(c)case +:v=v1+v2;st-data+st-top=v;break;case -:v=v2-v1;st-data+st-top=v;break;case *:v=v1*v2;st-data+st-top=v;break;case /:if(v1=0)coutv1 cant be zerodata+st-top=v;break;return st-datast-top;int main()Stack *op;InitStack
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 气缸活塞模型课件
- 少儿口才资料课件
- 打地鼠幼儿课件
- 汽车技术面试试题及答案
- 广播电台技术岗位试题及答案
- 辅警法制培训课件
- 湖北省孝感市2025-2026学年高二上学期9月月考考试历史试卷
- 中国银行2025酒泉市秋招笔试英语题专练及答案
- 建设银行2025九江市秋招结构化面试经典题及参考答案
- 工商银行2025嘉峪关市秋招半结构化面试题库及参考答案
- 2025年乡村振兴考试题及答案
- 燃气智慧燃气行业数字化转型
- 法律援助法普法活动方案
- 光伏电站建设安全总监岗位职责
- 报废汽车回收拆解企业技术规范
- 特种设备重大事故隐患判定准则试题及答案
- 三级安全教育试题及答案
- 高效农贸市场管理与运营合作协议
- 脱硝培训试题一及答案
- 两人合伙贷款合同范本
- 人工智能全套课件下载
评论
0/150
提交评论