实现分数的四则运算

C++实现分数的四则运算:
用到的知识点:运算符的重载。

#include <iostream>
#include <string>
using namespace std;
class CFraction  
{
public:
	CFraction();
	CFraction(int i, int j);
	virtual ~CFraction();
	CFraction operator + (CFraction a1);
	CFraction operator -(CFraction a2);
	CFraction operator *(CFraction a3);
	CFraction operator /(CFraction a4);
	void red();
	void display();
private:
	int numer;
	int denom;

};
int main()
{
	CFraction c1(1,2),c2(2,6),c3;
	c3 = c1 + c2;
	c3.display();
	c3 = c1 - c2;
	c3.display();
	c3 = c1 * c2;
	c3.display();
	c3 = c1 / c2;
	c3.display();

	return 0;
}

CFraction::CFraction()
{
	numer = 0;
	denom = 0;
}

CFraction::~CFraction()
{

}


CFraction::CFraction(int i, int j)
{
	numer = i;
	denom = j;
}

CFraction CFraction::operator +(CFraction a1)
{
	CFraction b1;
	b1.numer = numer * a1.denom + a1.numer * denom;
	b1.denom =denom * a1.denom;
	b1.red();
	return b1;

}
CFraction CFraction::operator -(CFraction a2)
{
	CFraction b1;
	b1.numer = numer * a2.denom - a2.numer * denom;
	b1.denom = denom * a2.denom;
	b1.red();
	return b1;

}
CFraction CFraction::operator *(CFraction a3)
{
	CFraction b1;
	b1.numer = numer * a3.numer;
	b1.denom = denom * a3.denom;
	b1.red();
	return b1;

}
CFraction CFraction::operator /(CFraction a4)
{
	CFraction b1;
	b1.numer = numer * a4.denom;
	b1.denom = denom * a4.numer;
	b1.red();
	return b1;

}
void CFraction::red()
{

	for(int i = numer; i > 0; i--)
	{
		if(denom % i == 0 && numer % i == 0)
		{
			numer /= i;
			denom /= i;
			break;
		}
	}
}
void CFraction::display()
{
	cout << "运算的结果为:" << endl;
	cout << "   " << numer << "/" << denom << endl;
}


发布了45 篇原创文章 · 获赞 15 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/CHQC388/article/details/83066261