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

5. [after §7.9-moderatel Fraction Handler : a) Write a Fraction class that imple

ID: 3874956 • Letter: 5

Question

5. [after §7.9-moderatel Fraction Handler : a) Write a Fraction class that implements these methods add-This method receives a Fraction parameter and adds the parameter fraction to the calling object fraction. multiply- This method receives a Fraction parameter and multiplies the parameter fraction by the calling object fraction. print This method prints the fraction using fraction notation (1/4, 21/14, etc.) printAsDouble-This method prints the fraction as a double (0.25. 1.5, etc.) Separate accessor methods for each instance variable in the Fraction class. Provide a driver class, FractionDemo, that demonstrates this Fraction class. The driver class should contain this main method: public static void main(String[l arga) Scanner stdIn-new Scanner (System.in) Fraction c, d, x // Fraction objects System.out.println("Enter numerator: then denominator.") c new Fraction (stdIn.nextInt O, stdIn.next Int 0): c.print O System.out.printin("Enter numerator; then denominator.") d new Fraction (stdIn.nextInt ), stdIn.nextInt )): d.print O x new Fraction) // create a fraction for number 0 System.out.printin ("Sum:"): x.add (c).add (d) ; x.print ) x.printAsDouble ) x new Fraction (1, 1): // create a fraction for number 1 System.out.println ("Product:"); x.multiply(c) multiply (d) x.print ) x.printAsDouble ) System.out.println("Enter numerator: then denominator.") x new Fraction (stdIn.nextInt (), stdin.nextInt ) x.printAsDouble ): ) // end main 2014 by McGraw-Hill Education. This is proprietary material solely for authorized instructor use. Not authorized for sale or distribution in any manner. This document may not be copied, scanned, duplicated, forwarded, distributed or posted on a website, in whole or part

Explanation / Answer


/**
* Write a description of class Fraction here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Fraction
{
// instance variables -
// two integer variables to hold numerator and denominator values
private int num;
private int denom;

/**
* Constructor for objects of class Fraction
*/
public Fraction()
{
// intialize to value of 0
num = 0;
denom=1;
}
/**
* Constructor for objects of class Fraction
*/
public Fraction(int numerator,int denominator)
{
// initialise to values passed as arguments
num = (denominator < 0 ? -numerator : numerator);
denom = (denominator < 0 ? -denominator : denominator);
}
  
/*-----------------------------------------------------------------
* getNumerator
* return numerator
*/
public int getNumerator() {
return num;
}

/*-----------------------------------------------------------------
* getDenominator
* return denominator
*/
public int getDenominator() {
return denom;
}

  
/*-----------------------------------------------------------------
* setNumerator
* numerator isupdated to value passed as argument
*/
public void setNumerator(int numerator)
{
num = numerator;
}
  
/*-----------------------------------------------------------------
* setDenominator
* denominator isupdated to value passed as argument
* if denominator is negative, numerator is adjusted
*/
public void setDenominator(int denominator) {
if (denominator > 0) {
denom = denominator;
}
else if (denominator < 0) {
num = -num;
denom = -denominator;
}
}

/*-----------------------------------------------------------------
* setNumerator
* numerator is set to be the given parameter
*/
public void print() {
System.out.println( num + "/" + denom);
}
  

/*-----------------------------------------------------------------
* setNumerator
* numerator is set to be the given parameter
*/
public void printAsDouble()
{
System.out.println( (double) num/denom);
}
  
  
/*-----------------------------------------------------------------
* add fractions
* numerators are multiplied with denominators and added
* denominators are simply multiplied
*/
public void add(Fraction fractoadd)
{  
this.num = (this.num * fractoadd.denom) + (fractoadd.num * this.denom);
this.denom = this.denom * fractoadd.denom;
this.reducefraction();
}
  
/*-----------------------------------------------------------------
* multiply fractions
* numerator and denominators are multiplied respectivly
*/
public void multiply(Fraction fractomul)
{  
this.num = (this.num * fractomul.num);
this.denom = this.denom * fractomul.denom;
this.reducefraction();
}
  
/*-----------------------------------------------------------------
* reduce fractions
* reduce Fraction to lowest terms
*/
private void reducefraction() {
// find the larger of the numerator and denominator
int n = this.num, d = this.denom, largernum;
if (this.num < 0) {
n = -this.num;
}
if (n > d) {
largernum = n;
}
else {
largernum = d;
}

// find the largest comman divisor
int commandivisor = 0;
for (int i = largernum; i >= 2; i--) {
if (this.num % i == 0 && this.denom % i == 0) {
commandivisor = i;
break;
}
}

// divide the numerator, denominator by largest common divisor
if (commandivisor != 0) {
this.num /= commandivisor;
this.denom /= commandivisor;
}
}
}

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