Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Create a Java class called Rational for performing arithmetic operations with Ra

ID: 3886524 • Letter: C

Question

Create a Java class called Rational for performing arithmetic operations with Rationals.

The class Rational must have the following:

Data members:

private

int numerator

int denominator

Constructors

Default-argument constructor Two-argument constructor to initialize numerator and denominator

Accessors (Getters)

public int getNumerator() -

return the numerator

public int getDenominator() -

return the denominator

Modifiers (Setters)

public void setNumerator(int value) - set the numerator to value

public void setDenominator(int value)

- set the denominator to value public inputRational()

Input the numerator and the denominator from the keyboard

public String toString() return a string in the form numerator/denominator

private int gcd(int m, int n) - return the greatest common divisor

int r;

while(n != 0) { r = m % n; m = n; n = r; }

return m;

Add two Rational numbers

public void add(Rational, r1, Rational r2)

Subtract two Rational numbers

public Rational sub(Rational r)

For the main method it should have the following:

Input Rational object R1 Input Rational object R2

Add the Rational objects R1 and R2 and store the result in the Rational object R3.

Display the result in the Following Format: numerator/denominator + numerator/denominator = numerator/denominator.

Subtract the Rational object R2 Rrom the Rational object R1 and store the result in the Rational object R3.

Display the result in the following Format: numerator/denominator - numerator/denominator = numerator/denominator.

Multiply the Rational object R1 with the Rational object R2 and store the result in the object R3.

Display the result in the following Format: numerator/denominator * numerator/denominator = numerator/denominator.

Divide the Rational object R1by the Rational object R2 and store the result in the object R3.

Display the result in the following Format: numerator/denominator / numerator/denominator = numerator/denominator.

Display the result or dividing the object R1 by the object R2 in a real number.

Change the numerator or object R1 to 2 Change the denominator or object R2 to 5

Display the numerator or R1 and the denominator or R2 in the following Format:

Numerator: ______

Denominator: _____

Explanation / Answer


import java.util.*;
class Rational
{

private int numerator;
private int denominator;

public Rational() //default constructor
{
numerator = 0;
denominator = 1;
reduce();
}

public Rational (int a, int b)//argument constructor
{
numerator = a;
denominator = b;
reduce();
}

public void setNumerator(int value) // set the numerator to value
{
numerator = value;
}
public void setDenominator(int value)
{
denominator = value;
}


public Rational add (Rational r)
{
  
int num, den;
den = this.denominator * r.getDenominator();

num = this.numerator * r.getDenominator() + r.getNumerator() * this.denominator;

return new Rational (num, den);
}

public Rational sub (Rational r)
{
reduce();
int num, den;
den = this.denominator * r.getDenominator();

num = this.numerator * r.getDenominator() - r.getNumerator() * this.denominator;

return new Rational (num, den);
}

public Rational mul (Rational r)
{
reduce();
int num, den;
den = this.denominator * r.getDenominator();

num = this.numerator * r.getNumerator() ;

return new Rational (num, den);
}

public Rational div (Rational r)
{
reduce();
int num, den;
den = this.denominator * r.getNumerator();

num = this.numerator * r.getDenominator() ;

return new Rational (num, den);
}

public int getNumerator() { return numerator; }

public int getDenominator() { return denominator; }

public String toString () { return numerator + "/" + denominator; }

private int gcd(int m, int n) //return the greatest common divisor
{
int r;
while(n != 0) { r = m % n; m = n; n = r; }
return m;
}

public void reduce() {

int factor;
factor = gcd(numerator, denominator);
numerator = numerator / factor;
denominator = denominator / factor;
}

}
class TestRational
{
public static void main (String[] args)
{
Rational R1 = new Rational(5,3);

Rational R2 = new Rational(3,4);
  
Rational R3,R4,R5,R6;
int numerator,denominator;
  
R3 = R1.add(R2);
  
  
System.out.println(R1.toString() +" + "+ R2.toString()+" = "+ R3.toString());
  
R4 = R1.sub(R2);
  
  
System.out.println(R1.toString() +" - "+ R2.toString()+" = "+ R4.toString());

R5 = R1.mul(R2);
  
  
System.out.println(R1.toString() +" * "+ R2.toString()+" = "+ R5.toString());
  
R6 = R1.div(R2);
  
  
System.out.println(R1.toString() +" / "+ R2.toString()+" = "+ R6.toString());
  
  
R1.setNumerator(2);
R2.setDenominator(5);
  
System.out.println("Numerator of R1 : " + R1.getNumerator());
System.out.println("Denominator of R2 : " + R2.getDenominator());
  
}
}

Output: