
- •1 Теоретические основы ооп
- •2 Техническое задание
- •2.1 Анализ предметной области
- •2.2.1 Функциональные требования
- •2.2.2 Требования к интерфейсу
- •3 Рабочий проект
- •3.1 Общие сведения (среда функционирования (ос), способ загрузки, способ инсталляции, требования к по, требования к то)
- •3.2 Укрупненный алгоритм
- •3.2.1 Классы
- •3.2.3 Схема алгоритма
- •3.2.4 Обработка исключений
- •3.2 Руководство пользователя
- •5 Список использованной литературы
- •6 Приложение а
3.2.3 Схема алгоритма
Любая функция нажатия функциональной кнопки главного окна использует одну из функций чтения формы и/или одну из функций вывода в форму описанных в файле File1.cpp.
Сначала происходит чтение одной или двух таблиц строк StringGrid с занесением значений из них в соответствующие матрицы.
Затем с помощью методов класса TMatrix данные обрабатываются и выводятся по необходимости в результирующую или одну из рабочих StringGrid.
Рассмотрим на примере функции нажатия кнопки сложения.
Чтение обеих StringGrid с помощью метода ReadForm() с занесением результата в _Mat1 и _Mat2;
Присвоение матрице _Res значения суммы матриц _Mat1 и _Mat2 с помощью метода класса TMatrix MSumm(TMatrix, TMatrix);
Вывод матрицы _Res в форму с помощью функции WriteForm().
3.2.4 Обработка исключений
В программе генерируются исключения с кодом целого типа.
Все они делятся на 6 групп:
Код 1: Несоответствующий выбранной операции размер матрицы (матрица должна быть квадратной);
Код 2: Несоответствующие выбранной операции размеры матриц (матрицы должны иметь одинаковый размер);
Код 3: Недопустимые данные (элементами матриц могут быть только числа);
Код 4: Недопустимые данные (независимое поле Edit должно содержать только числа);
Код 5: Несоответствующие выбранной операции размеры матриц (высота первой матрицы должна соответствовать ширине второй);
Код 10: Внутренняя ошибка класса TMatrix (неправильные индексы). От пользователя не зависит.
При поимке любого исключения вызывается функция ExceptCatch(int ErrorCode), которая выводит соответствующее сообщение об ошибке в форму TErrorBox1 и показывает саму форму.
3.2 Руководство пользователя
Интерфейс любой программы должен отличаться легкой восприимчивостью пользователем.
Если пользователь сможет разобраться в программе без руководства, то работа программиста будет считаться выполненной великолепно. В этой работе тоже были приложены усилия для создания простого, понятного и удобного интерфейса (рис. 2).
Рисунок 2 - Интерфейс программы
В левой части окна (одна над другой) находятся три основные панели.
Каждая из двух верхних представляют собой панель, включающую рабочую таблицу строк (рис. 3а) и два объекта (рис. 3б, в) изменения размера таблицы.
Каждый объект представляет собой числовое поле и две кнопки «+» и «-». Верхний объект изменения размера таблицы (рис. 3б) служит для изменения высоты таблицы, нижний (рис. 3в) – ширины.
а
б
в
Рисунок 3 - Одна из двух верхних панелей
Каждая такая панель представляет собой матрицу.
Для ввода данных необходимо:
Выбрать нужный размер
Выделяя курсором необходимую ячейку ввести значение данной ячейки
а
в
б
Рисунок 4 - Результирующая панель
В левом нижнем углу окна находится результирующая панель.
Она представляет собой панель, включающую результирующую таблицу (рис. 3а) и две кнопки (рис. 4в) для переноса данных из результирующей таблицы в одну из рабочих.
Верхняя кнопка «ТО 1» служит для переноса данных в первую матрицу, нижняя – во вторую.
В правом верхнем углу отображается информация о размерах матрицы (рис. 4б): высоте и ширине.
Панель основных операций
Над матрицами можно выполнять операции сложение, вычитание, умножение с помощью нажатия соответствующей кнопки на панели основных операций (рис. 5).
«*» - умножение матриц (рис. 5а);
«+» - сложение матриц (рис. 5б);
«-» - вычитание матриц (рис. 5в);
«Модуль» - подсчет определителя матрицы (рис. 5г).
в
б
а
г
Рисунок 5 - Панель основных операций
Операции преобразования матрицы
Во время работы матрицу можно преобразовать с помощью нажатия соответствующей кнопки на панели дополнительных операций (рис. 6):
«Е» - инициализация единичной матрицы (рис. 6а);
«0» - инициализация нулевой матрицы (рис. 6д);
«Rand» - инициализация случайной матрицы (рис. 6е);
«Integer» - инициализация матрицы целым из поля «Число» (рис. 6б)
«- Х» - умножение матрицы на –1(рис. 6з);
«Х * С» - умножение матрицы на скаляр (рис. 6в);
«Х ^ C» - возведение матрицы в скалярную степень (последовательное умножение на себя) (рис. 6ж);
«Т» - транспонирование матрицы (рис. 6г).
в
б
а
г
д
ж
е
з
Рисунок 6 - Панели дополнительных операций
Все эти операции производятся над активной матрицей.
Чтобы сделать матрицу активной необходимо сначала выделить соответствующую ей таблицу, а затем нажать соответствующую операции кнопку.
Для операций умножения на скаляр и возведения в скалярную степень используется целое число.
Это число вводится в числовое поле (рис. 7) находящееся в верхней правой части окна.
Рисунок 7 - Числовое поле
Для очистки всей формы (обнуления всех матриц формы) используется кнопка «С» (рис. 8), находящаяся в правом нижнем углу окна.
Рисунок 8 - Кнопка «обнуления всех матриц формы»
Использование памяти
В данном калькуляторе можно использовать память для хранения одной матрицы.
Все операции с памятью производятся с помощью кнопок на панели памяти (рис. 9) .
Чтобы занести в память матрицу нужно выделить матрицу кликом мыши и нажать кнопку «М». На панели появится индикатор «М».
Чтобы вынести результат из памяти нужно выделить матрицу кликом мыши и нажать кнопку «МR».
Чтобы очистить память необходимо нажать «МС». Индикатор «М» исчезнет.
Рисунок 9 – Кнопки панели памяти
Для получения информации о программе нажмите кнопку «О программе», находящуюся в правом верхнем углу окна.
Рисунок 10 - кнопка «О программе»
Заключение
Данная программа является типичным примером реализации программ использованием объектно-ориентированной технологии программирования созданных для Windows с помощью Borland C++ Builder.
Достоинством данной программы является ее простота в использовании в наиболее распространенной, на данный момент, операционной системе Windows и то, что при необходимости можно добавить нужные кнопки-функции.
Недостаток программы в том, что при наборе очень сложных функций одновременно программа выдает ошибку набора. Поэтому чтобы избежать этой ошибки необходимо соблюдать последовательность и правильность набора команд.