スコアの四則演算を実現
13641 ワード
C++実装スコアの4つの演算:使用する知識点:演算子の再ロード.
#include
#include
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;
}