超级计算器

· · 个人记录

我和同学合伙制作的超级计算器

也就一千多行而已

#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;
}

不断更新中......