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

Write a Java application that will be able to add, subtract, multiply, divide, c

ID: 3682680 • Letter: W

Question

Write a Java application that will be able to add, subtract, multiply, divide, compare, convert to floating point, reduce to its lowest terms, and find absolute value for rational numbers. It should read a file. This is the data for the file : 1324 / 5678 and 8755 / 7321 0 / 1 and 34 / 675 apple / 23 and 23 / x -346 / 74 and 54 / 32 -232 / 834 and -33 / 222 1.2 / 31 and -1 / 4 -5 and 1 / 2 0 and 3 / 4 2 / 3 and 0 -2 / 5 and 2 4 and this Then the program should be closed and then accept from keyboard 2 rational numbers and only stop when the user wishes to terminate the program

this is what I have done so far, I haven't done the logic yet for rational numbers. I'm just trying to get the data to input properly first.

import java.util.Scanner;

public class RationalNumberTester{

   int ctr = 0;
   public static void main(String[] args) throws Exception{
  
  
   RationalNum[] num = null;
   Scanner input = new Scanner(new java.io.File(args[args.length-1]));
   String[] tokens = null;
   int index=0;
   int index2=0;
   int ctr = 0;
   String[] names = null;
     
   while(input.hasNextLine()){
      if( input.hasNextLine() == true){
      ctr = ctr +1;
      input.nextLine();

      }
      else
return;
   }
   input.close();

   num=new RationalNum[ctr];
     
Scanner input2 = new Scanner(new java.io.File(args[args.length-1]));
String line = null;
  
  
   while(input2.hasNextLine()){
  
try{
  
   line=input2.nextLine().replace("and", "/");
  
   tokens=line.split("/");
      
   }catch(Exception e){
continue;
}

try{
          
System.out.println(tokens[0]+" num1");
System.out.println(" ");
System.out.println(tokens[1]+" dnum1");
System.out.println(" ");
System.out.println(tokens[2]+" num2");
System.out.println(" ");
System.out.println(tokens[3]+" dnum2");
   num[index++]=new RationalNum(Integer.parseInt(tokens[0]), Integer.parseInt(tokens[1]), Integer.parseInt(tokens[2]), Integer.parseInt(tokens[3]));
       }catch(Exception e){

           continue;
          
       }
      }
  
   for( RationalNum valueI : num ){
     
if(valueI !=null)
System.out.println( valueI);

   }
   }
   }

------------------

public class RationalNum {
   int numerator1;
   int denomenator1;
  
   int numerator2;
   int denomenator2;
   public RationalNum(int numerator1, int denomenator1, int numerator2, int denomenator2) {
       super();
       this.numerator1 = numerator1;
       this.denomenator1 = denomenator1;
       this.numerator2 = numerator2;
       this.denomenator2 = denomenator2;
   }
   public int getNumerator1() {
       return numerator1;
   }
   public void setNumerator1(int numerator1) {
       this.numerator1 = numerator1;
   }
   public int getDenomenator1() {
       return denomenator1;
   }
   public void setDenomenator1(int denomenator1) {
       this.denomenator1 = denomenator1;
   }
   public int getNumerator2() {
       return numerator2;
   }
   public void setNumerator2(int numerator2) {
       this.numerator2 = numerator2;
   }
   public int getDenomenator2() {
       return denomenator2;
   }
   public void setDenomenator2(int denomenator2) {
       this.denomenator2 = denomenator2;
   }
   @Override
   public String toString() {
       return "RationalNum [numerator1=" + numerator1 + ", denomenator1=" + denomenator1 + ", numerator2=" + numerator2
               + ", denomenator2=" + denomenator2 + "]";
   }
  
  
}

Explanation / Answer

public class RationalNum{
int numerator ;
int denominator ;

public RationalNum( int numer ,int denom ){
if( denom == 0 )
denom =1 ;

//Make d numerator " store " d sign
if( denom <0 ){
numer =numer * -1 ;
denom = denom * -1 ;
}

numerator =numer ;
denominator =denom ;

reduce ( ) ;
}

public int getNumratr( ){
return numerator ;
}

public int getDenomitr( ){
return denominator ;
}

public RationalNum reciprcl( ){
return new RationalNum( denominator ,numerator ) ;
}


public RationalNum add( RationalNum operation2 )
{
int comDenominator =denominator *operation2.getDenomitr ( ) ;
int numratr1 =numerator *operation2.getDenomitr ( ) ;
int numratr2 =operation2.getNumratr ( ) *denominator ;
int total =numratr1 +numratr2 ;

return new RationalNum( total ,comDenominator ) ;
}

public RationalNum subtract( RationalNum operation2 )
{
int comDenominator =denominator *operation2.getDenomitr ( ) ;
int numratr1 =numerator *operation2.getDenomitr ( ) ;
int numratr2 =operation2.getNumratr ( ) *denominator ;
int difrenc =numratr1 -numratr2 ;

return new RationalNum( difrenc ,comDenominator ) ;
}

public RationalNum multiply( RationalNum operation2 )
{
int numer =numerator *operation2.getNumratr ( ) ;
int denom =denominator *operation2.getDenomitr ( ) ;

return new RationalNum( numer ,denom ) ;
}

public RationalNum divide( RationalNum operation2 )
{
return multiply( operation2.reciprcl ( ) ) ;
}

public boolean equals( RationalNum operation2 )
{
return(numerator ==operation2.getNumratr ( ) &&denominator ==operation2.getDenomitr ( )) ;
}

public String toString( )
{
String reslt ;

if( numerator ==0 )
reslt =" 0 " ;
else
if( denominator ==1 )
reslt =numerator +"" ;
else
reslt =numerator +"/" +denominator ;
  
return reslt ;
}

private void reduce( )
{
if( numerator !=0 )
{
int common =gcd( Math.abs ( numerator ) ,denominator ) ;

numerator =numerator /common ;
denominator =denominator /common ;
}
}

private int gcd( int numbr1 ,int numbr2 )
{
while( numbr1 !=numbr2 )
if( numbr1 >numbr2 )
numbr1 =numbr1 -numbr2 ;
else
numbr2 =numbr2 -numbr1 ;

return numbr1 ;
}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote