- •Объектно-ориентированной технологии программирования
- •5. Список используемой литературы…………………..……..…………....…..….. 36
- •6. Приложение. А………………….………..……….……………………..….....… 37 Введение
- •1.Теоретические основы ооп
- •2.Техническое задание.
- •2.1.Анализ предметной области.
- •2.1.1 Матрицы
- •2.1.2 Определители.
- •2.2.Проектирование программного продукта
- •2.2.1. Функциональные требования
- •2.2.2. Требования к интерфейсу
- •3.Рабочий проект
- •3.2. Укрупненный алгоритм
- •3.2.1.Классы
- •3.2.2.Модули
- •3.2.3.Схема алгоритма
- •3.2.4.Обработка исключений
- •3.2.Руководство пользователя
- •4. Заключение
- •5.Список использованной литературы.
- •6.Приложение а. Исходный текст программы.
3.2.2.Модули
Исходный текст программы размещается в четырех модулях (восьми файлах) и двух дополнительных файлах:
Unit1.h используется для хранения класса TForm1;
Unit2.h используется для хранения класса TMatrix;
Unit3.h используется для хранения класса TAboutBox;
Unit4.h используется для хранения класса TErrorBox;
Unit1.cpp используется для хранения методов класса TForm1 с формой доступа published;
File1.cpp используется для хранения методов класса TForm1 с формой доступа public(описанные программистом);
Unit2.cpp используется для хранения методов класса TMatrix;
Unit3.cpp используется для хранения методов класса TAboutBox;
Unit4.cpp используется для хранения методов класса TErrorBox;
File2.h используется для хранения глобальных констант;
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.Руководство пользователя
Интерфейс любой программы должен отличаться легкой восприимчивостью пользователем.
Если пользователь сможет разобраться в программе без руководства, то работа программиста будет считаться выполненной великолепно. В этой работе тоже были приложены усилия для создания простого, понятного и удобного интерфейса.(рис. 1)
рис. 1- показан интерфейс программы.
В левой части окна(одна над другой) находятся три основные панели.
Каждая из двух верхних представляют собой панель, включающую рабочую таблицу строк (рис. 2а) и два объекта (рис. 2б,в) изменения размера таблицы.
Каждый объект представляет собой числовое поле и две кнопки «+» и «-». Верхний объект изменения размера таблицы (рис2.б) служит для изменения высоты таблицы, нижний (рис. 2в) – ширины.
а б в
рис. 2- Одна из двух верхних панелей.
Каждая такая панель представляет собой матрицу.
Для ввода данных необходимо:
Выбрать нужный размер
Выделяя курсором необходимую ячейку ввести значение данной ячейки.
а в б
рис. 3- Результирующая панель.
В левом нижнем углу окна находится результирующая панель.
Она представляет собой панель, включающую результирующую таблицу (рис. 2а) и две кнопки (рис. 3в) для переноса данных из результирующей таблицы в одну из рабочих.
Верхняя кнопка «ТО 1» служит для переноса данных в первую матрицу, нижняя – во вторую.
В правом верхнем углу отображается информация о размерах матрицы (рис. 3б): высоте и ширине.
Панель основных операций.
Над матрицами можно выполнять операции сложение, вычитание, умножение с помощью нажатия соответствующей кнопки на панели основных операций (рис. 4).
«*» - умножение матриц(рис. 4а);
«+» - сложение матриц(рис. 4б);
«-» - вычитание матриц(рис. 4в);
«Модуль» - подсчет определителя матрицы(рис. 4г);
в б а г
рис. 4- Панель основных операций.
Операции преобразования матрицы.
Во время работы матрицу можно преобразовать с помощью нажатия соответствующей кнопки на панели дополнительных операций (рис. 5).
«Е» - инициализация единичной матрицы(рис. 5а);
«0» - инициализация нулевой матрицы(рис. 5д);
«Rand» - инициализация случайной матрицы(рис. 5е);
«Integer» - инициализация матрицы целым из поля «Число» (рис. 5б)
«- Х» - умножение матрицы на –1(рис. 5з);
«Х * С» - умножение матрицы на скаляр(рис. 5в);
«Х ^ C» - возведение матрицы в скалярную степень(последовательное умножение на себя)(рис. 5ж);
«Т» - транспонирование матрицы(рис. 5г);
в б а г д ж е з
рис. 5- Панели дополнительных операций
Все эти операции производятся над активной матрицей.
Чтобы сделать матрицу активной необходимо сначала выделить соответствующую ей таблицу, а затем нажать соответствующую операции кнопку.
Для операций умножения на скаляр и возведения в скалярную степень используется целое число.
Это число вводится в числовое поле (рис. 6) находящееся в верхней правой части окна.
рис. 6 - числовое поле
Для очистки всей формы (обнуления всех матриц формы) используется кнопка «С»(рис. 7), находящаяся в правом нижнем углу окна.
рис. 7 - кнопка «обнуления всех матриц формы»
Использование памяти.
В данном калькуляторе можно использовать память для хранения одной матрицы.
Все операции с памятью производятся с помощью кнопок на панели памяти (рис. 8)
Чтобы занести в память матрицу нужно выделить матрицу кликом мыши и нажать кнопку «М». На панели появится индикатор «М».
Чтобы вынести результат из памяти нужно выделить матрицу кликом мыши и нажать кнопку «МR».
Чтобы очистить память необходимо нажать «МС». Индикатор «М» исчезнет.
рис. 8 – Кнопки панели памяти.
Для получения информации о программе нажмите кнопку «О программе», находящуюся в правом верхнем углу окна.
рис. 9 - кнопка «О программе»,