Функциональные требования Требования к программе Калькулятор должен выполнять следующие арифметические операции: сложение, вычитание, умножение, нахождение частного, нахождение остатка от деления на целое число. Спецификацию на них см. 4.2.
Калькулятор должен поддерживать работу с целыми числами в пределах от -2147483648 до 2147483647 (в дальнейшем MININT и MAXINT). В случае выхода за эти пределы должно выдаваться сообщение об ошибке Error 06.
Калькулятор должен иметь память на одно целое число, а также возможность выводить это число на экран, сбрасывать его значение на 0 и прибавлять к нему любое другое число, введенное в поле ввода. При нажатии на клавишу M+ к числу, записанному в память, прибавляется число, записанное в поле «Результат». При этом на сложения накладываются ограничения из 4.2.1.
Если в поле “Результат” записан код ошибки, то при нажатии на клавишу M+ должно выдаваться сообщение «Невозможно преобразовать к числу».
При нажатии на кнопку MC число в памяти обнуляется.
При нажатии на кнопку MR число из памяти приписывается в конец выражения в строке «Выражение».
Калькулятор должен предоставлять возможность пользователю работать с операциями унарного плюса и унарного минуса. Если между соседними нажатиями на кнопку <+/-> проходит менее 3 секунд, то введенный оператор меняется на противоположный.
Если между соседними нажатиями на кнопку <+/-> проходит более 3 секунд, то к выражению дописывается знак «-».
Калькулятор должен иметь графический интерфейс, содержащий кнопки с цифрами и арифметическими операциями, кнопкой равенства, кнопками работы с памятью, кнопками редактирования скобочек и кнопками сброса, переключателем унарного минуса/унарного плюса, текстовыми полями для ввода выражения и вывода результата.
При нажатии на клавишу калькулятор должен проводить вычисления выражения.
При нажатии на клавишу программа должна прекращать свою работу.
В случае неверно построенного вычисляемого выражения или несоответствия его требованиям 4.2 или 4.3 в текстовое окно результат должно выводиться соответствующие сообщение (см 2.2.3)