第五周项目22-分数类的雏形

来源:互联网 发布:部落战争mac电脑版 编辑:程序博客网 时间:2024/06/14 07:40

问题及代码:

/**Copyright (c) 2015,烟台大学计算机学院*All rights reserved.*文件名称:text.cpp*作者:徐健*完成日期:2015年4月2日*版本号:v1.0**问题描述:设计一个简单的分数类,完成对分数的几个运算*输入描述:两个整数和一个字符*程序输出:输出三个分数*/#include <iostream>#include<string>#include<iomanip>using namespace std;int GCD(int n,int m);class CFraction{public:    CFraction(int nu=1,int de=1);   void set(int nu=1,int de=1);    void input();    void simplify();    void amplify(int n);    void output(int style=0);private:    int nume;    int deno;};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;        cin>>n;        cin>>deno;    }void CFraction::simplify(){    int t;    t=GCD(nume,deno);    cout<<nume/t<<"/";    cout<<deno/t<<endl;}void CFraction::amplify(int n){    int m;    m=GCD(nume,deno);    cout<<(nume/m)*n<<"/"<<deno/m<<endl;}void CFraction::output(int style){    int m;    m=GCD(nume,deno);    if(style==0)    {        cout<<nume<<"/"<<deno<<endl;    }    else if(style==1)    {        cout<<nume/m<<"/"<<deno/m<<endl;    }    else if(style==2)    {        if(nume/deno==0)        cout<<nume<<"/"<<deno<<endl;        else        cout<<nume/deno<<"("<<nume%deno<<"/"<<deno<<")"<<endl;    }    else if(style==3)    {        cout<<setprecision(4)<<setiosflags(ios::fixed)<<static_cast<double>(nume)/static_cast<double>(deno)<<endl;    }}int GCD(int n,int m){    if(m<=n)     {        if(n%m==0)        return(m);        else        return (GCD(m,n%m));     }    else        return(GCD(m,n));}int main(){    CFraction fenshu;    fenshu.amplify(3);    fenshu.set(18,8);    fenshu.simplify();    fenshu.input();    fenshu.output(3);    return 0;}
运行结果:

知识点总结:
运用了类的构造函数以及类外定义函数。

学习心得:

通过此次编程,我发现我对于类的运用还有很多地方不能很好的运用,有很多小的知识点的概念不清楚,运用方法不清晰,造成很多的错误产生,我会对那些零碎的知识点进行进一步的理解与掌握,争取能够熟练运用。

1 0
原创粉丝点击