スコアクラス

3984 ワード

/*
*Corpyright (c)2013,         
*All right reseved.
*  :   
*    :2014 3 30 
*   :v1.0
*    :
*    :       !
*    :
*    :
*    :
*/

#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;
class CFraction
{
private:
    int nume;  //   
    int deno;  //   
public:
    CFraction(int nu=0,int de=1)
    {
        nume=nu;
        deno=de;
    }  //    ,    
    void set(int nu=0,int de=1);    //  ,     
    void input();	 //  "nu/de"   , "5/2"     
    void simplify();//  (          )
    void simplify1();
    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;
                                //    0
};
void CFraction::simplify1()
{
    int i=0;
    if(nume>deno&&nume%deno!=0)
    {
        i=nume/deno-1;
        cout<<i<<"("<<nume-deno*i<<"/"<<deno<<")"<<endl;
    }
    else if(nume<deno&&nume%deno!=0)
    {
        cout<<"("<<nume<<"/"<<deno<<")"<<endl;
    }
    else
    {
        cout<<nume/deno<<endl;
    }

}
void CFraction::set(int nu,int de)
{
    nume=nu;
    deno=de;
}
void CFraction::input()
{
    int a,b;
    string sss;
    cout<<"   :"<<endl;
    cin>>a>>sss>>b;
    if(sss!="/")
    {
        input();
    }
    else
    {
        set(a,b);
    }

}
void CFraction::simplify()
{
    int s,q;
    if(nume>deno)
    {
        for(int i=deno;i>0;i--)
        {
            s=deno%i;
            q=nume%i;
            if(s==0&&q==0)
                {
                    cout<<"("<<nume/i<<"/"<<deno/i<<")"<<endl;
                    break;
                }

        }
    }
    else
    {
        if(nume<deno)
    {
        for(int i=nume;i>0;i--)
        {
            s=deno%i;
            q=nume%i;
            if(s==0&&q==0)
            {
                 cout<<"("<<nume/i<<"/"<<deno/i<<")"<<endl;
                 break;
            }

        }
    }
    }
}
void CFraction::amplify(int n)
{
    nume=nume*n;
    cout<<"("<<nume<<"/"<<deno<<")"<<endl;
}
void CFraction::output(int style)
{
    if(style==0)
    {
        cout<<nume<<"/"<<deno<<endl;
    }
    else if(style==1)
    {
        simplify();
    }
    else if(style==2)
    {
       simplify1();
    }
    else
    {
        cout<<nume<<"/"<<deno<<endl;
    }
}
int main()
{
    CFraction t1;
    t1.input();
    t1.output(0);
    t1.output(1);
    t1.output(2);
    t1.output(3);
    cout<<"        !"<<endl;
    int n;
    cin>>n;
    t1.amplify(n);
    return  0;
}

 
悟る
類は手にあり、天下は私にある!