编译原理一个简单的计算器程序

上传人:lil****ar 文档编号:281913372 上传时间:2022-04-25 格式:DOCX 页数:4 大小:33.81KB
返回 下载 相关 举报
编译原理一个简单的计算器程序_第1页
第1页 / 共4页
编译原理一个简单的计算器程序_第2页
第2页 / 共4页
编译原理一个简单的计算器程序_第3页
第3页 / 共4页
编译原理一个简单的计算器程序_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《编译原理一个简单的计算器程序》由会员分享,可在线阅读,更多相关《编译原理一个简单的计算器程序(4页珍藏版)》请在金锄头文库上搜索。

1、1 实验目的 设计、实现一个简单的计算器程序2 实验原理 2.1 多项式计算器的实现,采用后缀表达式来对输入的计算表达式进行计算。 2.2 对后缀表达式进行符号识别、词法分析、语法分析。 3. 主要仪器设备 操作系统:WindowsXP 开发语言:Visual Studio C+6.04. 主要内容和步骤 将表达式转换为后缀表达式, 编写程序源代码。5 软件编程与设计#include#include#define MaxSize 99void translate(char str,char exp) /*将算术表达式转换成后缀表达式*/ struct char dataMaxSize; int

2、 top; /*top为栈顶*/ op; /*定义一个含data和top的结构体*/ char ch; int i = 0,t = 0; op.top = -1; ch = stri; /*将str的每一个数转换成ch*/ i+; while(ch != 0) /*ch对应不同的符号的时候对应的转换情况*/ switch(ch) case (: /*当是(的时候,将此括号存入栈op*/ op.top+;op.dataop.top=ch; break; case ): while(op.dataop.top != () /*括号内的转换优先级最高,故先提取表达式*/ expt=op.dataop

3、.top; op.top-; t+; op.top-; break; case +: case -: while(op.top != -1&op.dataop.top != () expt = op.dataop.top; op.top-; t+; op.top+; /*恢复可插入位置*/ op.dataop.top = ch; break; case *: case /: while(op.top = /|op.top = *) /*优先级*/ expt = op.dataop.top; op.top-; t+; op.top+; op.dataop.top = ch; break; cas

4、e : /*忽略空格,排除误操作*/ break; default: while(ch = 0&ch = 0&ch = 9) /*从后缀表达式中获取操作数,#作用在此体现*/ d = 10*d+ch-0; ch = expt; t+; st.top+; st.datast.top = d; ch = expt; t+; return st.datast.top;int main() /*可以提到前面去*/ char strMaxSize,expMaxSize; /*str为算术表达式,exps为后缀表达式*/ printf(请输入一个求值表达式n); gets(str); /*输入一个算术表达式*/ printf(原表达式是:%sn,str); translate(str,exp); /*将算术表达式转换成后缀表达式*/ printf(后缀表达式:%sn,exp); printf(计算结果:%gn,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号