c++分数加减乘除

</pre><p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:arial,宋体,sans-serif,tahoma,'Microsoft YaHei'; font-size:14px; line-height:24px; background-color:rgb(243,255,236)"><pre name="code" class="cpp">#include<iostream>
using namespace std;
int fn(int a,int b);
class  fraction//分数类声明
{
	public://外部接口
	fraction(int FZ=0,int FM=0)//构造函数
	{  fz=FZ ; fm=FM ; }
	friend  fraction operator + ( fraction c1, fraction c2)//运算符 + 重载成员函数
	{return  fraction(c1.fz*c2.fm+c2.fz*c1.fm,c1.fm*c2.fm);}
	friend  fraction operator - ( fraction c1, fraction c2)//运算符 - 重载成员函数
	{return  fraction(c1.fz*c2.fm-c2.fz*c1.fm,c1.fm*c2.fm);}
	friend  fraction operator * ( fraction c1, fraction c2)//运算符 * 重载成员函数
	{return  fraction(c1.fz*c2.fz,c1.fm*c2.fm);}
	friend  fraction operator / ( fraction c1, fraction c2)//运算符 / 重载成员函数
	{return  fraction(c1.fz*c2.fm,c1.fm*c2.fz);}
	void input();//输入分数
	void output();//输出分数
private://私有数据成员
	int fz;//分子
	int fm;//分母
};
void  fraction::input()//输入函数类外实现
{
	cout<<"请输入复数的分子和分母:";
	cin>>fz>>fm;
}
void  fraction::output()//输出函数类外实现
{
	int c;
	c=fn(fz,fm);
	fz/=c;fm/=c;
	cout<<"( "<<fz<<"/"<<fm<<" )"<<endl;
}
int fn(int a,int b)//求分子分母的公约数
{
	int d;
	 for(d=(a<b?a:b);d>=1;d--)
	if(a%d==0&&b%d==0) 
	{   break;  }
	 return d;
}
int main()
{
	fraction c1,c2,c3;
	c1.input();    c2.input();
	cout<<"输入的两个分数为:"<<endl;
	cout<<"c1="; c1.output();
	cout<<"c2="; c2.output();
	cout<<"两个分数之间能进行所有运算有:"<<endl;
	c3=c2+c1;
	cout<<"c3=c2+c1="; c3.output();
	c3=c2-c1;
	cout<<"c3=c2-c1="; c3.output();
	c3=c2*c1;
	cout<<"c3=c2*c1="; c3.output();
	c3=c2/c1;
	cout<<"c3=c2/c1="; c3.output();
	getchar();
	getchar();
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值