- •Курсовая работа
- •Глава 1
- •Глава 2
- •2.1.1 Матрицы
- •2.1.2 Определители.
- •2.2.1. Функциональные требования
- •2.2.2. Требования к интерфейсу
- •Глава 3
- •3.2.1.Классы
- •3.2.2.Модули
- •3.2.3.Схема алгоритма
- •3.2.4.Обработка исключений
- •Исходный текст программы Project1.Cpp
- •Unit1.H
- •Unit1.Cpp
- •File1.Cpp
- •Unit2.H
- •Unit2.Cpp
- •File2.H
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
ПРИЛОЖЕНИЯ