Refine the Rationaljava you have already developed in lab11

Refine the Rational.java you have already developed in lab11 (standard version will be provided under public folder
by November 1) by adding the following operations on the rational numbers:

public static Rational add( Rational r1, Rational r2)
public static Rational substract( Rational r1, Rational r2)
public static Rational multiply( Rational r1, Rational r2)
public static Rational divide( Rational r1, Rational r2)

Then write RationalTester.java to test your program with the data file (rational.txt). All rational number must be reduced to the lowest terms.

public class Rational{

private int numerator;
private int denominator;
public Rational(){
numerator=1;
denominator=1;
}
public Rational(int numerator, int denominator){
setNumerator(numerator);
setDenominator(denominator);
simplifyTerms();
}

public int getNumerator(){
return numerator;
}
public int getDenominator(){
return denominator;
}
public void setNumerator(int numerator){
this.numerator = numerator;
}
public void setDenominator(int denominator){
if(denominator==0){
this.numerator=this.denominator=1;
}else{
this.denominator = denominator;
}
}
public String toString(){
return numerator +\"/\"+denominator;
}
public void simplifyTerms(){
int fac=GCF.gcf1(numerator, denominator);
numerator =numerator /fac;
denominator = denominator/fac;
}
}

rational.txt

1234 / 5678 + 8765 / 4321
0 / 1 - 34 / 675
apple / 23 + 23 / x
-346 / 74 * 54 / 32
-232 / 884 / -33 / 222
-5 + 1 / 2
0 * 3 / 4
2 / 3 / 0
1.2/5 + 2/2.5
1.5 - 5/8

Solution

Class Rational.Java

public class Rational
{
private int numerator;
private int denominator;
public Rational()
{
numerator = 1;
denominator = 1;
}
public Rational(int numerator, int denominator){
       setNumerator(numerator);
       setDenominator(denominator);
       simplifyTerms();
   }
   public int getNumerator(){
       return numerator;
   }
   public int getDenominator(){
       return denominator;
   }
   public void setNumerator(int numerator){
this.numerator = numerator;
}
public void setDenominator(int denominator){
if(denominator==0){
this.numerator=this.denominator=1;
}else{
this.denominator = denominator;
}
}
public static Rational add( Rational r1, Rational r2)
{
int resultDenominator = r1.denominator * r2.denominator;
int resultNumerator = r1.numerator * r2.denominator +
r2.numerator * r1.denominator;

return new Rational( resultNumerator, resultDenominator );
}

public static Rational substract( Rational r1, Rational r2)
{
int resultDenominator = r1.denominator * r2.denominator;
int resultNumerator = r1.numerator * r2.denominator -
r2.numerator * r1.denominator;

return new Rational( resultNumerator, resultDenominator );
}
public static Rational multiply( Rational r1, Rational r2)
{
return new Rational( r1.numerator * r2.numerator,
r1.denominator * r2.denominator );
}

public static Rational divide( Rational r1, Rational r2)
{
return new Rational( r1.numerator * r2.denominator,
r1.denominator * r2.numerator );
}

public String toString() {
return numerator + \"/\" + denominator;
}
public void simplifyTerms(){
   {
   int gcd = 0;
   int smaller;
   if ( numerator < denominator )
   smaller = numerator;
   else
   smaller = denominator;

   for ( int divisor = smaller; divisor >= 2; divisor-- )
   {
   if ( numerator % divisor == 0 && denominator % divisor == 0 )
   {
   gcd = divisor;
   break;
   }
   }
   if ( gcd != 0 )
   {
   numerator /= gcd;
   denominator /= gcd;
   }
   }

}

}

Tester Class RationalTester.java


public class RationalTester {
   public static void main (String[] args)
   {
   Rational r1 = new Rational (1234 , 5678);
   Rational r2 = new Rational (8765 , 4321);
   Rational r3 = Rational.add(r1,r2);
   System.out.println (\"1234 / 5678 + 8765 / 4321 : \" + r3);
  
  
   Rational r4 = new Rational (0 , 1);
   Rational r5 = new Rational (34 , 675 );
   Rational r6 = Rational.substract(r4,r5);
   System.out.println (\"0 / 1 - 34 / 675 : \" + r6);
  

   Rational r7 = new Rational (-346 , 74 );
   Rational r8 = new Rational ( 54 , 32 );
   Rational r9 = Rational.multiply(r7,r8);
   System.out.println (\"-346 / 74 * 54 / 32 : \" + r9);
  
   Rational r10 = new Rational (-232 , 884);
   Rational r11 = new Rational ( -33 , 222 );
   Rational r12 = Rational.divide(r10,r11);
   System.out.println (\"-232 / 884 / -33 / 222 : \" + r12);
  
   Rational r13 = new Rational (-5 , 1);
   Rational r14 = new Rational (1, 2);
   Rational r15 = Rational.add(r13,r14);
   System.out.println (\"-5 + 1 / 2 : \" + r15);
  
   Rational r16 = new Rational (-0 , 1 );
   Rational r17= new Rational ( 3 , 4);
   Rational r18 = Rational.multiply(r16,r17);
   System.out.println (\"0 * 3 / 4 : \" + r18);
  
   Rational r19 = new Rational ( 2 , 3);
   Rational r20 = new Rational ( 0 , 1 );
   Rational r21 = Rational.divide(r19,r20);
   System.out.println (\"2 / 3 / 0 : \" + r21);
  

   }
}

Refine the Rational.java you have already developed in lab11 (standard version will be provided under public folder by November 1) by adding the following opera
Refine the Rational.java you have already developed in lab11 (standard version will be provided under public folder by November 1) by adding the following opera
Refine the Rational.java you have already developed in lab11 (standard version will be provided under public folder by November 1) by adding the following opera
Refine the Rational.java you have already developed in lab11 (standard version will be provided under public folder by November 1) by adding the following opera

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site