Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа--МУ.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
164.35 Кб
Скачать

4.2 Добавление записи в файл

Пример добавления новой записи в файл для предметной области Склад товаров :

reset(f);

seek(f,filesize(f)); {смещение указателя файла в конец файла}

with t do

begin

write('наименование ');

readln(tname);

write('штрих-код ');

readln(s_cod);

write('цена ');

readln(price);

write('количество ');

readln(quan);

write(f,t)

end;

close(f);

4.3 Корректировка записи файла

Пример корректировки записи о товаре, заданной номером по списку товаров (см. подраздел 4.1):

write('укажите номер товара по списку ');

readln(num);

reset(f);

n:=filesize(f);

if num > n then

writeln('номер превышает размер файла ',n)

else

begin

seek(f,num-1); {на выбраную запись}

with t do

begin

write('наименование '); readln(tname);

write('штрих-код '); readln(s_cod);

write('цена '); readln(price);

write('количество '); readln(quan);

write(f,t)

end;

end;

close(f);

Такая корректировка необходима только в тех случаях, когда вся запись о товарах задана с ошибками и её нужно изменить.

Обычно требуется заменить значение одного или нескольких полей записи.

Для предметной области Склад товаров постоянно меняется количество товаров на складе и иногда цены на товар.

Пример корректировки количества товара, заданного номером по списку:

write('укажите номер товара по списку ');

readln(num);

reset(f);

n:=filesize(f);

if num > n then

writeln('номер превышает размер файла ',n)

else

begin

seek(f,num-1); {на выбраную запись}

read(f,t);

with t do

begin

write('количество ');

readln(quan);

seek(f,num-1); {на выбраную запись}

write(f,t)

end;

end;

close(f);

4.4 Удаление записи файла

Пример удаления записи файла по номеру, заданной номером по списку товаров (см. подраздел 4.1):

write(' укажите номер удаляемого товара ');

readln(num);

reset(f);

n:= filesize(f);

if num > n then

writeln('номер превышает размер файла ',n)

else

begin

seek(f,num); {на следующую запись}

while not eof(f)do

begin

read(f,t); {чтение, указатель на следующую запись}

seek(f,filepos(f)-2); {на 2 записи "выше"}

write(f,t); {запись, указатель на следующую запись}

seek(f,filepos(f)+1); {на 1 запись "ниже"}

end; {в конце файла – после последней записи}

seek(f,filepos(f)-1); {на последнюю запись}

truncate(f); {удалить последнюю запись}

end;

close(f);

5 Программа обработки файла

Для работы с файлом программа должна использовать библиотеку подпрограмм обработки файла, реализующих основные операции работы с файлом (см. раздел 4). Библиотеки подпрограмм для решения задач определенной предметной области организуются на языке Паскаль в виде unit – модулей. Необходимо создать модуль, содержащий подпрограммы работы с файлом (см. Приложение В).

Модуль подпрограмм работы с файлом и программа обработки файла, как и программа создания файла, используют глобальные описания из модуля Glob (см. раздел 3).

Программа обработки файла должна содержать меню с перечнем возможностей работы с файлом и оператор выбора соответствующего пункта меню.

Пример меню:

writeln('1. Просмотр файла ');

writeln('2. Добавление записи в файл ');

writeln('3. Корректировка записи файла ');

writeln('4. Удаление записи из файла ');

writeln('5. Обработка записей файла ');

Такое меню не отражает специфику предметной области. Например, для предметной области Склад товаров (индивидуальное задание 25) см. раздел 2 ) предпочтительнее такое меню:

writeln('1. Список товаров ');

writeln('2. Новый товар ');

writeln('3. Приход / Расход'); {изменение количества товара}

writeln('4. Списание товара ');

writeln('5. Итоги ');

writeln('6. Товары стоимости выше средней ');

Меню должно быть дополнено ещё одним пунктом, так как выдача меню и выбор очередной операции выполняются циклически:

writeln('0. Выход ');

Выбор соответствующего пункта меню реализуется с помощью оператора выбора [1] – [3] и для программы Склад товаров может иметь вид:

case np of

'1': begin

writeln('Товары на складе:');

view(f)

end;

. . . . . . . . . . . . . . . . . . .

'3': begin

write('номер товара по списку ');

readln(num);

corr(f,num)

end;

. . . . . . . . . . . . . . . . . . .

'0':

else writeln('неверный номер')

end;

Приложение А

Пример оформления титульного листа

Минобрнауки России

Федеральное государственное автономное образовательное учреждение

высшего профессионального образования

«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

Факультет математики, механики и компьютерных наук

КУРСОВАЯ РАБОТА

по дисциплине « Информатика »

на тему: «Создание и обработка записей файла»

Студента 1 курса 3 группы вечернего отделения

Иванова А.А.

Руководитель Пасечный Л.Г.

Ростов-на-Дону

2013

Приложение Б