C++怎么實現(xiàn)分數(shù)計算器-創(chuàng)新互聯(lián)

這篇文章主要介紹“C++怎么實現(xiàn)分數(shù)計算器”,在日常操作中,相信很多人在C++怎么實現(xiàn)分數(shù)計算器問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++怎么實現(xiàn)分數(shù)計算器”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)建站長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為馬山企業(yè)提供專業(yè)的網(wǎng)站制作、成都做網(wǎng)站,馬山網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

一、問題描述及功能要求

1、分數(shù)計算器程序的每種功能都可以用菜單選項列出,用戶可以根據(jù)需要選擇相應(yīng)的菜單項,從而執(zhí)行不同的子程序以完成相應(yīng)的功能
2、增加運算符重載功能,使所設(shè)計的分數(shù)計算器可以進行四則運算&冪運算&邏輯運算。四則運算&冪運算可以用菜單選項列出,用戶可以根據(jù)需要選擇相應(yīng)的運算。
3、程序具有判斷功能,當(dāng)有非法的輸入時(如分母等于零等),能給出提示信息并退出運算
4、可將分數(shù)化為十進制小數(shù)和帶分數(shù)
5、設(shè)計邏輯功能的函數(shù)使其可以進行邏輯比較,比如大于、小于的邏輯比較。
6、設(shè)計數(shù)字選擇功能程序,用戶可以輸入數(shù)字鍵選擇進行四則運算&冪運算或邏輯比較,運算結(jié)果為TRUE或FLASE。
7、要求界面提示清楚、便于操作

二、代碼實現(xiàn) 帶有注釋

廢話不說,直接代碼,歡迎指正。


大家CV可能有不兼容的情況,可以跟我滴滴,盡可能解決問題地回復(fù)。

