第五周(项目二)——分数类的雏形。

来源:互联网 发布:刘梦溪 知乎 编辑:程序博客网 时间:2024/06/05 09:43
/**烟台大学计算机学院学生*All right reserved.*文件名称*烟台大学计算机学院学生*All right reserved.*文件名称:分数类的雏形*作者:王洪海*完成日期:2013年3月30日*版本号:v1.0*对任务及求解方法的描述部分:分数类的雏形*我的程序:*/#include<iostream>#include<cstdlib>using namespace std;class CFraction{private:    int nume;  // 分子    int deno;  // 分母public:    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();   //输出:以8/6为例,style为0时,原样输出8/6;void jia(int state=1);};int main() {   int num,m,d;  CFraction t;   t.input();   while(1)    {        cout<<"请输入您的选择:"<<endl;        cout<<"1.原样输出.        2.化简后输出."<<endl;        cout<<"3.扩大N倍后输出.   4.以假分数(输入1),小数形式(输入2)输出"<<endl;        cout<<"0.退出."<<endl;       cin>>m;       switch(m)       {        case 0:            exit(0);        case 1:            t.output();            break;        case 2:            t.simplify();            t.output();            break;case 3:            cout<<"请输入扩大倍数:"<<endl;            cin>>num;            t.amplify(num);            t.output();            break;        case 4:cout<<"请重新输入1或2代表假分数和小数"<<endl;cin>>d;if(d==1)    t.jia(d);else t.jia(d);             break;        default:   cout<<"输入有误,请重新输入:"<<endl;           cin>>m;       }    }    return 0;}void CFraction::set(int nu,int de){nume=nu;deno=de;}void CFraction::input(){   cout<<"请输入分数(2/5)"<<endl;int a,b;char c;while(1){cin>>a>>c>>b;if(c!='/')cout<<"输入有误,请重新输入:"<<endl;elsebreak;}set(a,b);}void CFraction::simplify(){int i;int p;if(nume>deno)p=deno;elsep=nume;for(i=2;i<=p;i++){if(nume%i==0&&deno%i==0){nume/=i;deno/=i;}}}void CFraction::amplify(int n){nume*=n;}void CFraction::output(){cout<<"按照要求处理后"<<nume<<"/"<<deno<<endl;}void CFraction::jia(int state){   int num1;double a;if(state==1){num1=nume/deno;nume=nume-num1*deno;cout<<"假分数是:"<<num1<<"("<<nume<<"/"<<deno<<")"<<endl;}if(state==2){a=double(nume)/double(deno);cout<<nume<<"/"<<deno<<"变成小数是:"<<a<<endl;}}

运行结果,如下图:


0 0
原创粉丝点击