基本信息
源码名称:c++ 分数运算(入门级)
源码大小:1.89KB
文件格式:.cpp
开发语言:C/C++
更新时间:2019-11-27
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
#include<iostream>
#include<cmath>
using namespace std;
class CRational{
long num;//分子
long den;//分母
long gcb(long num,long den);//求最大公约数
void Simplify(CRational &r);//化简分数
public:
CRational(long n, long d);//构造函数
CRational add(CRational r);//加法
CRational minu(CRational r);//减法
CRational multi(CRational r);//乘法
CRational divide(CRational r);//除法
int getn();//获取分数的分子
int getd();//获取分数的分母
};
long CRational:: gcb(long num,long den)//辗转相除法求最大公约数 ,利用递归函数
{
if(den==0)
return num;
else
return gcb(den,num%den);
}
void CRational:: Simplify(CRational &r)//化简函数,将分数约分
{
int a;
a=gcb(abs(r.num),abs(r.den)); //求出分子分母的最大公约数
r.num=r.num/a;//分子除以最大公约数
r.den=r.den/a;//分母除以最大公约数
}
CRational:: CRational(long n, long d)//构造函数,将分子和分母赋值
{
num=n;
den=d;
}
CRational CRational:: add(CRational r)//加法
{
CRational a(0,0);
a.num=num*r.den r.num*den;
a.den=den*r.den;
Simplify(a);
return a;
}
CRational CRational:: minu(CRational r)//减法
{
CRational a(0,0);
a.num=num*r.den-r.num*den;
a.den=den*r.den;
Simplify(a);
return a;
}
CRational CRational:: multi(CRational r)//乘法
{
CRational a(0,0);
a.num=num*r.num;
a.den=den*r.den;
Simplify(a);
return a;
}
CRational CRational:: divide(CRational r)//除法
{
CRational a(0,0);
a.num=num*r.den;
a.den=den*r.num;
Simplify(a);
return a;
}
int CRational:: getn() //得到分子的数值
{
return num;
}
int CRational:: getd() //得到分母的数值
{
return den;
}
int main()
{
CRational a(13,24);
CRational b(4,7);
CRational c(3,29);
CRational temp(0,0);
temp=a.multi(b);
temp=temp.minu(c);
cout<<temp.getn()<<"/"<<temp.getd();
return 0;
}