怎样用c++类写一个可以运算公式的计算器源代码?

 我来答
旋律0281
2014-09-12 · 超过59用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:101万
展开全部
#include<stdio.h> #include<ctype.h> #include<stdlib.h> #include <conio.h> char token[61]; int n=0; void error(void) { printf("ERROR!\n"); exit(1); } void match(char expected) { if(token[n]==expected) token[++n]=getchar(); else error(); } double term(void); double factor(void); double exp(void) { double temp=term(); while((token[n]=='+')||(token[n]=='-')) switch(token[n]) { case'+':match('+'); temp+=term(); break; case'-':match('-'); temp-=term(); break; } return temp; } double term(void) { double div; double temp=factor(); while((token[n]=='*')||(token[n]=='/')) switch(token[n]) { case'*':match('*'); temp*=factor(); break; case'/':match('/'); div=factor(); if(div==0) { printf("The divisor is zero!\n"); exit(1); } temp/=div; break; } return temp; } double factor(void) { double temp; char number[61]; int i=0; if(token[n]=='(') { match('('); temp=exp(); match(')'); } else if(isdigit(token[n])||token[n]=='.') { while(isdigit(token[n])||token[n]=='.') { number[i++]=token[n++]; token[n]=getchar(); } number='\0'; temp=atof(number); } else error(); return temp; } main() { double result; FILE *data=fopen("61590_4.dat","at"); if(data==NULL) data=fopen("61590_4.dat","wt"); if(data==NULL) return 0; token[n]=getchar(); result=exp(); if(token[n]=='\n') { token[n]='\0'; printf("%s=%g\n",token,result); fprintf(data,"%s=%g\n",token,result); } else error(); fclose(data); getch(); }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式