课程设计 分数的加减乘-- c++实现

【问题描述】

用分数形式表示的有理数类如下(C++语言描述): class Rational{

private: int x,y;

public:
Rational(int a=1,int b=1);
Rational Add(Rational &r);
Rational Sub(Rational &r);
Rational Mul(Rational &r);
Rational Div(Rational &r);
Rational operator+(Rational &r);
Rational operator-(Rational &r);
Rational operator*(Rational &r);
Rational operator/(Rational &r);
int Divisor(int a,int b);
friend ostream& operator<<(ostream &output,Rational &r); //以 x/y 的形式输出分数

};

3.2【基本要求】

1.成员变量 x 和 y,分别存放分子和分母, 要求分数以最简形式存放。例如:分数 2/4 应简化为 1/2。 2.定义成员函数 Add、Sub、Mul 和 Div,求两个分数的和差积商。计算结果仍以最简形式存放。 3.重载运算符“+、-、*、/”,求两个分数的和差积商。计算结果仍以最简形式存放。 4.定义友元函数,重载“<<”运算符,以 x/y 的形式输出分数。例如,有如下的主函数:

int main(){
Rational a(5,15),b(1,-2),c; cout<<"a="<#include #include using namespace std; int fn(int a,int b);//author:Guo Jinglong //school:taiyuanligong //time:7/12 class fraction { public://外部接口fraction(int m=0,int n=0)//构造函数{a=m ; b=n ;}friend fraction operator + ( fraction d, fraction e)//运算符 + 重载成员函数{return fraction(d.a*e.b+e.a*d.b,d.b*e.b);}friend fraction operator - ( fraction d, fraction e)//运算符 - 重载成员函数{return fraction(d.a*e.b-e.a*d.b,d.b*e.b);}friend fraction operator * ( fraction d, fraction e)//运算符 * 重载成员函数{return fraction(d.a*e.a,d.b*e.b);}friend fraction operator / ( fraction d, fraction e)//运算符 / 重载成员函数{return fraction(d.a*e.b,d.b*e.a);}void display(); private:int a;//分子int b;//分母 };void fraction::display()//输出函数类外实现 {int c;c=fn(a,b);a/=c;b/=c;if(a>0&&b<0){cout<<"-"<0&&b>0){cout<0){cout<=1; d--)if(a3%d==0&&b3%d==0){break;}return d; }int main() {fraction a(5,15),b(1,-2),c;cout<<"a=";a.display();cout<<"b=";b.display();c=a+b;cout<<"a+b=";c.display();c=a-b;cout<<"a-b=";c.display();c=a*b;cout<<"a*b=";c.display();c=a/b;cout<<"a/b=";c.display();getchar();//getchar();system("pause"); }


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部