第五周上機任務項目2-分數類

來源:互聯網
上載者:User
01./*      02.* 程式的著作權和版本聲明部分      03.* Copyright (c)2013, 煙台大學電腦學院學生      04.* All rightsreserved.      05.* 檔案名稱: CFraction  .cpp                                 06.* 作    者:趙冠哲                                  07.* 完成日期:2013年3月29日      08.* 版本號碼: v1.0            09.* 輸入描述:      10.* 問題描述:    11.*/     #include <iostream>     using namespace std;  class CFraction  {  private:      int nume;  // 分子  int deno;  // 分母  public:  CFraction(int nu=0,int de=1); void set(int nu,int de);    void input();  void simplify();                //化簡(使分子分母沒有公因子)      void amplify(int n);            //放大n倍,如2/3放大5倍為10/3      void output(int style=0);       //輸出:以8/6為例,style為0時,原樣輸出8/6;      //style為1時,輸出化簡後形式4/3;      //style為2時,輸出1(1/3)形式,表示一又三分之一;      //style為3時,用小數形式輸出,如1.3333;      //不給出參數和非1、2,認為是方式0  };  int main()  {      CFraction cf1;  cf1.input();  cf1.amplify(5);  cf1.simplify();cf1.output(0);      cf1.output(1);  cf1.output(2);      cf1.output(3);     return 0;  }  CFraction::CFraction(int nu,int de){nume=nu;deno=de;}void CFraction::set(int nu,int de){nume=nu;deno=de;cout<<"輸入的分式為:"<<nume<<"/"<<deno<<endl;}void CFraction::input()                 //按照"nu/de"的格式,如"5/2"的形式輸入  {  cout<<" 請輸入分子、分母:";      cin>>nume>>deno;  }  void CFraction::simplify()                {  int a,b,c,d,num1,num2,temp;                     num1=nume;      num2=deno;  c=nume;      d=deno;  if(num1>num2)       {  temp=num1; num1=num2; num2=temp;     }      a=num1; b=num2;      while(b!=0)     {          temp=a%b;          a=b;          b=temp;      }      c=c/a;      d=d/a;      cout<<"化簡後為:"<<c<<"/"<<d<<endl;  }  void CFraction::amplify(int n)         {      int a,b;                      a=nume;      b=deno;      a=a*n;      b=b*n;      cout<<"擴大倍數後為:"<<a<<"/"<<b<<endl;  }  void CFraction::output(int style)  {      if(style==3)      {  double a;a=double(nume)/double(deno);cout<<"用小數形式輸出為:"<<a<<endl;}else if(style==2) {  int b;if(nume>deno){b=nume/deno;cout<<"寫成假分數為:"<<b<<"("<<(nume-deno*b)<<"/"<<deno<<")"<<endl;}else {cout<<nume<<"/"<<deno<<endl;}}else if(style==1)  {  int a,b,c,d;  int num1,num2,temp;               num1=nume;  num2=deno;  c=nume;  d=deno;  if(num1>num2) {{  temp=num1;num1=num2;num2=temp;   }  a=num1; b=num2;  while(b!=0) {  temp=a%b;  a=b;  b=temp;  }  c=c/a;  d=d/a;  cout<<"化簡後為:"<<c<<"/"<<d<<endl; }else  {cout<<"化簡後為:"<<nume<<"/"<<deno<<endl;  }  }}

運行結果:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.