Java Fractions as Abstract Data Type, programming homework help

Description

Having Trouble Meeting Your Deadline?

Get your assignment on Java Fractions as Abstract Data Type, programming homework help  completed on time. avoid delay and – ORDER NOW

This assignment provides you the opportunity to work with fractions as a new abstract data type!

You should be able to help third and fourth graders with their homework when you complete this exercise!

What to hand in:

Please hand in code listings and output that are legible and formatted for ease of reading.

Canvas submission instructions:

Please combine multiple files into a single “zip” archive, and save it in a location that you will remember. When you are ready to submit the assignment, open the assignment you are submitting a solution for, and attach your file.

Problems:

  1. Derive a new kind of Number called Fraction. Give it appropriate methods to add, subtract, multiply and divide fractions. Also, provide the required methods for a Number (to be sortable, it should also implement Comparable<Fraction>).
  2. Determine some appropriate way to convert a Fraction to a String, and implement the appropriate method. Simply outputting the double equivalent is not a satisfactory answer.
  3. You must provide a method (which could be private) to simplify your Fraction into lowest terms. That method could be used after every operation changing the Fraction, and certainly is required to provide a reasonable comparison operation.
  4. Make sure to implement equals so you have a way to compare Fractions.
  5. Create a main method or test class with a main method with adequate number of test cases to demonstrate that your Fraction behaves appropriately.

Notes:

  1. A fraction has a numerator and a denominator (the part above the line and the part below the line).
  2. The denominator may not be zero (0).
  3. If the denominator is one (1), the Fraction represents the integer in the numerator, and should be converted to a String just like an integer.
  4. Remember the rules for addition, subtraction, multiplication, and division of fractions:
    1. a/b   c/d = (a*d b*c)/(b*d)
    2. a/b - c/d = (a*d-b*c)/(b*d)
    3. a/b * c/d = (a*c)/(b*d)
    4. a/b  /  c/d = (a*d)/(b*c)
  5. To simplify a Fraction, one divides the numerator and denominator by the greatest common divisor, which is the largest number that divides each of them evenly.
    1. If you are not using BigInteger, you can use the following gcd method. It can be modified to use long instead of int:/* As a static method using int */public static int greatestCommonDivisor (int int1, int int2){ int temp; if ( int1 < 0 ) int1 = -int1; if ( int2 < 0 ) int2 = -int2; while ( int2 != 0) { temp = int1 % int2; // % is the modulus operator int1 = int2; int2 = temp; } return int1;}
    2. Additionally, one should ensure the denominator is positive. If you are using BigInteger to represent the components, you compare to zero with compareTo and use negate to reverse the sign.
    3. Once you simplify, you can compare Fractions by manipulating denominators and numerators. Hint: For compareTo you can subtract them and look at the result.
  6. If you use BigInteger to represent these components, you will get a gcd method to go along with it!
  7. BigInteger also provides a satisfactory set of name expectations for the operations one might expect on a Fraction. These are worth consulting!
  8. To create fractions, it is sensible to have a String constructor. A sample constructor is provided below (this one uses the BigInteger data members; a somewhat simpler, but similar one would work with long data members):

public Fraction (String fractionString) throws NumberFormatException {

String[] parts = fractionString.split(“/”);

denominator = BigInteger.ONE;

numerator = BigInteger.ZERO;

// The BigInteger constructor may throw NumberFormatExceptions

if ( parts.length == 0 || parts.length > 2 ) {

throw new NumberFormatException(“Illegally formatted Fraction”);

}

numerator = new BigInteger(parts[0].trim());

if ( parts.length == 2 ) {

BigInteger d = new BigInteger(parts[1].trim());

if ( d.equals(BigInteger.ZERO))

throw new NumberFormatException(“Fraction may not have zero denominator”);

denominator = d;

}

simplify();

}

  1. Remember: Delegate, delegate, delegate!

Evaluation Criteria:

Criteria

Weight

Creation of the Fraction type and its components, including a String constructor.

20

Add, Subtract, Multiply, and Divide operations

20

All required Number methods

20

simplify and toString methods

10

Method for comparison of Fractions (equals, compareTo)

10

Main program with an adequate number of test cases to demonstrate the above

20

Explanation & Answer

Our website has a team of professional writers who can help you write any of your homework. They will write your papers from scratch. We also have a team of editors just to make sure all papers are of HIGH QUALITY & PLAGIARISM FREE. To make an Order you only need to click Order Now and we will direct you to our Order Page at Litessays. Then fill Our Order Form with all your assignment instructions. Select your deadline and pay for your paper. You will get it few hours before your set deadline.

Fill in all the assignment paper details that are required in the order form with the standard information being the page count, deadline, academic level and type of paper. It is advisable to have this information at hand so that you can quickly fill in the necessary information needed in the form for the essay writer to be immediately assigned to your writing project. Make payment for the custom essay order to enable us to assign a suitable writer to your order. Payments are made through Paypal on a secured billing page. Finally, sit back and relax.

Do you need an answer to this or any other questions?

Similar Posts