2016-10-29 2 views
0

Я взял код, который вы мне дали, и отредактировал его, чтобы добавить еще один класс java. Однако теперь ответ всегда 0.0. Мне также нужно сделать цикл while, чтобы вы могли выполнять несколько вычислений, но я не знаю, какие условия применять к циклу.Как добавить класс добавления для хранения вычислений?

Также должен быть еще один цикл, который приходит перед частью, в которой пользователь вводит число, чтобы кто-то мог вернуться к прошлым ответам, которые были сохранены в массиве. Мне просто нужна помощь в создании циклов, и я могу сделать оператор switch для первого цикла.

package calculator; 
import java.util.*; 
public class calculator 

{ 

public static void main(String[] args) 
{ 
Operation operationObject = new Operation(); 
Scanner input = new Scanner(System.in); 
int index = 0; 

double calculations[] = new double[100]; 

System.out.println("Enter first number"); 
double num1 = input.nextDouble(); 
System.out.println("Enter second number"); 
double num2 = input.nextDouble(); 

System.out.println("Enter the operation"); 
System.out.println("Addition= + "); 
System.out.println("Subtraction= - "); 
System.out.println("Divion=/"); 
System.out.println("Multiplcation= *"); 

String operation = input.next(); 

double result = 0; 

switch (operation) 
{ 
case "+": 
    operationObject.addition(); 
    System.out.println(); 
    break; 
case "-": 
    operationObject.subtraction(); 
    break; 
case "/": 
    operationObject.division(); 
    break; 
case "*": 
    operationObject.multiplication(); 
    break; 
} 

storeMem(calculations, result, index); 

System.out.println("Your answer is: " + result); 
} 

static void storeMem(double[] memory, double data, int index) 
{ 
if(index > memory.length) 
    index = 0; 

memory[index] = data; 
index++; 
} 
} 


//other class that contains the operations 


package calculator; 

public class Operation{ 

double num1, num2, answer; 

public void addition(){ 
    answer = num1 + num2; 
    System.out.println(answer); 
} 

public void subtraction(){ 
    answer = num1 - num2; 
    System.out.println(answer); 
} 

public void division(){ 
    answer = num1/num2; 
    System.out.println(answer); 
} 

public void multiplication(){ 
    answer = num1 * num2; 
    System.out.println(answer); 
} 
} 
+0

Что вы имеете в виду, что не знаете, как реализовать другой класс? Конечно, для вас есть ресурсы, которые помогут вам научиться этому. Непонятно, почему/что вам нужно хранить в другом классе, который не может быть в массиве. –

+0

Что касается обучения созданию дополнительных классов, попробуйте запустить здесь https://docs.oracle.com/javase/tutorial/java/ javaOO/ –

+0

@ cricket_007 Мне нужно иметь еще один класс для этой программы из-за требования небольшого проекта. Что я имею в виду, я не знаю, как реализовать, так это то, что я не знаю, какую часть моей программы я могу иметь в другом классе, или если я могу добавить что-то к коду, чтобы иметь другой класс. –

ответ

1

Да так, что ваш код немного повсюду, и я сделал это немного более кратким в моем примере, как сделать то, что вы просите. Начну с того, что вам не нужен другой класс, это намного проще, но вы можете полностью реализовать метод, который я сделал в моем примере, в класс и использовать его таким образом, если вы хотите (также есть другие способы делая это).

Так вот мой пересмотренный пример кода:

//unused import java.io.*; 
import java.util.*; 

public class Calculator 
{ 
public static void main(String[] args) 
{ 
    Scanner input = new Scanner(System.in); 
    int index = 0; 

    double calculations[] = new double[100]; 

    System.out.println("Enter first number"); 
    double num1 = input.nextDouble(); 
    System.out.println("Enter second number"); 
    double num2 = input.nextDouble(); 

    System.out.println("Enter the operation"); 
    System.out.println("Addition= + "); 
    System.out.println("Subtraction= - "); 
    System.out.println("Divion=/"); 
    System.out.println("Multiplcation= *"); 

    String operation = input.next(); 

    double result = 0; 

    switch (operation) 
    { 
    case "+": 
     result = num1 + num2; 
     break; 

    case "-": 
     result = num1 - num2; 
     break; 

    case "/": 
     result = num1/num2; 
     break; 

    case "*": 
     result = num1 * num2; 
     break; 
    } 

    storeMem(calculations, result, index); 

    System.out.println("Your answer is: " + result); 
} 

static void storeMem(double[] memory, double data, int index) 
{ 
    if(index > memory.length) 
     index = 0; 

    memory[index] = data; 
    index++; 
} 
} 

Так на самом деле Вы желаете хранить прошлые расчеты, так что все, что вам нужно сделать, это добавить результат текущего расчета в массиве. Я упростил это, сделав для вас способ, называемый storeMem, который делает это. Метод принимает массив для использования в качестве хранилища, данные для его добавления и индекс (индекс - это местоположение в массиве, такое как 0, 1 или 400, о чем я расскажу позже). Итак, вы начинаете с вызова метода storeMem, который затем проверяет, не превышает ли индекс за пределами массива (затем перезагрузите его, чтобы перезаписать память, если он есть), после чего он установит текущие данные равными текущему индексу в массиве, чтобы сохранить ваше значение. Наконец, метод увеличивает индекс. Это полезно, так что вы можете использовать int индекс, который вы создали в своей программе, чтобы легко получить доступ к текущим или предыдущим индексам. Потому что индекс будет вашим текущим сохраненным значением, а индекс - 1 будет вашим предыдущим индексированным значением (ранее сохраненным результатом).

+0

. Я изменил исходное сообщение с кодом, который я дал, и я его отредактировал, у него есть еще один класс java. вернитесь к моей оригинальной записи для обновления моих проблем и кода –

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

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