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

The following code can use loops, strings, arrays, functions, and classes. The c

ID: 668875 • Letter: T

Question

The following code can use loops, strings, arrays, functions, and classes. The code must be able to accept and perform operations on the whole number portion of a mixed number (like the '2' in 2 1/2):

In previous chapters, you have been developing a Fraction structure for Teacher’s Pet
Software. Now you will develop a class that contains the fields and functions that a Fraction
needs. Create a Fraction class with three private data fields for whole number, numerator,
and denominator. Also create a constant static public field to hold the symbol that separates a
numerator and denominator when a Fraction is displayed—the slash. Create three public
member functions for the class, as follows:
» An enterFractionValue()function that prompts the user to enter values for the
Fraction. Do not allow the user to enter a value of 0 for the denominator of any
Fraction; continue to prompt the user for a denominator value until a valid one is
entered.
» A reduceFraction()function that reduces a Fraction to proper form. For example,
a Fraction with the value 0 2/6 would be reduced to 0 1/3 and a Fraction with the
value 4 18/4 would be reduced to 8 1/2.
» A displayFraction()function that displays the Fraction whole number, numerator,
slash, and denominator.
Add any other functions to the Fraction class that will be useful to you. Create a main()
function that declares a Fraction object, and continues to get Fraction values from the
user until the user enters a Fraction with value 0 (both the whole number and numerator
are 0). For each Fraction entered, display the Fraction, reduce the Fraction, and display
the Fraction again.

Explanation / Answer

//Language is not specified, so i am writing the code in java

import java.util.Scanner;

public class Fraction {
  
   private int wholenumber;
   private int numerator;
   private int denominator;
  
   public static String slash ="/";
  
  
   public static void main(String[] args) throws Exception{
      
       Fraction fc = new Fraction();
      
       while(true) {
           fc.enterFractionValue();
           if(fc.wholenumber == 0 && fc.numerator == 0)
               break;
           fc.reduceFraction();
           fc.displayFraction();
          
      
       }
   }
  
   public void enterFractionValue() {
      
       Scanner sc = new Scanner(System.in);
      
   //   System.out.println("Enter a fractional value [ Format should be like 4 2/3] ");
       System.out.println("Enter whole number in the fraction");
       wholenumber = sc.nextInt();
      
       System.out.println("Enter numerator in the fraction");
       numerator = sc.nextInt();
      
       System.out.println("Enter denominator in the fraction");
      
       int d;
      
       while(true) {
           d = sc.nextInt();
           if(d==0)
               System.out.println("Denominator should not be 0");
           else {
               denominator = d;
               break;
           }
              
       }
      
   }
  
   public void reduceFraction() {
      
       if(denominator % numerator == 0 ) {
           denominator = denominator / numerator;
           numerator = 1;
       } else if(numerator % denominator == 0 ) {
           wholenumber += numerator / denominator;
           numerator = 0;
           denominator = 1;
       } else {
           int hcf = getHCF(denominator, numerator);
           if(hcf > 1) {
               denominator /= hcf;
               numerator /= hcf;
               if(denominator < numerator) {
                   int n = numerator/denominator;
                   wholenumber += n;
                   numerator = numerator % denominator;
               }
           }
       }
   }
  
   public void displayFraction() {
       System.out.println(" Entered fraction : "+ wholenumber+" "+ numerator+Fraction.slash+denominator);
   }

   private int getHCF(int a, int b) {
       int hcf=0;
        int min = a > b? b: a;     
        for(int i=min; i >= 1; i--)
        {
            if(a%i == 0 && b%i == 0)
            {
                hcf = i;
                break;
            }
        }
        return hcf;
   }
   public int getWholenumber() {
       return wholenumber;
   }
   public void setWholenumber(int wholenumber) {
       this.wholenumber = wholenumber;
   }
   public int getNumerator() {
       return numerator;
   }
   public void setNumerator(int numerator) {
       this.numerator = numerator;
   }
   public int getDenominator() {
       return denominator;
   }
   public void setDenominator(int denominator) {
       this.denominator = denominator;
   }
  
  
}

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