Разработка программы для создания и работы с двусвязным списком, состоящим из структур (Структура содержит название издания, газета или журнал, цена экземпляра)

Страницы работы

Содержание работы

Государственный комитет Российской Федерации по телекоммуникациям

Сибирский государственный университет

телекоммуникаций и информатики

КУРСОВАЯ РАБОТА

По дисциплине « Программирование на языках высокого уровня»

Тема работы

Динамические структуры данных

Вариант № 10

Работу выполнил

                                                                       студент 1 курса

                                                                       группы ПДТ-83

                                                                       Мостовой Александр Владимирович

                                                                       Работу проверил

                                                                       Перцева Вера Александровна

                                                                       Работа защищена

                                                                       «___» __________2008г.

                                                                                                                                                                                                 С оценкой «_______»

Новосибирск 2008


Задание

Разработать программу для создания и работы с двусвязным списком, состоящим из структур. Для работы со списком создать меню со следующими пунктами:

1. Создание списка.

2. Просмотр списка.

3. Добавление в конец списка новой структуры.

4. Корректировка списка.

5. Выход.

В пункт «корректировка списка» входит:

Структура содержит название издания, газета или журнал, цена экземпляра. Добавлять новые издания так, чтобы названия были упорядочены по алфавиту.


СОДЕРЖАНИЕ

Задание……………………………………………………………  2

Содержание…..………………………………………………….  3

Введение………………………………………………………….  4

1.  постановка комплекса задач……………………….   5

2.  Блок-схема функционирования системы……… 6

3.  ПРОЕКТНЫЙ РАЗДЕЛ…………………………………………..   12

3.1 Переменные, используемые в программе…………………..  12

3.2 Функции программы…………………………………………        12

3.3 Работа программы……………………………………………    14

4.  ИСХОДНЫЙ МОДУЛЬ ПРОГРАММЫ………………………..       15

5.  РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ ВЫПОЛНЕНИЯ ЗАДАНИЯ 20

ЗАКЛЮЧЕНИЕ…………………………………………………….          22

ЛИТЕРАТУРА……………………………………………………..          23


ВВЕДЕНИЕ

Языки программирования были разработаны для удобства написания программ, с помощью которых можно было вводить и обрабатывать данные. Существуют разные способы хранения вводимой информации в памяти компьютера: переменные, массивы, структуры. Последний тип данных  оказался очень удобным для ввода и хранения большого количества информации. Память под динамические структуры выделяется при работе программы по запросу. В этом случае количество вводимых данных зависит только от объема оперативной памяти компьютера. Такие структуры называются динамические. Раздел оперативной памяти, распределяемый статически, называется статической памятью; динамически распределяемый раздел памяти называется динамической памятью (динамически распределяемой памятью).

Использование динамических величин предоставляет ряд возможностей:

-  больше динамической памяти – больше информации, которую можно обработать;

-  использование динамической памяти позволяет создавать структуры переменного размера;

-  в любой момент можно освободить неиспользуемую память для других данных.

При работе с динамическими структурами данных используются ссылки – указатели, для того, чтобы иметь связи с другими структурами, свободно перемещаться по структурам, сортировать, удалять, вставлять новые.


1. ПОСТАНОВКА КОМПЛЕКСА ЗАДАЧ

Требуется написать программу, на языке программирования высокого уровня «с++», для создания и работы с двусвязным списком, состоящим из структур. Для работы со списком требуется создать меню со следующими пунктами:

     1. Создание списка.

     2. Просмотр списка.

     3. Добавление в конец списка новой структуры.

     4. Корректировка списка.

     5. Выход.

Пункт №4 «Корректировка» используется для сортировки и вставки новой структуры по алфавиту.

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

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

Для хранения записей используется двусвязный список, состоящий из структуры spis, в которой хранятся имя издания, тип и цена.

В программе реализованы 5 главных функций:

-  create() – создание списка;

-  list() – просмотр списка;

-  add() – добавление новой структуры в конец списка;

-  sortt() – сортировка списка;

-  addkorr() – корректировка списка.

Каждая функция выполняет определенные операции.


2. Блок-схема функционирования системы

Меню


Функция создания списка


Функция просмотра списка


Функция для добавления в конец списка новой структуры


Редактирование списка


Сортировка списка


3. Проектный раздел

3.1 Переменные, используемые в программе

Структура spis содержит в себе следующие глобальные переменные:

-  name – массив 20 переменных типа char. Содержит название издания;

-  type – переменная типа int. Содержит информацию о типе издания (0 – журнал, 1 – газета);

-  cena – переменная типа int. Содержит информацию о цене экземпляра.

struct spis

{

char name[20];

int type;

int cena;

};

Именование указателей структуры spis:

-  prev – указатель на предыдущую структуру;

-  next – указатель на следующую структуру;

-  head – указатель на начало списка;

-  tail – указатель на конец списка;

struct spis *prev,

                    *next,

                    *head,

                    *tail;

Вспомогательные переменные:

-  с – переменная типа char, для анализа действий пользователя в меню.

-  j – переменная типа int, используется выхода с цикла с послеусловием;

-  x, y – переменные типа int, вспомогательные переменные сортировки списка, для временного хранения значений списка.

Похожие материалы

Информация о работе