2.2 Описание программы “Sort”

Данный проект создавался с помощью AppWizard – генератором кода, создающим рабочую заготовку Windows-приложения с теми компонентами, именами классов и исходными файлами, что были указаны через диалоговые окна. В частности: в закладке Project выбираем - MFC AppWizard (exe). Затем нужно пройти серию экранов AppWizard:

Step 1: выбираем “Single document”

Step 2: оставляем без изменения

Step 3: без изменения

Step 4: оставляем только флажки “3D controls”, “Docking ToolBar”

Step 5: устанавливаем “As a statically linked library”

Step 6: отображает информацию о созданных классах

После этого AppWizard сгенерирует код для поддержки функциональных возможностей программы на базе библиотеки MFC, т.е. создаст каркас приложения. Рассмотрим некоторые элементы программы, созданные на данном этапе:

Класс CSortApp. Объект класса CSortApp представляет программу. В программе определяется единственный глобальный объект класса CSortApp – theApp. Базовый класс CWinApp определяет основные характеристики объекта theApp.

Класс CSortView. Объект класса CSortView представляет основное окно программы. Когда конструктор вызывает функцию-член Create базового класса CFrameWnd, Windows создаёт действительную оконную структуру, а каркас приложения связывает её с C++-объектом. Функции ShowWindow и UpdateWindow, являющиеся также функциями-членами базового класса, вызываются для вывода окна на экран.

 При запуске проекта операционная система вызывает в программе функцию WinMain, а та ищет глобально сконструированный объект класса, производного от CWinApp. В любом приложении, в том числе и в “Sort”, обязательно должна присутствовать эта функция, на которую возлагается ряд специфических задач. И самая важная – создание основного окна программы, с которым должен быть связан код, способный обрабатывать сообщения, передаваемые операционной системой этому окну. В нашем случае при программировании на Microsoft Visual C++ 6.0, с библиотекой классов Microsoft Foundation Class (MFC) Library 6.0, эта функция скрыта внутри каркаса приложения и нет необходимости в её написании, но необходимо понимать, что именно с помощью неё осуществляется связь между операционной системой и программой.

Библиотека MFC прямо поддерживает около 140 функций, обрабатывающих Windows-сообщения. Кроме того, можно определять свои собственные сообщения, связанные с обработчиками команд меню, элементов управления и т.д. В программе “Sort” используется более 40 функций, методов и сообщений Windows. Ниже они перечислены в порядке их появления в программе с кратким описанием:

Format – преобразует типы переменных;

InvalidateRect и Invalidate – обновляют рабочую область и генерируют сообщение WM_PAINT;

DestroyWindow – разрушает окно;

PostQuitMessage – посылает окну сообщение WM_DESTROY;

ShowWindow – отображает или скрывает окно;

UpdateWindow – заставляет окно перерисовать своё содержимое;

TextOut – вывод текста на экран;

После вызова функции UpdateWindow, окно окончательно выведено на экран. Теперь программа должна подготовить себя для получения информации от пользователя через клавиатуру и мышь. Windows поддерживает “очередь сообщений” (message queue) для каждой программы, работающей в данный момент в системе Windows. Когда происходит ввод информации, Windows преобразует её в “сообщение”, которое помещается в очередь сообщений программы. Каждое получаемое окном сообщение идентифицируется номером, который содержится в параметре message оконной процедуры. В заголовочных файлах Windows определены идентификаторы, начинающиеся с префикса WM (“window message”) для каждого типа сообщений. Ниже приведены все сообщения используемые в курсовом проекте:

Сообщение WM_CREATE – это первое сообщение, которое Windows посылает объекту View. Оно передаётся, когда каркас приложения вызывает оконную функцию Create, т.е. в тот момент, когда создание окна ещё не закончено и его не видно на экране. Следовательно, обработчик OnCreate пока не может обращаться к Windows-функциям, доступным только после отображения окна. Такие функции можно вызвать из замещённой функции OnInitialUpdate.

