c++计算器源代码

如题所述

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<math.h>
int resultprocess(char mexp[],double * result);
int tokenprocess(char mexp[],double shuzhi[],char signs[]);
double resultadd(double shuzhi[],char signs[],int sp);
void main()
{
char mexp[100];
double result=0;
printf("Please input the maths expression:\n\nmexp=");
gets(mexp);
if(resultprocess(mexp,&result))
printf("\nThe result of the maths expression is:\n\nresult=%lf\n",result);
else
printf("\nThe maths expression is wrong,can't be processed!");
getch();
}
int resultprocess(char mexp[],double * result)
{
char signs[100];
double shuzhi[100];
int sp;
sp=tokenprocess(mexp,shuzhi,signs);
if(sp>0)
{
*result=resultadd(shuzhi,signs,sp);
return 1;
}
else
return 0;
}
int tokenprocess(char mexp[],double shuzhi[],char signs[])
{
char strtemp[100],chartemp;
int shuzhiflag=0,spaceflag=0,dotflag=0,sp=0,i;
signs[0]='+';
for(i=0;mexp[i]!='\0';i++)
{
chartemp=mexp[i];
if(chartemp=='+'||chartemp=='-'||chartemp=='*'||chartemp=='/'||chartemp=='^')
{
if(shuzhiflag==0)
{
if(chartemp=='-'&&sp==0)
{
strtemp[shuzhiflag]=chartemp;
strtemp[shuzhiflag+1]='\0';
shuzhiflag++;
}
else
return 0;
}
else
{
shuzhi[sp]=atof(strtemp);
sp++;
shuzhiflag=0;
spaceflag=0;
dotflag=0;
signs[sp]=chartemp;
}
}
else
if(chartemp>='0'&&chartemp<='9')
{
if(spaceflag==2)
return 0;
else
{
strtemp[shuzhiflag]=chartemp;
strtemp[shuzhiflag+1]='\0';
shuzhiflag++;
}
}
else
if(chartemp=='.')
{
if(dotflag==1)
return 0;
else
if(dotflag==0&&shuzhiflag==0)
return 0;
else
{
dotflag=1;
strtemp[shuzhiflag]=chartemp;
strtemp[shuzhiflag+1]='\0';
shuzhiflag++;
}
}
else
if(chartemp==' ')
{
if(shuzhiflag>0)
spaceflag=2;
else
spaceflag=1;
}
else
return 0;
}
if(shuzhiflag>0)
{
shuzhi[sp]=atof(strtemp);
sp++;
return sp;
}
else
return 0;
}
double resultadd(double shuzhi[],char signs[],int sp)
{
int i;
double result=0;
for(i=1;i<sp;i++)
if(signs[i]=='^')
{
shuzhi[i]=pow(shuzhi[i-1],shuzhi[i]);
signs[i]='*';
shuzhi[i-1]=1;
}
for(i=1;i<sp;i++)
if(signs[i]=='*'||signs[i]=='/')
{
if(signs[i]=='*')
shuzhi[i]=shuzhi[i-1]*shuzhi[i];
else
shuzhi[i]=shuzhi[i-1]/shuzhi[i];
signs[i]=signs[i-1];
shuzhi[i-1]=0;
}
for(i=0;i<sp;i++)
{
if(signs[i]=='+')
result=result+shuzhi[i];
else
result=result-shuzhi[i];
}
return result;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-11-25
#include<iostream>//简单的计算器
using namespace std;//DEV c++
int main()
{
int a,b;
char c;//这里变量名只能为char
cout<<"计算器"<<endl;
cout<<"你想使用哪种计算器(+,-,*,/)"<<endl;
cin>>c;
switch(c)//这里是对+,-,*,/进行使用(c)
{
case '+'://加法运算
{
cout<<"请输入第一个数"<<endl;
cin>>a;
cout<<"请输入第二个数"<<endl;
cin>>b;
cout<<a<<"+"<<b<<"="<<a+b;
}
break;//break是终止
case '-'://减法运算
{
cout<<"请输入第一个数"<<endl;
cin>>a;
cout<<"请输入第二个数"<<endl;
cin>>b;
cout<<a<<"-"<<b<<"="<<a-b;
}
break;
case '*'://乘法运算
{
cout<<"请输入第一个数"<<endl;
cin>>a;
cout<<"请输入第二个数"<<endl;
cin>>b;
cout<<a<<"*"<<b<<"="<<a*b;
}
break;
case '/'://除法运算
{
cout<<"请输入第一个数"<<endl;
cin>>a;
cout<<"请输入第二个数"<<endl;
cin>>b;
if(b!=0)
{
cout<<a<<"/"<<b<<"="<<a/b;
}
else cout<<"除数不能为0"<<endl;
}
break;
default:cout<<"请输入正确的运算符号"<<endl;//特殊情况
}
return 0;
}

用c语言设计一个简单的加减乘除计算器
1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。2、输入预处理命令和主函数:#include \/*函数头:输入输出头文件*\/,void main()\/*空类型:主函数*\/。3、定义变量:int a,b,d; \/*定义变量的数据类型为整型*\/,char c;\/*定义变量的数据类型为字符型*\/。4、输入四则运算式:pri...

c++计算器源代码
include<stdio.h> include<stdlib.h> include<string.h> include<conio.h> include<math.h> int resultprocess(char mexp[],double * result);int tokenprocess(char mexp[],double shuzhi[],char signs[]);double resultadd(double shuzhi[],char signs[],int sp);void main(){ char mexp...

用C++编写一个计算器程序。用户输入两个运算数和四则运算符,输出计算结 ...
用C++编写的”输入两个运算数和四则运算符,输出计算结果”计算器程序代码具体如下:include<stdio.h> void main(){int a,b,d;char c;printf("请输入一种运算符:\\n");scanf("%c",&c);printf("请输入两个数:\\n");scanf("%d",&a);scanf("%d",&b);switch(c){ case '+':d=a+...

用C++编写一下计算器程序
cout.fill('='); cout << setw(24) << '=' << "计算器" << setw(24) << '=' << '\\n' << endl; cout.fill(' '); cout << setw(18) << ' ' << "C清屏, X退出, N继续" << setw(12) << ' '<< endl; cout << "\\n操作: 加 +\\t减 -\\t乘 *\\t除 \/\\t模 %\\t乘方...

利用C语言完成迷你计算器程序编写
float cal(float a,char c,float b){float m;switch(c){case'*':m=a*b;break;case'\/':m=a\/b;break;}return m;}void main(){ float x[10000]={0};float fsum=0;char y[10000]={0};int i=0,j,k,l,r; do{i++;scanf("%f%c",&x[i],&y[i]);}while(y[i]!=...

用c++做一个四则运算计算器(支持加减乘除混合运算,支持括号,倒数,正负...
op1); } if (inPriority(op1)>inPriority(op.top())) { \/\/判断优先级并计算 num1 = dealNum(num1, num2, op1); num2 = num.top(); num.pop(); op1 = op.top(); op.pop(); } else { num2 = dealNum(num2, num.top(), op.top()); num...

用c语言 (c++) 编写计算器程序
03 然后我们在C文件中写入计算器逻辑代码,主要是让用户输入计算方式,然后程序自动计算,如下图所示 04 接下来我们点击

用C++编一个一元多项式计算器 大虾们 谢谢啦!!!
q=P->next;int flag=1;\/\/项数计数器 if(!q)\/\/若多项式为空,输出0 { cout<<"0"<<"\\n";return;} while (q){ if(q->coef>0&&flag!=1)putchar('+'); \/\/系数大于0且不是第一项 if(q->coef!=1&&q->coef!=-1)\/\/系数非1或-1的普通情况 { printf("%g",q->coef);...

求一个用C++编过计算器的,就是那种加减乘除三角函数可以写一排算的
( i=0; i<len; i++ ) { switch( a[i] ) { case '(': stock[++top] = '('; break; case '+': case '-': while( top>=0 && stock[top]!='

如何用c++做一个计算器,能连续加减乘除的,不需要界面,最好能是用while...
include <stdio.h>#include <iostream>#include <stack>#include <string>#include <vector>#include <sstream>#include <stdlib.h>using namespace std;vector<pair<int, string> > f(string s){ vector<pair<int, string> > v; char ch[100]; string str; int i=0, j; ...

相似回答