(一)问题及代码、
#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(); void simplify(); void amplify(int n); void output(int style=0); }; CFraction::CFraction(int nu,int de) { if (de!=0) { nume=nu; deno=de; } else { cerr<<"初始化中发生错误,程序退出\n"; exit(0); } } void CFraction::set(int nu,int de) { if (de!=0) { nume=nu; deno=de; } } void CFraction::input() { int nu,de; char c; cin>>nu>>c>>de; { if(c!='/') cout<<"输入格式错误!\n "; else if (de==0) cout<<"分母不能为零!\n "; } } void CFraction::simplify() { int n=gcd(deno, nume); deno/=n; nume/=n; } int gcd(int m, int n) { int r; if (m<n){r=m;m=n;n=r;} while(r=m%n) { m=n; n=r; } return n; } void CFraction::amplify(int n) { nume*=n; } 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
