Традиционный способ разбора арифметических выражений - это стек. Задаем приоритет операций и далее из строки выбираем числа и операции в соответствии с приоритетом и складируем в стек. В калькуляторе все еще проще: есть три основные переменные - "операция" и "операнд1" "операнд2". Когда пользователь набирает число - оно показывается на экране, это "операнд1", когда пользователь нажимает кнопку "операция" - переменная "операнд1" копируется в "операнд2" и ставится флаг, который разрешает перезапись текущего значения цифровой клавиатурой (т.е., число на экране надо будет набрать заново). И далее уже есть два варианта: либо сразу после ввода любого числа выводить результат в дополнительном поле либо пользователь сам нажимает "=".