Академический Документы
Профессиональный Документы
Культура Документы
Курсовая работа
Направление 09.03.03. Прикладная информатика
Профиль Прикладная информатика в юриспруденции
Аннотация
Работа позволяет продемонстрировать особенности очереди,
использующей сплошное представление, на примере языка C#.
Цель – рассмотреть возможности, предоставляемые очередью
в заданной реализации, и создать программу, обеспечивающую выполнение
основных операций над очередью.
Тема имеет важное учебное значение и позволяет изучить основные
принципы такой структуры данных, как очередь, на примере выбранного
языка C#.
3
Содержание
Введение....................................................................................................................................................4
1. Постановка задачи.............................................................................................................................6
2. Анализ задачи....................................................................................................................................7
2.1. Общий анализ задачи................................................................................................................7
2.2. Структура данных.......................................................................................................................7
2.3. Структура программы................................................................................................................7
2.3.1. Структура модуля для работы с очередью..........................................................................7
2.3.2. Структура модуля вспомогательных функций.....................................................................8
2.3.3. Структура главной программы..............................................................................................8
3. Средства реализации........................................................................................................................9
4. Требования к программному и аппаратному обеспечению........................................................10
5. Интерфейс пользователя................................................................................................................11
6. Реализация.......................................................................................................................................13
6.1. Структура данных.....................................................................................................................13
6.2. Основные функциональные блоки приложения...................................................................16
6.3. Взаимодействие функциональных блоков............................................................................17
6.4. Описание модулей...................................................................................................................17
6.4.1. Структура модуля для работы с очередью........................................................................17
6.4.2. Структура модуля вспомогательных функций...................................................................18
6.4.3. Структура главной программы............................................................................................19
7. План тестирования..........................................................................................................................20
7.1. Тест 1. «Ввод данных в очереди»...........................................................................................20
7.2. Тест 2. «Решение задачи».......................................................................................................20
7.3. Тест 3. «Очистка».....................................................................................................................20
Заключение..............................................................................................................................................21
Список литературы..................................................................................................................................22
Приложение 1. Листинг файла UQueue.cs.............................................................................................23
Приложение 2. Листинг файла UQueueHelper.cs...................................................................................25
4
Введение
Курсовая работа посвящена изучению очереди, использующей
сплошное представление, на языке C#.
Очередь – это упорядоченный набор элементов, которые могут
удаляться с одного ее конца (называемого началом очереди) и помещаться
в другой конец этого набора (называемого концом очереди). Это структура
данных, которая организована по тем же принципам, что и обычная очередь
из повседневной жизни и отражает специфику моделируемых объектов.
Поэтому такие структуры используются для моделирования реальных
очередей с целью определения их характеристик [3,4].
В очереди доступны две позиции – ее начало (из этой позиции элемент
выбирается для его обслуживания, при этом он исключается из очереди)
и конец (в эту позицию помещается элемент, который заносится в очередь).
Дисциплина обслуживания очереди функционирует согласно правилу
FIFO: First In – First Out (первым пришел – первым ушел) [1].
Сплошная реализация очереди представляет собой организацию
очереди на основе массива. Преимуществом данной реализации является
незначительная экономия памяти, также она проще в разработке. Главным
недостатком служит то, что максимальное количество элементов в очереди
ограничено размером массива [3].
Сплошное представление очереди использует две целочисленные
переменные, содержащие индексы начала очереди и количества элементов
в ней. Обеспечивается доступ к элементам очереди в начале и добавлении
в конец, доступ к произвольному элементу очереди в данной реализации не
предусмотрен [3].
Цель работы – реализовать программу, которая будет обеспечивать
выполнение основных операций над очередью, использующей сплошное
представление.
5
1. Постановка задачи
Написать программу для решения следующей задачи:
«Даны две очереди из чисел. Разместить в одной очереди положительные
элементы, а в другой – отрицательные, не используя дополнительных
структур данных, кроме набора переменных» [2].
В программе должны быть реализованы следующие функции:
инициализация, проверка на пустоту, проверка на полноту, добавление
элемента, извлечение элемента.
7
2. Анализ задачи
2.1. Общий анализ задачи
3. Средства реализации
В качестве языка программирования был выбран язык C#.
Возможности данного языка предоставляют все необходимые инструменты
для реализации поставленных в работе целей и задач. При реализации
проекта использовалась среда разработки Visual Studio 2019.
10
5. Интерфейс пользователя
6. Реализация
6.1. Структура данных
Организации очереди:
Главная программа
Класс вспомогательных
14
Рис 6.1. Схема взаимодействия функциональных блоков
очередь Q.
2. public static string QueueToStr(ref TQueue Q);
Функция конвертирования информации из очереди Q
в результирующую строку с очисткой очереди.
3. public static bool TryStrToQueue(string str, ref TQueue Q);
Функция, которая пытается конвертировать данные из строки str
в очередь Q. Если конвертация прошла удачно, то функция возвращает
результат true, false – в противном случае.
7. План тестирования
Для проверки корректности работы данной программы необходимо
провести определенный набор тестов, каждый из которых будет проверять
работоспособность определенной операции, производимой с очередью.
Тестирование данного приложения заключается в проверке
работоспособности программы для различных данных, которые может ввести
пользователь.
Заключение
Курсовая работа позволила изучить основные принципы и идеи работы
с очередями, использующими сплошное представление, на примере языка
C#, а также реализовать программу, которая обеспечивает выполнение
основных операций над очередью.
В результате решения поставленной задачи была создана
и протестирована программа, позволяющая выполнять следующие операции
с очередями:
1. Инициализация очереди.
2. Проверка очереди на пустоту.
3. Проверка очереди на полноту.
4. Добавление элемента.
5. Извлечение элемента.
При выполнении курсовой работы были решены следующие задачи:
проанализированы структуры данных для реализации очереди;
выбраны средства реализации;
разработана структура программы;
реализована программа, решающая поставленную задачу.
18
Список литературы
1. Вирт Н. Алгоритмы и структуры данных / Н. Вирт ; пер. с англ.
Д. Б. Подшиваловой. – 2-е изд., испр. – Санкт-Петербург : Нев. диалект,
2001. – 352 с.
2. Воронина И. E. Практикум по курсу «Структуры и алгоритмы
компьютерной обработки данных» / И. E. Воронина, Н. В. Огаркова –
Воронеж, 2009. – 35 c.
3. Грогоно П. Программирование на языке С# / П. Грогоно; пер. с англ.
Л. Е. Карпова; под ред. Д. Б. Подшивалова – Москва : Мир, 1982. – 384 с.
4. Программирование алгоритмов обработки данных / О. Ф. Ускова,
И. E. Воронина, Н. В. Огаркова, М. В. Бакланов – СПб.: БХВ-Петербург,
2003. – 192 c.
5. С# и .Net Core. 3-е издание / Прайс
6. С# для начинающих/ Пахомов Б. И. — СПб.: БХВ-Петербург, 2014. — 432
с. – 105 c.
19
using System;
namespace UQueue
{
namespace UQueueHelper
{
public static class QueueHelper
{
public static void ClearQueue(ref TQueue Q)
{
int el;
while (TryPop(ref Q, out el)) ;
}