Добавил:
3axap4uk_
Рыльский филиал МГТУ ГА.
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Практические / prakt12 / 12-2
.pasprogram menu;
uses crt;
var i,a: integer;
code:char;
n:array[1..5] of string[20];
TYPE ZAP=RECORD
FAM: STRING[30];
GOD: 1900 ..2005;
NOMER: INTEGER;
END;
VAR F: FILE OF ZAP;
Z: ZAP;
R,T,Y,U,P,I1: INTEGER; {K, N ,I,j,l}
PROCEDURE CHTENIE;
BEGIN ASSIGN (F,'KAD.DAT'); {процедурачтенияизфайла kad.dat}
RESET(F);
Y:=1;
WHILE NOT EOF (F) DO
BEGIN
READ (F, Z);
SEEK (F, Y);
Y:=Y+1;
WRITELN (I, ' '' ',Z.FAM,' ', Z.GOD);
END;
CLOSE(F)
END;
PROCEDURE VVOD;{процедура ввода данных в поля записи и в файл}
BEGIN WRITELN('СКОЛЬКО БУДЕМ ВВОДИТЬ ЗАПИСЕЙ?');
READLN(T);
for VAR I1:=1 to T DO
BEGIN
WRITELN ('ФАМИЛИЯ');
READLN (Z.FAM); {вводданных}
WRITELN ('ГОДРОЖД.');
READLN (Z.GOD); { взапись }
WRITE(F,Z); {ввод записи в файл}
END;
CLOSE(F);
END;
PROCEDURE NOVY; {процедура открытия файла для записи}
BEGIN ASSIGN (F,'KAD.DAT');
REWRITE (F);
VVOD; {использование ранее описанной процедуры vvod}
END;
PROCEDURE DOPOLNENIE; {процедура дополнения записей в файл}
BEGIN
ASSIGN(F,'KAD.DAT');
RESET(F); {при таком открытии файла его содержимое не уничтожается}
SEEK (F,FILESIZE(F));
VVOD;
END;
PROCEDURE REDAK; {процедура редактирования записей в файл}
BEGIN
ASSIGN(F,'KAD.DAT');
RESET(F);
writeln('Введите номер записи');
readln(P);
SEEK (F,P);
VVOD;
END;
procedure vv;
begin
textbackground(1);
textcolor(4);
gotoxy(30,10+i);
write (n [i]);
textbackground(6);
textcolor(13);
gotoxy(30,10+i+a);
write(n[i+a]);
end;
begin
{исполнимая часть программы}
clrscr; {очистка экрана}
n[1]:=' НОВЫЙ ФАЙЛ ';
n[2]:=' ЧТЕНИЕ ';
n[3]:=' ДОПОЛНЕНИЕ ';
n[4]:='РЕДАКТИРОВАНИЕ ';
n[5]:=' ЗАКРЫТИЕ ';
i:=1;a:=3;vv;
gotoxy(30,12);
write(n[2]);
gotoxy(30,13);
write(n[3]);
gotoxy(30,14);
write(n[4]);
gotoxy(30,15);
write(n[5]);
repeat
code:=readkey; {считывание кода нажатой клавиши}
case code of
#38: if i=1 then
begin
i:=5;a:=-4;vv; end {вверх}else begin i:=i-1;a:=1;vv; end;
#40: if i=5 then
begin i:=1;a:=4;vv;end {вниз}else begin i:=i+1;a:=-1;vv; end;
#13: begin gotoxy(30,7); {Enter}
case i of
1:NOVY;
2:CHTENIE;
3:DOPOLNENIE;
4:REDAK;
5:EXIT;
end; end;
end;until code=#27;{ESC}textbackground(0); textcolor(8);
end.