- •2.1. Введение
 - •2.2. Система "Калькулятор"
 - •2.2.1. Общее описание
 - •2.2.2. Требования к системе
 - •2.2.3. Архитектура
 - •2.2.4. Программный код
 - •2.3. Тестирование системы
 - •2.3.1. Общее описание
 - •2.3.2. Проверка программного кода
 - •2.3.3. Проверка архитектуры
 - •2.3.4. Проверка требований
 - •2.4. Приложение. Спецификация на программу "Калькулятор. Базовая версия"
 - •Общее описание
 - •Описание файлов, входящих в пакете калькулятора.
 - •Интерфейс пользователя.
 - •Модуль графического интерфейса – обеспечивает управление системы в графической форме. Основные функции этого модуля – ввод и вывод данных.
 - •Функциональные требования
 - •Требования к программе
 - •Арифметические операции
 - •Дополнительные требования к входному выражению
 - •2.5. Задание «со звездочкой»
 - •1. Изучить спецификацию и выявить имеющиеся в ней проблемы и противоречия. Обосновать их.
 - •2. Реализовать описанную систему.
 
Описание файлов, входящих в пакете калькулятора.
CalcClass.dll – библиотека, в которой реализованы все необходимые математические функции.
AnalaizerClass.dll – модуль, в котором реализован синтаксический разбор выражения, а также его вычисление.
calc.exe – графическая оболочка, главный модуль.
Интерфейс пользователя.
Рис. 2.4. Интерфейс пользователя системы "Калькулятор"
Клавиши "1" "2" "3" "4" "5" "6" "7" "8" "9" "0" "/" "*" "-" "+" "mod" "(" ")" – вводят соответствующий символ в поле выражение. Клавиша "Сброс" очищает поле "Выражение", клавиша "Стереть" удаляет последний введенный символ. Клавиша "=" начинает выполнение вычислений. "MR", "M+" и "MC" управляют памятью калькулятора, "+/-" — триггер унарного плюса унарного минуса.
Описание архитектуры
Как уже отмечалось выше, в архитектуре системы выделено 3 модуля. Каждый из модулей занимается определенной задачей. Соответственно, Система – это взаимодействие этих 3-х модулей. Рассмотрим их подробнее.
Модуль математических операций (CalcClass.dll)
Модуль содержит все математические функции, используемые в программе.
/// Функция сложения числа a и b
public static int Add(long a, long b)
/// функция вычитания чисел a и b
public static int Sub(long a, long b)
/// функция умножения чисел a и b
public static int Mult(long a, long b)
/// функция нахождения частного
public static int Div(long a, long b)
/// функция деления по модулю
public static int Mod(long a, long b)
/// унарный плюс
public static int ABS(long a)
/// унарный минус
public static int IABS(long a)
Используется также глобальная переменная:
/// Последнее сообщение об ошибке
/// Поле и свойство для него
private static string _lastError = "";
public static string lastError
Листинг 2.1. Модуль математических операций
Модуль графического интерфейса – обеспечивает управление системы в графической форме. Основные функции этого модуля – ввод и вывод данных.
Взаимодействие модулей показано на рисунке:
Рис. 2.5. Взаимодействие модулей системы "Калькулятор"
