Загрузка данных


#pragma once // защита от повторного включения заголовочного файла

// прототипы арифметических функций
double my_multiply(double a, double b); // прототип функции умножения
double my_add(double a, double b);      // прототип функции сложения
double my_subtract(double a, double b); // прототип функции вычитания
double my_divide(double a, double b);   // прототип функции деления
#include "calc_func.h" // подключение заголовочного файла с прототипами

// реализация функции умножения
double my_multiply(double a, double b)
{
    /*предусловие: a и b - вещественные числа*/
    /*постусловие: функция возвращает результат умножения a * b*/
    return a * b; // возврат произведения чисел
}

// реализация функции сложения
double my_add(double a, double b)
{
    /*предусловие: a и b - вещественные числа*/
    /*постусловие: функция возвращает результат сложения a + b*/
    return a + b; // возврат суммы чисел
}

// реализация функции вычитания
double my_subtract(double a, double b)
{
    /*предусловие: a и b - вещественные числа*/
    /*постусловие: функция возвращает результат вычитания a - b*/
    return a - b; // возврат разности чисел
}

// реализация функции деления
double my_divide(double a, double b)
{
    /*предусловие: a и b - вещественные числа, b != 0*/
    /*постусловие: функция возвращает результат деления a / b*/
    return a / b; // возврат частного от деления
}
#include <iostream>     // библиотека для потокового ввода-вывода (cin, cout)
#include <iomanip>      // библиотека для манипулятора fixed (форматирование вывода)
#include <clocale>      // библиотека для работы с русским языком
#include "calc_func.h"  // подключение модуля с нашими арифметическими функциями

using namespace std;    // использование стандартного пространства имен

int main()
{
    /*предусловие: вводятся два вещественных числа и номер арифметической операции (1..4)*/
    /*постусловие: программа вычисляет и выводит результат выбранной операции через функции*/

    setlocale(LC_ALL, "Russian"); // настройка корректного отображения кириллицы

    int operation;          // переменная для хранения выбранной операции
    double num1, num2;      // входные вещественные числа
    double result;          // переменная для сохранения результата

    cout << "Введите первое число: " << endl; // приглашение к вводу первого числа
    cin >> num1;                              // считывание первого числа

    cout << "Введите второе число: " << endl; // приглашение к вводу второго числа
    cin >> num2;                              // считывание второго числа

    // вывод меню выбора математической операции
    cout << "Выберите операцию:\n";
    cout << "1 - умножение\n";
    cout << "2 - сложение\n";
    cout << "3 - вычитание\n";
    cout << "4 - деление\n";
    cout << "Введите номер операции: " << endl;
    cin >> operation;                         // считывание номера операции

    cout << fixed;       // фиксированная точка для вывода вещественных чисел
    cout.precision(2);   // округление вывода до двух знаков после запятой

    // переключатель операций
    switch (operation)
    {
    case 1: // умножение
        result = my_multiply(num1, num2); // вызов функции умножения из файла calc_func.cpp
        cout << "Результат умножения: " << result << endl;
        break; // выход из конструкции switch

    case 2: // сложение
        result = my_add(num1, num2); // вызов функции сложения из файла calc_func.cpp
        cout << "Результат сложения: " << result << endl;
        break; // выход из конструкции switch

    case 3: // вычитание
        result = my_subtract(num1, num2); // вызов функции вычитания из файла calc_func.cpp
        cout << "Результат вычитания: " << result << endl;
        break; // выход из конструкции switch

    case 4: // деление
        if (num2 != 0) // проверка деления на ноль
        {
            result = my_divide(num1, num2); // вызов функции деления из файла calc_func.cpp
            cout << "Результат деления: " << result << endl;
        }
        else
        {
            cout << "Ошибка: деление на ноль невозможно!" << endl; // сообщение об ошибке
        }
        break; // выход из конструкции switch

    default: // если введено любое другое число
        cout << "Неверная операция. Выберите число от 1 до 4." << endl;
        break;
    }

    system("pause"); // приостановка консоли перед выходом
    return 0;        // успешное завершение программы
}