第五周實驗報告(二)

來源:互聯網
上載者:User
01.#include <iostream>  02.  03.using namespace std;  04.class CFraction  05.{private:  06.    int nume;  // 分子  07.    int deno;  // 分母  08.    char c;  09. public:  10.       11.    CFraction(int nu=0,int de=1);   //建構函式,初始化用  12.    void Set(int nu=0,int de=1);    //置值,改變值時用  13.    void input();               //按照"nu/de"的格式,如"5/2"的形式輸入  14.    void Simplify();            //化簡(使分子分母沒有公因子)  15.    void amplify(int n);            //放大n倍,如2/3放大5倍為10/3  16.    void output(int style=0);       //輸出:以8/6為例,style為0時,輸出8/6;  17.                            //style為1時,輸出4/3;  18.                            //style為2時,輸出1(1/3),表示一又三分之一;  19.                            //不給出參數和非1、2,認為是方式0  20.};  21.CFraction::CFraction(int nu,int de)  22.{  23.    nume = nu;  24.    deno = de ;  25.}  26.void CFraction::input()                        //按照"nu/de"的格式,如"5/2"的形式輸入  27.{  28.    cout << "請輸入數值: (nu/de)" << endl;  29.    cin>>nume>>c>> deno;  30.  31.    while(c != '/')  32.    {  33.        cout << " 格式錯誤,請重新輸入:" << endl;  34.        cin >> nume >> c >> deno;  35.    }  36.}  37.  38.void CFraction::Simplify()                     //化簡(使分子分母沒有公因子)  39.{  40.    int i,x,m;  41.  42.    x = nume < deno ? nume : deno;  43.  44.    for(i = 2 ; i <= x ; i ++)  45.    {  46.        if( nume % i == 0 && deno % i == 0 )  47.        {  48.            nume = nume / i;  49.            deno = deno / i;  50.            i = 1;  51.        }  52.    }  53.      54.      55.}  56.  57.void CFraction::amplify(int n)                //放大n倍,如2/3放大5倍為10/3  58.{  59.    nume = nume * n;  60.  61.    cout << nume << "/" << deno << endl;  62.}  63.  64.void CFraction::output(int style)                          //輸出:以8/6為例,style為0時,輸出8/6;style為1時,輸出4/3;style為2時,輸出1(1/3),表示一又三分之一;不給出參數和非1、2,認為是方式0  65.{  66.    int m;  67.  68.    switch(style)  69.    {  70.    case 0: if(nume % deno == 0)  71.               cout << nume / deno << endl;  72.            else  73.                cout << nume << "/" << deno << endl;   74.            break;  75.          76.    case 1: Simplify();  77.            if(nume % deno == 0)  78.                cout << nume / deno << endl;  79.            else  80.                cout << nume << "/" << deno << endl;  81.             break;  82.    case 2:if(nume % deno == 0)  83.               cout << nume / deno << endl;  84.           else  85.           {  86.               m = nume / deno;  87.               cout << m << "(" << nume % deno << "/" << deno << ")" << endl;  88.               break;  89.           }  90.    }  91.}  92.int main()  93.{  94.    int n;  95.  96.    CFraction num1,num2;  97.    num1.input();  98.  99.    cout << " 化簡得" << endl;  100.  101.    num1.Simplify();  102.  103.    cout << " 增加2倍" << endl;  104.  105.    num1.amplify(2);  106.  107.    cout << "請選擇...." << "0    1    2" << endl;  108.  109.    cin >> n;  110.  111.    num1.output(n);  112.  113.    system("pause");  114.  115.    return 0;  116.}  117.  118.  119.      

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.