- •Чернигов, 2012
- •Введение
- •Правила оформления курсовой работы:
- •1. Общие требования
- •1.1 Оформление
- •1.2 Контроль выполнения
- •2. Задание на курсовую работу
- •2.2 Задания на курсовую работу (основная часть)
- •Практические рекомендации по выполнению основной части курсовой работы
- •Теоретическим материал, необходимым для выполнения работы:
- •Действия с типизированными файлами к основным действиям с записями (элементами) файла относятся:
- •Поиск элемента по ключу
- •Замена содержимого отдельной записи файла;
- •Удаление отдельной записи файла;
- •Вставка новой записи в произвольное место файла
- •Литература Основная литература:
- •Дополнительная литература:
- •Календарный план выполнения курсовой работы
- •Рецензия на курсовой проект
Действия с типизированными файлами к основным действиям с записями (элементами) файла относятся:
Поиск отдельной записи файла по некоторому условию – ключу поиска;
Замена содержимого отдельной записи файла;
Удаление некоторой записи файла;
Вставка новой записи в произвольное место файла.
Поиск элемента по ключу
Алгоритм поиска элемента файла по ключу.
Открыть файл;
В цикле перебрать все элементы, которые не удовлетворяют условию поиска;
Зафиксировать позицию элемента, удовлетворяющего условию поиска;
Установить файловую переменную на позицию элемента, удовлетворяющего условию поиска;
Выполнить обработку найденного элемента файла;
Закрыть файл.
SEEK (f, N) – функция, позволяющая явно изменить значение текущего указателя, установив его на элемент файла с заданным номером N (N - целочисленное выражение).
Замена содержимого отдельной записи файла;
Алгоритм замены элемента файла.
Открыть файл;
В цикле перебрать все элементы, которые не удовлетворяют условию замены;
Зафиксировать позицию элемента, подлежащего замене;
Установить файловую переменную на позицию элемента, удовлетворяющего условию замены;
Выполнить запись нового элемента в файл по заданной позиции;
Закрыть файл.
Удаление отдельной записи файла;
Алгоритм удаления элемента файла.
Открыть основной файл.
Найти в файле запись удовлетворяющую условию удаления, например заданный номер зачетки. Запомнить номер позиции с помощью процедуры Filepos.
Установить файловый указатель в начало удаляемой записи с помощью процедуры Seek.
Обрабатываем ситуации:
а) если номер удаляемой записи равен числу записей в файле, т.е. запись последняя, то с помощью процедуры Seek устанавливаем файловый указатель на начало удаляемой записи и удаляем ее с помощью процедуры Truncate.
б) в противном случае, в цикле на место удаляемой записи записать следующую за ней запись и так до конца файла. Последнюю запись удалить с помощью процедуры Truncate.
Закрыть основной файл.
Filesize (f) – имеет тип Integer, функция, позволяющая определить размер (кол-во элементов) файла f
Вариант №2:
Открыть основной и вспомогательный файлы.
В цикле переписать из основного файла во вспомогательный все элементы, которые не удовлетворяют условию удаления.
Пропустить в основном файле запись, подлежащую удалению.
В цикле переписать из основного файла во вспомогательный все оставшиеся элементы.
Закрыть основной и вспомогательный файлы.
Уничтожить основной файл.
Переименовать вспомогательный в основной.
Erase (f) – удаляет файл, связанный с файловой переменной f.
Rename (f, NewName) – присваивает файлу, связанному с файловой переменной f, новое имя NewName.
Оба варианта имеют право на существование, все зависит от условий работы:
- если база данных огромна, а места мало тогда лучше вариант №1;
- если база данных невелика, то лучше вариант №2 – по скорости он быстрее.
Вставка новой записи в произвольное место файла
Алгоритм вставки элемента файла
Пусть место задается поиском записи с заданным ключом. Вставка нового элемента производится перед найденной записью. Для вставки используют один из двух алгоритмов.
В первом алгоритме вставки элемента в произвольное место файла используется вспомогательный файл, в который переписываются все элементы, предшествующие заданному. Алгоритм выполняется следующим образом:
Открыть основной и вспомогательный файлы.
В цикле переписать из основного файла во вспомогательный все элементы, номера которых меньше заданного.
Во вспомогательный файл записать значение, которое надо вставить.
В цикле переписать из основного файла во вспомогательный все оставшиеся элементы.
Закрыть основной и вспомогательный файлы.
Уничтожить основной файл.
Переименовать вспомогательный в основной.
Второй алгоритм вставки элемента в произвольное место файла.
Вместо вспомогательного файла используются две вспомогательные переменные например А и В того же типа что и у элементов файла, и вспомогательная переменная счетчик С типа longint для запоминания текущего места вставки. Этот способ напоминает способ вставки элемента в отсортированный массив. Алгоритм выполняется следующим образом:
Первой вспомогательной переменной А присвоить значение, которое надо вставить в файл.
Отыскать место вставки и установить файловый указатель на место вставки с помощью процедуры Seek.
Запомнить место вставки (в переменной – счетчик С) с помощью функции Filepos
Прочитать значение того элемента, на который указывает файловый указатель, и присвоить второй вспомогательной переменной В. Снова установить файловый указатель на место вставки с помощью процедуры Seek , используя значения счетчика С.
В цикле, пока файл не прочитан:
- записать в доступный элемент файла значение первой переменной А,
- запомнить новое место вставки, увеличив счетчик С,
- первой вспомогательной переменной А присвоить значение второй
вспомогательной переменной В,
- прочитать значение того элемента, на который указывает файловый указатель,
и присвоить второй вспомогательной переменной В,
- установить файловый указатель на место вставки с помощью процедуры Seek,
используя значение счетчика С. Записать в доступный элемент файла значение первой переменной А.
