简单计算器程序设计.doc
《简单计算器程序设计.doc》由会员分享,可在线阅读,更多相关《简单计算器程序设计.doc(7页珍藏版)》请在三一办公上搜索。
1、课程名称 编译原理 实验名称 简单计算器程序设计 姓 名 学 号 专业班级 实验日期 成 绩 指导老师 (实验目的实验原理主要仪器设备实验内容与步骤实验数据记录与处理实验结果分析问题建议)1.实验目的(1)加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用;(2)熟悉 Microsoft Visual C+6.0 的运行环境。(3)通过此次实验熟悉自己的编程能力。2.实验要求所做出的计算器代码不仅能够实验简单的加减乘除运算,而且还必须能够实现对表达式的操作。3.实验环境本次实验在vc6.0环境下编译通过。4.设计思想和原理(1)定义部分:定义常量、变量、数据结构;(2)初始化:设立LR
2、(1)分析表、初始化变量空间(包括堆栈、结构体、数组、临时变量等);(3)控制部分:从键盘输入一个表达式符号串; (4)利用 LR(1)分析算法进行表达式处理:根据 LL(1)分析表对表达式符号串进行堆栈(或 其他)操作,输出分析结果,如果遇到错误则显示错误信息.5.程序源代码#include#include#include#include#includetypedef float DataType;typedef structDataType *data;int max;int top;Stack;void SetStack(Stack *S,int n)S-data=(DataType*)
3、malloc(n*sizeof(DataType);if(S-data=NULL)printf(overflow);exit(1);S-max=n;S-top=-1;void FreeStack(Stack *S)free(S-data);int StackEmpty(Stack *S)if(S-top=-1)return(1);return(0);DataType Peek(Stack *S)if(S-top=S-max-1)printf(Stack is empty!n);exit(1);return(S-dataS-top);void Push(Stack *S,DataType ite
4、m)if(S-top=S-max-1)printf(Stack is full!n);exit(1);S-top+;S-dataS-top=item;DataType Pop(Stack *S)if(S-top=-1)printf(Pop an empty stack!n);exit(1);S-top-;return(S-dataS-top+1);typedef structchar op;int inputprecedence;int stackprecedence;DataType1;typedef structDataType1 *data;int max;int top;Stack1;
5、void SetStack1(Stack1 *S,int n)S-data=(DataType1*)malloc(n*sizeof(DataType1);if(S-data=NULL)printf(overflow);exit(1);S-max=n;S-top=-1;void FreeStack1(Stack1 *S)free(S-data);int StackEmpty1(Stack1 *S)if(S-top=-1)return(1);return(0);DataType1 Peek1(Stack1 *S)if(S-top=S-max-1)printf(Stack1 is empty!n);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 计算器 程序设计
链接地址:https://www.31ppt.com/p-2386066.html