Fraction class program
807588May 4 2009 — edited May 5 2009Good morning all,
I'm having some issues getting my fraction class to work properly. Both the driver and class compile just fine and the driver runs, but it isn't producing the correct addition and multiplication answers. I put the class and the driver code below. Please help me out. Thank you very much.
import java.util.Scanner;
public class Fraction
{
private int numerator;
private int denominator;
public Fraction()
{
this(0, 1);
}
public Fraction(int numerator, int denominator)
{
this.numerator = numerator;
this.denominator = denominator;
}
//*****************************************************
//this method adds fractions together
public Fraction add(Fraction d)
{
numerator = numerator * d.denominator + d.numerator * denominator;
denominator = d.denominator * denominator;
return d;
}
//*********************************************************
//This method multiplies fractions together
public Fraction multiply(Fraction d)
{
this.numerator = numerator * d.numerator;
this.denominator = denominator * d.denominator;
return d;
}
//********************************************************
//This method prints in fraction notation
public void print()
{
System.out.println(numerator + "/" + denominator);
}
//********************************************************
//This method prints the fraction as a double
public void printAsDouble()
{
System.out.println((double) numerator / (double) denominator);
}
}
DRIVER
import java.util.Scanner;
public class bla bla
{
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()); // receives the numerator and denom
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:"); // prints sum of fractions c and d
x.add(c).add(d);
x.print();
x.printAsDouble();
x = new Fraction(1, 1); // create a fraction for number 1
System.out.println("Product:"); // prints product of fractions c and d
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
}