Лабораторная
работа № 14
"Классы и объекты
- динамические
структуры"
Цель: Разработка
простейших классов
на примере разработки
моделей динамических
информационных
структур (одно
и двунаправленных
списков).
Постановка
задачи
Написать
программу, в которой
создаются динамические
структуры, и выполнить
их обработку в
соответствии
со своим вариантом.
Для каждого
вариант разработать
следующие методы:
1. Конструктор
пустого списка.
2. Добавление элемента
в список (в соответствии
со своим вариантом).
3. Удаление элемента
из списка (в соответствии
со своим вариантом).
4. Печать списка.
5. Запись списка
в файл.
6. Восстановление
списка из файла.
7. Деструктор списка
(уничтожение).
Порядок выполнения
работы
1. Разработать
описание класса,
выделить публичные
и приватные поля
данных. Разработать
интерфейс класса
– прототипы методов.
2. Написать функцию
для создания списка.
Функция может
создавать пустой
список, а затем
добавлять в него
элементы.
3. Написать функцию
для печати списка.
Функция должна
предусматривать
вывод сообщения,
если список пустой.
4. Написать функции
для удаления и
добавления элементов
списка в соответствии
со своим вариантом.
5. Выполнить изменения
в списке и печать
списка после каждого
изменения.
6. Написать функцию
для записи списка
в файл.
7. Написать функцию
для уничтожения
списка.
8. Записать список
в файл, уничтожить
его и выполнить
печать (при печати
должно быть выдано
сообщение "Список
пустой").
9. Написать функцию
для восстановления
списка из файла.
10.
Восстановить
список и распечатать
его.
11.
Уничтожить
список.
Варианты
заданий
1. Записи
в линейном списке
содержат ключевое
поле типа int. Сформировать
однонаправленный
список. Удалить
из него элемент
с заданным номером,
добавить элемент
с заданным номером;
2. Записи
в линейном списке
содержат ключевое
поле типа int. Сформировать
однонаправленный
список. Удалить
из него элемент
с заданным ключом,
добавить элемент
перед элементом
с заданным ключом;
3. Записи
в линейном списке
содержат ключевое
поле типа int. Сформировать
однонаправленный
список. Удалить
из него К элементов,
начиная с заданного
номера, добавить
элемент перед
элементом с заданным
ключом;
4. Записи
в линейном списке
содержат ключевое
поле типа int. Сформировать
однонаправленный
список. Удалить
из него элемент
с заданным номером,
добавить К
элементов, начиная
с заданного номера;
5. Записи
в линейном списке
содержат ключевое
поле типа int. Сформировать
однонаправленный
список. Удалить
из него К элементов,
начиная с заданного
номера, добавить
К элементов, начиная
с заданного номера;
6. Записи
в линейном списке
содержат ключевое
поле типа int. Сформировать
двунаправленный
список. Удалить
из него элемент
с заданным номером,
добавить элемент
в начало списка.
7. Сформировать
двунаправленный
список. Удалить
из него первый
элемент, добавить
элемент в конец
списка.
8. Записи
в линейном списке
содержат ключевое
поле типа int. Сформировать
двунаправленный
список. Удалить
из него элемент
после элемента
с заданным номером,
добавить К
элементов в начало
списка.
9. Записи
в линейном списке
содержат ключевое
поле типа int. Сформировать
двунаправленный
список. Удалить
из него К элементов
перед элементом
с заданным номером,
добавить К элементов
в конец списка.
10. Записи в линейном
списке содержат
ключевое поле
типа int. Сформировать
двунаправленный
список. Добавить
в него элемент
с заданным номером,
удалить К
элементов из конца
списка.
11. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить
из него элемент
с заданным ключом,
добавить элемент
с указанным номером.
12. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить
из него Элементы,
с одинаковыми
ключевыми полями.
Добавить элемент
после элемента
с заданным ключевым
полем.
13. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить
из него К первых
элементов. Добавить
элемент после
элемента, начинающегося
с указанного символа.
14. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить
из него К элементов
с указанными номерами.
Добавить К
элементов с указанными
номерами.
15. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить К элементов
из конца списка.
Добавить элемент
после элемента
с заданным ключом.
16. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить
элемент с заданным
ключом. Добавить К элементов
в конец списка.
17. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить
элемент с заданным
номером. Добавить К элементов
в начало списка.
18. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить
элемент с заданным
ключом. Добавить К элементов
в начало списка.
19. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить К элементов
с заданными номерами.
Добавить К
элементов в начало
списка.
20. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить
элемент с заданным
ключом. Добавить
по К элементов
в начало и в конец
списка.
21. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить
элементы перед
и после элемента
с заданным ключом.
Добавить по К элементов
в начало и в конец
списка.
22. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить
элемент с заданным
ключом. Добавить К элементов
перед элементом
с заданным ключом.
23. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить
элемент с заданным
ключом. Добавить К элементов
после элемента
с заданным ключом.
24. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить
элемент с заданным
номером. Добавить
по К элементов
перед и после
элемента с заданным
ключом.
25. Записи в линейном
списке содержат
ключевое поле
типа *char(строка символов).
Сформировать
двунаправленный
список. Удалить
элемент с заданным
ключом. Добавить К элементов
перед элементом
с заданным номером.
Содержание
отчета
1. Постановка
задачи.
2. Описание
класса, методы
для работы со
списком.
3. Функция
main().
4. Результаты
выполнения работы.
Пример учебной реализаций
можно посмотреть здесь.