分数类的雏形

来源:互联网 发布:南京软件科技大学2016 编辑:程序博客网 时间:2024/05/18 03:31

/*  

问题及代码: 

*文件名称: 分数类的雏形 

*作者:隋文韬

*完成日期:2016.4.6  

*问题描述:分数类的雏形 

*输入描述:无 

*程序输出:分数的不同表示方法  

*/  

#include<iostream>using namespace std;class CFraction{    private:        int nume;//分子        int deno;//分母        int num; //化简后的分子        int den; //化简后的分母    public:        CFraction(int nu=0,int de=1);//构造函数,初始化用        void set(int nu=0,int de=1); //置值,改变值时用        void input();                //按照“nu/de”的格式,例如“5/2”的形式输入        void simplify();             //化简(是分子分母没有公因子)        void amplify(int n);         //放大n倍        void output(int style=0);     //输出:以8/6为例,style=0时,原样输出                                     //style为1时,输出化简形式4/3                                     //style为2时,输出1(1/3)的形式                                     //style为3时,用小数点输出,如1.3333                                     //默认方式0};CFraction::CFraction(int nu,int de):nume(nu),deno(de){}void CFraction::set(int nu,int de){    nume=nu;    deno=de;}void CFraction::input(){    char n;    cin>>nume>>n>>deno;}void CFraction::simplify(){    int nu=nume;    int de=deno;    int t;    while(de!=0)    {        t=nu%de;        nu=de;        de=t;    }    num=nume/nu;    den=deno/nu;}void CFraction::amplify(int n){    nume=nume*n;}void CFraction::output(int style){    if(style==0)        cout<<nume<<"/"<<deno<<endl;    else if(style==1)        cout<<num<<"/"<<den<<endl;    else if(style==2)     {        if((float)nume/(float)deno<1.0)            cout<<nume<<"/"<<deno<<endl;        else if((float)nume/(float)deno==1.0)            cout<<nume/deno;        else if((float)nume/(float)deno>1.0)            cout<<nume/deno<<"("<<nume%deno<<"/"<<deno<<")"<<endl;    }    else        cout<<(float)nume/(float)deno<<endl;}int main(){    CFraction fenshu(5,2);    fenshu.simplify();    fenshu.output(0);    fenshu.output(1);    fenshu.output(2);    fenshu.output(3);    fenshu.amplify(5);    fenshu.output(0);    fenshu.set(8,6);//设置初值    fenshu.output(0);    fenshu.output(1);    fenshu.output(2);    fenshu.output(3);//输出    fenshu.input();    fenshu.output(0);    fenshu.output(1);    fenshu.output(2);    fenshu.output(3);//输出    return 0;}

0 0