0% нашли этот документ полезным (0 голосов)
33 просмотров5 страниц

Calculator

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

Загружено:

Cholponai Manapova
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате TXT, PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
33 просмотров5 страниц

Calculator

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

Загружено:

Cholponai Manapova
Авторское право
© © All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате TXT, PDF, TXT или читать онлайн в Scribd
Вы находитесь на странице: 1/ 5

import java.util.

Scanner;
public class Main {
public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);


Calculator calculator = new Calculator(); // Создаём объект класса
Calculator
while (true) {
System.out.println("\nВыберите операцию:");
System.out.println("1. Сложение");
System.out.println("2. Вычитание");
System.out.println("3. Умножение");
System.out.println("4. Деление");
System.out.println("5. Показать историю");
System.out.println("6. Очистить историю");
System.out.println("7. Возведение в степень");
System.out.println("8. Квадратный корень");
System.out.println("9. Факториал");
System.out.println("10. Тригонометрия (синус, косинус, тангенс)");
System.out.println("11. Обратные тригонометрические функции");
System.out.println("12. Логарифмы");
System.out.println("13. Модуль числа");
System.out.println("14. Выход");

System.out.print("Ваш выбор: ");


int choice = scanner.nextInt();

if (choice == 7) {
System.out.println("Выход из программы.");
break;
}

switch (choice) {
case 1: // Сложение
System.out.print("Введите первое число: ");
double add1 = scanner.nextDouble();
System.out.print("Введите второе число: ");
double add2 = scanner.nextDouble();
System.out.println("Результат: " + calculator.add(add1, add2));
break;

case 2: // Вычитание
System.out.print("Введите первое число: ");
double sub1 = scanner.nextDouble();
System.out.print("Введите второе число: ");
double sub2 = scanner.nextDouble();
System.out.println("Результат: " + calculator.subtract(sub1,
sub2));
break;

case 3: // Умножение
System.out.print("Введите первое число: ");
double mul1 = scanner.nextDouble();
System.out.print("Введите второе число: ");
double mul2 = scanner.nextDouble();
System.out.println("Результат: " + calculator.multiply(mul1,
mul2));
break;
case 4: // Деление
System.out.print("Введите первое число: ");
double div1 = scanner.nextDouble();
System.out.print("Введите второе число: ");
double div2 = scanner.nextDouble();
try {
System.out.println("Результат: " + calculator.divide(div1,
div2));
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
break;

case 5: // Показать историю


calculator.showHistory();
break;

case 6: // Очистить историю


calculator.clearHistory();
break;
case 7:
System.out.print("Введите число для вычисления возведения в
степень: ");
int a = scanner.nextInt();
int b = scanner.nextInt();
System.out.println("Степень: " + calculator.power(a,b));
break;
case 8:
System.out.print("Введите число для вычисления корня: ");
int num1 = scanner.nextInt();
System.out.println("Квадратный корень равен : " +
calculator.squareRoot(num1));
break;

case 9:
System.out.print("Введите число для вычисления факториала: ");
int num2 = scanner.nextInt();
System.out.println("Факториал: " + calculator.factorial(num2));
break;
case 10:
System.out.print("Введите угол в градусах: ");
double angle = scanner.nextDouble();
calculator.trigonometry(angle);
break;
case 11:
System.out.print("Введите значение (-1 до 1): ");
double trigValue = scanner.nextDouble();
calculator.inverseTrigonometry(trigValue);
break;
case 12:
System.out.print("Введите число для логарифма: ");
double logNumber = scanner.nextDouble();
calculator.logarithm(logNumber);
break;
case 13:
System.out.print("Введите число для вычисления модуля: ");
double absNumber = scanner.nextDouble();
calculator.absoluteValue(absNumber);
break;
default:
System.out.println("Некорректный выбор!");
}
}

}
}

import java.util.ArrayList;

public class Calculator {


private ArrayList<String> history = new ArrayList<>();

// Метод для сложения


public double add(double a, double b) {
double result = a + b;
history.add(a + " + " + b + " = " + result);
return result;
}

// Метод для вычитания


public double subtract(double a, double b) {
double result = a - b;
history.add(a + " - " + b + " = " + result);
return result;
}

// Метод для умножения


public double multiply(double a, double b) {
double result = a * b;
history.add(a + " * " + b + " = " + result);
return result;
}

// Метод для деления


public double divide(double a, double b) {
if (b == 0) {
throw new IllegalArgumentException("Деление на ноль невозможно.");
}
double result = a / b;
history.add(a + " / " + b + " = " + result);
return result;
}

public double power(double base, double exponent) {


double result = Math.pow(base, exponent);
history.add(base + " ^ " + exponent + " = " + result);
return result;
}

// Метод для вычисления квадратного корня


public double squareRoot(double a) {
if (a < 0) {
throw new IllegalArgumentException("Квадратный корень из отрицательного
числа невозможен.");
}
double result = Math.sqrt(a);
history.add("√" + a + " = " + result);
return result;
}

// Метод для показа истории операций


public void showHistory() {
if (history.isEmpty()) {
System.out.println("История пуста.");
} else {
System.out.println("История операций:");
for (String record : history) {
System.out.println(record);
}
}
}

// Метод для очистки истории


public void clearHistory() {
history.clear();
System.out.println("История очищена.");
}

public static long factorial(int n) {


if (n < 0) {
System.out.println("Факториал определён только для неотрицательных
чисел.");
return -1;
}
long result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}

public static void trigonometry(double angleInDegrees) {


double angleInRadians = Math.toRadians(angleInDegrees);
System.out.println("Синус: " + Math.sin(angleInRadians));
System.out.println("Косинус: " + Math.cos(angleInRadians));
System.out.println("Тангенс: " + Math.tan(angleInRadians));
}

public static void inverseTrigonometry(double value) {


if (value < -1 || value > 1) {
System.out.println("Значение должно быть в диапазоне от -1 до 1 для
arcsin и arccos.");
return;
}
System.out.println("arcsin: " + Math.toDegrees(Math.asin(value)));
System.out.println("arccos: " + Math.toDegrees(Math.acos(value)));
System.out.println("arctan: " + Math.toDegrees(Math.atan(value)));
}

public static void logarithm(double number) {


if (number <= 0) {
System.out.println("Логарифм определён только для положительных
чисел.");
return;
}
System.out.println("Натуральный логарифм (ln): " + Math.log(number));
System.out.println("Десятичный логарифм (log10): " + Math.log10(number));
}

public static void absoluteValue(double number) {


System.out.println("Модуль числа: " + Math.abs(number));
}

Вам также может понравиться