Hello. I had to write a java program for fractions, addition and multiplication.
ID: 3529995 • Letter: H
Question
Hello. I had to write a java program for fractions, addition and multiplication. I wrote the code using the book and internet research, but I don't know parts of my program. Can you assist with commenting the code below so I can better understand my code. 1st the Fraction class: public class Fraction { private int n; private int d; private int t; Fraction() { n=0; t=1; d=1; } Fraction(int a,int b) { n=a; d=b; t=1; } public void print() { if(d!=0)System.out.println(n+"/"+d); else { System.out.println("infinite"); System.exit(1); } } public Fraction add(Fraction a) { int i,c,d1; c=a.d > d ? a.d : d; for(i=c;;i++) { if(i%a.d==0 && i% d==0) { d1=i; break;} } n=((d1/a.d)*a.n) + ((d1/d)*n); d=d1; return this; } public void printAsDouble() { double t; if(d!=0) { t=n/(double)d; System.out.println(t); } else System.out.println("Infinity"); } public Fraction multiply(Fraction a) { t = t*a.n; d = d*a.d; n = t; return this; } } Now the driver: import java.util.Scanner; public class Prog7 { 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()); // User input for 1st fraction c.print(); //default 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(); } }Explanation / Answer
public class Fraction {
/*Variable declaration*/
private int n;
private int d;
private int t;
/*default constructors*/
Fraction() {
n=0; t=1; d=1;
}
/*parameterized constructors*/
Fraction(int a,int b) {
n=a; d=b; t=1;
}
/*print function*/
public void print() {
/*denominator not equal to zero*/
if(d!=0)
System.out.println(n+"/"+d);
else {
System.out.println("infinite");
System.exit(1);
}
}
public Fraction add(Fraction a) {
int i,c,d1;
/*if denominator of a greater than denominator of c then local c is denominator of a otherwise*/
c=a.d > d ? a.d : d;
for(i=c;;i++) {
if(i%a.d==0 && i% d==0) {
d1=i;
break;
}
}
n=((d1/a.d)*a.n) + ((d1/d)*n);
d=d1;
return this;
}
public void printAsDouble() {
double t;
/*denominator not equal to zero*/
if(d!=0) {
t=n/(double)d;
System.out.println(t);
}
else
System.out.println("Infinity");
}
public Fraction multiply(Fraction a) {
/*t is temporary variable*/
t = t*a.n;
d = d*a.d;
n = t;
return this;
}
}
*******************************************
public class Prog7 {
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());
// User input for 1st fraction
c.print();
//default 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();
}
//}
// }
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.