//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//Sharon Whiteman
//
//CS 302
//
//
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

class Fraction
{
	//private data members
	private int numerator;
	private int denominator;

	//public methods
	//	public void setNumerator(int)
	//	public int getNumerator()
	//	public void setDenominator(int)
	//	public int getDenominator()
	//	public Fraction add(Fraction)
	//	public Fraction sub(Fraction)
	//	public Fraction mult(Fraction)
	//	public Fraction div(Fraction)
	//	public double toDecimal()
	//	public void printFraction();

	//Only one constructor
	public Fraction()
	{
		numerator = 0;
		denominator = 1;
		return;
	}

	//Here are our get and set methods
	public void setNumerator(int numeratorNew)
	{
		numerator = numeratorNew;
		return;
	}

	public int getNumerator()
	{
		return numerator;
	}

	public void setDenominator(int denominatorNew)
	{
		denominator = denominatorNew;
		return;
	}

	public int getDenominator()
	{
		return denominator;
	}

	public Fraction add(Fraction frac2)
	{
		int denomResult = denominator * frac2.getDenominator();
		
		int num1 = numerator * frac2.getDenominator();
		int num2 = frac2.getNumerator() * denominator;

		int numResult = num1 + num2;

		Fraction fracResult;
		fracResult = new Fraction();

		fracResult.setNumerator(numResult);
		fracResult.setDenominator(denomResult);

		return fracResult;
	}

	public Fraction sub(Fraction frac2)
	{
		int denomResult = denominator * frac2.getDenominator();

                int num1 = numerator * frac2.getDenominator();
                int num2 = frac2.getNumerator() * denominator;

		int numResult = num1 - num2;

	 	Fraction fracResult;
                fracResult = new Fraction();

                fracResult.setNumerator(numResult);
                fracResult.setDenominator(denomResult);

                return fracResult;


	}

	public Fraction mult(Fraction frac2)
	{
		int numResult = numerator * frac2.getNumerator();
		int denomResult = denominator * frac2.getDenominator();

		Fraction fracResult;
	        fracResult = new Fraction();

	        fracResult.setNumerator(numResult);
	        fracResult.setDenominator(denomResult);

	        return fracResult;

	}

	public Fraction div(Fraction frac2)
	{
		int numResult = numerator * frac2.getDenominator();
		int denomResult = denominator * frac2.getNumerator();

		Fraction fracResult;
		fracResult = new Fraction();

	        fracResult.setNumerator(numResult);
	        fracResult.setDenominator(denomResult);

	        return fracResult;


	}

	public double toDecimal()
	{
		return (double) numerator/denominator;
	}

	public void printFraction()
	{
		System.out.println(numerator + " / " + denominator);
		return;
	}
}
		


	
