Fall 2012, The College of Saint Rose

Programming Project 1: Fractions
Due: 11:59 PM, Wednesday, September 26, 2012

For your first programming project, you will write a Java program that adds fractions.

Ground Rules

You must work individually on this program. While you may ask for help from your instructor or from the tutors in the Academic Support Center, that help will be more limited than for regular lab assignments. Additionally, any help you receive must be clearly documented in the comment at the top of your program (i.e., who helped you and exactly what that help was).

Program Requirements

Read these directions carefully and follow them precisely. Part of your grade will depend on you formatting prompts and printouts as described.

• Your program must be in a class named Fractions, which will be in a file Fractions.java. Follow the usual procedures to create a BlueJ project and a class by this name.

• Print the following prompt:
```Enter the numerator and denominator for a fraction:
```
• Read in two integers from the keyboard using a Scanner.

• Print the following prompt:
```Enter the numerator and denominator for another fraction:
```
• Read in two more integers.

• Compute the sum as an improper fraction, and do not worry about reducing it to lowest terms. Recall that you can compute the sum of two fractions a/b and c/d by computing the numerator of the sum as ad + bc, and the denominator as bd.

For example, if you entered 2 and 3 for the first number (meaning your fraction is 2/3, though you should not type the `/` nor should your program expect it), and 3 and 5 for the second (for a fraction of 3/5), your answer would have a 19 for the numerator and 15 for the denominator, or 19/15, which is the right answer in this case.

• Print out this result in the following format:
```The sum of 2/3 and 3/5 is 19/15.
```

Again, if this fraction is not in lowest terms (i.e., it can be reduced), don't worry about that.

• Next, compute the result as a number in decimal format and print it out. For the example inputs above, your output should be:
```That's 1.2666666666666666 in decimal notation.
```
• And finally, compute the result as a mixed number and print it out. For the example inputs above, your output should be:
```Or 1 4/15 as a mixed number.
```

Again, do not worry about reducing the leftover fractional part to lowest terms. Also, if there is no fractional part left, you can still print out in the same format just with a 0 in the numerator.

Here are two more example inputs and outputs.

If your input fractions are 1/3 and 5/6, the output should be:

```The sum of 1/3 and 5/6 is 21/18.
That's 1.1666666666666667 in decimal notation.
Or 1 3/18 as a mixed number.
```

If your input fractions are 3/4 and 10/8, the output should be:

```The sum of 3/4 and 10/8 is 64/32.
That's 2.0 in decimal notation.
Or 2 0/32 as a mixed number.
```

Can I Do This?

Rest assured that we have seen every Java feature you need to use in class examples and labs. If you find yourself thinking that there is something you don't know how to do, look over the class examples for something similar. You should not need, nor should you use, any Java constructs we have not yet covered in class.

Style and Documentation Reminders

Before you submit your program, make sure it conforms to our guidelines for style and documentation.

In particular, you should have a comment at the top of your class that describes your program and has your name, the course number and section (02 for 11:15, E1 for 4:10). You should have comments throughout your programs describing your variables and any non-obvious Java statements or groups of statements.

All identifiers (class names and variable names) should be meaningful and conform to Java's naming conventions.

Your code should be nicely formatted, with new lines after any `{` or `}`, and indented as done in class examples.

Bonus Opportunity

For a few bonus points, you may extend your program to work for a sum of three fractions.

Submitting Your Work

Before 11:59 PM, Wednesday, September 26, 2012, submit your Java program to Blackboard for grading. Please upload your Java source file (Fractions.java - upload the one with the .java file extension, not the .class, .ctxt, package.bluej or README files).

Grading

This assignment is worth 50 points, which are distributed as follows:

 > Feature Value Score Scanner construction 5 Correct prompts 5 Read and store inputs 5 Computing improper fraction 6 Computing decimal result 6 Computing mixed number result 6 Output formatting 5 Comments 5 Naming conventions 5 Formatting 2 Bonus up to 2 Total 50