超级计算器
我和同学合伙制作的超级计算器
也就一千多行而已
#include<bits/stdc++.h>
#include<windows.h>
#define weishu 4000
using namespace std;
const int cap=4000;
int jjjsq()
{
double n,m,sum;
cout<<"请输入一个时间点(小时为整数,12时制),无需输入':'"<<endl;
cin>>n>>m;
sum=30*n;
sum=abs(sum-m*5.5);
sum=min(sum,360-sum);
cout<<"夹角:"<<setprecision(2)<<fixed<<sum<<"度"<<endl;
}
int txjsq()
{
long double n,m,x,a,b,c,d,p;
long double ans,ans2;
cout<<"公式(1),求解(2)"<<endl;
cin>>x;
if(x==1)
{
cout<<" 二维图形 三维图形"<<endl<<endl;
cout<<"长方形:面积:长*宽 长方体:体积:长*宽*高"<<endl;
cout<<" 周长:(长+宽)*2 表面积:(长*宽+宽*高+高*宽)*2 "<<endl<<endl;
cout<<"三角形:面积:见海伦公式(下附) 圆柱:体积:半径*半径*3.14*高"<<endl;
cout<<" 周长:边长+边长+边长 表面积:半径*半径*3.14*2+半径*2*3.14*高"<<endl<<endl;
cout<<" 圆:面积:半径*半径*3.14 圆锥:体积:半径*半径*3.14*高/3"<<endl;
cout<<" 周长:半径*2*3.14 表面积:(下附)"<<endl<<endl;
cout<<" 扇形:面积:半径*半径*3.14*圆心角/360 球体:体积:半径*半径*半径*3.14*4/3"<<endl;
cout<<" 周长:半径*2*3.14*圆心角/360+半径*2(圆心角不是360度) 表面积:半径*半径*4*3.14"<<endl<<endl<<endl<<endl;
cout<<"附表:"<<endl<<endl;
cout<<"三角形面积:海伦公式:q=(a+b+c)/2, S=sqrt(q*(q-a)*(q-b)*(q-c) (a,b,c分别为三角形的三边)"<<endl<<endl;
cout<<"圆锥表面积:c=sqrt(a*a+b*b), S=(3.14+a)*(c+a) (a为半径,b为高)"<<endl<<endl;
cout<<"圆台表面积:d=sqrt((a-b)*(a-b)+c*c), S=3.14*(a*a+b*b+a*d+b*d) (a为底面半径,b为顶面半径,c为高)"<<endl;
cout<<"圆台体积: S=3.14*c*(a*a+a*b+b*b)/3.00 (a为底面半径,b为顶面半径,c为高)"<<endl<<endl;
}
if(x==2)
{
cout<<"二维图形(1),三维图形(2)"<<endl;
cin>>n;
if(n==1)
{
cout<<"三角形(1),长方形(2),圆(3),扇形(4)"<<endl;
cin>>m;
if(m==1)
{
cout<<"输入三角形三边"<<endl;
cin>>a>>b>>c;
if(a<=0||b<=0||c<=0||(a+b)<=c||(a+c)<=b||(b+c)<=a)
{
cout<<"面积:---"<<endl<<endl;
cout<<"周长:---"<<endl<<endl;
}
p=(a+b+c)/2.00;
ans=sqrt(p*(p-a)*(p-b)*(p-c));
ans2=a+b+c;
cout<<"面积:"<<setprecision(2)<<fixed<<ans<<endl<<endl;
cout<<"周长:"<<setprecision(2)<<fixed<<ans2<<endl<<endl;
}
if(m==2)
{
cout<<"输入长方形的长和宽"<<endl;
cin>>a>>b;
if(a<=0||b<=0)
{
cout<<"面积:---"<<endl<<endl;
cout<<"周长:---"<<endl<<endl;
}
ans=a*b;
ans2=(a+b)*2;
cout<<"面积:"<<setprecision(2)<<fixed<<ans<<endl<<endl;
cout<<"周长:"<<setprecision(2)<<fixed<<ans2<<endl<<endl;
}
if(m==3)
{
cout<<"输入圆的半径"<<endl;
cin>>a;
if(a<=0)
{
cout<<"面积:---"<<endl<<endl;
cout<<"周长:---"<<endl<<endl;
}
ans=a*a*3.14;
ans2=a*2*3.14;
cout<<"面积:"<<setprecision(2)<<fixed<<ans<<endl<<endl;
cout<<"周长:"<<setprecision(2)<<fixed<<ans2<<endl<<endl;
}
if(m==4)
{
cout<<"输入扇形半径,圆心角"<<endl;
cin>>a>>b;
if(a<=0||b<=0||b>360)
{
cout<<"面积:---"<<endl<<endl;
cout<<"周长:---"<<endl<<endl;
}
ans=a*a*3.14*b/360.00;
ans2=a*2*3.14*b/360.00+a*2;
if(b==360)
ans2=ans2-a*2;
cout<<"面积:"<<setprecision(2)<<fixed<<ans<<endl<<endl;
cout<<"周长:"<<setprecision(2)<<fixed<<ans2<<endl<<endl;
}
}
if(n==2)
{
cout<<"长方体(1),圆柱(2),圆锥(3),球体(4),圆台(5)"<<endl;
cin>>m;
if(m==1)
{
cout<<"输入长方体的长,宽,高"<<endl;
cin>>a>>b>>c;
if(a<=0||b<=0||c<=0)
{
cout<<"表面积:---"<<endl<<endl;
cout<<"体积:---"<<endl<<endl;
}
ans=2*(a*b+b*c+c*a);
ans2=a*b*c;
cout<<"表面积:"<<setprecision(2)<<fixed<<ans<<endl<<endl;
cout<<"体积:"<<setprecision(2)<<fixed<<ans2<<endl<<endl;
}
if(m==2)
{
cout<<"输入圆柱的半径和高"<<endl;
cin>>a>>b;
if(a<=0||b<=0)
{
cout<<"表面积:---"<<endl<<endl;
cout<<"体积:---"<<endl<<endl;
}
ans=a*a*3.14*2+a*2*3.14*b;
ans2=a*a*3.14*b;
cout<<"表面积:"<<setprecision(2)<<fixed<<ans<<endl<<endl;
cout<<"体积:"<<setprecision(2)<<fixed<<ans2<<endl<<endl;
}
if(m==3)
{
cout<<"输入圆锥的半径和高"<<endl;
cin>>a>>b;
if(a<=0||b<=0)
{
cout<<"表面积:---"<<endl<<endl;
cout<<"体积:---"<<endl<<endl;
}
c=sqrt(a*a+b*b);
ans=(3.14+a)*(c+a);
ans2=a*a*3.14*b/3.00;
cout<<"表面积:"<<setprecision(2)<<fixed<<ans<<endl<<endl;
cout<<"体积:"<<setprecision(2)<<fixed<<ans2<<endl<<endl;
}
if(m==4)
{
cout<<"输入球体的半径"<<endl;
cin>>a;
if(a<=0)
{
cout<<"表面积:---"<<endl<<endl;
cout<<"体积:---"<<endl<<endl;
}
ans=a*a*4*3.14;
ans2=a*a*a*3.14*4/3.00;
cout<<"表面积:"<<setprecision(2)<<fixed<<ans<<endl<<endl;
cout<<"体积:"<<setprecision(2)<<fixed<<ans2<<endl<<endl;
}
if(m==5)
{
cout<<"输入圆台的底面半径,顶面半径和高"<<endl;
cin>>a>>b>>c;
if(a<=0||b<=0||c<=0)
{
cout<<"表面积:---"<<endl<<endl;
cout<<"体积:---"<<endl<<endl;
}
d=sqrt((a-b)*(a-b)+c*c);
ans=3.14*(a*a+b*b+a*d+b*d);
ans2=3.14*c*(a*a+a*b+b*b)/3.00;
cout<<"表面积:"<<setprecision(2)<<fixed<<ans<<endl<<endl;
cout<<"体积:"<<setprecision(2)<<fixed<<ans2<<endl<<endl;
}
}
}
}
struct bignumber //结构体
{
int number[cap];
int len;
bignumber()
{
memset(number,0,sizeof(number));
len=0;
}
void input() //输入函数
{
char a[cap];
cin>>a;
len=strlen(a);
int f=len-1;
for(int i=0;i<len;i++)
number[f--]=(int)a[i]-'0';
}
void print() //输出函数
{
for(int i=len-1;i>=0;i--)
cout<<number[i];
cout<<endl;
}
};
int dayin(int a,int b) //计算大因
{
if(a<b)
{
int c=a;
a=b;
b=c;
}
if(a%b==0)
return b;
else
return dayin(b,a%b);
}
int xiaobei(int a,int b) //计算小倍
{
return a*b/dayin(a,b);
}
bool huzhi(int a,int b) //互质判断函数(没用)
{
if(dayin(a,b)==1)
return true;
else
return false;
}
bignumber bignumber_mul_cf(bignumber a,bignumber b)
{
bignumber res;
res.len=a.len+b.len;
for(int i=0;i<a.len;i++)
{
for(int j=0;j<b.len;j++)
res.number[i+j]+=a.number[i]*b.number[j];
}
for(int i=0;i<res.len;i++)
{
res.number[i+1]+=res.number[i]/10;
res.number[i]%=10;
}
while(res.number[res.len-1]==0&&res.len>1)
res.len--;
return res;
}
int cfjsq(void) //此方运算,程序里最复杂的计算器
{
int cun[weishu];
int a,b;
int zhishu,dishu;
for(a=0;a<weishu;a++)
cun[a] = 0 ;
cun[weishu - 1] = 1;
printf("输入底数:");
scanf("%d", &dishu);
printf("输入指数:");
scanf("%d", &zhishu);
cout<<"得数应是:";
for(b=0;b<zhishu;b++)
{
for(a=weishu-1;a>=0;a--) //进位
cun[a]*=dishu;
for(a=weishu-1;a>=0;a--)
{
if(cun[a]>=10)
{
cun[a-1]+=cun[a]/10;
cun[a]%=10;
}
}
}
for(a=0;a<weishu;a++)
if(cun[a]!=0)
break;
for(a;a<weishu;a++)
printf("%d",cun[a]);
cout<<endl;
}
double jia_pt(double a,double b) //加法运算
{
cout<<a+b<<endl;
}
double jian_pt(double a,double b) //减法运算
{
cout<<a-b<<endl;
}
double cheng_pt(double a,double b) //乘法运算
{
cout<<a*b<<endl;
}
double chu_pt(double a,double b) //除法运算
{
cout<<a/b<<endl;
}
double cifang_pt(double a,double b) //普通计算器的此方运算(只能算到2的80多次方)
{
double c=a;
for(int i=1;i<b;i++)
{
a*=c;
}
cout<<a<<endl;
}
double quyu_pt(int a,int b) //取余运算
{
int c=a;
c=c-a%b;
cout<<c/b<<"……"<<a%b<<endl;
}
double panduan_pt(double a,char b,double c) //普通计算器判断函数
{
switch(b)
{
case '+':
jia_pt(a,c);
break;
case '-':
jian_pt(a,c);
break;
case '*':
cheng_pt(a,c);
break;
case '/':
chu_pt(a,c);
break;
case '^':
cifang_pt(a,c);
break;
case '%':
quyu_pt(a,c);
break;
default:
cout<<"错误,请检查输入格式(本计算器只支持加,减,乘,除,次方,取余运算)"<<endl;
}
}
// 输出 (分子,分母)
long shuchu_fs(long fz,long fm) //分数计算器输出函数
{
if((fm==fz&&fz==fm)&&fz!=0&&fm!=0)
{
cout<<fz<<endl;
return 0;
}
cout<<fz<<endl<<"—"<<endl<<fm<<endl;
}
long jia_fs(long a_fz,long a_fm,long b_fz,long b_fm)/**分数相加的运算**/ //分数加法
{
long i,deshu_fz,deshu_fm,a=a_fm;
if(a_fm<b_fm)
{
a=a_fm;
a_fm=b_fm;
b_fm=a;
}
for(i=a;;i++)
{
if(i%a_fm==0&&i%b_fm==0)
break;//求小倍
}
a_fz=a_fz*(i/b_fm);//同分母后分子的变化
b_fz=b_fz*(i/a_fm);//同分母后分子的变化
deshu_fz=a_fz+b_fz;//分子相加
deshu_fm=i;//分母等于两个分母的小倍
long y=dayin(deshu_fz,deshu_fm);
deshu_fm/=y;
deshu_fz/=y;
shuchu_fs(deshu_fz,deshu_fm);
}
long jian_fs(long a_fz,long a_fm,long b_fz,long b_fm) //分数减法
{
long i,deshu_fz,deshu_fm,a=a_fm;
if(a_fm<b_fm)
{
a=a_fm;
a_fm=b_fm;
b_fm=a;
}
for(i=a;;i++)
{
if(i%a_fm==0&&i%b_fm==0)
break;//求小倍
}
a_fz=a_fz*(i/b_fm);//同分母后分子的变化
b_fz=b_fz*(i/a_fm);//同分母后分子的变化
if(a_fz<b_fz)
{
long f=a_fz;
a_fz=b_fz;
b_fz=a_fz;
}
deshu_fz=a_fz-b_fz;//分子相减
deshu_fm=i;//分母等于两个分母的小倍
long y=dayin(deshu_fz,deshu_fm);
deshu_fm/=y;
deshu_fz/=y;
shuchu_fs(deshu_fz,deshu_fm);
}
long cheng_fs(long a_fz,long a_fm,long b_fz,long b_fm)//74 96 * 12 65 //分数乘法
{
long deshu_fz,deshu_fm;
deshu_fz=a_fz*b_fz;//分子相乘
deshu_fm=a_fm*b_fm;//分母相乘
long y=dayin(deshu_fz,deshu_fm);
deshu_fm/=y;
deshu_fz/=y;
shuchu_fs(deshu_fz,deshu_fm);
}
long chu_fs(long a_fz,long a_fm,long b_fz,long b_fm) //分数除法
{
long i,deshu_fz,deshu_fm,a;
a=b_fz;
b_fz=b_fm;
b_fm=a;
deshu_fz=a_fz*b_fz;//分子相乘
deshu_fm=a_fm*b_fm;//分母相乘
long y=dayin(deshu_fz,deshu_fm);
deshu_fm/=y;
deshu_fz/=y;
shuchu_fs(deshu_fz,deshu_fm);
}
long panduan_fs(long a_fz,long a_fm,char a,long b_fz,long b_fm) //分数计算器判断函数
{
if(a=='+')
jia_fs(a_fz,a_fm,b_fz,b_fm);
else if(a=='-')
jian_fs(a_fz,a_fm,b_fz,b_fm);
else if(a=='*')
cheng_fs(a_fz,a_fm,b_fz,b_fm);
else if(a=='/')
chu_fs(a_fz,a_fm,b_fz,b_fm);
else
cout<<"输入的计算符号不正确!"<<endl;
}
int xhb(void) //小数化百分数
{
double a;
cout<<"请输入一个小数:"<<endl;
cin>>a;
a=a*100;
cout<<a<<"%"<<endl;
}
int xhf(double a) //小数化分数
{
if(a==0)
{
cout<<"请输入一个小数:"<<endl;
cin>>a;
}
double c=a+0.0000000000000005;
long long b=c*10000;
long long fm=10000,i;
for(i=b;i>0;i--)
{
if(b%i==0&&fm%i==0)
break;
}
long long fz=b/i;
fm/=i;
if(fm>1000)
cout<<fz<<endl<<"-----"<<endl<<fm<<endl;
else if(fm>100)
cout<<fz<<endl<<"---"<<endl<<fm<<endl;
else
cout<<fz<<endl<<"-"<<endl<<fm<<endl;
return 0;
}
int bhx(void) //百分数化小数
{
double a;
cout<<"请输入一个百分数(不用加百分号)"<<endl;
cin>>a;
cout<<a<<"%"<<endl;
cout<<a/100+0.00000005<<endl;
}
int bhf(void) //百分数化分数
{
double a;
cout<<"请输入一个百分数(不用加百分号)"<<endl;
cin>>a;
cout<<a<<"%"<<endl;
a/=100;
xhf(a);
}
int fhx(void) //分数化小数
{
int a,b;
cout<<"请输入分子,分母:"<<endl;
cin>>a>>b;
double c=(double)a/b;
cout<<c<<endl;
return 0;
}
int fhb(void) //分数化百分数
{
int a,b;
cout<<"请输入分子,分母:"<<endl;
cin>>a>>b;
double c=(double)a/b;
c*=100;
cout<<c<<"%"<<endl;
return 0;
}
int x_panduan_bfs(void) //互换计算器:小数化 ?
{
int a;
cout<<"输入1,小数化百分数"<<endl;
cout<<"输入2,小数化分数"<<endl;
cout<<"请输入:"<<endl;
while(true)
{
cin>>a;
if(a==1)
xhb();
if(a==2)
xhf(0);
else if(a>2||a<1)
{
cout<<"请输入1或2!"<<endl;
continue;
}
break;
}
return 0;
}
int b_panduan_bfs(void) //互换计算器:百分数化 ?
{
int a;
cout<<"输入1,百分数化小数"<<endl;
cout<<"输入2,百分数化分数"<<endl;
cout<<"请输入:"<<endl;
while(true)
{
cin>>a;
if(a==1)
bhx();
if(a==2)
bhf();
if(a>2||a<1)
{
cout<<"请输入1或2!"<<endl;
continue;
}
break;
}
return 0;
}
int f_panduan_bfs(void) //互换计算器:分数化 ?
{
int a;
cout<<"输入1,分数化小数"<<endl;
cout<<"输入2,分数化百分数"<<endl;
cout<<"请输入:"<<endl;
while(true)
{
cin>>a;
if(a==1)
fhx();
else if(a==2)
fhb();
else if(a>2||a<1)
{
cout<<"请输入1或2!"<<endl;
continue;
}
break;
}
return 0;
}
int jzjsq(void)
{
cout<<"进制转换计算器"<<endl;
cout<<"支持36内的进制互相转换"<<endl;
cout<<"请输入转换前进制与转换后的进制:"<<endl;
int qian,hou;
cin>>qian>>hou;
cout<<"请输入要转换的数:"<<endl;
char yh[500],b[500];
cin>>yh;
itoa(strtol(yh,NULL,qian),b,hou);
cout<<b<<endl;
return 0;
}
int hzjsq(void) //互质检查计算器主模块
{
int a,b;
cout<<"请输入两个数,程序将判断它们是否互质:"<<endl;
cin>>a>>b;
if(huzhi(a,b))
cout<<"这两个数互质"<<endl;
else
cout<<"这两个数不互质,他们的大因是:"<<dayin(a,b)<<endl;
cout<<"他们的小倍是:"<<xiaobei(a,b)<<endl;
return 0;
}
int ptjsq(void) //普通计算器主模块
{
char b;
double a,c;
cout<<"计算器支持加,减,乘,除,次方,取余运算"<<endl<<"请输入:"<<endl;
cin>>a>>b>>c;
panduan_pt(a,b,c);
return 0;
}
int fsjsq(void) //分数计算器主模块
{
long a_fz,a_fm,b_fz,b_fm;
char a;
cout<<"这是一个分数计算器,它可以计算加,减,乘,除"<<endl;
cout<<"格式:分子 分母(计算符号)分子 分母:"<<endl;
cin>>a_fz>>a_fm>>a>>b_fz>>b_fm;
panduan_fs(a_fz,a_fm,a,b_fz,b_fm);
return 0;
}
int bignumber_add(void) //高精度加法
{
bignumber a,b,res;
a.input();
b.input();
res.len=max(a.len,b.len)+1;
for(int i=0;i<res.len;i++)
{
res.number[i]+=a.number[i]+b.number[i];
res.number[i+1]=res.number[i]/10;
res.number[i]%=10;
}
while(res.number[res.len-1]==0)
res.len--;
cout<<"得数为:"<<endl;
res.print();
return 0;
}
int bignumber_sub(void)
{
bignumber a,b,res;
a.input();
b.input();
res.len=a.len;
for(int i=0;i<res.len;i++)
{
res.number[i]+=a.number[i]-b.number[i];
if(res.number[i]<0)
{
res.number[i+1]-=1;
res.number[i]+=10;
}
}
while(res.number[res.len-1]==0&&res.len>1)
res.len--;
cout<<"得数为:"<<endl;
res.print();
return 0;
}
int bignumber_mul(void)
{
bignumber a,b,res;
a.input();
b.input();
res.len=a.len+b.len;
for(int i=0;i<a.len;i++)
{
for(int j=0;j<b.len;j++)
res.number[i+j]+=a.number[i]*b.number[j];
}
for(int i=0;i<res.len;i++)
{
res.number[i+1]+=res.number[i]/10;
res.number[i]%=10;
}
while(res.number[res.len-1]==0&&res.len>1)
res.len--;
cout<<"得数为:"<<endl;
res.print();
return 0;
}
void print_cmath_fun()
{
printf("cmath中常用库函数:\n");
printf("abs( i);返回整型参数i的绝对值\n");
printf("fabs( x);返回双精度参数x的绝对值\n");
printf("labs( n);返回长整型参数n的绝对值\n");
printf("exp( x);返回指数函数e^x的值\n");
printf("log( x);返回logex的值\n");
printf("log10( x) 返回log10x的值\n");
printf("pow( x, y) 返回x^y的值\n");
printf("sqrt( x) 返回+√x的值\n");
printf("acos( x) 返回x的反余弦arccos(x)值,x为弧度\n");
printf("asin( x) 返回x的反正弦arcsin(x)值,x为弧度\n");
printf("atan( x) 返回x的反正切arctan(x)值,x为弧度\n");
printf("cos( x) 返回x的余弦cos(x)值,x为弧度\n");
printf("sin( x) 返回x的正弦sin(x)值,x为弧度\n");
printf("tan( x) 返回x的正切tan(x)值,x为弧度\n");
printf("hypot( x, y) 返回直角三角形斜边的长度(z),\n");
printf(" x和y为直角边的长度,z^2=x^2+y^2\n");
printf("ceil( x) 返回不小于x的最小整数(上取整)\n");
printf("floor( x) 返回不大于x的最大整数(下取整)\n");
printf("rand() 产生一个随机数并返回这个数\n");
}
int bignumber_panduan(void)
{
int a;
cout<<"输入1,进入高精度加法运算"<<endl;
cout<<"输入2,进入高精度减法运算"<<endl;
cout<<"输入3,进入高精度乘法运算"<<endl;
cout<<"输入0退出"<<endl;
cout<<"请输入:"<<endl;
cin>>a;
while(true)
{
if(a==1)
bignumber_add();
else if(a==2)
bignumber_sub();
else if(a==3)
bignumber_mul();
else if(a==0)
break;
else
{
cout<<"请输入1,2,3或0 !"<<endl;
continue;
}
break;
}
return 0;
}
int bfsjsq(void) //互换计算器主模块
{
int a;
cout << "这是一个百分数,分数,小数互换的转换计算器"<<endl;
cout<<"输入1,将进行小数百分数或分数运算" << endl;
cout<<"输入2,将进行百分数化小数或分数运算"<<endl;
cout<<"输入3,将进行分数化小数或百分数运算"<<endl;
cout<<"输入0退出"<<endl;
cout<<"请输入:"<<endl;
while(true)
{
cin>>a;
if(a==1)
x_panduan_bfs();
else if(a==2)
b_panduan_bfs();
else if(a==3)
f_panduan_bfs();
else if(a==0)
break;
else if(a<0||a>3)
{
cout<<"请输入1,2,3或0 !"<<endl;
continue;
}
break;
}
return 0;
}
void cmath()
{
cout<<"本程序支持cmath的常用函数"<<endl;
cout<<"直接输入指令进行调用"<<endl;
cout<<"如:输入'sqrt 100'指令将100开方"<<endl;
cout<<"输入1,查看cmath常用函数"<<endl;
cout<<"输入0退出"<<endl;
cout<<"请输入:"<<endl;
string str;
cin>>str;
if(str=="1")
{
print_cmath_fun();
cout<<"请输入:"<<endl;
cin>>str;
}
if(str=="0")
return;
if(str=="abs")
{
int z;
cin>>z;
cout<<abs(z);
}
if(str=="fabs")
{
double z;
cin>>z;
cout<<fabs(z);
}
if(str=="labs")
{
long z;
cin>>z;
cout<<labs(z);
}
if(str=="exp")
{
double x;
cin>>x;
cout<<exp(x);
}
if(str=="log")
{
double x;
cin>>x;
cout<<log(x);
}
if(str=="log10")
{
double x;
cin>>x;
cout<<log10(x);
}
if(str=="pow")
{
double x,y;
cin>>x>>y;
cout<<pow(x,y);
}
if(str=="sqrt")
{
double x;
cin>>x;
cout<<sqrt(x);
}
if(str=="acos")
{
double x;
cin>>x;
cout<<acos(x);
}
if(str=="asin")
{
double x;
cin>>x;
cout<<asin(x);
}
if(str=="atan")
{
double x;
cin>>x;
cout<<atan(x);
}
if(str=="cos")
{
double x;
cin>>x;
cout<<cos(x);
}
if(str=="sin")
{
double x;
cin>>x;
cout<<sin(x);
}
if(str=="tan")
{
double x;
cin>>x;
cout<<tan(x);
}
if(str=="hypot")
{
double x,y;
cin>>x>>y;
cout<<hypot(x,y);
}
if(str=="ceil")
{
double x;
cin>>x;
cout<<ceil(x);
}
if(str=="floor")
{
double x;
cin>>x;
cout<<floor(x);
}
if(str=="rand")
{
cout<<rand();
}
if(str=="atof")
{
char nptr[500];
cin>>nptr;
cout<<atof(nptr);
}
if(str=="atoi")
{
char nptr[500];
cin>>nptr;
cout<<atoi(nptr);
}
if(str=="atol")
{
char nptr[500];
cin>>nptr;
cout<<atol(nptr);
}
cout<<endl;
return ;
}
int panduan(int a) //判断计算类型(总分支)
{
int b=1;
while(true)
{
if(b==0)
cin>>a;
if(a==1)
{
system("CLS"); //清屏指令,需要<cstdlib>和<cstdio>头文件
ptjsq();
break;
}
if(a==2)
{
system("CLS");
hzjsq();
break;
}
if(a==3)
{
system("CLS");
fsjsq();
break;
}
if(a==4)
{
system("CLS");
cfjsq();
break;
}
if(a==5)
{
system("CLS");
bfsjsq();
break;
}
if(a==6)
{
system("CLS");
bignumber_panduan();
break;
}
if(a==7)
{
system("CLS");
txjsq();
break;
}
if(a==8)
{
system("CLS");
jjjsq();
break;
}
if(a==9)
{
system("CLS");
jzjsq();
break;
}
if(a==10)
{
system("CLS");
cmath();
break;
}
if(a==0)
break;
if(a<0||a>10)
{
cout<<"请输入1,2,3,4,5,6,7,8,9,10或0!"<<endl;
b=0;break;
continue;
}
}
return 0;
}
int main() //主程序,简介
{
int a,b;
do
{
system("CLS");
cout<<"这是超级集成计算器(版本号:3.5),支持次方运算,互质检查运算,分数运算,普通运算,转换运算\n高精度运算,图形运算,夹角运算,进制运算"<<endl;
cout<<"输入1,将进行普通运算"<<endl;
cout<<"输入2,将进行互质检测运算"<<endl;
cout<<"输入3,将进行分数运算"<<endl;
cout<<"输入4,将进行次方运算"<<endl;
cout<<"输入5,将进行转换运算"<<endl;
cout<<"输入6,将进行高精度运算"<<endl;
cout<<"输入7,将进行图形运算"<<endl;
cout<<"输入8,将进行夹角运算"<<endl;
cout<<"输入9,将进行进制转换运算"<<endl;
cout<<"输入10,调用cmath库常见函数"<<endl;
cout<<"输入0退出"<<endl;
cout<<"又及:求最大公因数和最小公倍数的运算在互质检查运算里"<<endl;
cout<<"请输入:"<<endl;
cin>>a;
panduan(a);
system("pause");
cout<<endl<<"如果想再次进行计算,请输入1,否则输入0"<<endl;
cin>>b;
}
while(b==1);
if(b==0)
system("pause");
//game over
return 0;
}
不断更新中......