Мегаобучалка Главная | О нас | Обратная связь


Выбор удобочитаемых идентификаторов



2016-01-05 396 Обсуждений (0)
Выбор удобочитаемых идентификаторов 0.00 из 5.00 0 оценок




Для улучшения читаемости разрабатываемой программы выполним замену коротких символических обозначений данных, использованных в алгоритме, удобочитаемыми программными идентификаторами, построенными с учетом смысла обозначаемых ими сущностей. Принятый вариант замены представлен в таблице 1.

Таблица 1

Обозначение в алгоритме Программный идентификатор
A AdMatrix
n VCount
C VColor
L VDegree
U UndoItem
S Uncolored
f CurColor
b Colorable
q VCur
V VCenter
O VNumber
индексы i, j, k и т.д. без изменений

 

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

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

 


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

 

Модуль 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 – вызывает запрос на сохранение графа в файле.

 

Модуль uData

Модуль служит для объединения общеиспользуемых констант и типов:

MaxVCount – максимальное число вершин графа;

TAdMatrix = array of array of Byte – матрица смежности графа;

TColoring = array of ShortInt – вектор цветов вершин;

TRealColors = array[0..MaxVCount-1] of TColor – системные имена цветов;

TVertices = array of TPoint – координаты центров вершин;

TGraphFile = file of Byte – файл графа.

 

Модуль uFiling

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

 

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

GraphFile: TGraphFile – файл для сохранения графа.

 

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

DoSaveFile – осуществляет сохранение графа в файле по матрице смежности.

DoReadFile – осуществляет чтение графа из файла в матрицу смежности.

 

Модуль uColoring

Модуль объединяет процедуры, функции и переменные, используемые при реализации алгоритма раскраски графа.

 

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

RealColors: TRealColors – фактические цвета раскраски вершин;

VDegree: array of ShortInt – массив относительных локальных степеней;

VNumber: array of Byte – отсортированный массив номеров вершин;

Uncolored: set of Byte – множество не раскрашенных вершин.

 

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

DoNonminColoring – осуществляет раскраску графа в NewColorCount цветов по найденной минимальной раскраске.

InsertionSort – осуществляет сортировку массива локальных степеней методом вставки.

 

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

DoMinColoring – осуществляет раскраску графа в минимальное число цветов.

ResetColoring – осуществляет обнуление массива цветов вершин графа.

 

Модуль uInputk

Модуль содержит определение диалога для ввода количества цветов при раскраске графа, а также номера удаляемой вершины.

 

 

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

fmInputk: TfmInputk – форма для ввода числа цветов k.

 

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

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

Таблица 3

Компонент Свойства, отличные от свойств по умолчанию Функции
fmInputk: TForm BorderStyle: bsDialog, Caption: Ввод числа цветов k, ClientHeight: 94, ClientWidth: 360, Color: clBtnFace, Position: poMainFormCenter Форма – контейнер
btnCansel: TBitBtn Caption: Отмена, Kind: bkCancel Кнопка «Отмена» для отмены выбранного действия и закрытия окна «Ввод числа цветов k»
btnSet: TBitBtn Caption: Задать, Kind: bkOK Кнопка «Задать» для задания числа цветов k и закрытия окна «Ввод числа цветов k»
ComboBox: TComboBox Список для выбора пользователем числа цветов k для раскраски графа
StaticText: TStaticText Caption: Задайте число цветов для раскраски графа Метка для размещения в окне надписи «Задайте число цветов для раскраски графа»

 

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

Процедура btnSetClick – устанавливает значение k при нажатии на кнопку «Задать».

Процедура btnCancelClick – игнорирует ввод k при щелчке по кнопке «Отмена».

Процедура ComboBoxChange – осуществляет проверку по числу вершин.

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

 

 

Модуль uHelp

Модуль обеспечивает отображение справочной информации и окна о программе.

 

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

fmHelp: TfmHelp – форма для файла справки;

HelpFileName: string = 'coloring.hlp' – имя файла справки.

 

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

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

Таблица 4

Компонент Свойства, отличные от свойств по умолчанию Функции
fmHelp: TForm AutoSize: True, BorderStyle: bsDialog, Caption: Помощь, Color: clBtnFace, ClientHeight: 569, ClientWidth: 537, Color: clBtnFace, Position: poMainFormCenter Форма – контейнер
Panel: TPanel BevelOuter: bvLowered Панель для создания рельефного прямоугольника в клиентской области формы
RichEdit: TRichEdit Align: alClient, BorderStyle: bsNone, Color: clCream, HideScrollBars: False, ReadOnly: True, ScrollBars: ssVertical Окно для отображения содержимого файла справки и информации о программе

 

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

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

Процедура FormDeactivate – восстанавливает стандартный шрифт.

 



2016-01-05 396 Обсуждений (0)
Выбор удобочитаемых идентификаторов 0.00 из 5.00 0 оценок









Обсуждение в статье: Выбор удобочитаемых идентификаторов

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (396)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.012 сек.)