Сообщения об ошибках, выдаваемые программой (коды ошибок).
Error 01 at — Неправильная скобочная структура, ошибка на символе
Error 02 at — Неизвестный оператор на символе
Error 03 — Неверная синтаксическая конструкция входного выражения
Error 04 at — Два подряд оператора на символе
Error 05 — Незаконченное выражение
Error 06 — Слишком малое или слишком большое значение числа для int. Числа должны быть в пределах от -2147483648 до 2147483647
Error 07 — Слишком длинное выражение. Максмальная длина — 65536 символов.
Error 08 — Суммарное количество чисел и операторов превышает 30
Error 09 – Ошибка деления на 0
Описание файлов, входящих в пакете калькулятора.
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. Модуль математических операций
Модуль графического интерфейса – обеспечивает управление системы в графической форме. Основные функции этого модуля – ввод и вывод данных.
Взаимодействие модулей показано на рисунке:
Достарыңызбен бөлісу: |