Write a program that adds, subtracts, multiply, and divide fractions. Example (1
ID: 3562042 • Letter: W
Question
Write a program that adds, subtracts, multiply, and divide fractions. Example (1,2) in fraction is 1/2. My question is when i want to add an int x to the fraction, it doesn't work. Here is my code:
import java.util.Scanner;
public class Fraction
{
private int num;
private int den;
private int x;
public void read()
{
Scanner keyboard = new Scanner(System.in);
}
public Fraction (int n, int d)
{
if (d == 0)
{
System.exit(0);
}
else
{
num = n;
den = d;
}
}
public Fraction add(Fraction b)
{
int num1 = (this.num * b.den) + (b.num * this.den); // cross multiply and add
int num2 = this.den * b.den; // multiply the denominator
return reduction(num1,num2);
}
public Fraction add(int x) // this code does not work
{
Fraction answer = new Fraction();
int num1 = (this.num * x.den) + (x.num * this.den);
int num2 = this.den * x.den;
return reduction(num1.num2);
}
public Fraction subtract(Fraction b)
{
int num1 = (this.num * b.den) - (b.num* this.den);
int num2 = this.den * b.den;
return reduction(num1,num2);
}
public Fraction multiply(Fraction b)
{
int num1 = this.num * b.num;
int num2 = this.den * b.den;
return reduction(num1,num2);
}
public Fraction divide(Fraction b)
{
int num1 = this.num * b.den;
int num2 = this.den * b.num;
return reduction(num1,num2);
}
public void reciprocal() // gets the reciprocal
{
System.out.println(den + "/" + num);
}
public static int greatestCommonDivisor(int a, int b) // to get greatest common divisor
{
int temp = a % b;
while(temp > 0)
{
a = b;
b = temp;
temp = a % b;
}
return b;
}
public Fraction reduction(int n, int d)
{
int gcdNum = greatestCommonDivisor(n,d);
d = d / gcdNum;
n = n / gcdNum;
return new Fraction(n,d);
}
public String toString()
{
if(num > den && den > 1)
return (num + "/" + den + " or " + (num/den) + " " + (num % den) + "/" + den);
else
return(num + "/" + den);
}
}
DRIVER
public class FractionDemo
{
public static void main (String[] args)
{
Fraction r1 = new Fraction (1, 2);
Fraction r2 = new Fraction (2, 3);
Fraction r3, r4, r5, r6, r7, r8, r9;
int r10;
System.out.println ("First fraction number: " + r1);
System.out.println ("Second fraction number: " + r2);
if (r1.equals(r2))
System.out.println ("r1 and r2 are equal.");
else
System.out.println ("r1 and r2 are NOT equal.");
System.out.println ("The reciprocal of r2 is:");
r2.reciprocal();
r4 = r1.add(r2);
r5 = r1.subtract(r2);
r6 = r1.multiply(r2);
r7 = r1.divide(r2);
r8 = r1.add(5); // adds 5 to the fraction
r9 = r1.multiply(5); // multipies 5 to the fraction
System.out.println ("r1 + r2: " + r4);
System.out.println ("r1 - r2: " + r5);
System.out.println ("r1 * r2: " + r6);
System.out.println ("r1 / r2: " + r7);
System.out.println ("r1 + 5: " + r8);
System.out.println ("r1 * 5: " + r8);
}
}
Explanation / Answer
you cant add or subtract an integer to the float...change both to float and error shall disappear
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.