Создание и корректировка файла, содержащего сведения об абитуриентах - Free Pascal
Формулировка задачи:
Постановка задачи
Разработать программу создания и корректировки файла, содержащего сведения об абитуриентах, сдавших вступительные экзамены в институт. Каждый элемент этого файла должен содержать следующие данные: фамилию и инициалы абитуриента, специальность, на которую он поступает, полученные оценки по физике, математике и литературе. Предусмотреть создание текстового файла, содержащего информацию об абитуриентах, поступающих на указанную специальность.Program Prog;
Uses
Classes, SysUtils;
type Zap=record
fio: string[25];
spec: string[25];
ocfiz: string[1];
ocmatem: string[1];
ocliter: string[1];
end;
var f: file of string;
fio1: string;
reg: integer;
q: Zap;
begin
assign(f,'d:\Proga\abitura.dat');
reset(f);
writeln ('Режим ввода – 1; режим корректировки - 2');
read(reg);
if reg=1 then
begin
{Режим ввода}
Writeln(‘Режим ввода’);
Rewrite(f);
repeat
writeln ('Фамилия и инициалы ');
read(q.fio);
writeln ('Специальность ');
read (q.spec);
writeln ('Оценка по физике ');
read (q.ocfiz);
writeln ('Оценка по математике ');
read (q.ocmatem);
writeln ('Оценка по литературе ');
read (q.ocliter);
write(f);
until (q.fio<>’***’);
end;
{Конец режима ввода}
if reg=2 then do
begin
{Режим корректировки}
Writeln(‘Режим корректировки’);
writeln ('Фамилия и инициалы ');
read(fio1);
while ((fio1<>’***’) and (not Eof(f))) do
begin
read(f);
if q.fio=fio1 then do
begin
writeln(‘Fam ’q.fio,’Spec ’, q.spec,’Fiz ’,q.ocfiz,’Matem ’,q.ocmatem,’Liter ’, q.ocliter);
write(f);
end;
end; {пока не конец файла f & фамилия #***}
end; {Конец режима 2-корректировки}
close(f);
end.Решение задачи: «Создание и корректировка файла, содержащего сведения об абитуриентах»
textual
Листинг программы
const
fName='D:\Proga\abitura.dat';
var
f: file of Zap;
...
begin
Assign(f,fName);
{$I-}
Reset(f); { пробуем открыть }
if IOResult<>0 then begin
Rewrite(f); { пробуем создать }
if IOResult<>0 then begin
WriteLn('Ошибка: сбой создания файла ',fName);
Exit;
end;
end;
{$I+}
...
Close(f);
end.
Объяснение кода листинга программы
- Объявляется константа fName, которая содержит путь к файлу с данными об абитуриентах.
- Объявляется переменная f типа file of Zap, которая будет использоваться для работы с файлом.
- Выполняется попытка открыть файл с помощью функции Assign(f, fName).
- Если попытка открытия файла не удалась, выполняется попытка создать новый файл с помощью функции Rewrite(f).
- Если попытка создания нового файла не удалась, выводится сообщение об ошибке и программа завершается.
- Если файл успешно открыт или создан, выполняется основной код программы, который не представлен в данном фрагменте.
- После завершения работы с файлом, он закрывается с помощью функции Close(f).