(完整word版)编译原理计算器C++实现(word文档良心出品).pdf
《(完整word版)编译原理计算器C++实现(word文档良心出品).pdf》由会员分享,可在线阅读,更多相关《(完整word版)编译原理计算器C++实现(word文档良心出品).pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#include#include#include#include using namespace std;enum types DELIMITER=1,VARIABLE,NUMBER;/定义枚举类型把DELIMITER初试化为1 后面的相应的是前面值+1 class parser char*exp_ptr;/定义一个指向表达式的指针char token80;/存储表达式中的字符变量char tok_type;/存储具体是什么类型void eval_exp2(double&result);void eval_exp3(double&result);void eval_exp4(double&re
2、sult);void eval_exp5(double&result);void eval_exp6(double&result);void atom(double&result);void get_token();void serror(int error);int isdelim(char c);public:parser();/类的构照函数double eval_exp(char*exp);/类构照函数的具体实现parser:parser()exp_ptr=NULL;/把 exp_ptr 的指针初始化为空/方法 eval_exp 的具体实现过程double parser:eval_exp
3、(char*exp)double result;exp_ptr=exp;/把传递过来的参数exp 负给 exp_ptr get_token();if(!*token)serror(2);/输出没有任何表达式的错误信息return 0.0;eval_exp2(result);if(*token)serror(0);/last token must be null return result;/两个变量字符是加或者减操作void parser:eval_exp2(double&result)register char op;double temp;eval_exp3(result);while(o
4、p=*token)=+|op=-)get_token();eval_exp3(temp);switch(op)case-:result=result-temp;break;case+:result=result+temp;break;/两个变量是乘或者除操作或者是取余void parser:eval_exp3(double&result)register char op;double temp;eval_exp4(result);while(op=*token)=*|op=/|op=%)get_token();eval_exp4(temp);switch(op)case*:result=res
5、ult*temp;break;case/:文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7
6、U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:
7、CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7
8、HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 Z
9、X7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编
10、码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A
11、7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5result=result/temp;break;case%:result=(int)result%(int)temp;break;/进行 运算void parser:eval_exp4(double&result)dou
12、ble temp,ex;register int t;eval_exp5(result);if(*token=)get_token();eval_exp4(temp);ex=result;if(temp=0.0)result=1.0;return;for(t=(int)temp-1;t0;-t)result=result*(double)ex;void parser:eval_exp5(double&result)register char op;op=0;if(tok_type=DELIMITER)&*token=+|*token=-)op=*token;get_token();eval_e
13、xp6(result);if(op=-)result=-result;/进行有括号的算法void parser:eval_exp6(double&result)文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5
14、A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y
15、2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5
16、文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3
17、L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T
18、2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3U5文档编码:CQ10M5M3L5A7 HN5E1P4T2Y2 ZX7U6M7J3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 编译 原理 计算器 C+ 实现 文档 良心 出品
限制150内