Fraction分数类II

本文介绍了如何使用Java编写一个Fraction分数类,包括设置分数、加减乘除、约分及比较的方法。要求所有运算不约分,仅由simplify方法进行约分,且约分后分母必须为正数。
摘要由CSDN通过智能技术生成

题目描述

编写分数类(有理数类)Fraction,包含以下成员变量:整数变量numerator和denominator,  分别表示分数的分子与分母。 
包含以下成员方法(务必严格按照要求编写!!!!):
1. void setFraction(int n, int d),  在方法内部,n,d分别赋值给成员变量numerator和denominator,。
2. Fraction add(Fraction f), 求当前对象 与 参变量f 分数 的 和,作为返回值返回 ( 按照标准公式计算:先将两个分数通分成 最小公共分母(分母的最小公倍数), 再分子相加,结果不做约分 ) 。
3. Fraction sub(Fraction f), 求当前对象 与 参变量f 分数 的 差,作为返回值返回 ( 按照标准公式计算:先通两个分数通分成 最小公共分母(分母的最小公倍数), 再分子相减,结果不做约分 )。
4. Fraction mul(Fraction f), 求当前对象  与 参变量f 分数 的 积,作为返回值返回 ( 按照标准公式计算: 分子、分母分别相乘,结果不做约分 )。
5. Fraction div(Fraction f), 求当前对象 与 参变量f 分数 的 商,作为返回值返回  ( 按照标准公式计算:f分数求倒数后,再分子、分母分别相乘, 结果不做约分 )。
6. Fraction simplify(), 对当前对象的 进行最大化约分, 如果是负分数,则负号放分子, 并返回约分后的当前对象。
7. boolean equals(Fraction f), 判断当前对象代表的分数与 参

下面是一个基本的 C++ 实现,用于表示分数: ```cpp #include <iostream> using namespace std; class Fraction { private: int numerator; // 分子 int denominator; // 分母 public: Fraction(int n, int d) { numerator = n; denominator = d; } Fraction operator+(Fraction const &obj) { int n = numerator * obj.denominator + obj.numerator * denominator; int d = denominator * obj.denominator; return Fraction(n, d); } Fraction operator-(Fraction const &obj) { int n = numerator * obj.denominator - obj.numerator * denominator; int d = denominator * obj.denominator; return Fraction(n, d); } Fraction operator*(Fraction const &obj) { int n = numerator * obj.numerator; int d = denominator * obj.denominator; return Fraction(n, d); } Fraction operator/(Fraction const &obj) { int n = numerator * obj.denominator; int d = denominator * obj.numerator; return Fraction(n, d); } void simplify() { int gcd = __gcd(numerator, denominator); numerator /= gcd; denominator /= gcd; } void display() { if (denominator == 1) { cout << numerator << endl; } else { cout << numerator << "/" << denominator << endl; } } }; int main() { Fraction f1(2, 3); Fraction f2(3, 4); Fraction f3 = f1 + f2; f3.simplify(); f3.display(); Fraction f4 = f1 - f2; f4.simplify(); f4.display(); Fraction f5 = f1 * f2; f5.simplify(); f5.display(); Fraction f6 = f1 / f2; f6.simplify(); f6.display(); return 0; } ``` 这个实现了加、减、乘、除四个运算符重载,并且包含了化简分数以及显示分数的方法。在主函数中,我们创建了两个分数对象 `f1` 和 `f2`,然后通过运算符重载来对它们进行加减乘除的操作,并且将结果化简后输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值