超级计算器
谷民们,这是我的超级计算器1.0版本:
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#define cls system("cls")
using namespace std;
const int N=1e2+5;
char c,A[N];
string str;
long long a,b,l,len;
double f1,f2;
void shuchu()
{
printf("C++计算器\n");
printf("按对应数字键计算。\n\n");
printf("1.基础运算\n");
printf("2.平方运算\n");
printf("3.cmath函数运算\n");
}
void jichujisuan()
{
cls;
printf("请输入算式(仅允许单一运算)。\n");
scanf("%s",A);
len=strlen(A);
a=b=0;
for(int i=0;i<len;i++)
if(A[i]<='9'&&A[i]>='0')
a=a*10+(A[i]-'0');
else {l=i;break;}
c=A[l];
for(int i=l+1;i<len;i++)
if(A[i]<='9'&&A[i]>='0')
b=b*10+(A[i]-'0');
else break;
if(c=='+') printf("%lld\n",a+b);
else if(c=='-') printf("%lld\n",a-b);
else if(c=='*') printf("%lld\n",a*b);
else if(c=='/'&&b!=0) printf("%lld\n",a/b);
else if(c=='%') printf("%lld\n",a%b);
else printf("错误\n");
}
void pingfangjisuan()
{
cls;
printf("请输入底数和幂。\n");
scanf("%lf %lf",&f1,&f2);
printf("%lf\n",pow(f1,f2));
}
void cmathhanshu()
{
printf("请输入函数名称和数字(help打开帮助)。\n");
st2:
{
cin>>str>>f1;
if(str=="help")
{
printf("绝对值函数:abs fabs。\n");
printf("正弦三角函数:sin。\n");
printf("余弦三角函数:cos。\n");
printf("正切三角函数:tan。\n");
printf("反正弦三角函数:asin。\n");
printf("反余弦三角函数:acos。\n");
printf("反正切三角函数:atan。\n");
printf("e的x次方:exp。\n");
printf("以e为底的对数:log。\n");
printf("以10为底的对数:log10。\n");
printf("计算x的y次方:pow。\n");
printf("计算x的平方根:sqrt。\n");
printf("向上取整:ceil。\n");
printf("向下取整:floor。\n");
printf("向0取整:trunc。\n");
printf("四舍五入:round。\n");
printf("计算浮点数的余数:fmod remainder。\n");
goto st2;
}
if(str=="abs") printf("%lf\n",abs(f1));
else if(str=="fabs") printf("%lf\n",fabs(f1));
else if(str=="sin") printf("%lf\n",sin(f1));
else if(str=="cos") printf("%lf\n",cos(f1));
else if(str=="tan") printf("%lf\n",tan(f1));
else if(str=="asin") printf("%lf\n",asin(f1));
else if(str=="acos") printf("%lf\n",acos(f1));
else if(str=="atan") printf("%lf\n",atan(f1));
else if(str=="exp") printf("%lf\n",exp(f1));
else if(str=="log") printf("%lf\n",log(f1));
else if(str=="log10") printf("%lf\n",log10(f1));
else if(str=="pow") scanf("%lf",&f2),printf("%lf\n",pow(f1,f2));
else if(str=="sqrt") printf("%lf\n",sqrt(f1));
else if(str=="ceil") printf("%lf\n",ceil(f1));
else if(str=="floor") printf("%lf\n",floor(f1));
else if(str=="trunc") printf("%lf\n",trunc(f1));
else if(str=="round") printf("%lf\n",round(f1));
else if(str=="fmod") scanf("%lf",&f2),printf("%lf\n",fmod(f1,f2));
else if(str=="remainder") scanf("%lf",&f2),printf("%lf\n",remainder(f1,f2));
else if(str=="jieshu") return ;
else printf("错误\n");
goto st2;
}
}
int main()
{
st1:
{
shuchu();
c=getch();
if(c=='1')
jichujisuan();
else if(c=='2')
pingfangjisuan();
else if(c=='3')
{
cls;
cmathhanshu();
}
Sleep(1000);
c=getch();
cls;
goto st1;
}
return 0;
}