
- •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. Взаимодействие модулей системы "Калькулятор"