Rumah > Soal Jawab > teks badan
(4) 定义一个分数类如下,要求实现各个成员函数,并在主函数中测试两个分数的加减乘除等运算。
cpp
class Rational { public: Rational(int nn=1,int mm=1); //构造函数 Rational R_add(Rational & A); //加 Rational R_sub(Rational & A); //减 Rational R_mul(Rational & A); //乘 Rational R_p(Rational & A); //除 void print(); //以简分数形式显示,注意约分 private: void simple( ); //约分 int m; //分母 int n; //分子 };
ringa_lee2017-04-17 11:50:48
cpp
class Rational{ public: Rational(int nn=1,int mm=1){ this->n=nn; this->m=mm; this->simple(); }; //构造函数 Rational R_add(Rational & A){ return *new Rational(this->n * A.m + A.n*this->m,this->m * A.m); }; //加 Rational R_sub(Rational & A){ return *new Rational(this->n * A.m - A.n*this->m,this->m * A.m); }; //减 Rational R_mul(Rational & A){ return *new Rational(this->n * A.n,this->m * A.m); }; //乘 Rational R_p(Rational & A){ return *new Rational(this->n * A.m,this->m * A.n); }; //除 void print(){ std::cout << this->n << "/" << this->m << endl; }; //以简分数形式显示,注意约分 private: void simple( ){ int limit = this->m > this->n ? this->n : this->m; for(int i=limit;i>1;i--){ if(this->m%i==0 && this->n%i==0){ this->m /= i; this->n /=i; break; } } }; //约分 int m; //分母 int n; //分子 };
使用方法:
cpp
// 示例 Rational* a= new Rational(4,10); // 2/5 Rational* b= new Rational(7,20); // 7/20 a->R_add(*b).print(); // 3/4 a->R_sub(*b).print(); // 1/20 a->R_mul(*b).print(); // 7/50 a->R_p(*b).print(); // 8/7
看这弱智问题应该像是学校C++教科书的作业吧,大哥你作业也要人代劳,这真的好么??