In: Computer Science
Define a class Fraction3YourName as follows,
/**
* Program Name: Fraction3YourName.java
* Discussion: Fraction3Yourname class
* written By:
* Date: 2019/09/19
*/
public class Fraction3YourName {
private int sign;
private int num;
private int denom;
public Fraction3YourName() {
//sign = ;
//denom = ;
}
public Fraction3YourName(int n) {
//sign = ;
//num = n;
//denom = ;
}
public Fraction3YourName(int s, int n, int d) {
//sign = s;
//num = n;
//denom = d;
}
}
You are asked to
Complete the definitions for the given constructors; and
Provide additional method members to allow the performance of
four simple
arithmetic operations: (1) Addition, (2) Subtraction, (3)
Multiplication, and (4)
Division; and
Provide one method member print() to display the
Fraction3YourName object.
/** REQUIRED PROGRAM OUTPUT
****************************************
* MENU – HW #3 *
* (1) Creating 2 Fraction3 Objects *
* (2) Performing Arithmetic Operations *
* (3) Displaying Fraction3 Objects *
* (4) Quit *
****************************************
Enter your option (1 through 4): 5
You are funny!
****************************************
* MENU – HW #3 *
* (1) Creating 2 Fraction3 Objects *
* (2) Performing Arithmetic Operations *
* (3) Displaying Fraction3 Objects *
* (4) Quit *
****************************************
Enter your option (1 through 4): 2
Creating 2 Fraction3 Objects –
// Your details
****************************************
* MENU – HW #3 *
* (1) Creating 2 Fraction3 Objects *
* (2) Performing Arithmetic Operations *
* (3) Displaying Fraction3 Objects *
* (4) Quit *
****************************************
Enter your option (1 through 4): 3
Displaying Fraction3 Objects –
// Your details
****************************************
* MENU – HW #3 *
* (1) Creating 2 Fraction3 Objects *
* (2) Performing Arithmetic Operations *
* (3) Displaying Fraction3 Objects *
* (4) Quit *
****************************************
Enter your option (1 through 4): 4
Performing Arithmetic Operations –
// Your details
****************************************
* MENU – HW #3 *
* (1) Creating 2 Fraction3 Objects *
* (2) Performing Arithmetic Operations *
* (3) Displaying Fraction3 Objects *
* (4) Quit *
****************************************
Enter your option (1 through 4): 4
Having fun!
by java programming
Please find the solution and rate the answer.
import java.util.Scanner; public class Main { static Scanner sc = new Scanner(System.in); static Fractions getFraction() { System.out.println("enter sign as - or +"); int sign = sc.next().charAt(0) == '-' ? -1 : 1; System.out.println("Enter numerator"); int num = sc.nextInt(); System.out.println("Enter denominator"); int denom = sc.nextInt(); return new Fractions(sign, num, denom); } public static void main(String[] args) { boolean loop = true; do { System.out.println("Enter fraction object 1"); Fractions one = getFraction(); System.out.println("Etner frac 2"); Fractions two = getFraction(); System.out.println("Multply(m),Divide(d),subtract(s),add(a),Exit(e)"); char choice; choice = sc.next().charAt(0); if (choice == 'e') break; ; switch (choice) { case 'm': one.multiply(two); System.out.println(one); break; case 'd': one.divide(two); System.out.println(one); break; case 'a': one.add(two); System.out.println(one); break; case 's': one.subtract(two); System.out.println(one); break; } } while (loop); // // System.out.println(fr); } }
public class Fractions { private int sign; private int num; private int denom; public Fractions() { num = 1; denom = 1; } public Fractions(int n) { setSign(n); num = n; } public Fractions(int s, int n, int d) { setSign(s); num = n; denom = d; } @Override public String toString() { return ""+(num*sign)+"/"+denom+""; } public int getSign() { return sign; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public int getDenom() { return denom; } public void setDenom(int denom) { this.denom = denom; } private void setSign(int n) { if (n < 0) { sign = -1; } else { sign = +1; } } public void add(Fractions fr) { num = (this.num * fr.getDenom() * sign) + (fr.getNum() * denom * fr.getSign()); if(num<0){ sign=-1; }else{ sign=1; } num=Math.abs(num); denom = Math.abs(fr.getDenom() * denom); normalize(); // sign = fr.getSign() * sign; } public void subtract(Fractions fr){ fr.setSign(-1*fr.getSign()); add(fr); normalize(); } public void multiply(Fractions fr) { sign = fr.getSign() * sign; num = Math.abs(fr.getNum() * num); denom = Math.abs(fr.getDenom()*denom); normalize(); } private void normalize() { int gcd = gcd(num, denom); num = num/ gcd; denom = denom/gcd; } public void divide(Fractions fr) { sign = fr.getSign() * sign; num = Math.abs(num * fr.getDenom()); denom = Math.abs(fr.getNum() * denom); normalize(); } int gcd(int one, int two) { if (one == 0) return two; if (two == 0) return one; if (one == two) return one; if (one > two) return gcd(one-two, two); return gcd(one, two-one); } }
Sample out: