#include <map>
#include <iostream>

using Operator = double(double, double);

double plus(double x, double y) {
    return x+y;
}

double minus(double x, double y) {
    return x-y;
}

double divide(double x, double y) {
    return x/y;
}

double multiply(double x, double y) {
    return x*y;
}

int main()
{
    std::map<char, Operator&> operators = {
        {'+', plus},
        {'-', minus},
        {'/', divide},
        {'*', multiply}
    };
    double x = 0;
    double y = 0;
    char op = 0;
    double result = 0;
    std::cout << "Input number, operation (+, -, /, *) and number, please: ";
    std::cin >> x >> op >> y;
    const auto operation = operators.find(op);
    if (operation != operators.cend())
        std::cout << "Result: " << (*operation->second)(x, y) << '\n';
    else
        std::cout << "Operation " << op << " not found!\n";
    return 0;
}