6.2 Описание процедур.
Creatfile-создание файла;
Addrecord-добавление запеси;
Inputfile-ввод данных;
Redzap-корректировка;
Openfile-просмотр;
Clearfile-удаление.
Вывод.
Проделанная работа позволяет любому пользователю с легкостью создавать большие объемы информации, обрабатывать их, сортировать, делать выборки по определенным критериям.
Использование такой программы в современном мире значительно облегчает деятельность человека.
Program kursovay;
uses Crt,Dos;
type prokat=record
Sname_Hozaina,Name_Hozaina:string[15];
markauto:string[20];
model_auto:string[20];
tip_kyzova:string[20];
nomer_auto:string[20];
region:integer;
god_vipyska:integer;
color:string[20];
end;
var f:file of prokat;
zn,filename:string;
k:integer;
label 11;
{-----------------------------------------------------------}
procedure Creatfile;
begin
writeln('Задайте имя файла,который будет создаваться');
readln(filename);
assign(f,filename);
rewrite(f);
end;
{-----------------------------------------------------------}
procedure Addrecord;
var rez:integer; ch:char;
begin
while rez<>0 do
begin
writeln('Задайте имя файла,в который будет добавляться запись');
readln(filename);
assign(f,filename);
reset(f);
rez:=IOResult;
if rez<>0 then
begin
writeln('Проверьте правильность имени файла!');
writeln('Будет ли повторное задание имени файла?(Y/N)');
readln(ch);
if (ch='n') or (ch='N') then halt (0);
end;
end;
seek(f,filesize(f));
end;
{==========================================================}
procedure Inputfile;
var st:prokat;
k:char;
begin
repeat
writeln('Введите данные о новом клиенте : ');
write('Фамилия Хозяина : '); readln(st.Sname_Hozaina);
write('Имя Хозяина:' ); readln(st.Name_Hozaina);
write('марка машины:'); readln(st.markauto);
write('модель машины:'); readln(st.model_auto);
write('тип кузова:'); readln(st.tip_kyzova);
write('номер машины: '); readln(st.Nomer_auto);
write('регион:'); readln(st.region);
write('год выпуска: '); readln(st.God_vipyska);
write('цвет: '); readln(st.color);
write(f,st);
write('Надо ли вводить данные о новом клиенте ? (Y/N)>');readln(k);
writeln;
until(k='n') or (k='N');
close(f);
end;
{=========================================================}
procedure redzap;
var
st:prokat;
filename,str:string;
Sname_Hozaina2,Name_Hozaina2:string[15];
markauto2:string[20];
model_auto2:string[20];
tip_kyzova2:string[20];
nomer_auto2:string[20];
region2:integer;
god_vipyska2:integer;
color2:string[20];
x:integer;
begin
writeln('Задайте имя файла');
readln(filename);
assign(f,filename);
reset(f);
with st do
begin write('Введите фамилию клиента: ');readln(str);
x:=0;
while not eof(f) do
begin
read(f,st);
if st.Sname_Hozaina=str then
begin
writeln('Введите новые данные о клиенте: ');
write('Фамилия хозяина: '); readln(st.Sname_Hozaina);
write('Имя хозяина: '); readln(st.Name_Hozaina);
write('марка машины:'); readln(st.markauto);
write('модель машины:'); readln(st.model_auto);
write('тип кузова:'); readln(st.tip_kyzova);
write('номер машины:'); readln(st.nomer_auto);
write('регион:'); readln(st.region);
write('год выпуска:'); readln(st.god_vipyska);
write('цвет: '); readln(st.color);
Sname_Hozaina2:=Sname_Hozaina; markauto2:=markauto;
Name_Hozaina2:=Name_Hozaina; color2:=color;
Nomer_auto2:=Nomer_auto; model_auto2:=model_auto;
God_vipyska2:=God_vipyska; tip_kyzova2:=tip_kyzova;
region2:=region;
seek(f,filepos(f)-1);
write(f,st); x:=1;
end; end;
close(f);
end;
if x=0 then begin writeln('Записи с такой фамилией нет!');readln end;
end;
{==============================================================}
procedure Openfile;
var rez:integer;ch:char;
begin
while rez<>0 do
begin
writeln('Задайте имя файла');
readln(filename);
assign(f,filename);
reset(f);
rez:=IOResult;
if rez<>0 then
begin
writeln('Проверьте правильность имени файла!');
writeln('Будет ли повторное задание имени файла ? (Y/N)');
readln(ch);
if (ch='n') or (ch='N') then halt (0);
end;
end;
end;
{============================================================}
procedure Outputfile;
var st:prokat;k:char;
begin
writeln('Хотите посмотреть данные о клиентах ? (Y/N)');
readln(k);
if (k='y') or (k='Y') then
while not eof(f) do
begin
read(f,st); clrscr;
writeln('Фамилия хозяина:',st.Sname_Hozaina);
writeln('Имя хозяина:',st.Name_Hozaina);
writeln('марка машины:',st.markauto);
writeln('модель машины:',st.model_auto);
writeln('тип кузова:',st.tip_kyzova);
writeln('номер машины:',st.nomer_auto);
writeln('регион;',st.region);
writeln('год выпуска:',st.god_vipyska);
writeln('цвет:',st.color);
writeln('Для продолжения нажмите (enter)');
readln;
end;
close(f);
end;
{========================================================}
procedure Clearfile;
var st:prokat;
studtoout:string[20];
fo:file of prokat;
begin
writeln('Задайте имя файла,из которого удаляются элементы');
readln(filename);
assign(f,filename);reset(f);
assign(fo,'newfile.dat');rewrite(fo);
writeln('Задайте фамилию клиента, запись о котором удаляется');
readln(studtoout);
while not eof(f) do
begin
read(f,st);
if st.sname_Hozaina<>studtoout then write(fo,st);
end;
close(f);close(fo);
erase(f);
rename(fo,filename);
end;
{ОСНОВНАЯ ЧАСТЬ ПРОГРАММЫ}
Begin 11:clrscr;
writeln(' МЕНЮ:');
writeln('1:Создание файла');
writeln('2:Добавление записи в файл');
writeln('3:Корректировка записи');
writeln('4:Просмотр файла');
writeln('5:Удаление записи из файла');
writeln('6:Выход из программы');
readln(k);
case k of 1: begin Creatfile; Inputfile end;
2: begin Addrecord; Inputfile end;
3: redzap;
4: begin Openfile; Outputfile end;
5: Clearfile;
6: Halt;
else writeln('Ошибка.Повторите номер режима.')
end;
goto 11;
End.