分类雏形

来源:互联网 发布:java导出excel合并行 编辑:程序博客网 时间:2024/06/05 12:22

问题及代码:

/* *copyright(c) 2014,烟台大学计算机学院 *All rights reserved *文件名称:test.cpp *作者:杨昊 *版本:v6.0 *时间;2016年4月10日 * *问题描述:分类的雏形 *输入描述:无 *程序输出:*/#include <iostream> using namespace std; int hanshu(int m, int n) {     int r;     if (m==0)     {         return n;     }     while(r=m%n)     {         m=n;         n=r;     }     return 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);   //输出:以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) {     if (de!=0)     {         nume=nu;         deno=de;     }     else     {         cout<<"分母不能为0,输入错误"<<endl;     } } void CFraction::set(int nu,int de) {     if (de!=0)     {         nume=nu;         deno=de;     }     else         cout<<"赋值失败,错误原因:分母为0"<<endl; } void CFraction::input() {     int nu,de;     char f;     cin>>nu>>f>>de;         if (de==0)             cout<<"输入错误,错误原因:分母不能为0!"<<endl;     nume=nu;     deno=de; } void CFraction::simplify() {     int n;     n=hanshu(deno, nume);     deno=deno/n;     nume=nume/n; } void  CFraction::amplify(int n) {     nume=nume*n;     deno=deno*n; } void CFraction::output(int style) {     int n=hanshu(nume,deno);     switch(style)     {     case 0:         cout<<nume<<'/'<<deno<<endl;break;     case 1:         cout<<nume/n<<'/'<<deno/n<<endl;break;     case 2:         cout<<nume/deno<<'('<<(nume/n)%(deno/n)<<'/'<<deno/n<<')'<<endl;break;     case 3:         cout<<nume/double(deno)<<endl;break;     default:         cout<<nume<<'/'<<deno<<endl;break;     } } int main() {     CFraction c1(8,6),c2;     c1.output(0);     c1.output(1);     c1.output(2);     c1.output(3);     c1.set(80,3);     c1.output(0);     c1.output(1);     c1.output(2);     c1.output(3);     c2.input();     c2.output(0);     c2.output(1);     c2.output(2);     c2.output(3); }

结果及总结

0 0
原创粉丝点击