Автор: Пользователь скрыл имя, 30 Марта 2013 в 21:12, лабораторная работа
Цели работы:
- Ознакомиться с особенностями создания и обработки списка в типизированном файле;
- Создать проект в системе Delphi7, в котором реализованы основные операции обработки списка в типизированном файле.
Различные динамические структуры данных можно размещать не только в динамической памяти, но и в двоичных или текстовых файлах.
В данной лабораторной работе рассматривается размещение однонаправленного связанного списка в типизированном файле.
Рисунок 5.8 – Процедура добавления нового элемента в упорядоченный список в файле
Процедура поиска элемента в отсортированном списке, реализованном в файле имеет следующие параметры:
Процедура получает Старт списка и ключ поиска и возвращает номер записи, в которой хранится найденный элемент списка и номер записи, в которой хранится элемент, предыдущий к найденному.
Поскольку процедура имеет двойное назначение, т.е. может искать не только элемент, но и место вставки элемента, то она может вернуть адреса элементов списка, между которыми вставляется новый элемент с заданным ключом.
Результат поиска – найден элемент или не найден находится в специальной переменной типа Boolean.
Данная процедура имеет такой же алгоритм, как и процедура поиска для «кучи», описанный в лабораторной работе №2.
Процедуру поиска элемента необходимо реализовать самостоятельно.
Процедура удаления получает следующие параметры:
При удаленнии элемента может использоваться процедура поиска, описанная в п.5.3.7.
Процедура удаления элемента из отсортированного списка использует процедуру освобождения физического места, описанную в п. 5.3.5.
Алгоритм процедуры удаления:
Процедура удаления элемента из отсортированного списка в файле должна быть реализована самостоятельно.
Если в файле находится один список, то можно удалить файл и заново выполнить инииализацию списка.
В случае, если в файле находятся параллельно несколько списков, а удалить необходимо только один из них, то, начиная с начала списка удаляются последовательно его элементы и заносятся в список дыр.
Процедуру удаления реализуйте самстоятельно.
Задача состоит в следующем: Создать список студентов в типизированном файле, каждый элемент которого содержит следующую информацию: фамилия студент, средний бал. Обеспечить заполнение данных о каждом студенте путем нажатия на кнопку «Добавить» и вызове дополнительной формы для ввода данных. Вывод исходного списка произвести в компонент ListBox.
Главная форма проекта представлена на рисунке 5.9. Для вывода подсписоков мультисписка используются компоненты ListBox.
Рисунок 5.9 – Изображение главной формы проекта
Проект имеет такую же структуру, как и во 2-й лабораторной работе.
Содержимое модуля типов представлено на рисунке 5.10.
Рисунок 5.10 – Содержимое модуля типов
Процедура, обрабатывающая событие нажатие на кнопку «Добавить» на дополнительной форме ввода, показана на рисунке 5.11.
Рисунок 5.11 – Процедура, обрабатывающая событие нажатия на кнопку «Добавить» на форме ввода данных
Создайте проект, который выполняет обработку списка элементов, а именно производит добавление элемента в список, расположенный в типизированном файле, как это показано в п.5.3.
Дополните существующий проект возможностью удаления элемента по ключу из списка.
Реализуйте задачи со списком в типизированном файле согласно варианта, приведенного в таблице 5.2. При необходимости добавьте недостающие визуальные компоненты на форму. Содержимое списка также указано в таблице 5.2 согласно варианта задания.
Таблица 5.2 – Задания для выполнения проекта
Вариант |
Содержимое элемента Списка |
Реализовать операцию со списком: |
0 |
Целое число |
2.Удалить из списка все четные элементы |
1 |
- номер аудитории - кафедра -количество компьютеров |
1. Реализовать операцию сохранения и восстановления списка из типизированного файла 2. Создать второй список, в котором
будут только записи об |
2 |
- фамилия спортсмена - разряд - вид спорта |
1. Реализовать операцию удаления элемента с дубликатами из отсортированного списка 2. Удалить спортсменов, которые занимаются плаваньем |
3 |
- название книги - цена - тираж |
1. Реализовать операцию слияния двух отсортированных списков 2. Удалить книги, перед |
4 |
- название блюда - количество калорий - страна |
1.Реализовать операцию 2. Удалить записи о тех блюдах, перед которыми находится блюдо страны Испания |
5 |
- название магазина - количество рботников |
1. Реализовать операцию удаления элемента и его дубликатов из неупорядоченного списка 2. Создать второй список, в котором будет хранится информация о магазинах, где количество работников меньше 30 |
6 |
Целое число |
1.Реализовать операцию создания копии списка 2. Перед каждым элементом, равным 0, вставить в список новый элемент со значением 2. |
7 |
Строка |
1.Реализовать операцию 2. После каждой строки, которая имеет длину больше 3-х символов, вставить элемент со строкой «***» |
8 |
- номер школы - директор - количество учителей |
1.Реализовать операцию 2. Удалить информацию из списка о тех школах, где количество учителей меньше 40 |
9 |
Целое число |
1.Реализовать операцию 2.После каждого четного |
Выполните тестирование проекта следующим образом:
1. Наименование работы.
2. Цель работы.
3. Изображение интерфейса проекта, реализованного согласно задания.
4. Текст программы.
5. Результаты тестирования проекта.
6. Выводы о результатах тестирования проекта и об особенностях реализации списковой структуры в типизированном файле.
Информация о работе Реализация линейного списка в типизированном файле