Java 3、创建一个Fraction类执行分数运算。要求如下: (1)用整型数表示类的private成员变量:f1和f2。 (2)提供构造方法,将分子存入f1,分母存入f2。 (3)提供两个分数相加的运算方法,结果分别存入f1和f2。 (4)提供两个分数相减的运算方法,结果分别存入f1和f2。 (5)提供两个分数相乘的运算方法,结果分别存入f1和f2。 (6)提供两个分数相除的运算方法,结果分别存入f1和f2。 (7)以a/b的形式输出Fraction数。 (8)以浮点数的形式输出Fraction数。 (9)编写主程序进行分数运算。
时间: 2024-02-29 11:53:32 浏览: 120
好的,我会解答您的问题。下面是一个示例的Fraction类,实现了分数的基本运算:
```java
public class Fraction {
private int f1; // 分子
private int f2; // 分母
public Fraction(int f1, int f2) {
this.f1 = f1;
this.f2 = f2;
}
// 获取最大公约数
private int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
// 获取最小公倍数
private int lcm(int a, int b) {
return a * b / gcd(a, b);
}
// 分数化简
private void simplify() {
int gcd = gcd(f1, f2);
f1 /= gcd;
f2 /= gcd;
}
// 相加
public void add(Fraction f) {
int lcm = lcm(f2, f.f2);
f1 = f1 * lcm / f2 + f.f1 * lcm / f.f2;
f2 = lcm;
simplify();
}
// 相减
public void subtract(Fraction f) {
int lcm = lcm(f2, f.f2);
f1 = f1 * lcm / f2 - f.f1 * lcm / f.f2;
f2 = lcm;
simplify();
}
// 相乘
public void multiply(Fraction f) {
f1 *= f.f1;
f2 *= f.f2;
simplify();
}
// 相除
public void divide(Fraction f) {
f1 *= f.f2;
f2 *= f.f1;
simplify();
}
// 输出为a/b形式
public String toString() {
return f1 + "/" + f2;
}
// 输出为浮点数形式
public double toDouble() {
return (double) f1 / f2;
}
public static void main(String[] args) {
Fraction f1 = new Fraction(1, 3);
Fraction f2 = new Fraction(2, 5);
// 相加
f1.add(f2);
System.out.println(f1); // 输出为 11/15
// 相减
f1.subtract(f2);
System.out.println(f1); // 输出为 1/3
// 相乘
f1.multiply(f2);
System.out.println(f1); // 输出为 2/15
// 相除
f1.divide(f2);
System.out.println(f1); // 输出为 10/3
// 输出为浮点数形式
System.out.println(f1.toDouble()); // 输出为 3.3333333333333335
}
}
```
以上就是一个简单的Fraction类的实现,您可以根据自己的需求进行修改和拓展。
阅读全文