C++高手进进

来源:百度知道 编辑:UC知道 时间:2024/06/06 05:04:58
要设计一个分数计数器
要能进行分数加减乘除四则运算;
而且输出结果时显示是最简分式。

#include <iostream>
using namespace std;
class A
{
public:
int up;
int down;

A(): up(0),down(1){}
A(int u, int d):up(u), down(d){}

// 化简分数
A better()
{
if (down == up)
{
up = 1;
down = 1;
}
int min =up < down ? up :down;
for (int i = 2; i <= min; i++)
{
if (up%i == 0 && down%i == 0)
{
up /= i;
down /= i;
min = up < down ? up :down;
i = 1;
}
}
return *this;
}
friend void print(A a)
{
if (a.down == 1)
cout << a.up << endl;
else
cout << a.up << "/" << a.down << endl;
}
A operator+(A &a)
{
return (new A(up * a.down + down *a.up,down * a.down))->better();
}
A operator-(A &a)
{
return (new A(up * a.down - down *a.up,down * a.