定义一个分数类如下,要求实现各个成员函数,并在主函数中测试两个分数的加减乘除等运算。
class Rational
{
public:
Rational(int nn=1,int mm=1); //构造函数 5分
Rational R_add(Rational & A); //加 5分
Rational R_sub(Rational & A); //减 5分
Rational R_mul(Rational & A); //乘 5分
Rational R_div(Rational & A); //除 5分
void print(); //以简分数形式显示,注意约分 5分
private:
void simple( ); //约分 5分
int m; //分母
int n; //分子
};
#include<iostream>
using namespace std;
class Rational{
int m,n;
void simple(){
int a=m,b=n,c=1;
while(c){
c=a%b;
a=b;
b=c;
}
m/=a;
n/=a;
}
public:
Rational(int nn=1,int mm=1):n(nn),m(mm){}
Rational R_add(Rational & A){
Rational r;
r.n=n*A.m+m*A.n;
r.m=m*A.m;
return r;
}
Rational R_sub(Rational & A){
Rational r;
r.n=n*A.m-m*A.n;
r.m=m*A.m;
return r;
}
Rational R_mul(Rational & A){
Rational r;
r.n=n*A.n;
r.m=m*A.m;
return r;
}
Rational R_div(Rational & A){
Rational r;
r.n=n*A.m;
r.m=m*A.n;
return r;
}
void print(){
simple();
cout<<n<<'/'<<m<<endl;
}
};
int main(){
int i,j,k,l;
cin>>i>>j>>k>>l;
Rational a(i,j),b(k,l);
Rational c;
c=a.R_add(b);;
c.print();
c=a.R_sub(b);
c.print();
c=a.R_mul(b);
c.print();
c=a.R_div(b);
c.print();
return 0;
}