#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <fstream>
using namespace std;
void jiafa1()
{
    system("cls");
    while(1)
    {
        long long int a,c,d,f;
        char b,e;
        cin>>a>>b>>c>>d>>e>>f;
        a=a*f+d*c;
        c=c*f;
        int flag=1;
        if((a<0&&c<0)||(a>0&&c>0)) flag=0;
        a=abs(a);c=abs(c);
        if(a%c==0)
        {
            if(flag==0){cout<<a/c<<endl;}
            if(flag==1){cout<<"-"<<a/c<<endl;}

        }
        else if(a>c)
        {
            int x,y;
            x=a;y=c;
            int z=c;
            while(a%c!=0)
            {
                z=a%c;
                a=c;
                c=z;
            }
            a=x/z;c=y/z;
            if(flag==0){cout<<a<<"/"<<c<<endl;}
            if(flag==1){cout<<"-"<<a<<"/"<<c<<endl;}
        }
       else if(c>a)
        {
            int x,y;
            x=a;y=c;
            int z=a;
            while(c%a!=0)
            {
                z=c%a;
                c=a;
                a=z;
            }
            c=y/z;a=x/z;
            if(flag==0){cout<<a<<"/"<<c<<endl;}
            if(flag==1){cout<<"-"<<a<<"/"<<c<<endl;}
        }
        cout<<"1繼續(xù)使用,0返回上一級"<<endl;
        int g;cin>>g;
        if(g==1) continue;
        if(g==0) break;
    }
}
void jiafa2()
{
    system("cls");
    while(1)
    {
        long long int a,c,d;
        char b;
        cin>>a>>b>>c>>d;
        a=a+d*c;
        cout<<a<<"/"<<c<<endl;
        cout<<"1繼續(xù)使用,0返回上一級"<<endl;
        int g;cin>>g;
        if(g==1) continue;
        if(g==0) break;
    }

}
void jiafa()
{
    while(1)
    {
        system("cls");
        cout<<"(1) 兩個分數(shù)"<<endl;
        cout<<"(2) 分數(shù)和整數(shù)"<<endl;
        cout<<"(3) 返回上一級"<<endl;
        int a;cin>>a;
        if(a==1){jiafa1();}
        if(a==2){jiafa2();}
        if(a==3){break;}
    }
}
void jianfa1()
{
    system("cls");
    while(1)
    {
        int a,c,d,f;
        char b,e;
        cin>>a>>b>>c>>d>>e>>f;
        a=a*f-d*c;
        c=c*f;
        int flag=1;
        if((a<0&&c<0)||(a>0&&c>0)) flag=0;
        a=abs(a);c=abs(c);
        if(a%c==0)
        {
            if(flag==0){cout<<a/c<<endl;}
            if(flag==1){cout<<"-"<<a/c<<endl;}
        }
        else if(a>c)
        {
            int x,y;
            x=a;y=c;
            int z=c;
            while(a%c!=0)
            {
                z=a%c;
                a=c;
                c=z;
            }
            a=x/z;c=y/z;
            if(flag==0){cout<<a<<"/"<<c<<endl;}
            if(flag==1){cout<<"-"<<a<<"/"<<c<<endl;}
        }
        else if(c>a)
        {
            int z=a;
            int x,y;
            x=a;y=c;
            while(c%a!=0)
            {
                z=c%a;
                c=a;
                a=z;
            }
            a=x/z;c=y/z;
            if(flag==0){cout<<a<<"/"<<c<<endl;}
            if(flag==1){cout<<"-"<<a<<"/"<<c<<endl;}
        }
        cout<<"1繼續(xù)使用,0返回上一級"<<endl;
        int g;cin>>g;
        if(g==1) continue;
        if(g==0) break;
    }
}
void jianfa2()
{
    system("cls");
    while(1)
    {
        long long int a,c,d;
        char b;
        cin>>a>>b>>c>>d;
        a=a-d*c;
        cout<<a<<"/"<<c<<endl;
        cout<<"1繼續(xù)使用,0返回上一級"<<endl;
        int g;cin>>g;
        if(g==1) continue;
        if(g==0) break;
    }
}
void jianfa()
{
   while(1)
    {
        system("cls");
        cout<<"(1) 兩個分數(shù)"<<endl;
        cout<<"(2) 分數(shù)和整數(shù)"<<endl;
        cout<<"(3) 返回上一級"<<endl;
        int a;cin>>a;
        if(a==1){jianfa1();}
        if(a==2){jianfa2();}
        if(a==3){break;}
    }
}
void chengfa1()
{
    system("cls");
    while(1)
    {
        long long int a,c,d,f;
        char b,e;
        cin>>a>>b>>c>>d>>e>>f;
        a=a*d;c=c*f;
        int flag=1;
        if((a<0&&c<0)||(a>0&&c>0)) flag=0;
        a=abs(a);c=abs(c);
        if(a%c==0)
        {
            if(flag==0){cout<<a/c<<endl;}
            if(flag==1){cout<<"-"<<a/c<<endl;}
        }
        else if(a>c)
        {
            int z=c;
            int x,y;x=a,y=c;
            while(a%c!=0)
            {
                z=a%c;
                a=c;
                c=z;
            }
            a=x/z;c=y/z;
            if(flag==0){cout<<a<<"/"<<c<<endl;}
            if(flag==1){cout<<"-"<<a<<"/"<<c<<endl;}
        }
        else if(c>a)
        {
            int z=a;
            int x,y;x=a;y=c;
            while(c%a!=0)
            {
                z=c%a;
                c=a;
                a=z;
            }
            a=x/z;c=y/z;
            if(flag==0){cout<<a<<"/"<<c<<endl;}
            if(flag==1){cout<<"-"<<a<<"/"<<c<<endl;}
        }
        cout<<"1繼續(xù)使用,0返回上一級"<<endl;
        int g;cin>>g;
        if(g==1) continue;
        if(g==0) break;
    }
}
void chengfa2()
{
    system("cls");
    while(1)
    {
        long long int a,c,d;
        char b;
        cin>>a>>b>>c>>d;
        int flag=1;
        if((a<0&&d<0)||(a>0&&d>0)) flag=0;
        a=abs(a);d=abs(d);
        if(d%c==0) {a=a*(d/c);
        if(flag==0) {cout<<a<<endl;}
        if(flag==1) {cout<<"-"<<a<<endl;}
        }
        else if(c%d==0)
        {
            if(flag==0) {cout<<a<<"/"<<c/d<<endl;}
            if(flag==1) {cout<<"-"<<a<<"/"<<c/d<<endl;}
        }
        else
        {
            if(flag==0){cout<<a*d<<"/"<<c<<endl;}
            if(flag==1){cout<<"-"<<a*d<<"/"<<c<<endl;}
        }
        cout<<"1繼續(xù)使用,0返回上一級"<<endl;
        int g;cin>>g;
        if(g==1) continue;
        if(g==0) break;
    }

}
void chengfa()
{
    while(1)
    {
        system("cls");
        cout<<"(1) 兩個分數(shù)"<<endl;
        cout<<"(2) 分數(shù)和整數(shù)"<<endl;
        cout<<"(3) 返回上一級"<<endl;
        int a;cin>>a;
        if(a==1){chengfa1();}
        if(a==2){chengfa2();}
        if(a==3){break;}
    }
}
void chufa1()
{
    system("cls");
    while(1)
    {
        int a,c,d,f;
        char b,e;
        cin>>a>>b>>c>>d>>e>>f;
        int flag=1;
        a=a*f;c=c*d;if((a<0&&c<0)||(a>0&&c>0)) flag=0;
        a=abs(a);c=abs(c);
        if(a%c==0)
        {
            if(flag==0) cout<<a/c<<endl;
            if(flag==1) cout<<"-"<<a/c<<endl;
        }
        else if(a>c)
        {
            int z=c;
            int x,y;x=a;y=c;
            while(a%c!=0)
            {
                z=a%c;
                a=c;
                c=z;
            }
            a=x/z;c=y/z;
            if(flag==0){cout<<a<<"/"<<c<<endl;}
            if(flag==1){cout<<"-"<<a<<"/"<<c<<endl;}
        }
        else if(c>a)
        {
            int z=a;
            int x,y;x=a;y=c;
            while(c%a!=0)
            {
                z=c%a;
                c=a;
                a=z;
            }
            a=x/z;c=y/z;
            if(flag==0){cout<<a<<"/"<<c<<endl;}
            if(flag==1){cout<<"-"<<a<<"/"<<c<<endl;}
        }
        cout<<"1繼續(xù)使用,0返回上一級"<<endl;
        int g;cin>>g;
        if(g==1) continue;
        if(g==0) break;
    }

}
void chufa2()
{
    system("cls");
    while(1)
    {
        long long int a,c,d;
        char b;
        cin>>a>>b>>c>>d;
        int flag=1;
        if((a<0&&d<0)||(a>0&&d>0)) flag=0;
        a=abs(a);d=abs(d);
        if(d%c==0) {a=a*(d/c);if(flag==0){cout<<a<<endl;}if(flag==1){cout<<"-"<<a<<endl;}}
        else if(c%d==0)
        {
            if(flag==0) {cout<<a<<"/"<<c/d<<endl;}
            if(flag==1) {cout<<"-"<<a<<"/"<<c/d<<endl;}
        }
        else
        {
            if(flag==0) {cout<<a*d<<"/"<<c<<endl;}
            if(flag==1) {cout<<"-"<<a*d<<"/"<<c<<endl;}

        }
        cout<<"1繼續(xù)使用,0返回上一級"<<endl;
        int g;cin>>g;
        if(g==1) continue;
        if(g==0) break;
    }

}
void chufa()
{
    while(1)
    {
        system("cls");
        cout<<"(1) 兩個分數(shù)"<<endl;
        cout<<"(2) 分數(shù)和整數(shù)"<<endl;
        cout<<"(3) 返回上一級"<<endl;
        int a;cin>>a;
        if(a==1){chufa1();}
        if(a==2){chufa2();}
        if(a==3){break;}
    }
}
void chengfang1()
{
    system("cls");
    while(1)
    {
        long long int a,c,d;
        char b;
        cin>>a>>b>>c>>d;
        int flag=1;
        if(a<0&&d%2==0) flag=0;
        if(a>0) flag=0;
        a=abs(a);
        long int sum1=1;
        long int sum2=1;
        while(d--)
        {
            sum1*=a;
            sum2*=c;
        }
        if(flag==0){cout<<sum1<<"/"<<sum2<<endl;}
        if(flag==1){cout<<"-"<<sum1<<"/"<<sum2<<endl;}
        cout<<"1繼續(xù)使用,0返回上一級"<<endl;
        int g;cin>>g;
        if(g==1) continue;
        if(g==0) break;
    }


}
void chengfang()
{
    while(1)
    {
        system("cls");
        cout<<"(1) 分數(shù)和整數(shù)"<<endl;
        cout<<"(2) 返回上一級"<<endl;
        int a;cin>>a;
        if(a==1){chengfang1();}
        if(a==2){break;}
    }
}
void sizeyunsuan()
{
    while(1)
   {
        system("cls");
        cout<<"(1) 加法運算"<<endl;
        cout<<"(2) 減法運算"<<endl;
        cout<<"(3) 乘法運算"<<endl;
        cout<<"(4) 除法運算"<<endl;
        cout<<"(5) 乘方運算"<<endl;
        cout<<"(6) 返回上一級"<<endl;
        int a;cin>>a;
        if(a==1) {jiafa();}
        if(a==2){jianfa();}
        if(a==3){chengfa();}
        if(a==4){chufa();}
        if(a==5){chengfang();}
        if(a==6) break;
   }

}
void jiemian()
{
    cout<<"(1) 四則運算及冪運算"<<endl;
    cout<<"(2) 退出程序"<<endl;
    int xxx;cin>>xxx;
    if(xxx==1){sizeyunsuan();}
    if(xxx==2){system("cls");cout<<"蟹蟹你的使用,歡迎下次使用哦"<<endl;exit(0);}
}
int main()
{
    while(1)
    {
        system("cls");
        jiemian();
    }

    return 0;
}

到此,關(guān)于“C++怎么實現(xiàn)分數(shù)計算器”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

網(wǎng)站題目:C++怎么實現(xiàn)分數(shù)計算器-創(chuàng)新互聯(lián)
文章路徑:http://muchs.cn/article12/ceojgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司網(wǎng)站導(dǎo)航、ChatGPT、App開發(fā)移動網(wǎng)站建設(shè)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司