Как бы я приступил к созданию расширенного калькулятора?

#java

#java

Вопрос:

Извините, если это неподходящее место для этого вопроса. Я начинающий программист, и мне только что удалось создать этот простой калькулятор, который может вычислять сложение, вычитание, умножение и деление:

 import java.util.Scanner;

public class Calculator {

    public static void main(String[] args) {
        while(true){

            System.out.println("Format a 'tegn' b");
            System.out.println("tegn:  ,-,*,/?");

            Scanner input = new Scanner(System.in);
            double a = input.nextDouble();
            String valgttegn;
            valgttegn = input.next();
            double b = input.nextDouble();

            if (valgttegn.equals(" ")) {
                System.out.println("Resultat = "   (a   b));
            } else if (valgttegn.equals("-")) {
                System.out.println("Resultat = "   (a - b));
            } else if (valgttegn.equals("*")) {
                System.out.println("Resultat = "   (a * b));
            } else if (valgttegn.equals("/")) {
                System.out.println("Resultat = "   (a / b));
            }
        }
    }
}
  

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

Комментарии:

1. Все это будет зависеть от того, как вы хотите усовершенствовать калькулятор. Вы хотите иметь несколько воспоминаний, чтобы иметь возможность вспоминать? Всегда удобно разобраться с коллекциями Java — знать разницу между массивами, списками, картами, наборами (кортежи для других языков). Это сослужит вам хорошую службу для любого языка программирования. Также попытайтесь разобраться в дженериках.

2.Исследование: expression parsing — Логично (верно?), Учитывая, что что-то вроде 5 (7 * 9) называется выражением и что вам нужно было бы его проанализировать, прежде чем вы сможете его оценить.

Ответ №1:

Если вы готовы реализовать более продвинутые функции вручную (например, потому что вы хотите попрактиковаться), вы могли бы поискать алгоритмы в Интернете и реализовать их самостоятельно. Например, здесь есть первый результат, который я извлек из поиска в Google алгоритмов вычисления квадратного корня из числа .

В противном случае для этого есть библиотека Java.

Если вы уверены в своих объектно-ориентированных навыках и вас интересует, как расширить функциональные возможности вашей программы простым и доступным способом, я предлагаю вам ознакомиться с шаблонами проектирования.