Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив3 / OOP_kursach / ООП_курсач.doc
Скачиваний:
96
Добавлен:
07.08.2013
Размер:
393.73 Кб
Скачать

3.2.2.Модули

Исходный текст программы размещается в четырех модулях (восьми файлах) и двух дополнительных файлах:

  1. Unit1.h используется для хранения класса TForm1;

  2. Unit2.h используется для хранения класса TMatrix;

  3. Unit3.h используется для хранения класса TAboutBox;

  4. Unit4.h используется для хранения класса TErrorBox;

  5. Unit1.cpp используется для хранения методов класса TForm1 с формой доступа published;

  6. File1.cpp используется для хранения методов класса TForm1 с формой доступа public(описанные программистом);

  7. Unit2.cpp используется для хранения методов класса TMatrix;

  8. Unit3.cpp используется для хранения методов класса TAboutBox;

  9. Unit4.cpp используется для хранения методов класса TErrorBox;

  10. File2.h используется для хранения глобальных констант;

3.2.3.Схема алгоритма

Любая функция нажатия функциональной кнопки главного окна использует одну из функций чтения формы и/или одну из функций вывода в форму описанных в файле File1.cpp

Сначала происходит чтение одной или двух таблиц строк StringGrid с занесением значений из них в соответствующие матрицы.

Затем с помощью методов класса TMatrix данные обрабатываются и выводятся по необходимости в результирующую или одну из рабочих StringGrid.

Рассмотрим на примере функции нажатия кнопки сложения.

  1. Чтение обеих StringGrid с помощью метода ReadForm() с занесением результата в _Mat1 и _Mat2.

  2. Присвоение матрице _Res значения суммы матриц _Mat1 и _Mat2 с помощью метода класса TMatrix MSumm(TMatrix, TMatrix).

  3. Вывод матрицы _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

Каждая такая панель представляет собой матрицу.

Для ввода данных необходимо:

  1. Выбрать нужный размер

  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

ПРИЛОЖЕНИЯ