2016-11-02 3 views
-4

나는 분수 계산기에서 일하고 있으며 아래는 내가 지금까지 가지고있는 것입니다. 줄이는 부분에 갇혀 있지만 대답을 인쇄하려면 이걸 어떻게 만들지 모르겠다. 또한, 내 코드가 잘못되어 있으면 알려주십시오. 이 계산기는 2/7 및 6/7과 같은 입력을 받아야하며 +와 같은 연산자를 사용하면 1_1/7이 출력됩니다. 사전에 도움을 주셔서 감사합니다. 당신은 두 가지 누락부분적인 계산기 도움이되는 자바

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

(마누엘 메이 아스에 의해 요청대로) 방법에 대한

호출,

그래서해야 광고 메인 메소드의 끝이 : fractionFormat (int1, int2, operator);

또한이 메서드는 "String answer = reduce (newnum, newden);"을 줄입니다. 정의되지 않았습니다 ... 코드를 모두 붙여 넣지 않았습니까?