Создание и обработка динамического списка на языке c++
Рефераты >> Программирование и компьютеры >> Создание и обработка динамического списка на языке c++

· Удаление – Удаление последнего элемента в списке.

· Выход – Выход.

При выборе пункта меню выполняется соответствующее действие.

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

Алгоритм решения поставленной задачи мы будем разрабатывать по процедурному принципу. С реализацией меню. Он будет состоять из 4 функций, и главной программы объединяющей все функции.

§ Запись

§ Вывод

§ Обмен

§ Удаление

§ Выход

§ Главная часть

Перемещение по меню будет реализовано с помощью клавиш (влево, вправо) Выбор каждого пункта меню производиться с помощью клавиши Enter

1) Запись

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

1 Введите имя реки – название реки

2 Введите длину – длина реки

3 Введите площадь бассейна – площадь бассейна реки

4 Введите количество притоков – количество притоков

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

2) Вывод

В данной функции реализуется вывод списка в виде таблицы.

Выводиться шапка выходной таблицы. Затем с помощью цикла начинают просматриваться и выводиться элементы данного списка на экран. Все элементы начиная с первого помещая их в таблицу с разделами: Название, Длина, Площадь, Притоков. После вывода, программа просит нажатия «<Spase> , для выхода в меню.

3) Обмен

Здесь задаются элементы, которые нужно поменять местами друг с другом.

Задаются элементы, которые нужно обменять. С помощью 1 цикла находим первый элемент и запоминаем его. С помощью второго цикла находим 2 элемент и запоминаем. Проверяем, что они не пустые, если они не пустые, то производим обмен, если пустые не обмениваем и выходим.

4) Удаление

Функция реализует удаление последнего элемента в списке. Устанавливаем указатель на начало списка. Проверяем пустой ли список. Если он пустой, то пишем сообщение, что он пустой и выходим из функции. Если список не пустой, просматриваем весь список и находим предпоследний элемент, запоминаем. Если последний элемент не пустой, то мы его удаляем, и ставим указатель на 0.

5) Выход

Выход. При выборе этого пункта меню происходит выход в систему, при этом все введенные данные будут потеряны.

6) Главная часть

Реализует меню и «собирает все функции воедино». Создается меню с бесконечным циклом, которое позволяет выбирать функции для выполнения.

Блок схема алгоритма приведена в Приложении 1.

5Выбор языка программирования

Для реализации программы был выбран язык C++. Язык C++ - это универсальный язык программирования, для которого характерны экономичность выражения, современный поток управления и структуры данных, богатый набор операторов. Язык “C” не является ни языком “очень высокого уровня”, ни “большим” языком, и не предназначается для некоторой специальной области применения, но отсутствие ограничений и общность языка делают его более удобным и эффективным для многих задач, чем языки, предположительно более мощные. Ключевым понятием С++ является класс. Класс - это тип, определяемый пользователем. Классы обеспечивают сокрытие дан­ных, гарантированную инициализацию данных, неявное преобразо­вание типов для типов, определенных пользователем, динамичес­кое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности прог­раммы и проверки типов. В языке есть также усовершенствова­ния, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, па­раметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определя­емые пользователем.

С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддержива­ющих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C.

Также в С++ есть средство для работы с динамическими данными, что позволяет решить поставленную выше задачу.

6 Разработка программы

Построение программы будем производить по процедурному принципу.

Программа состоит из следующих процедур:

1) Главная часть – эта часть программы, которая выводит на экран все пункты меню, то есть организует пользовательский интерфейс, также она объединяет все процедуры используемые в программе. Она состоит из бесконечного цикла, который позволяет создать «вечное меню». При выборе пункта Выход, происходит выход и этого вечного цикла, и выход в систему. Результатом работы данной части программы является вывод на экран следующих пунктов меню:

§ Запись

§ Вывод

§ Обмен

§ Удаление

§ Выход

Перемещение по меню реализуется с помощью клавиш (право, влево), а выбор производиться с помощью клавиши Enter.

2) Ввод – это процедура создания однонаправленного динамического списка, она требует заполнения четырёх полей списка. Заполнение происходит следующим образом:

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

push_front. Причём при последующем вводе происходит добавление элементов в начало списка.

3) Вывод – эта процедура вывода созданного динамического списка. Вывод начинается с первого элемента и заканчивается последним элементом. Таблица заполняется данными введёнными после заполнения динамического списка, а также после его обработки.

4)Обмен – эта процедура меняет заданные элементы местами. Т.е. сначала задаётся первый номер элемента, затем второй номер. С помощью 1 цикла происходит поиск номера первого элемента, с помощью второго цикла происходит поиск 2 элемента. Затем происходит проверки на 0 элементов second и first и если они равны 0, обмена не происходит, иначе они обмениваются. После выполнения действия программа возвращается в меню.

5) Удаление – эта процедура удаляет последний элемент в динамическом списке. Сначала происходит установка указателя на начало. Затем проверяем пустой ли список. Если он пустой, то пишем сообщение, что список пуст и выходим из функции в меню. Если список не пустой, то начинаем просматривать весь список и находим предпоследний элемент, производим запоминание найдённого элемента. Если последний элемент не пустой, то мы его удаляем, и ставим указатель на 0. После завершения работы с функцией, программа производит выход в меню.

7 Отладка и тестирование


Страница: