This time we will create an array of 5 fractions that the user can operate on. When prompted for entering a fraction, be sure to ask which index. When performing math on a fraction, be sure to ask for all source indexes and a destination index (yes, we will write our answer back to the fraction array)
1) set a fraction (1-5)
2) add two fractions C = A + B
3) subtract “”
4) multiply “”
5) divide “”
6) compare A == B
7) print out all fractions and their array indices
8) quit
Here is my existing code that I have created and need to use for the new program. I am so lost on arrays, please help.
//Assignment 6 //Written By: Matt Clements import javax.swing.JOptionPane; class Fraction { int iNumerator; int iDenominator; public Fraction() { iNumerator = iDenominator = 0; } public int getNumerator() { return iNumerator; } public void setNumerator(int iNum) { iNumerator=iNum; } public int getDenominator() { return iDenominator; } public void setDenominator(int iDen) { iDenominator=iDen; } public void input() { String sNumerator; String sDenominator; sNumerator = JOptionPane.showInputDialog(null, "Enter a positive integer for numerator."); iNumerator = Integer.parseInt(sNumerator); do { sDenominator = JOptionPane.showInputDialog(null, "Enter a positive integer for denominator."); iDenominator = Integer.parseInt(sDenominator); if (iDenominator <= 0) System.out.println("Can not compute, enter a new value."); } while (iDenominator <= 0); } public void output() { System.out.print(this); } public String toString() { String sReadout = iNumerator + "/" + iDenominator; return sReadout; } public boolean equals(Object Thor) { if ( this == Thor ) return true; if ( !(Thor instanceof Fraction) ) return false; Fraction other = (Fraction)Thor; return ( this.getNumerator() / this.getDenominator() == other.getNumerator() / other.getDenominator()); } public Fraction add(Fraction b) { int iCom = lcd(iDenominator, b.iDenominator); Fraction fComA = new Fraction(); Fraction fComB = new Fraction(); fComA = convert(iCom); fComB = b.convert(iCom); Fraction fSum = new Fraction(); fSum.iNumerator = fComA.iNumerator + fComB.iNumerator; fSum.iDenominator = iCom; fSum = fSum.reduce(); return fSum; } public Fraction subtract(Fraction b) { int iCom = lcd(iDenominator, b.iDenominator); Fraction fComA = new Fraction(); Fraction fComB = new Fraction(); fComA = convert(iCom); fComB = b.convert(iCom); Fraction fDiff = new Fraction(); fDiff.iNumerator = fComA.iNumerator - fComB.iNumerator; fDiff.iDenominator = iCom; fDiff = fDiff.reduce(); return fDiff; } public Fraction multiply(Fraction b) { Fraction fMult = new Fraction(); fMult.iNumerator = iNumerator * b.iNumerator; fMult.iDenominator = iDenominator * b.iDenominator; fMult = fMult.reduce(); return fMult; } public Fraction divide(Fraction b) { Fraction fDiv = new Fraction(); fDiv.iNumerator = iNumerator * b.iDenominator; fDiv.iDenominator = iDenominator * b.iNumerator; fDiv = fDiv.reduce(); return fDiv; } private int lcd(int iDenom1, int iDenom2) { int iFinalDenom = iDenom1; while ((iDenom1 % iDenom2) != 0) iDenom1 += iFinalDenom; return iDenom1; } private int gcd(int iDenom1, int iDenom2) { int iFinalDenom = iDenom2; while (iDenom2 != 0) { iFinalDenom = iDenom2; iDenom2 = iDenom1 % iDenom2; iDenom1 = iFinalDenom; } return iDenom1; } private Fraction convert(int iCom) { Fraction fFinal = new Fraction(); int iFinalDenom = iCom / iDenominator; fFinal.iNumerator = iNumerator * iFinalDenom; fFinal.iDenominator = iCom; return fFinal; } private Fraction reduce() { Fraction fFinal = new Fraction(); int iCom = 0; int iNum = Math.abs(iNumerator); int iDen = Math.abs(iDenominator); if (iNum > iDen) iCom = gcd(iNum, iDen); else if (iNum < iDen) iCom = gcd(iDen, iNum); else iCom = iNum; fFinal.iNumerator = iNum / iCom; fFinal.iDenominator = iDenominator / iCom; return fFinal; } } public class assign6 { public static void main(String[] agrs) { Fraction fFrac1 = new Fraction(); Fraction fFrac2 = new Fraction(); Fraction fFrac3 = new Fraction(); Fraction fFrac4 = new Fraction(); Fraction fFrac5 = new Fraction(); Fraction fAnswer = new Fraction(); { fFrac1.input(); fFrac2.input(); fFrac3.input(); fFrac4.input(); fFrac5.input(); System.out.println("Fraction 1 = " + fFrac1); System.out.println("Fraction 2 = " + fFrac2); System.out.println("Fraction 3 = " + fFrac3); System.out.println("Fraction 4 = " + fFrac4); System.out.println("Fraction 5 = " + fFrac5); { fAnswer = fFrac1.add(fFrac2); fFrac1.output(); System.out.print(" + "); fFrac2.output(); System.out.print(" = "); fAnswer.output(); System.out.println(); fAnswer = fFrac1.subtract(fFrac2); fFrac1.output(); System.out.print(" - "); fFrac2.output(); System.out.print(" = "); fAnswer.output(); System.out.println(); fAnswer = fFrac1.multiply(fFrac2); fFrac1.output(); System.out.print(" * "); fFrac2.output(); System.out.print(" = "); fAnswer.output(); System.out.println(); fAnswer = fFrac1.divide(fFrac2); fFrac1.output(); System.out.print(" / "); fFrac2.output(); System.out.print(" = "); fAnswer.output(); System.out.println(); System.out.println("Fraction 1 = Fraction 2 is " + fFrac1.equals(fFrac2)); } } System.exit(0); } }