2013-11-15 2 views
0

Мое задание - создать простой калькулятор, который будет добавлять, вычитать, умножать и делить. Это не дает мне никаких ошибок, однако это не дает мне ответа, когда я ввожу value1 и value2. Он просто возвращает знак, который я вводил, например. +.Программа просто печатает знак, а не сумму

Где я ошибся?

package CalculatorApp; 

import java.util.Scanner; 

public class CalculatorUser { 

    private int value1; 
    private int value2; 
    private String option; 
    private int results; 

    public CalculatorUser(int value1, int value2, String option, 
      int results){ 

     this.value1=0; 
     this.value2=0; 
     this.option=option; 
     this.results=0; 

    } 

    public int getValue1(){ 
     return value1; 
    } 

    public void setValue1(int value1){ 
     this.value1 = value1; 
    } 

    public int getValue2(){ 
     return value2; 
    } 

    public void setValue2(int value2){ 
     this.value2 = value2; 
    } 

    public String option(){ 

     if (option.equals("+")){ 
      System.out.println(value1+value2); 
     } 

     else if(option.equals("-")){ 
      System.out.println(value1-value2); 
     } 
     else if(option.equals("*")){ 
      System.out.println(value1*value2); 
     } 
     else if(option.equals("/")){ 
      System.out.println(value1/value2); 
     } 
     else if(option.equals("unknown")){ 
      System.out.println("Please type + for Add, " + 
        "- for Subtract, * for Multiply,/for" + 
        "divid and press Enter/Return Key"); 
     } 
     return option; 
     } 


    public int getResults(){ 
     return results; 
    } 

    public void setResults(int results){ 
     this.results = results; 
    } 

    public void updateAddFromInput(){ 
     Scanner scanner = new Scanner(System.in); 
     System.out.println("-----CALCULATOR-----"); 
     int newResults = scanner.nextInt(); 
     setResults(newResults); 
    } 
} 

 

package CalculatorApp; 

import java.util.Scanner; 

public class CalculatorApplication { 

    public static void main(String[] args){ 

     System.out.println("Enter First Value: "); 
     Scanner scanner = new Scanner(System.in); 

     int setValue1 = scanner.nextInt(); 

     System.out.println("Enter Second Value: "); 

     int setValue2 = scanner.nextInt(); 

     System.out.println("Would you like to add, subtract, " + 
       "multiply or divide:"); 

     String option=scanner.next();{ 

      System.out.println("The Total of your Sum is: "+option); 
     } 
    } 
} 

ответ

1

Вы просто печатая значение оператора в вашем коде.

System.out.println("The Total of your Sum is: "+option); 
0

Между двумя классами нет никакой связи.

В классе CalculatorApplication вы объявили int setvalue1 и setvalue2, которые являются инстанцированными в самом классе.

Вы должны уведомить калькулятор, и они устанавливают значение и извлекают значения из этого класса.

Установки и значения: CalculatorUser cu = new CalculatorUser (setValue1, setValue2, опция);

Then cu.option(); Распечатал ваш результат.

В вашем случае, я полагаю, вы намерены использовать приложение калькулятора в качестве пользовательского интерфейса и калькулятора как класс, где имеет место «реальный расчет».

0

Изменить ваш конструктор CalculatorUser к:

public CalculatorUser(int value1, int value2, String option, 
     int results){ 

    this.value1=value1; 
    this.value2=value2; 
    this.option=option; 
    this.results=0; 

} 

Заменить экземпляр блока с ниже код в CalculatorApplication классе

String option=scanner.next();{ 
     CalculatorUser objCalculatorUser = new CalculatorUser(setValue1, setValue2, option.trim(), setValue2); 
     System.out.println("The Total of your Sum is: "+ objCalculatorUser.option()); 
    } 
0

1 логик, такие как добавление, разделить, вычесть и т.д., находятся в опции метод в классе CalculatorUser. Вам нужно сначала создать экземпляр CalculatorUser в основном методе метода и метода вызова.

String option=scanner.next();{ 
CalculatorUser CalculatorUser = new CalculatorUser(setValue1,setValue2,option,0); 
CalculatorUser.option(); 

2 Вы можете поместить сообщение суммы в метод опций, поскольку вы уже распечатываете сумму там.

как,

public String option(){ 

    if (option.equals("+")){ 
     System.out.println("The Total of your Sum is: "+option); 
    } 
} 

Program just prints sign rather than sum

0

Посмотрите на этот код:

import java.util.Scanner; 

public class Calculator{ 
private int value1; 
private int value2; 
private String option; 
private int results; 

public Calculator(){ 
    this.value1=0; 
    this.value2=0; 
    this.option=null; 
    this.results=0; 
} 

public int getValue1(){ 
    return value1; 
} 

public int getValue2(){ 
    return value2; 
} 

public void setValue1(int value1){ 
    this.value1 = value1; 
} 

public void setValue2(int value2){ 
    this.value2 = value2; 
} 

public void setOption(String option){ 
    this.option = option; 
} 

public int getResult(){ 
    if (option.equals("+")){ 
     results = value1+value2; 
    }else if(option.equals("-")){ 
     results = value1-value2; 
    }else if(option.equals("*")){ 
     results = value1*value2; 
    }else if(option.equals("/")){ 
     results = value1/value2; 
    }else if(option.equals("unknown")){ 
     System.out.println("Please type + for Add, - for Subtract, * for Multiply,/for divide and press Enter/Return Key"); 
     return 0; 
    } 
    return results; 
} 

public static void main(String[] args){ 
    Scanner scanner = new Scanner(System.in);   
    System.out.println("Enter First Value: "); 
    int value1 = scanner.nextInt(); 
    System.out.println("Enter Second Value: "); 
    int value2 = scanner.nextInt(); 
    System.out.println("Would you like to add, subtract, multiply or divide:"); 
    String option = scanner.next(); 
    scanner.close(); 
    Calculator c = new Calculator(); 
    c.setValue1(value1); 
    c.setValue2(value2); 
    c.setOption(option); 
    System.out.println(c.getResult());   
} 

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