0Pricing
C++ Academy · Урок

Создание простого калькулятора CLI

Создайте калькулятор командной строки, который разбирает операторы и вычисляет выражения.

«Создание простого калькулятора CLI» — бесплатный урок C++ Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C++ Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C++ Academy содержит 4 уроков всего.

Цель проекта

Создайте консольный калькулятор, который считывает выражение вроде 3 + 4 и выводит результат. Мы сохраним его минимальным, но хорошо структурированным.

Необходимые заголовочные файлы

Нам нужны iostream для ввода-вывода и string для входных данных.

#include <iostream>
#include <string>
#include <sstream>

Каркас главного цикла

Считайте строку, разберите ее, выполните вычисление и выведите результат. Завершите работу при EOF.

int main() {
    std::string line;
    while (std::getline(std::cin, line)) {
        if (line == "quit") break;
        double result = evaluate(line);
        std::cout << "= " << result << "\n";
    }
}

Разбор с помощью stringstream

Для двух операндов и одного оператора разбиение на элементы с помощью stringstream получается простым и надежным.

double evaluate(const std::string& line) {
    std::stringstream ss(line);
    double a, b;
    char op;
    ss >> a >> op >> b;
    return apply(op, a, b);
}

Применение оператора

Оператор switch по символу оператора.

double apply(char op, double a, double b) {
    switch (op) {
        case '+': return a + b;
        case '-': return a - b;
        case '*': return a * b;
        case '/': return b != 0 ? a / b : 0;
        default:  return 0;
    }
}

Обработка ошибок

Что произойдет, если пользователь введет недопустимые данные? Проверьте состояние потока и выведите понятное сообщение.

if (!(ss >> a >> op >> b)) {
    std::cout << "Invalid input\n";
    return 0;
}

Деление на ноль

Обрабатывайте деление на ноль явно. Выведите ошибку или выбросьте исключение — выберите вариант, соответствующий вашему проектному решению.

if (op == '/' && b == 0) {
    throw std::runtime_error("division by zero");
}

Добавление других операторов

Расширьте switch, добавив другие операции: %, ^ для возведения в степень или именованные функции, например sqrt.

Сохранение состояния

Нужен накапливаемый итог? Сохраните последний результат и разрешите пользователю начинать выражение со знака +.

double last = 0;
// if first token is an operator, use `last` as the first operand

Улучшение взаимодействия с пользователем

Выводите приглашение перед каждым вводом, принимайте quit или EOF для выхода, игнорируйте пустые строки.

Больше двух операндов

Для выражений с несколькими операндами, например 3 + 4 * 2, нужен разборщик выражений. Алгоритм сортировочной станции — стандартный подход.

Тестирование калькулятора

Чтобы быстро выполнить тест, перенаправьте входные данные из файла.

echo "3 + 4\n10 / 2" | ./calc

Быстрая проверка

Какое средство стандартной библиотеки удобно использовать для разбора разделенных пробелами элементов вроде 3 + 4?

Итоги

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

Часто задаваемые вопросы

Урок «Создание простого калькулятора CLI» бесплатный?

Да — полный текст урока «Создание простого калькулятора CLI» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C++ Academy, подпишись на CoddyKit PRO. Курс C++ Academy содержит 4 уроков всего.

Чему я научусь в уроке «Создание простого калькулятора CLI»?

Создайте калькулятор командной строки, который разбирает операторы и вычисляет выражения. Ты практикуешь C++ Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C++ Academy?

Предыдущий опыт не требуется. C++ Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Создание простого калькулятора CLI»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C++ Academy?

Да. Каждый урок C++ Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание простого калькулятора CLI
  2. Чтение и запись файлов CSV
  3. Игра «Угадай число»
  4. Счётчик частотности слов
← Назад к C++ Academy