Калькулятор на C#
Приветствую! Здесь вы наверняка найдете, что ищете. Примеры в лаборатории рассчитаны на то, что мы разбираем что-то конкретное.
Текущая статья посвящена консольному калькулятору на C# — разбор выражений и обработка ввода.
Поэтому за теорией по текущей теме вам — в энциклопедию. Если ещё не погружались, то маршрут прост:
- Основы
- Система и сеть
- Данные и разметка
- Код и разработка
- Языки
- Искусственный интеллект
- Проект
- Инфраструктура и безопасность
- Спин-офф
Обязательно пройдитесь.
А теперь приступим к нашему предмету.
Калькулятор на C#
Калькулятор на C# — это учебное консольное приложение, демонстрирующее базовые принципы обработки пользовательского ввода, выполнения арифметических операций и управления потоком программы. Такой пример полезен для начинающих разработчиков, изучающих синтаксис языка, работу с типами данных и структурами управления.
Простая реализация
Простейший калькулятор запрашивает у пользователя два числа и операцию, после чего выводит результат:
Эта версия:
- Поддерживает четыре основные арифметические операции.
- Проверяет деление на ноль.
- Использует
doubleдля работы с дробными числами. - Завершает выполнение при ошибке.
Расширенная реализация с циклом и повторным использованием
Более удобный вариант позволяет выполнять несколько вычислений подряд без перезапуска программы:
Особенности этой реализации:
- Использует
double.TryParseдля безопасного преобразования строк в числа. - Позволяет выйти из программы, введя
exitна любом этапе. - Выделяет логику вычислений в отдельный метод
PerformCalculation. - Применяет pattern matching через
switchвыражение (C# 8+). - Возвращает
null, если операция недопустима или произошло деление на ноль.
Объектно-ориентированная версия
Для демонстрации принципов ООП можно инкапсулировать функциональность калькулятора в класс:
Преимущества ООП-подхода:
- Чёткое разделение ответственности.
- Возможность расширения (например, добавление новых операций как методов).
- Лёгкость тестирования отдельных методов.
- Обработка исключений на уровне вызова.
Возможные улучшения
- Поддержка скобок и приоритетов операций — реализация парсера выражений (например, через алгоритм Дейкстры или рекурсивный спуск).
- История вычислений — сохранение последних N операций в списке.
- Графический интерфейс — создание оконного приложения с помощью Windows Forms, WPF или MAUI.
- Локализация — поддержка разных языков и форматов чисел.
- Настройка точности — ограничение количества знаков после запятой.