JianGuanTHU / UOJ_Offline

Offline test system for THUOOP
7 stars 0 forks source link

Proposal (第2次作业 Factor) #5

Closed Zhiyuan-Zeng closed 3 years ago

Zhiyuan-Zeng commented 3 years ago

题目描述

​ 大概是要实现一个分数类,可以存储一个非负的分数。

​ 需要支持如下操作(用重载运算符的形式):流读入,流输出,加法,乘法,除法(除0时会报错,比如输出一个错误信息然后exit(0)),大小比较,加乘除要返回约分后的最简形式。

Code

//main.cpp
#include <iostream>
#include "my_fraction.h"

int main()
{
    using namespace std;
    fraction A, B;
    cin >> A >> B;//输入格式形如a/b,不一定最简
    //输出要给出约分后的最简形式,比如1/4 + 1/4 = 1/2;0的最简形式是0/1
    cout << A + B << endl;
    cout << A * B << endl;
    cout << A / B << endl;
    if (A == B)
        cout << "equal" << endl;
    if (A < B)
        cout << "smaller" << endl;
    if (A > B)
        cout << "bigger" << endl;
    return 0;
}

​ 学生自己实现my_fraction.h以及相关文件,并提交makefile

考察点

​ 运算符重载。因为只要输出 $\Theta(1)$ 次结果,涉及约分的部分会枚举整数因数就可以了,因此没有算法上的难度。

hzhwcmhf commented 3 years ago

题目很清晰,没有问题。请参照readme实现完整体面、数据、judger和答案程序,自行测试通过。完成之后发到邮箱 huangfei382@163.com。对于编写judger有问题可在小教员群(或找助教)讨论

hzhwcmhf commented 3 years ago

验收通过