Program Week 7 Grading Information This Program is due on Sunday of Week 7 . Com
ID: 642969 • Letter: P
Question
Program Week 7
Grading Information
This Program is due on Sunday of Week 7.
Comments are REQUIRED; flow charts and Pseudocode are NOT REQUIRED.
Directions
Points
The files must be called <LastNameFirstNameProg7.java>. (driver)
Fraction.java (handles the fractional numbers)
Example: DeweyKenProg7.java
Fraction.java
Ensure you include ALL files required to make your program compile and run.
I would like to see your .java files only.
Proper coding conventions required the first letter of the class start with a capital letter and the first letter of each additional word start with a capital letter.
5%
Basic Requirements
Write a driver and fraction class that performs addition, multiplication, prints the fraction, and prints as a double.
LastNameFirstNameProg7.java
Provide a driver class, LastNameFirstNameProg7, that demonstrates this Fraction class. The driver class should contain this main method:
public static void main(String[] args)
{
Scanner stdIn = new Scanner(System.in);
Fraction c, d, x; // Fraction objects
System.out.println("Enter numerator; then denominator.");
c = new Fraction(stdIn.nextInt(), stdIn.nextInt());
c.print();
System.out.println("Enter numerator; then denominator.");
d = new Fraction(stdIn.nextInt(), stdIn.nextInt());
d.print();
x = new Fraction(); // create a fraction for number 0
System.out.println("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
Note that this demonstration driver does not call the accessor methods. That
Directions
Points
The files must be called <LastNameFirstNameProg7.java>. (driver)
Fraction.java (handles the fractional numbers)
Example: DeweyKenProg7.java
Fraction.java
Ensure you include ALL files required to make your program compile and run.
I would like to see your .java files only.
Proper coding conventions required the first letter of the class start with a capital letter and the first letter of each additional word start with a capital letter.
5%
Basic Requirements
Write a driver and fraction class that performs addition, multiplication, prints the fraction, and prints as a double.
LastNameFirstNameProg7.java
Provide a driver class, LastNameFirstNameProg7, that demonstrates this Fraction class. The driver class should contain this main method:
public static void main(String[] args)
{
Scanner stdIn = new Scanner(System.in);
Fraction c, d, x; // Fraction objects
System.out.println("Enter numerator; then denominator.");
c = new Fraction(stdIn.nextInt(), stdIn.nextInt());
c.print();
System.out.println("Enter numerator; then denominator.");
d = new Fraction(stdIn.nextInt(), stdIn.nextInt());
d.print();
x = new Fraction(); // create a fraction for number 0
System.out.println("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
Note that this demonstration driver does not call the accessor methods. That
Explanation / Answer
Program Code:
// Fraction.java
import java.text.DecimalFormat;
//Faction class contains the logic to
//set the numerator, denominator, simplified fraction
//computing the sum, subtraction, multiplication, division
//and increment method
class Fraction
{
//declare the local variables
int numerator;
int denominator;
//to print the Decimal format to 2 digits
DecimalFormat d=new DecimalFormat("##.##");
public Fraction()
{
}
//constructor
public Fraction(int num, int den)
{
numerator = num;
denominator = den;
}
//setters and getter methods
void setNum(int num)
{
numerator = num;
}
void setDen(int den)
{
denominator = den;
}
int getNum()
{
return numerator;
}
int getDen()
{
return denominator;
}
//finding the gcd, which will be help full
//in reducing the fraction
int gcd(int x, int y)
{
return (x==0)?y:gcd(y%x,x);
}
//add method adds up the two fractional numbers and returns
//the object of Fraction class
Fraction add(Fraction first, Fraction second)
{
System.out.println(" Sum: ");
Fraction sum=new Fraction();
sum.setNum(first.numerator*second.denominator+second.numerator*first.denominator);
sum.setDen(first.denominator*second.denominator);
return sum;
}
//sub method subtracts the two fractional numbers and returns
//the object of Fraction class
Fraction sub(Fraction first, Fraction second)
{
System.out.println(" Subtraction: ");
Fraction dif=new Fraction();
dif.setNum(first.numerator*second.denominator-second.numerator*first.denominator);
dif.setDen(first.denominator*second.denominator);
return dif;
}
//mult method multiplies the two fractional numbers and returns
//the object of Fraction class
Fraction multiply(Fraction first, Fraction second)
{
System.out.println(" Product: ");
Fraction prod=new Fraction();
prod.setNum(first.numerator*second.numerator);
prod.setDen(first.denominator*second.denominator);
return prod;
}
//div method divides the two fractional numbers and returns
//the object of Fraction class
Fraction div(Fraction first, Fraction second)
{
System.out.println(" Division: ");
Fraction div=new Fraction();
div.setNum(first.numerator*second.denominator);
div.setDen(first.denominator*second.numerator);
return div;
}
//inc method that increments the numerator
Fraction inc(Fraction f)
{
System.out.println(" Increment numerator: ");
f.setNum(f.numerator+=f.denominator);
return f;
}
//print method
void print()
{
if(getDen()==0)
System.out.println("infinity");
else
{
System.out.println(getNum()+"/"+getDen());
}
}
//print1 method depending the fractional value
//the print methods are called
void print1()
{
this.setNum(getNum()/gcd(getNum(),getDen()));
this.setDen(getDen()/gcd(getNum(),getDen()));
System.out.print(this.getNum()+"/"+this.getDen());
System.out.println(" = "+d.format(finalValue()));
}
void printAsDouble()
{
System.out.println(d.format(finalValue()));
}
//finalValue that evaluates value of a fraction
double finalValue()
{
double total=(double)this.getNum()/this.getDen();
return total;
}
}
// FirstNameLastNameProg7.java
import java.text.DecimalFormat;
import java.util.*;
public class FirstNameLastNameProg7
{
//main method
public static void main(String args[])
{
//Create a Scanner class object
Scanner in=new Scanner(System.in);
//Create references to the Faction class
Fraction2 c, d, x;
//Prompt the user to enter the numerator and denominator values
System.out.println("Enter numerator, then denominator");
c=new Fraction2(in.nextInt(),in.nextInt());
//print the fraction part
c.print();
//Prompt the user to enter the numerator and denominator values
System.out.println(" Enter numerator, then denominator");
d=new Fraction2(in.nextInt(),in.nextInt());
//print the fraction part
d.print();
//Create an object to the x
x=new Fraction2();
//call the function add by passing the two objects
x=x.add(c,d);
//print the value
x.print();
//print the decimal values
x.printAsDouble();
//create another object Fraction by passing 1,1
x=new Fraction2(1,1);
//call the multiply method to find the product
x=x.multiply(c, d);
//print the fraction
x.print();
//print the decimal values
x.printAsDouble();
//prompt the user to enter the values
//if the denominator value is zero print the value is infinity
System.out.println(" Enter numerator, then denominator");
x=new Fraction2(in.nextInt(),in.nextInt());
x.print();
}
}
Sample Output:
Enter numerator, then denominator
5
8
5/8
Enter numerator, then denominator
4
10
4/10
Sum:
82/80
1.02
Product:
20/80
0.25
Enter numerator, then denominator
6
0
infinity
Note:
Additional part of sub and div functions are been added to the fraction class. If they are unnecessary, please remove them.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.