Загрузка данных
#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; // успешное завершение программы
}