
- •Содержание
- •Введение Динамические структуры данных
- •Абстрактный тип данных «список»
- •Аналитический обзор литературы и существующих аналогов
- •1.1 Аналитический обзор литературы
- •1.1.1 Статические массивы.
- •1.1.2 Динамические связанные списки.
- •1.1.3 Базы данных.
- •1.1.4 Вывод.
- •Рассмотрим подробнее абстрактный тип данных «список».
- •1.2 Обзор существующих аналогов
- •2. Разработка алгоритма
- •3. Разработка программного средства
- •4. Технические приемы программирования
- •5. Тестирование, экспериментальные исследования и анализ полученных данных
- •6. Руководство пользователя
- •6.1 Добавить заявку
- •6.2 Изменить заявку
- •6.3 Удалить заявку
- •6.4 Поиск диска
- •6.5 Сортировка заявок
- •6.6 Статистика
- •Список используемой литературы
- •Листинг программы
Министерство образования Республики Беларусь
Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники»
Факультет компьютерных систем и сетей
Кафедра программного обеспечения информационных технологий
Дисциплина: Основы алгоритмизации и программирование (ОАиП)
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
на тему
Программа для регистрации заявок жилищно-коммунальной службы
БГУИР КП 1-40 01 01 05 ПЗ
Студент: гр. 251001 Выжимко А.И.
Руководитель: асс. Болтак С.В.
Минск 2013
Содержание
ВВЕДЕНИЕ…………………………………………………………………………5
Аналитический обзор литературы и существующих аналогов
Аналитический обзор литературы………………..………………….…...6
1.2 Обзор существующих аналогов……………………………………….....12
2. Разработка алгоритма………………………………………………………….14
3. Разработка программного средства ……………………………………….....18
4. Обоснование технических приемов программирования……………………21
5. Тестирование, экспериментальные исследования и анализ полученных результатов………………………………………………………………………...22
6. Руководство пользователя программы ………………………………………25
ЗАКЛЮЧЕНИЕ…………………………………………………………………….29
Список литературы………………………………………………………………..30
Листинг программы……………………………………………………………….31
Введение Динамические структуры данных
Статическими величинами называются такие, память под которые выделяется во время компиляции и сохраняется в течение всей работы программы.
Другой способ выделения памяти под данные называется динамическим. В этом случае память под величины отводится во время выполнения программы. Такие величины будем называть динамическими. Раздел оперативной памяти, распределяемый статически, называется статической памятью; динамически распределяемый раздел памяти называется динамической памятью (динамически распределяемой памятью).
Использование динамических величин предоставляет программисту ряд дополнительных возможностей. Во-первых, подключение динамической памяти позволяет увеличить объем обрабатываемых данных. Во-вторых, если потребность в каких-то данных отпала до окончания программы, то занятую ими память можно освободить для другой информации. В-третьих, использование динамической памяти позволяет создавать структуры данных переменного размера.
Следует отчетливо понимать, что работа с динамическими данными замедляет выполнение программы, поскольку доступ к величине происходит в два шага: сначала ищется указатель, затем по нему — величина.
Работа с динамическими величинами связана с использованием типа данных — ссылочного типа. Величины, имеющие ссылочный тип, называют указателями. Указатель содержит адрес поля в динамической памяти, хранящего величину определенного типа. Сам указатель располагается в статической памяти.
Запись
Запись - это сложный тип данных, позволяющие объединить данные разных типов. Запись можно назвать наиболее общим сложным типом данных. Название "запись" появилось из тех соображений, что данные разного типа можно встретить в таблицах: в каждой строке записаны сразу несколько разных значений. Таким образом, одна запись соответствует одной строке данных: она имеет несколько полей, каждое из которых хранит своё значение.
В данной программе используются записи для хранения информации о книгах. Каждая запись состоит из полей, содержащих следующую информацию: ФИО автора срокового типа, название книги строкового типа, год издания целочисленного типа, указатели на предыдущий и следующий элементы списка типа указатель на данную запись.
Абстрактный тип данных «список»
В математике список представляет собой последовательность элементов определенного типа: а1, а2, …..аn, где n≥0 и все аi имеют один тип. Количество, n – длина списка, если n ≥ 1, то а1 – первый элемент, а аn – последний, в случае n = 0 имеем пустой список.
Списки являются чрезвычайно гибкой структурой: их легко сделать большими или меньшими; их элементы доступны для вставки или удаления в любой позиции списка. Списки можно объединять или разбивать на меньшие списки.
При реализации списков с помощью массивов их элементы располагаются в смежных ячейках массива. Это представление позволяет легко просматривать содержимое списка и вставлять новые элементы в его конец. Однако вставка нового элемента в середину списка требует перемещения всех последующих элементов на одну позицию к концу массива. Операция удаления также требует перемещения элементов списка с целью освобождения ячейки.
Рассмотрим реализацию однонаправленного связанного списка с использованием указателей, связывающих последовательные элементы списка. Однонаправленный связанный список представляет собой динамическую структуру данных, число элементов которой может изменяться по мере того, как данные помещаются в список или удаляются из него. Эта реализация освобождает от непрерывной области памяти для хранения списка и, следовательно, от необходимости перемещения элементов списка при вставке или удалении элементов. Однако ценой за это удобство становится использование дополнительной памяти для хранения указателей.
В данной программе используется абстрактный тип данный «список», реализованный на базе указателей, так как при реализации с помощью массива требуется много времени для перемещения элементов на одну позицию в случае удаления элемента из списка, а данная процедура может осуществляться довольно часто. Использование динамических структур данных позволило оптимизировать расход оперативной памяти и организовать гибкое управление данными.