
- •1 Задание на курсовую работу
- •Рекомендации по разработке программ
- •2 Индивидуальные задания
- •3 Создание типизированного файла
- •Создание файла с записями о товарах на складе
- •4 Алгоритмы работы с файлом
- •4.1 Просмотр записей файла
- •4.2 Добавление записи в файл
- •4.3 Корректировка записи файла
- •4.4 Удаление записи файла
- •5 Программа обработки файла
- •Примерное содержание отчета
- •1 Задание на курсовую работу
- •2 Создание типизированного файла
- •3 Процедуры работы с файлом
- •4 Программа обработки файла
- •Unit – модули
- •Использование модулей
- •Подпрограммы для работы с типизированными файлами Процедуры
- •Функции
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
Приложение Б