⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cai dat lop phan so.txt

📁 class phanso,a simple exercise
💻 TXT
字号:
#include <iostream.h> 
#include <conio.h> 
class phanso{ 
      public: 
             phanso();// constructor mac dinh 
             phanso(int tu, int mau);// khi dung cac constructor chuyen doi thi ta khong dc dung cac constructor voi tham so mac dinh, bao loi 
             phanso(int );// constructor chuyen do kieu nguyen sang phan so 
             ~phanso(); 
             void set(int , int ); 
             void get(); 
             friend phanso operator+(phanso a, phanso b); 
             friend phanso operator-(phanso a, phanso b); 
             friend phanso operator*(phanso a, phanso b); 
             friend phanso operator/(phanso a, phanso b); 
             friend ostream & operator <<(ostream &, phanso); 
             friend istream &operator >>(istream &, phanso &); 
      private: 
              void quydong ( phanso &a, phanso &b); 
              int tu, mau;       
      }; 
      int BSCNN ( int a, int b); 
      int USCLN ( int a, int b); 
      int BSCNN ( int a, int b) 
      { 
          int c; 
          int u; 
          u=USCLN(a,b); 
          return ((a*b)/u); 
      } 
      int USCLN( int a, int b) 
      { 
          a=abs(a); 
          b=abs(b); 
          if( a==0||b==0) return (a+b); 
          else 
          { 
              while (a!=b) 
              { 
                    if ( a>b) a-=b; 
                    else b-=a; 
              } 
              return a; 
          } 
      } 
      phanso::phanso() 
      { 
           set(1,1); 
      } 
      phanso::phanso(int tu, int mau) 
      { 
           set(tu, mau); 
      } 
      phanso::phanso(int a) 
      { 
            set(a,1);              
      } 
      phanso::~phanso() 
      { 
            // ko lam j ca 
      } 
      void phanso::set(int a , int b) 
      { 
           tu=a; 
           mau=b; 
       } 
       void phanso::get() 
       { 
            cout<<tu<<"/"<<mau<<endl; 
        } 
      void phanso::quydong(phanso &a, phanso &b) 
      { 
           int bs=BSCNN(a.mau, b.mau);         
            a.tu=a.tu*bs/a.mau ; 
            b.tu=b.tu*bs/b.mau; 
            a.mau=b.mau=bs; 
       } 
      phanso operator +(phanso a, phanso b) 
      { 
             phanso result; 
             if(a.mau==b.mau){ 
                              result.tu=a.tu+b.tu; 
                              result.mau = a.mau; 
                             } 
             else { 
                     result.quydong(a,b); 
                     result.tu=a.tu+b.tu; 
                     result.mau=a.mau; 
                  } 
             return result; 
      } 
      phanso operator - (phanso a, phanso b) 
      { 
             phanso result; 
             if( a.mau==b.mau){ 
                 result.tu=a.tu-b.tu; 
                 result.mau= a.mau; 
             } 
             else { 
                     result.quydong(a,b); 
                     result.tu=a.tu-b.tu; 
                     result.mau=a.mau; 
                  } 
             return result; 
      } 
      phanso operator *(phanso a, phanso b) 
      { 
            phanso result; 
            result.tu=a.tu*b.tu; 
            result.mau=a.mau*b.mau; 
            return result; 
      } 
      phanso operator /(phanso a, phanso b) 
      { 
             phanso result; 
             result.tu=a.tu*b.mau; 
             result.mau=a.mau*b.tu; 
             return result; 
      } 
      ostream &operator << (ostream &out, phanso a) 
      { 
              out<<"\t"<<a.tu<<"/"<<a.mau<<endl; 
              return out; 
      } 
      istream &operator>>(istream &in, phanso &a) 
      { 
              cout<<"Tu so: "; 
              in>>a.tu; 
              cout <<"Mau so: "; 
              in>>a.mau; 
              return in; 
      } 
      int main () 
      { 
          phanso a(3,2),b(4,5); 
          phanso c,d,e; 
          cout<<"a: "<<a<<endl; 
          cout<<"b: "<<b<<endl; 
          c=a+b; 
          cout<<"a: "; 
          c.get(); 
          cout<<"a: "<<c<<endl; 
          d=a-5; 
          d.get(); 
          d=b*3; 
          cout<<"d: "<<d<<endl; 
          cin>>e; 
          cout<<"e: "<<e<<endl; 
          e=d/a; 
          cout<<"e: "<<e<<endl; 
          getch(); 
          return 0; 
      }  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -