Итак, мой проект состоит в том, чтобы создать консольный калькулятор, используя принципы MVC в C ++. Однако нам разрешено вводить только 1 аргумент для определения числа, а также оператор вычисления (+, -, ..)
Я сделал один, но он оказался неправильным, потому что мне не разрешено cin любые новые числа в представлении, потому что разрешен только ввод в контроллер. Подход, о котором я думаю, - это взять аргумент в контроллере -> внутри представления вызвать функцию модели, чтобы просканировать, является ли этот ввод числом или операцией -> если это не так, вернитесь обратно в представление и вернитесь к контроллеру для следующего ввода
Но почему-то застрял, когда пользователь вводит + он не возвращает сумму, какие-либо предложения? Потому что, если заданный аргумент будет чем-то вроде (num1, num2, operation) , будет проще, но только (tInput) обрабатывает весь ввод, поэтому я немного запутался.
Контроллер. cpp (Ничего не менять)
int (main) {
CalModel* tAModel = new CalModel;
CalView* tAView = new CalView(tAModel);
cout << "Calculator: 0-9, +, or C for clear: \n";
while (true)
{
char tInput = getchar();
tAView->OnKeypress(tInput); // Only one input allowed
}
}
Пример вывода:
Calculator: 0-9,+, or C for clear:
1
+
1
=
2
+
1
=
3