Главная страница

Занятие 6 (двунаправленный список). Отчет по разработке программы в соответствии с требованиями задания по однонаправленному списку


Скачать 141.1 Kb.
НазваниеОтчет по разработке программы в соответствии с требованиями задания по однонаправленному списку
Анкор Занятие 6 (двунаправленный список
Дата27.05.2022
Размер141.1 Kb.
Формат файлаpdf
Имя файлаЗанятие 6 (двунаправленный список).pdf
ТипОтчет
#552527

1
Занятие 6. Двунаправленные динамические списки
Цель: получение знаний и практических навыков управления двунаправленным списком в программах на языке С++.
1
Задание.
Разработать многомодульную программу, которая демонстрирует выполнение всех операций, определенных вариантом, над линейным двунаправленным динамическим списком.
Требования к разработке.
1.
Разработать структуру узла списка, структура информационной части узла определена вариантом. Для определения структуры узла списка, используйте тип struct или class. Сохраните определение структуры узла и прототипы функций в заголовочном файле.
2.
Разработайте функции для выполнения операции над линейным двунаправленным динамическим списком:
• создание списка;
• вставку узла;
• удаление узла;
• вывод списка в двух направлениях (слева направо и справа налево);
• поиск узла с заданным значением (операция должна возвращать указатель на узел с заданным значением).
3.
Дополнительные операции над списком, указанные вариантом, оформите в виде функций и включите в отдельный файл с расширением cpp.
Подключите к этому файлу заголовочный файл с определением структуры узла.
4.
Разработайте программу, управляемую текстовым меню, и включите в меню демонстрацию выполнения всех операций задания и варианта.
5.
Проведите тестирование операций.
• Оцените сложность алгоритма первой дополнительной операции.
6.
Оформите отчет по разработке программы в соответствии с требованиями задания по однонаправленному списку.
Примечание: в определении информационной части узла варианта, подчеркнутое поле считать полем ключа.
2
Варианты
Вариант Тип информационной части узла списка
Дополнительные Операции
1
Номер зач. книжки
(буквенно-цифровой),
Номер группы, Оценка.
Вставить новый узел перед первым узлом с таким же ключом, если такого узла еще нет, то вставить

2 перед первым узлом, у которого ключ больше.
Удалить узлы с указанным номером группы.
Сформировать Oновый список из исходного, включив в него узлы с оценкой неуд, исключив их при этом из исходного списка.
2
Номер телефона (из 7 цифр), время разговора
(целое число), номер телефона вызываемого абонента.
Добавить новый узел в список, упорядочивая узлы по первым четырем цифрам телефона в порядке возрастания.
Удалить последний узел с заданным значением телефона.
Подсчитать суммарное время разговора с заданного телефона.
3
Номер абонемента
(буквенно-цифровой),
Название книги, дата выдачи, дата возврата, дата фактического возврата.
Вставить новый узел в список после последнего узла с таким же номером абонента(дата фактического возврата еще не заполнена).
Изменить значение поля фактической даты возврата по указанной книге, указанного абонемента.
Удалить узлы, в которых дата возврата и дата фактического возврата совпадают.
Определить количество книг, заданного абонемента.
4
Номер мед. полиса
(буквенно-цифровой), Дата обращения, Код диагноза
(число).
Вставка нового узла перед первым узлом с заданным значением Мед. полиса, если такого нет, то узел вставить в конец списка.
Удаление из списка всех узлов с заданным значением
Кода диагноза.
Переместить все узлы с одинаковым мед. полисом в новый список.

3
Определить количество обращений в одну и туже дату с одним и тем же диагнозом.
5
Номер счета в банке (20- значное число), дата, вид операции
(приход или расход), сумма вклада.
Вставка нового узла перед первым узлом.
Удаление сведений по счету (всех узлов), у которого общая сумма вклада равна нулю ( сумма по приходу, минус сумма по расходу).
Создать новый список из исходного, которого будет содержать остаток по всем видам операций одного счета, указав вид операции – приход, и текущую дату.
6
Номер автобусного маршрута, время отправления (целое число), номер автобуса (формат госномера автотранспорта в
России), стоимость одной поездки, дата отправления.
Вставить новый узел после последнего узла с заданным номером автобуса.
Удалить все узлы заданного автобуса.
Подсчитать, сколько раз автобус выходил на маршрут в течении заданного дня.
7
Код товара
(буквенно- цифровой), дата продажи, цена, отметка о возврате.
Отсортировать список, располагая элементы в хронологическом порядке.
Удалить все узлы по заданному товару, проданному в указанную дату.
Сформировать новый список, из узлов исходного, по тем товарам, по которым имеется возврат.
8
Номер железнодорожного билета
(буквенно- цифровой), станция назначения, номер поезда, номер вагона, номер места, стоимость проезда, дата
Вставить новый узел в список, упорядоченный по номеру вагона.
Удалить сведения о билетах, пассажиры которых добрались уже до места (оценка по текущей дате).
Сформировать новый список из узлов исходного, включив в него сведения о тех проданных билетах,

4 продажи, дата отправления поезда, время в пути. по которым пассажиры поедут в указанную дату.
9
Марка автомобиля, страна изготовитель, год выпуска
Вставить новый узел по автомобилю так, чтобы он разместился в списке своего модельного ряда, перед узлом, год выпуска которого меньше.
Сформировать новый список, узел которого содержит данные: марка автомобиля, указатель на начало модельного ряда этой марки в исходном списке.
Удалить информацию обо всех автомобилях заданной марки из исходного списка, поиск первого узла модельного ряда, осуществить с помощью нового списка.
10
Марка автомобиля, страна изготовитель, год выпуска, цена.
Дата продажи
(заполняется не сразу).
Упорядочить созданный список из n узлов так, чтобы узлы были упорядочены по стране изготовителю
(будут сформированы подсписки по стране).
Вставить новый узел со сведениями об автомобиле какой- то страны в начало своего подсписка.
Установить дату продажи проданному автомобилю.
Удалить все узлы по проданным автомобилям.
11
Инвентарный номер книги
(буквенно-цифровой), указатель на список областей знаний (к которым относится книга, при создании списка указатель
Вставить новый узел со сведениями о книге после последнего узла.
Сформировать новый список из значений списков по областям

5 равен
NULL),
Автор,
Название, Год издания.
Примечание: список областей знаний – это тоже линейный список, информационная часть которого содержит название области. знаний, включив название области только один раз.
Удалить узлы со сведениями по книгам определенного автора и изданные после указанного года.
Часть списка, начиная с узла с заданным номером и до конца списка, перенести в начало списка
12
Код товара
(буквенно- цифровой), дата продажи, цена, отметка о возврате, дата возврата.
Упорядочить список по правилу: сначала проданные, но не возвращенные, а затем возвращенные.
Переформировать список следующим образом: часть списка, содержащая возвращенный товар перенести в начало исходного списка.
Удалить товар, который продан до указанной даты.
13
Номер мед. полиса
(буквенно-цифровой), указатель на линейный список
(узлы которого содержат: Код заболевания и
Дата регистрации заболевания зарегистрировано), фамилия больного.
Вставить в начало списка заболеваний пациента новый узел.
Сформировать новый список, включив в него информацию о пациентах, у которых зарегистрировано более
5 заболеваний.
Удалить из списка кодов заболеваний указанного пациента, узел с указанным кодом.
14
Номер зач. книжки
(буквенно-цифровой),
Номер группы, Фамилия студента,
Указатель на линейный список сведений по результатам сессии (узел этого списка содержит:
Название дисциплины,
Оценка, Номер семестра).
Упорядочить исходный список по номеру группы.
Вставить сведения о новом студенте, об успеваемости которого еще нет сведений, перед узлом, номер зачетной книжки в котором меньше номера зач. книжки нового студента.
Удалить все сведения о студентах заданной группы.

6 15
Номер читателя библиотеки, указатель на сведения о взятых читателем книгах.
Сведения о взятой книге: инвентарный номер (число), дата выдачи, дата возврата
Добавить сведения о взятой читателем книге
Оформить возврат определенной книги
Сформировать список книг, которые не вернул читатель в срок.
16
Номер кассы в магазине. указатель на список проведенных кассой операций.
Сведения по проведенной операции: код товара, количество, единица измерения (например, кг или штуки), цена за единицу измерения, сумма к оплате за товар, дата операции
Добавить сведения о проведенной операции
Определить приход по кассе в указанную дату
Отменить (удалить) проведенную операцию
17
Номер класса в школьном журнале, указатель на список тем уроков. О каждой теме должны храниться сведения: код дисциплины, название темы, дата изучения темы.
Примечание.
Для расшифровки названия дисциплины по ее коду создать массив для нескольких дисциплин, элемент массива должен хранить: код и название дисциплины. с кодом
Вставить сведения по теме урока по определенной дисциплине в список тем, в конец списка тем данной дисциплины.
Сформировать массив
(или список) указателей на начало списка тем по определенной дисциплине.
Удалить темы по заданной дисциплине.
3
Форма отчета по разработанной программе
1. Постановка задачи – условие задания, требования в соответствии с вариантом.
2. Определение списка операций над списком, которые выявлены в процессе исследования задач:

7 2.1 Определить структуру узла двунаправленного списка в соответствии с вариантом.
2.2 Изобразить (рисунок) для каждой базовой операции полученного списка процесс выполнения операции на существующем списке.
2.3 Изобразите структуру данных, которая будет использоваться в операциях.
2.4 Привести словесное описание алгоритма выполнения операции.
2.5 Привести таблицу тестов для каждой операции.
3. Представить код программы на языке С++.
4. Представить результат тестирования программы: скриншоты выполнения каждой операции.
5. Привести выводы по полученным знания и умениям.


написать администратору сайта