Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Poyasnitelnaya_zapiska_OS-1.doc
Скачиваний:
2
Добавлен:
10.11.2019
Размер:
1.28 Mб
Скачать

Построение математической модели

Логически очередь представляет собой некую последовательность объектов, которые обрабатываются в порядке старшинства, то есть, первый объект, добавленный в очередь, будет обработан первым.

За основу модели элемента очереди в данной работе берутся целые числа. Очередь является объектом класса, хранящим метки start и end, количество элементов.

Имеется некоторый набор процедур:

  1. Удалить элемент из начала очереди

  2. Добавить элемент в конец очереди

  3. Очистить очередь

  4. Создать новую очередь

  5. Печатать очередь

  6. Обработать элемент очереди

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

При добавлении элемента под него выделяется память, соответственно, при удалении эту память необходимо освободить, чтобы избежать утечек. Необходимо проверять, не превысило ли количество элементов размер. Если это произошло, то необходимо скопировать исходный массив в новый, добавить очередной элемент, после чего очистить память, занимаемую старым массивом.

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

Интерфейсная часть приложения, демонстрирующего модель очереди, выполнена на языке C# . Данный язык предоставляет широкие возможности настройки пользовательского интерфейса, стилизации и украшения внешнего вида приложения.

Логическая часть выполнена на языке C++, чтобы удовлетворять требованиям задания курсовой работы. Поскольку в языке C# программист работает с управляемым кодом, ему нет необходимости вручную выделять и освобождать память под объекты, так как это делается автоматически в процессе выполнения приложения. Задание курсовой работы требует именно динамического управления памятью для работы с массивом элементов очереди.

Таким образом, логическая часть выполнена в виде отдельного модуля, собранного в библиотеку DLL, подключаемую к интерфейсной части через ресурсы.

Разработка алгоритма

Основной алгоритм

Запись в файл

Очистка очереди

Расширение массива

Контрольные примеры

Запуск программы

Пользователь может создать новую очередь, переключиться на другой вид интерфейса (переключить вид) или закрыть программу, другие опции недоступны по причине невозможности произвести указанные действия с пустой очередью.

Создание очереди

После щелчка по кнопке «Создать очередь» появляется следующее окно, разрешающее пользователю ввести количество элементов будущей очереди. Невозможно ввести символы, кроме цифр, отличных от нуля, или оставить строку пустой, поскольку кнопка подтверждения будет недоступной.

После создания очереди

После создания очереди становится доступной операция добавления, кнопка создания становится неактивной, потому что не может существовать более одной очереди одновременно.

Добавление элемента в очередь

После нажатия кнопки «Поставить в очередь» пользователю предоставляется возможность ввести произвольные цифры в поле ввода «Номер», чтобы однозначно идентифицировать новый элемент. Ввод символов, отличных от цифр, невозможен, поскольку кнопка подтверждения остается неактивной, пустую строку оставить также нельзя.

Успешное добавление

В случае успешного добавления элемента пользователь увидит следующее сообщение:

Отмена добавления

В случае, если идентификатор имени, введенный пользователем, уже существует в очереди, появляется следующее сообщение, информирующее пользователя о том, что элемент не был добавлен:

После добавления элемента

На данном этапе пользователю доступны все операции, кроме создания новой очереди. Элементы очереди отображаются в списке снизу.

Ситуация с несколькими элементами очереди

В том случае, если некоторый установленный размер окна модели очереди превышен в результате добавления множества элементов, пользователь может передвигать содержимое окна очереди с помощью ползунка.

Очистка очереди

При нажатии кнопки очистки очереди модель возвращается в исходное состояние.

Печать

При нажатии кнопки «Печать» открывается стандартное системное окно выбора устройства и настройки печати.

В случае успешной печати пользователь обнаружит распечатанный документ у себя в принтере. В случае неудачи (какой-либо непредвиденной ошибки) пользователь получит следующее предупреждение:

Обработка элемента очереди

Поскольку предназначение структуры данных «Очередь» состоит в том, чтобы разрешать обрабатывать некие объекты в процессе их поступления, при выборке элемента из очереди все другие действия пользователя становятся недоступными, появляется дополнительная секция, где есть возможность наблюдать атрибуты выбранного элемента.

После нажатия кнопки «Обработать» элемент удаляется из очереди и пользователь получает следующее сообщение:

В том случае, если элементов в очереди больше нет, окно модели возвращается в следующее состояние:

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