//有理数类(Rational),用于执行带分数的运算+、-、*、/
//必须以简化形式存放分数,如:2/4应在对象中存放为1/2。
//可以用有理数格式或双精度格式输出值
//最后编写一个主函数对以上功能进行测试。
#include <iostream>
#include <cstdlib>
using std::cout;
using std::endl;
using std::ostream;
//有理数类(Rational)
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
......
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
//有理数类(Rational)的测试程序
int main() {
//构造函数(默认值0/1,以简化形式存放分数)
Rational r0;
cout<<"r0:"<<r0<<endl;
//分母为0,初始化为默认值
Rational r1(1,0);
cout<<"r1:"<<r1<<endl;
Rational r2(1,2);
cout<<"r2:"<<r2<<',';
//以双精度格式输出有理数
r2.printRationalAsDouble();
Rational r3(3,6);
cout<<"r3:"<<r3<<',';
r3.printRationalAsDouble();
Rational r4(6,8);
cout<<"r4:"<<r4<<',';
r4.printRationalAsDouble();
cout<<endl;
r0=Rational(-6,8);
cout<<"r0:"<<r0<<',';
r0.printRationalAsDouble();
r0=Rational(6,-8);
cout<<"r0:"<<r0<<',';
r0.printRationalAsDouble();
r0=Rational(-6,-8);
cout<<"r0:"<<r0<<',';
r0.printRationalAsDouble();
cout<<endl;
//相加的结果也要以简化形式存放
Rational r5=r1+r2;
cout<<"r5=r1+r2="<<r1<<" + "<<r2<<'='<<r5<<endl;
r5=r2+r3;
cout<<"r5=r2+r3="<<r2<<" + "<<r3<<'='<<r5<<endl;
r5=r3+r4;
cout<<"r5=r3+r4="<<r3<<" + "<<r4<<'='<<r5<<endl;
cout<<endl;
//有理数减
Rational r6=r1-r2;
cout<<"r6=r1-r2="<<r1<<" - "<<r2<<'='<<r6<<endl;
r6=r2-r3;
cout<<"r6=r2-r3="<<r2<<" - "<<r3<<'='<<r6<<endl;
r6=r3-r4;
cout<<"r6=r3-r4="<<r3<<" - "<<r4<<'='<<r6<<endl;
cout<<endl;
//有理数乘
Rational r7=r1*r2;
cout<<"r7=r1*r2="<<r1<<" * "<<r2<<'='<<r7<<endl;
r7=r2*r3;
cout<<"r7=r2*r3="<<r2<<" * "<<r3<<'='<<r7<<endl;
r7=r3*r4;
cout<<"r7=r3*r4="<<r3<<" * "<<r4<<'='<<r7<<endl;
cout<<endl;
//有理数除
Rational r8;
r8=r1/r2;
cout<<"r8=r1/r2="<<r1<<" / "<<r2<<'='<<r8<<endl;
r8=r2/r3;
cout<<"r8=r2/r3="<<r2<<" / "<<r3<<'='<<r8<<endl;
r8=r3/r4;
cout<<"r8=r3/r4="<<r3<<" / "<<r4<<'='<<r8<<endl;
return 0;
}
输出样例
r0:0 r1:0 r2:1/2,0.5 r3:1/2,0.5 r4:3/4,0.75 r0:-3/4,-0.75 r0:-3/4,-0.75 r0:3/4,0.75 r5=r1+r2=0 + 1/2=1/2 r5=r2+r3=1/2 + 1/2=1/1 r5=r3+r4=1/2 + 3/4=5/4 r6=r1-r2=0 - 1/2=-1/2 r6=r2-r3=1/2 - 1/2=0 r6=r3-r4=1/2 - 3/4=-1/4 r7=r1*r2=0 * 1/2=0 r7=r2*r3=1/2 * 1/2=1/4 r7=r3*r4=1/2 * 3/4=3/8 r8=r1/r2=0 / 1/2=0 r8=r2/r3=1/2 / 1/2=1/1 r8=r3/r4=1/2 / 3/4=2/3
笨笨