zoukankan      html  css  js  c++  java
  • 第五周项目二

    /*     
    * 程序的版权和版本声明部分     
    * Copyright (c)2012, 烟台大学计算机学院学生     
    * All rightsreserved.     
    * 文件名称:cf.cpp     
    * 作者:王立强  
    * 完成日期: 2013年4月3 日     
    * 版本号: v1.0     
    * 输入描述:略    
    * 问题描述:略     
    * 程序输出:略    
    */          
    #include<iostream>  
    #include<Cmath>  
    using namespace std;  
    int gcd(int m, int n);  
    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);     
    };  
      
    CFraction::CFraction(int nu,int de) //构造函数,初始化用  
    {  
        if (de!=0)  
        {  
            nume=nu;  
            deno=de;  
        }  
        else  
        {  
            cerr<<"初始化中发生错误,程序退出\n";  
            system("pause");  
            exit(0);  
        }  
    }  
      
    void CFraction::set(int nu,int de)    //置值,改变值时用  
    {  
        if (de!=0) //如果不合适,改变值操作无效  
        {  
            nume=nu;  
            deno=de;  
        }  
    }  
      
    void CFraction::input() //按照"nu/de"的格式,如"5/2"的形式输入  
    {  
        int nu,de;  
        char c;  
        while(1)  
        {  
            cout<<"输入分数(m/n): ";  
            cin>>nu>>c>>de;  
            if(c!='/')  
                cout<<"输入格式错误!\n ";  
            else if (de==0)  
                cout<<"分母不能为零!\n ";  
            else  
                break;  
        }     
        nume=nu;  
        deno=de;  
    }  
      
    // 分数化简,使分子分母没有公因子  
    void CFraction::simplify()  
    {  
        int n=gcd(deno, nume);  
        deno/=n;     // 化简  
        nume/=n;  
    }  
      
    // 求m,n的最大公约数  
    int gcd(int m, int n) //这个函数可以定义为类的成员函数,也可以为一般函数  
    {  
        int r;  
        if (m<n){r=m;m=n;n=r;}  
        while(r=m%n)  // 求m,n的最大公约数  
        {  
            m=n;  
            n=r;  
        }  
        return n;  
    }  
      
    void CFraction::amplify(int n)  //放大n倍,如2/3放大5倍为10/3  
    {  
        nume*=n;  
    }  
    //输出分数:以/6为例  
    //style为0时,原样输出8/6;  
    //style为1时,输出化简后形式4/3;  
    //style为2时,输出1(1/3)形式,表示一又三分之一;  
    //style为3时,用小数形式输出,如1.3333;  
    void CFraction::output(int style)  
    {  
        int n;  
        switch(style)  
        {  
        case 0:  
            cout<<"原样:" <<nume<<'/'<<deno<<endl;   
            break;  
        case 1:  
            n=gcd(deno, nume);  
            cout<<"化简形式: "<<nume/n<<'/'<<deno/n<<endl;     //输出化简形式,并不是要化简  
            break;  
        case 2:  
            cout<<"带分数形式:" <<nume/deno<<'('<<nume%deno<<'/'<<deno<<')'<<endl;   
            break;  
        case 3:  
            cout<<"近似值:" <<nume/double(deno)<<endl;   
            break;  
        default:  
            cout<<"默认原样:" <<nume<<'/'<<deno<<endl;      
        }  
    }  
      
    int main()  
    {  
        CFraction c1,c2(8,6);  
      
        cout<<"关于c1: "<<endl;  
        c1.output(0);  
      
        cout<<"改变c1: "<<endl;  
        c1.set(2,7);  
        c1.output();  
      
        cout<<"输入c1: "<<endl;  
        c1.input();  
        c1.output(0);  
      
        cout<<"关于c2: "<<endl;  
        c2.output(0);  
        c2.output(1);   
        c2.output(3);   
        c2.output(3);  
        c2.output();  
      
        cout<<"将c2化简: "<<endl;  
        c2.simplify();  
        c2.output(0);  
      
        cout<<"将c2放大倍: "<<endl;  
        c2.amplify(5);  
        c2.output(0);  
        c2.output(1);   
      
        system("pause");  
        return 0;  
    }  


  • 相关阅读:
    iPhone 移植到 iPad:
    在Xcode4 中将iPhone使用的xib转换成iPad使用的xib
    IOS7开发~Xcode5制作framework
    汇总iOS开发中需要用到的开源库
    Objective-C学习笔记 利用协议实现回调函数
    xcode 4 制作通用静态库
    (难)Codeforces Round #406 (Div. 2) D题Legacy(线段树+最短路)解题报告
    (十字链表)CodeForces
    (并查集)poj1182——食物链
    (dp)17bupt新生赛——B. Hmz 的女装
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/2998491.html
Copyright © 2011-2022 走看看