




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程设计源代码:表达式求值 0900340131 张宁 2011.6.26 #include#include/*函数功能:将数字字符串转变成相应的数 */*函数参数:char类型数组f,指向int类型变量的指针i*/*函数返回值:int类型。返回数字字符串对应的数 */int readnumber(char f,int *i)int x=0;while(f*i=0&f*i=0&fi=9) /*字符如果是数字字符*/obsttop=readnumber(f,&i); /*调用函数将其转化成整型*/top+; /*入栈*/else if(fi= ) /*遇到空格,跳过去,不进行处理*/i+; else if(fi=+) /*如果字符是运算符+,则从操作数栈中取出两个元素进行相加*/x2=obst-top;x1=obst-top;obsttop=x1+x2; /*将运算结果入栈*/top+;i+; /*继续下一个字符*/else if(fi=-) /*如果字符是运算符-,则从操作数栈中取出两个元素进行相减*/x2=obst-top;x1=obst-top;obsttop=x1-x2; /*将运算结果入栈*/top+;i+; /*继续下一个字符*/else if(fi=*) /*如果字符是运算符*,则从操作数栈中取出两个元素进行相乘*/x2=obst-top;x1=obst-top;obsttop=x1*x2;/*将运算结果入栈*/top+;i+;/*继续下一个字符*/else if(fi=/) /*如果字符是运算符/,则从操作数栈中取出两个元素进行相除*/x2=obst-top;x1=obst-top;obsttop=x1/x2;/*将运算结果入栈*/top+;i+;/*继续下一个字符*/return obst0; /*最后栈中只剩下一个元素,即为后缀表达式的值*/*函数功能:判断一个字符是否为运算符 */*函数参数:char类型变量op */*函数返回值:int类型。返回1表示op是运算符,否则不是*/int is_operation(char op)switch(op)case +:case -:case *:case /:return 1;default:return 0;/*函数功能:求运算符的优先级 */*函数参数:char类型变量op */*函数返回值:int类型。返回各中运算符的优先级*/int priority(char op)switch(op)case #:return -1;case (:return 0;case +:case -:return 1;case *:case /:return 2;default:return -1;/*函数功能:判断该表达式是符合要求 */*函数参数:存放从键盘输入的表达式 */*函数返回值:int类型。1代表正确,0代表错误 */int judge(char * a)int i=0,flog=1, b5=0; /x1记录运算符的个数,while(ai!=#)if(ai=+|ai=-|ai=/|ai=*)b0+;else if(0=ai&ai=0&ei=priority(ei) /*判断数组e和栈顶的操作符的优先级,大的,赋值给数组f*/fj+=opst-top;opsttop=ei;top+; /*当前元素进栈*/i+; /*处理下一个元素*/while(top) /*栈中还有的全部运算符赋值到数组f中,包括#*/fj+=opst-top; main()int i=0,result,flog=0,flog2=0;char a100,b100,x,w; /*数组a用来保存中缀表达式,数组b用来表达后缀表达式,*/printf(n);printf( 0代表退出系统 n);printf( 1代表输入算术表达式 n);printf( 2代表判断输入的算术表达式的正确性 n);printf( 3代表查看算术表达式的中缀表达式 n);printf( 4代表查看算术表达式的后缀表达式 n);printf( 5代表给出输入的算术表达式的最终结果 n);printf( 规定:第一步必须先输入算术表达式,然后才能进行其他的操作 n);printf(n); printf(版权所有,盗版必究 张宁 2010/6/24 nnn);doprintf(请输入您要操作所对应的数字: );fflush(stdin);scanf(%c,&x);if(48=x&x=53)switch(x)case 1:if(flog=1)printf(您已经输入过表达式了!进行此操作需要重新输入,请问你是否要继续操作!n);printf(继续,请输入y;n返回,请输入nn); dofflush(stdin); /*清楚缓存中的回车*/scanf(%c,&w);if(w=n)printf(您的操作已取消!nnn);break;else if(w=y)printf(请输入算术表达式:(以#号结尾!) );i=0;doscanf(%c,&ai);while(ai+!=#);flog=1;printf(nnn);break;elseprintf(请输入正确的选项!n);while(w!=n&w!=y);elseprintf(请输入算术表达式:(以#号结尾!) );doscanf(%c,&ai);while(ai+!=#);flog=1;printf(nnn);break;case 2:if(flog=0)printf(您还没有输入过表达式!n请您按照规定先输入后判断!nnn);elseflog2=1;if(judge(a)printf(表达式符合要求!n您可以继续下面的操作!n);elseprintf(表达式不符合要求!n请重新输入!n);break;break;case 3:if(flog=0)printf(您还没有输入过表达式!n请您按照规定先输入后算术表达式的中缀表达式nnn);break;else if(flog2=0)printf(您还没有判断表达式的正确性!n请您按照规定先判断表达式的正确性后查看算术表达式的中缀表达式 nnn);break;elseprintf(中缀表达式为:);i=0;doprintf(%c,ai);while(ai+!=#); /*i+;*/printf(nnn);break;case 4:if(flog=0)printf(您还没有输入过表达式!n请您按照规定先输入后算术表达式的中缀表达式nnn);break;else if(flog2=0)printf(您还没有判断表达式的正确性!n请您按照规定先判断表达式的正确性后查看算术表达式的中缀表达式 nnn);break;elsepostfix(a,b);printf(后缀表达式为:n);i=0;doprintf(%c,bi);while(bi+!=#); /*i+;*/printf(nnn);break;case 5:fflush(stdin);if(flog=0)printf(您还没有输入过表达式!n请您按照规定先输入表达式nnn);break;else if(flog2=0)printf(您还没有判断表达式的正确性!n请您按照规定先判断表达式的正确性后查看算术表达式的中缀表达式 nnn);break;else /*postfix(a,b);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-湖南-湖南保健按摩师三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖北-湖北水生产处理工一级(高级技师)历年参考题库含答案解析
- 生鲜电商“最后一公里”配送时效性研究报告
- 中药配方颗粒行业标准与市场竞争格局研究报告
- 2025-2030中国红木市场供应渠道及应用前景趋势预测报告
- 2025年环保设备市场细分领域竞争与创新驱动因素研究报告
- 探究2025年绿色供应链管理在建筑材料制造业的应用与推广策略报告
- 2025年事业单位工勤技能-河南-河南殡葬服务工四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-河南-河南家禽饲养员一级(高级技师)历年参考题库典型考点含答案解析
- 2024版培训教室出租协议
- 公司安全事故隐患内部举报、报告奖励制度
- 【初中物理】质量与密度练习题 2024-2025学年初中物理人教版八年级上册
- 南外初中小语种课程设计
- 【上海市塑料探究所企业员工激励机制存在的问题及优化建议探析(论文)8200字】
- Unit2 Whats your hobby-教案人教精通版英语六年级上册
- 【必刷题】2024五年级英语上册一般过去时专项专题训练(含答案)
- T-CTSS 86-2024 原味茶饮料标准
- NB-T 10436-2020 电动汽车快速更换电池箱冷却接口通.用技术要求
- 简易财务报表附注模板
- 电梯安全总监和安全员的任命文件
- 2024-2029年亚麻行业市场现状供需分析及市场深度研究发展前景及规划投资研究报告
评论
0/150
提交评论