Физическое удаление компонент
При физическом удалении каждая компонента, следующая за удаляемой, переписывается на место предыдущей. В итоге в конце файла оказывается две одинаковые компоненты, поэтому последнюю необходимо «отсечь» (см. рис.13). В итоге файл становится короче на одну компоненту. Удаление можно повторять многократно.
Алгоритм физического удаления представлен на рис.16.
Алгоритм физического удаления реализован с помощью цикла, в котором выполняется поиск компонент, логически помещенных на удаление. При этом запоминается ik – номер физически удаляемой компоненты. При нахождении такой компоненты в файле выполняется процесс переписывания очередной компоненты на место предыдущей и последующее удаление последней компоненты из файла процедурой truncate(F) (шаг 1-2).
В тексте программы физическое удаление выглядит следующим образом:
• • •
reset(F);
while NOT EOF(F) do
begin
read(F,a);
if a.del then
begin
ik:=filepos(F)-1;
{1-2}
while NOT EOF(F) do
begin
i:=filepos(f);
read(F,a);
seek(F,i-1);
write(F,a);
seek(F,i+1);
end;
seek(F,filesize(F)-1);
truncate(F);
seek(F,ik);
end;
end;
close(F);
• • •
При физическом удалении необходимо помнить, что удаленные компоненты восстановлению не подлежат.
5. Семестровая работа на тему ”Мини СУБД”
Целью выполнения семестровой работы является овладение навыками работы с файлами, компонентами которых являются записи.
Оформленная семестровая работа должна включать в себя:
1. Текст задания.
2. Тестовый пример.
|
|
3. Описание структуры компоненты файла.
4. Описание глобальных типов данных.
5. Описание глобальных переменных и констант.
6. Перечень процедур и функций.
7. Блок – схему алгоритма.
8. Текст программы на языке Turbo Pascal.
Мини СУБД должна работать в режиме функционального меню, и функции СУБД должна быть реализована с помощью подпрограмм.
5.1. Пример выполнения семестровой работы на тему ”Мини СУБД”
Задание
Создать Мини СУБД “Деканат” для обработки сведений о студентах. Информация о каждом студенте содержит следующие данные: ФИО студента, адрес, город, номер группы оценки по трем дисциплинам (химия, физика, математика). Выполнить поиск в БД сведений о студентах, проживающих в заданном городе. Найти в БД студентов, чья фамилия начинается с заданной буквы и обучающихся в заданной группе. Найти всех студентов, средний балл которых выше среднего.
В Мини СУБД должны быть реализованы следующие функции:
· Ввод БД.
· Вывод БД.
· Поиск информации в БД по запросу пользователя.
· Добавления записей в БД.
· Корректировка записей в БД.
· Удаление записей из БД.
· Функциональное меню.
Тестовый пример
Общий список студентов:
|
|
|
|
|
|
|
|
|
|
| ||
№ | ФИО | АДРЕС | Телефон | № группы | Оценки | |||||||
Город | Улица | Дом | Кв. | Хим. | Физ. | Матем. | ||||||
1 | Иванов | Москва | Мира | 10 | 32 | 333-23-32 | ТОА-126 | 5 | 3 | 5 | ||
2 | Петров | Минск | Брестская | 6 | 78 | 456-78-90 | ИВТ-160 | 4 | 4 | 3 | ||
3 | Сидоров | Урюпинск | Козловская | 28 | 61 | 28-10-10 | АТ-117 | 5 | 5 | 4 | ||
4 | Котов | Москва | Арбат | 31 | 34 | 555-55-33 | ТОА-126 | 3 | 3 | 3 | ||
5 | Конев | Волгоград | Ким | 5 | 1 | 71-30-26 | ТОА-126 | 4 | 5 | 3 |
Список студентов, проживающих в Москве:
|
|
|
|
|
|
|
|
|
|
| |||||||||||
№ | ФИО | АДРЕС | Телефон | № группы | Оценки | ||||||||||||||||
Город | Улица | Дом | Кв. | Хим. | Физ. | Матем. | |||||||||||||||
1 | Иванов | Москва | Мира | 10 | 32 | 333-23-32 | ТОА-126 | 5 | 3 | 5 | |||||||||||
2 | Котов | Москва | Арбат | 31 | 34 | 555-55-33 | ТОА-126 | 3 | 3 | 3 | |||||||||||
Список студентов с фамилией, начинающейся с буквы “К” и обучающихся в группе “ТОА-126”:
|
|
|
|
|
|
|
|
|
|
| ||
№ | ФИО | АДРЕС | Телефон | № группы | Оценки | |||||||
Город | Улица | Дом | Кв. | Хим. | Физ. | Матем. | ||||||
1 | Котов | Москва | Арбат
| 31 | 34 | 555-55-33 | ТОА-126 | 3 | 3 | 3 | ||
2 | Конев | Волгоград | Ким | 5 | 1 | 71-30-26 | ТОА-126 | 4 | 5 | 3 |
Список студентов со средним баллом выше среднего:
Средний балл
Список студентов со средним баллом выше SR=4.
|
|
|
|
|
|
|
|
|
|
|
№ | ФИО | АДРЕС | Телефон | № группы | Оценки | |||||
Город | Улица | Дом | Кв. | Хим. | Физ. | Матем. | ||||
1 | Иванов | Москва | Мира | 10 | 32 | 333-23-32 | ТОА-126 | 5 | 3 | 5 |
2 | Сидоров | Урюпинск | Козловская | 28 | 61 | 28-10-10 | АТ-117 | 5 | 5 | 4 |
Дата добавления: 2018-10-27; просмотров: 223; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!