2016-11-02 2 views
-4

Я работаю над дробным калькулятором, а ниже - то, что у меня есть. Я застрял в сокращающейся части, но я не знаю, как бы я создал это, чтобы распечатать ответ. Кроме того, если что-то еще не так с моим кодом, пожалуйста, дайте мне знать. Этот калькулятор должен принимать входные данные как: 2/7 и 6/7 и оператор типа +, и это должно распечатываться: 1_1/7. Спасибо за помощь заранее.Помощь в Дробном калькуляторе в JAVA

import java.util.*; 

public class calculator { 
    String operator; 
    String int1; 
    String int2; 
    public static int whole1; 
    public static int whole2; 
    public static int num1; 
    public static int num2; 
    public static int den1; 
    public static int den2; 
    public static void main (String []args) { 
     System.out.println("Hello, I'm a fractional calculator. FracCalc for short."); 
     Scanner everything = new Scanner(System.in); 
      System.out.println("Enter your first number type:"); 
      String int1 = everything.nextLine(); 
      System.out.println("Enter your second number:"); 
      String int2 = everything.nextLine(); 
      System.out.println("Enter operation (+, *, -, /):"); 
      String operator = everything.nextLine(); 
    } 

public static void fractionFormat (String int1, String int2, String operator) { 
    if (int1.contains("_")) { //first number 
     whole1 = Integer.parseInt(int1.substring(0, int1.indexOf("_"))); 
     num1 = Integer.parseInt(int1.substring(int1.indexOf("_") + 1, int1.indexOf("/"))); 
     den1 = Integer.parseInt(int1.substring(int1.indexOf("/") + 1)); 
     num1 = (whole1*den1)+num1; 
    } 
    else if (int1.contains("/")) { 
     num1 = Integer.parseInt(int1.substring(0, int1.indexOf("/"))); 
     den1 = Integer.parseInt(int1.substring(int1.indexOf("/") + 1)); 
    } 
    else { 
     whole1 = Integer.parseInt(int1.substring(0)); 
     whole1 = num1; 
     den1 = 1; 
    } 


    if (int2.contains("_")) { //second number 
     whole2 = Integer.parseInt(int2.substring(0, int2.indexOf("_"))); 
     num2 = Integer.parseInt(int2.substring(int2.indexOf("_") + 1, int2.indexOf("/"))); 
     den2 = Integer.parseInt(int2.substring(int2.indexOf("/") + 1)); 
     num2 = (whole2*den2)+num2; 
    } 
    else if (int2.contains("/")) { 
     num2 = Integer.parseInt(int2.substring(0, int2.indexOf("/"))); 
     den2 = Integer.parseInt(int2.substring(int2.indexOf("/") + 1)); 
    } 
    else { 
     whole2 = Integer.parseInt(int2.substring(0)); 
     whole2 = num2; 
     den2 = 1; 
    } 
    math(operator, num1, den1, num2, den2); 
} 
public static void math(String operator, int num1, int den1, int num2, int den2) { 

    if (operator.equals("+")) { 
     System.out.println(addmath(num1, num2, den1, den2)); } 
    else if (operator.equals("-")) { 
     num2 = -1*num2; 
     System.out.println(addmath(num1, num2, den1, den2)); } 
    else if (operator.equals("*")) { 
     System.out.println(multmath(num1, num2, den1, den2)); } 
    else { 
     System.out.println(multmath(num1, num2, den1, den2)); } 
    } 

public static String addmath(int num1 , int num2 , int den1 , int den2) { 
    int newnum = (num1*den2) + (num2*den1); 
    int newden = den1*den2; 
    String answer = reduce(newnum, newden);; 
    return answer; } 

public static String multmath(int num1 , int num2 , int den1 , int den2) { 
    int newnum = num1 * num2; 
    int newden = den1 * den2; 
    String answer = reduce(newnum, newden); 
    return answer; } 
+0

Где вызов метода в основном? –

ответ

0

Вы не хватает двух вещей,

Вызов для метода (как спросил Мануэль Mejias),

Таким образом, вы должны объявления этого в конце основного метода: fractionFormat (int1, int2, оператор);

Также метод уменьшает «Строковый ответ = уменьшить (newnum, newden)»; не определено ... вы не вставляете весь код?

 Смежные вопросы

  • Нет связанных вопросов^_^