C++语言计算器源代码.pdf

上传人:tbuqq 文档编号:5054655 上传时间:2020-01-30 格式:PDF 页数:26 大小:998.98KB
返回 下载 相关 举报
C++语言计算器源代码.pdf_第1页
第1页 / 共26页
C++语言计算器源代码.pdf_第2页
第2页 / 共26页
C++语言计算器源代码.pdf_第3页
第3页 / 共26页
C++语言计算器源代码.pdf_第4页
第4页 / 共26页
C++语言计算器源代码.pdf_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《C++语言计算器源代码.pdf》由会员分享,可在线阅读,更多相关《C++语言计算器源代码.pdf(26页珍藏版)》请在三一文库上搜索。

1、C+语言编写。 #include #include #include usingnamespacestd; constdoublepi=3.14159265; constdoublee=2.718281828459; constintSIZE=1000; typedefstructnode/ 为了处理符号而建立的链表(如:1+(-2) chardata; node*next; node; typedefstructstack_num/ 存储数的栈 double*top; double*base; stack_num; typedefstructstack_char/ 存储运算符号的栈 char

2、*top; char*base; stack_char; stack_numS_num;/ 定义 stack_charS_char;/ 定义 charfu18=n,),+,-,*,/,%, Q,L,C,S,T,c,s,t,(; intcompare1000;/表现出各运算符号的优先级 doubleshu1000;/存储“数“的数组 doubledai_result;/运算的结果,是为了处理M 运算(简介函数里有 M 的定义 ) intbiao=0;/和 dia_result一样,为了处理 M 运算 charlineSIZE;/ 输入的所要计算的表达式 voidinit()/ 初始化 compa

3、refu0=-2;/ 用数字的大小表现出符号的优先级 comparefu1=-1; comparefu2=2; comparefu3=2; comparefu4=4; comparefu5=4; comparefu6=4; comparefu7=5; for(inti=8;i=0) push_num(m); i+; else if(m=-1) c=+; elseif(m=-2) c=-; elseif(m=-3) c=*; elseif(m=-4) c=/; elseif(m=-5) c=%; elseif(m=-6) c=; elseif(m=-7) c=Q; elseif(m=-8) c=

4、L; elseif(m=-9) c=C; elseif(m=-10) c=S; elseif(m=-11) c=T; elseif(m=-12) c=c; elseif(m=-13) c=s; elseif(m=-14) c=t; elseif(m=-15) c=(; elseif(m=-16) c=); elseif(m=-17) c=n; charch=get_top_char();/ 得到最顶端运算符号 if(comparech=comparec chardian=pop_char(); push_num(operate_one(one,dian); elseif(ch=L) doubl

5、eone_L=pop_num(); doubletwo_L=pop_num(); chardian=pop_char(); push_num(operate_L(two_L,one_L,dian); else doublex=pop_num(); doubley=pop_num(); chardian=pop_char(); if(dian=/ else return1; voidoutput(doubleresult)/打出结果 printf(“ 所得结果是 :“); coutcc) if(cc=M) system(“cls“); introduce(); printf(“ 您上次所得结果为

6、 :“); coutnext=NULL; inti; for(i=0;linei!=0;i+)/ 建立链表 p=newnode; p-data=linei; p-next=head-next; head-next=p; head=p; /deletep; q=(node*)malloc(sizeof(node); head=root; if(root-next-data=+|root-next-data=-)/处理第一个字符 p=newnode; p-data=0; p-next=head-next; head-next=p; if(root-next!=NULL) for(q=root-ne

7、xt;q;q=q-next) if(q-data=( p-data=0; p-next=q-next; q-next=p; /deleteq; p1=newnode; intqi=-1; for(p1=root-next;p1;p1=p1-next) line+qi=p1-data; line+qi=0; voidinput()/ 输入 cinline; if(biao=0) tackle_fuhao();/处理负号 check();/检查表达式是否合法 voidintroduce()/对计算器的符号功能的简要介绍 coutstart) if(start!=“on“) cout“您所输入的字符无效 ,请按照介绍的继续输入 :“endl; continue; else break; if(start=“on“) system(“color5“);/颜色的处理 system(“cls“);/刷屏 introduce();/对计算器的简要介绍 cout“现在,请输入您所要计算的表达式“endl; input();/输入所要计算的表达式 intmain() if_start();/调用是否启动计算器函数 return0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1