Дипломная работа: Разработка геоинформационной системы
- данные о расположении явления (пространственные данные, контур);
- дополнительные сведения о нем (атрибуты).
3. Функциональное проектирование
3.1 Проектирование структуры классов
Исходя из выделенных на этапе структурного проектирования блоков разрабатываемого программного модуля, для реализации заданных функции были разработаны описанные ниже классы.
Класс MainWindow – описывает главное окно программного модуля.
Класс MapView – реализует отображения карты в главном окне программного модуля.
Класс Tasks – обрабатывает нажатие функциональных клавиш в главном окне программного модуля.
Класс Heights – реализует работу со списком стандартных высот.
Класс EditDialog – описывает работу диалога редактирования стандартных высот.
Класс Matrix – реализует работу с матрицей превышений и матрицей корректировок.
Класс ComputeDialog – описывает работу диалога расчета матрицы превышений для нескольких листов карт местности.
Класс ComputeThread – реализует процедуру расчета матрицы превышений для нескольких листов карт местности.
Взаимодействие всех классов осуществляется с помощью следующих глобальных переменных объявленных в main.cpp как указатели на объекты соответствующих классов:
- MKartaInterface *karta – объект, реализующий функции взаимодействия с картой;
- Matrix *matrix – текущая обрабатываемая матрица превышений;
- Matrix *correctionMatrix – текущая обрабатываемая матрица корректировок;
- MainWindow *window – главное окно приложения;
- Tasks *tasks – объект для обработки нажатия клавиш в главном окне.
Классы, реализующие диалоги программного модуля
Класс MainWindow – с помощью этого класса происходит описание главного окна программного модуля. Основные функции данного класса:
- MainWindow() – конструктор, который вызывается при создании окна;
- bool eventFilter (QObject *o, QEvent *e) – функция обработки движения мыши;
- void onExit() – функция выполняет последовательность операций при закрытии главного окна программы.
Класс EditDialog – с помощью этого класса происходит описание диалога редактирования стандартных высот. Основные функции этого класса:
- EditDialog() – конструктор, который вызывается при создании диалога;
- void addButtonClick() – функция обработки добавления элементов в список;
- void remButtonClick() – функция обработки удаления элементов из списка;
- void listViewClick (QListViewItem *item) – функция обработки выбора раздела классификатора;
- void updateTables (QString zs, QString razd) – функция обновления списка высот для знаков выбранного раздела классификатора;
- void valueChanged (int row, int col) – функция обработки изменения значения высоты в списке.
Класс ComputeDialog – с помощью этого класса происходит описание диалога расчета матрицы превышений для нескольких листов карт местности. Основные функции данного класса: