Физическое удаление компонент



При физическом удалении каждая компонента, следующая за удаляемой, переписывается на место предыдущей. В итоге в конце файла оказывается две одинаковые компоненты, поэтому последнюю необходимо «отсечь» (см. рис.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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!