Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovik_Programmirovanie.doc
Скачиваний:
53
Добавлен:
12.04.2015
Размер:
1.99 Mб
Скачать

6.2 Общая организация проекта

Данный проект состоит из 6-ти модулей: uMain, uData, uHelp, uFiling, uColoring, uInputk.

6.3 Описание модулей

6.3.1 Модуль uMain

Модуль предназначен для организации редактирования обрабатываемых графов, реализации функции главного меню и координации работы остальных программных модулей. Описание пунктов меню приведено в разделе 5.1.

6.3.1.1 Основные переменные, константы и типы модуля

fmMain: TfmMain – основная форма;

TUndoItem – тип данных для представления информации о последнем выполненном действии над графом (используется в режимах Отмена и Восстановление);

VRadius – радиус окружности вершины графа;

AdMatrix: TAdMatrix – матрица смежности вершин текущего графа;

VCount: Byte – число вершин текущего графа;

VColor: TColoring – текущая раскраска вершин;

VCenter: array of TPoint – массив координат центров вершин;

UndoItem: array of TUndoItem – информация об отмененной операции;

k: Byte – требуемое число цветов;

GraphChanged: Boolean – признак измененного и не сохраненного графа.

6.3.1.2 Компоненты модуля

Компоненты модуля uMain представлены в таблице 2.

Таблица 2

Компонент

Свойства, отличные от свойств по умолчанию

Функции

fmMain: TForm

BorderStyle: bsToolWindow,

Caption: Раскраска графа,

ClientHeight: 554,

ClientWidth: 792,

Color: clBtnFace,

Menu: MainMenu,

Position: poScreenCenter

Форма – контейнер

btnColoring: TBitBtn

Caption: Раскраска,

Kind: bkOK

Кнопка «Раскраска» для запуска процесса раскраски графа

btnExit: TBitBtn

Caption: &Выход,

Kind: bkClose

Кнопка «Выход» для выхода из программы

btnNew: TBitBtn

Caption: &Новый граф,

Kind: bkRetry

Кнопка «Новый граф» для создания нового графа

MainMenu: TMainMenu

Items

Выбор необходимого режима работы при щелчке на соответствующем пункте главного меню

iFile

Caption: Файл

Пункты главного меню

iEdit

Caption: Редактирование

iHelp

Caption: Справка

iFNew

Caption: Новый,

ShortCut: Ctrl+N

Подпункты пункта «Файл» главного меню

iFOpen

Caption: Открыть,

ShortCut: Ctrl+O

iFSave

Caption: Сохранить,

ShortCut: Ctrl+S

iFSaveAs

Caption: Сохранить как,

ShortCut: Ctrl+A

iFBreak

Caption: -

iFExit

Caption: Выход,

ShortCut: F10

iEUndo

Caption: Отмена,

ShortCut: Ctrl+Z

Подпункты пункта «Редактирование» главного меню

iERedo

Caption: Восстановление,

ShortCut: Ctrl+Alt+Z

iEBreak

Caption: -

iEAddV

Caption: Добавить вершину,

ShortCut: F2

iEDelV

Caption: Удалить вершину,

ShortCut: Del

iHHelp

Caption: Помощь,

ShortCut: F1

Подпункты пункта «Справка» главного меню

iHAbout

Caption: О программе...

SaveDialog: TSaveDialog

DefaultExit: *.zot,

Filter: Graph files (*.zot)|*.zot,

Options: ofPathMustExist,

Title: Сохранение графа в файл

Стандартное диалоговое окно для сохранения файлов

Таблица 2 (продолжение)

Компонент

Свойства, отличные от свойств по умолчанию

Функции

OpenDialog: TOpenDialog

DefaultExit: *.zot,

Filter: Graph files (*.zot)|*.zot,

Options: ofPathMustExist,

ofFileMustExist,

Title: Открытие файла для загрузки графа

Стандартное диалоговое окно для открытия файлов

sgMatrix: TStringGrid

DefaultColWidth: 20,

DefaultRowHeight: 20,

ScrollBars: ssBoth

Строковая таблица для отображения и ввода матрицы смежности вершин исходного графа

