Задать вопрос
Chorrny
@Chorrny

Калькулятор на С++ или как решить проблему с действиями?

Здравствуйте, дорогие!
Начал учить функции.. и сразу решил сделать калькулятор с использованием функций..
Проблема: когда сделал выбор например 16 / 4 выдаёт что равно 20.

Если есть свободное время, помогите обьяснить в чём проблема
#include <iostream>
using namespace std;

void title() {
    cout << "КАЛЬКУЛЯТОР\tby Chorrny Edition" << endl;
}

int Function1(int a, int b) {
    return a + b;
}
int Function2(int a, int b) {
    return a - b;
}
int Function3(int a, int b) {
    return a * b;
}
int Function4(int a, int b) {
    return a / b;
}
int main()
{
    setlocale(LC_ALL, "");

    int res, a, b;
    int choise = 0;
    title();
    cout << "Выберите действие:\n\t 1 - добавления:\n\t 2 - вычитание:\n\t 3 - умножение:\n\t 4 - Деление:" << endl;
    cin >> a;
    cout << "Первая цифра -->";
    cin >> b;
    cout << "Вторая цифра -->";
    cin >> choise;
    if (choise == 1) {
        res = Function1(a, b);
    }
    else if (choise == 1) {
        res = Function2(a, b);
    }
    else if (choise == 1) {
        res = Function3(a, b);
    }
    else if (choise == 1) {
        res = Function4(a, b);
    }

    cout << res << "Результат: "; 
    system("pause");
    return 0;
}


Спасибо!
  • Вопрос задан
  • 3669 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
У Вас всегда идет складывание, независимо от выбора пользователя.
Измените блок с if на этот:
if (choise == 1) {
  res = Function1(a, b);
}
else if (choise == 2) {
  res = Function2(a, b);
}
else if (choise == 3) {
  res = Function3(a, b);
}
else if (choise == 4) {
  res = Function4(a, b);
}

Также советую дать имена функциям более осмысленные ( add ,subtract, mul ,div)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@ls134
#include
using namespace std;

void title() {
cout << "КАЛЬКУЛЯТОР\tby Chorrny Edition" << endl;
}

int Function1(int a, int b) {
return a + b;
}
int Function2(int a, int b) {
return a - b;
}
int Function3(int a, int b) {
return a * b;
}
int Function4(int a, int b) {
return a / b;
}
int main()
{
setlocale(LC_ALL, "");

int res, a, b;
int choise = 0;
title();
cout << "Выберите действие:\n\t 1 - добавления:\n\t 2 - вычитание:\n\t 3 - умножение:\n\t 4 - Деление:" << endl;
cin >> choise;

cout << "Первая цифра -->";
cin >> a;
cout << "Вторая цифра -->";
cin >> b;

if (choise == 1)
{
res = Function1(a, b);
}
else if (choise == 2)
{
res = Function2(a, b);
}
else if (choise == 3) {
res = Function3(a, b);
}
else if (choise == 4) {
res = Function4(a, b);
}

cout << "Результат: "<< res < system("pause");
return 0;
}
Ответ написан
Комментировать
silverstringer
@silverstringer
Software engineer/CEO prisba.ru
Использование channing Method

#include
using namespace std;

/**
* @brief Method chaining
* @tparam T
*/

template
class Mathem {
public:
Mathem(T xx):m_value(xx){};
Mathem& add(T value){m_value+=value; return *this; }
Mathem& sub(T value){m_value-=value; return *this; }
Mathem& multiply(T value){m_value*=value; return *this; }
int getValue(){return m_value;}
operator T(){return m_value;}
private:
int m_value;

};

int main(){
Mathem operation(2);
operation.add(2).sub(3).multiply(5);
cout<
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы