第四周【项目2-分数类的雏形】

来源:互联网 发布:手机淘宝怎么用 编辑:程序博客网 时间:2024/05/16 12:39
问题及代码:
/* *Copyright (c) 2014,烟台大学计算机学院 *ALL right reserved *文件名:分数类的雏形 *作者;童宇 *完成日期:2015年3月31日 *版本号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();               //按照"nu/de"的格式,如"5/2"的形式输入    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;    //默认方式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()               //按照"nu/de"的格式,如"5/2"的形式输入{    char a;    cin>>nume>>a>>deno;}void CFraction::simplify()            //化简(使分子分母没有公因子){    int a,b=nume,c=deno;    while(b%c!=0)    {        a=b%c;        b=c;        c=a;    }    nume/=c;    deno/=c;}void CFraction::amplify(int n)        //放大n倍,如2/3放大5倍为10/3{    nume*=n;}void CFraction::output(int style){    int i=0,a=nume,b=deno;    double j;    switch(style)    {    case 0:        cout<<nume<<"/"<<deno;        break;    case 1:        simplify();        cout<<nume<<"/"<<deno;        break;    case 2:        while(a>b)        {            a=a-b;            i++;        }        cout<<i<<"("<<a<<"/"<<b<<")";        break;    case 3:        j=nume/deno;        cout<<j;        break;    }}int main(){    CFraction c0,c1(8),c2;    c0.output();    cout<<endl;    c2.set(8,12);    c2.output();    cout<<endl;    c2.output(1);    cout<<endl;    c2.output(2);    cout<<endl;    c1.output(2);    cout<<endl;    c1.output(3);    cout<<endl;}
运行结果:
<img src="http://img.blog.csdn.net/20150331202543912?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTA2MDkwNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

0 0
原创粉丝点击