Функция-член OnDraw(). Это виртуальная функция-член класса CView; каркас приложений вызывает её всякий раз, когда приходит сообщение о том, что нужно перерисовать окно отображения. А такая необходимость возникает при масштабировании окна или при появлении ранее скрытой его части, или при изменении программой данных, связанных с этим окном. В первых двух случаях каркас приложения вызывает OnDraw, но если какая-то функция в программе изменяет данные, она должна уведомить об этом Windows, вызвав наследуемую функцию-член Invalidate (или InvalidateRect) для данной области отображения. Вызов Invalidate приводит впоследствии к автоматическому вызову OnDraw.

Windows не разрешает прямой доступ к видеооборудованию, обращение к нему проходит через так называемый контекст устройства (device context), сопоставленный с конкретным окном. В библиотеке MFC контекст устройства – это С++-объект класса CDC, передаваемый функции OnDraw (по указателю) как параметр. Получив указатель на контекст устройства, можно вызывать множество функций-членов CDC, которые и выполняют всю работу по рисованию.

В данном курсовом проекте при вызове функции OnDraw происходит вывод исходного и отсортированного массива на экран, а также информации о количестве перестановок произведённых во время сортировки.

Когда пользователь выбирает пункт меню, Windows посылает программе сообщение WM_COMMAND, содержащее идентификатор этого пункта меню в младшем слове параметра сообщения. Ниже рассмотрены идентификаторы, соответствующее пунктам меню программы:

ID_QUIK – это идентификатор пункта “ Обменная сортировка с разделением (quicksort)” в меню. Выбор этого пункта приводит к сортировке массива данным методом.

ID_SHELL – это идентификатор пункта “Метод Шелла” в меню. Выбор этого пункта приводит к сортировке массива методом Шелла.

ID_PUZIROK – этому идентификатору в меню соответствует пункт “Метод прямого обмена (Пузырька)”. Выбор этого пункта приводит к сортировке массива методом “Пузырька”.

Выбор пункта меню “О программе…”, которому соответствует идентификатор ID_APP_ABOUT, выведет модальное окно диалога, в котором содержится краткая информация о разработчике и программе.

ID_APP_EXIT – этому идентификатору в меню соответствует пункт “Выход”. При выборе этого пункта происходит вызов функции OnDestroy, что приводит к разрушению окна и завершению работы с программой.



Информация о работе «Методы сортировки. Их сравнительный анализ»
Раздел: Информатика, программирование
Количество знаков с пробелами: 31306
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
18661
0
6

... Это сортировка со смещением 1. В каждой из промежуточных стадий сортировки участвуют либо сравнительно короткие массивы, либо уже сравнительно хорошо упорядоченные массивы, поэтому на каждом этапе можно пользоваться методом простых вставок. Метод сортировки Шелла ещё называется с «убывающим смещением», поскольку каждый проход характеризуется смещением h, таким, что сортируются записи, каждая ...

Скачать
20987
0
6

... все выпуклые вершины и сбалансируем дерево. Отсюда следует теорема: Теорема 7. Выпуклая оболочка множества из N точек на плоскости может быть найдена с помощью открытого алгоритма за время (N log N) и со временем коррекции (log N).Сравнительный анализ алгоритмов построения выпуклой оболочки Так как теоретически показали, что время работы всех алгоритмов в среднем O(log N), то ...

Скачать
26043
2
0

... товара (выбор методов продажи, организация обслуживания покупателей, осуществление мероприятий по созданию привлекательной атмосферы торгового зала). 3. МЕТОДЫ СРАВНИТЕЛЬНОГО АНАЛИЗА ДЕЯТЕЛЬНОСТИ ПОСРЕДНИЧЕСКИХ ПРЕДПРИЯТИЙ Методики сравнительного анализа деятельности посредников представлены различными авторами и имеют отличительные компоненты и структуру. Методика таких анализов необходима ...

Скачать
57219
3
2

... и стремительно развивается за счет научно-технических разработок. 1.Факторы, формирующие потребительские свойства и качество РЭА.   1.1 Потребительские свойства радиоэлектронной аппаратуры. а) Функциональные: Общие: 1)Верность воспроизведения звука(характеризует качество звучания и определяется степенью соответствующего звука ,воспроизводимого акустической системой натуральному ...

0 комментариев


Наверх