StatusBar: TStatusBar

SimplePanel: True,

SizeGrip: False

Полоса статуса для отображения текущего состояния программы

stGraph: TStaticText

Caption: Исходный граф:

Метка для размещения в окне надписи «Исходный граф:»

stMatrix: TStaticText

Caption: Матрица смежности:

Метка для размещения в окне надписи «Матрица смежности:»

6.3.1.3 Процедуры модуля

Процедура iFOpenClick – открывает файл при выборе пункта меню «Открыть», производит очистку и переформат таблицы матрицы смежности sgMatrix.

Процедура iFSaveClick – сохраняет файл при выборе пункта меню «Сохранить».

Процедура btnColoringClick – запускает процесс раскраски графа.

Процедура FormActivate – осуществляет инициализацию глобальных и компонентных данных модуля.

Процедура btnNewClick – создает новый граф при нажатии на кнопку «Новый граф».

Процедура iFNewClick – создает новый граф при выборе пункта меню «Новый».

Процедура iFSaveAsClick – сохраняет граф в другом файле при выборе пункта меню «Сохранить как».

Процедура iFExitClick – осуществляет выход из программы при выборе пункта меню «Выход».

Процедура btnExitClick – осуществляет выход из программы при нажатии на кнопку «Выход».

Процедура iEAddVClick – осуществляет добавление вершины, при этом изменяет матрицу смежности, определяет координаты новой вершины и осуществляет перерисовку вершин.

Процедура iEDelVClick – открывает форму fmInputk как модальную, осуществляет удаление выбранной вершины, удаление смежных с ней ребер, сброс цветов, перенумерацию и перерисовку оставшихся вершин.

Процедура iEUndoClick – осуществляет отмену последнего действия при выборе пункта меню «Отмена».

Процедура iERedoClick – осуществляет восстановление последнего отмененного действия при выборе пункта меню «Восстановление».

Процедура FillUndoDelVrx – осуществляет заполнение структуры данных для отмены удаления вершины.

Процедура iHHelpClick – осуществляет загрузку информации из файла помощи.

Процедура iHAboutClick – осуществляет загрузку информации о программе.

Процедура FormDeactivate – осуществляет освобождение памяти при закрытии формы.

Процедура sgMatrixSelectCell – осуществляет редактирование матрицы смежности вершин графа, сброс цветов и перерисовку вершин.

Процедура FormPaint – осуществляет перерисовку текущего графа в области построения, а также отображает границы области построения графа.

Процедура FormMouseUp – осуществляет добавление или удаление вершины графа при помощи мыши, при этом изменяет матрицу смежности, определяет координаты новой вершины, осуществляет перерисовку вершин после перенумерации и сброс цветов.

Процедура FormMouseDown – осуществляет захват вершины левой кнопкой мыши.

Процедура FormMouseMove – осуществляет соединение вершин перетаскиванием, очистку области, где ребро было на предыдущем шаге и прорисовку нового ребра в следующей позиции.

Процедура FormCloseQuery – запрос на закрытие формы.

Процедура InitForm – осуществляет приведение вида формы к исходному состоянию.

Процедура RemoveVertex – осуществляет удаление выбранной вершины, перезапись sgMatrix в матрицу смежности, формирование массива координат центров вершин, смежных с удаляемой, перенумерацию матрицы смежности и сдвиг массива координат центров вершин, а также изменение размеров структур данных и восстановление измененной матрицы смежности.

Процедура FillAdMatrix – осуществляет построение матрицы смежности по содержимому sgMatrix.

Процедура RepaintVertex – осуществляет перерисовку вершины на форме.

Процедура RepaintEdge – осуществляет перерисовку ребра на форме.

Процедура RepaintAllVertices – осуществляет перерисовку всех вершин на форме.

Процедура InitUndo – инициализирует структуру данных об отмененном действии.

Процедура FillUndoDelVrx – осуществляет заполнение структуры данных для отмены удаления вершины.

Процедура PrintGraphPath – осуществляет отображение пути к файлу с графом в заголовке.

6.3.1.4 Функции модуля

Функция SaveRequest – вызывает запрос на сохранение графа в файле.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]