第六周项目1 分数类的设计

来源:互联网 发布:php 能和sql 编辑:程序博客网 时间:2024/06/06 18:04
/*  *Copyright(c) 2016,烟台大学计算机学院  *All rights reserved.  *文件名称:test2.cpp  *作    者:刘金石  *完成日期:2016年4月7日  *版本  号:v1.0  *问题描述:分数类的设计  *输入描述:输入分子和分母。  *输出描述:输出结果。 */  #include<iostream>using namespace std;class CFraction{private:    int nume;    int deno;public:    CFraction(int nu=0,int de=1);    void set(int nu=0,int de=1);    void input();    void simplify();    void amplify(int n);    void output(int style=0);};CFraction::CFraction(int nu,int de):nume(nu),deno(de){    //cout<<nume<<" "<<deno<<endl;}void CFraction::set(int nu,int de){    cout<<"Please input nume and deno:"<<endl;    cin>>nu>>de;    nume=nu;    deno=de;}void CFraction::input(){    char ch;    cout<<"请输入分子和分母(分子/分母)"<<endl;    cin>>nume>>ch>>deno;}void CFraction::simplify(){    int x,y,t;    x=nume;    y=deno;    if(x<y)    {        t=x;        x=y;        y=t;    }    while(y>0)    {        t=x%y;        x=y;        y=t;    }    nume=nume/x;    deno=deno/x;    cout<<"化简后的分数为:"<<endl;    cout<<nume<<"/"<<deno<<endl;}void CFraction::amplify(int n){    nume=nume*n;    cout <<"放大"<<n<<"倍后的分数为:"<<endl;    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)    {        cout<<nume/deno<<"("<<nume%deno<<"/"<<deno<<")"<<endl;    }    else if(style==3)    {        float fl;        fl=(float)nume/deno;        cout<<fl<<endl;    }}int main(){    CFraction num;    num.input();    num.simplify();    num.amplify(2);    num.output(1);    num.output(2);    num.output(3);    return 0;}

运行结果:


0 0