for i:=p to n do begin
gotoxy(x,y+i-1);
write ( menu[i] );
end;
{textattr - предопределенная переменная, отвечающая за цвет фона и символов}
textattr:=sel;
gotoxy(x,y+punkt-1);
write( menu[punkt] ); {выделим строку меню}
textattr:=norm;
procedure forsort; {указ меняются местами}
var
rnom1:integer;
fam1:string[20];
name1:string[20];
otch1:string[20];
date1:string[20];
pol1:string[20];
stag1:integer;
adress1:string[30];
tel1:integer;
dolg1:string[20];
oklad1:integer;
begin
With Next^ do begin
rnom1:=rnom;
fam1:=fam;
name1:=name;
otch1:=otch;
pol1:=pol;
stag1:=stag;
adress1:=Adress;
tel1:=tel;
dolg1:=dolg;
oklad1:=oklad;
rnom:=Cur^.rnom;
fam:=Cur^.fam;
name:=Cur^.name;
otch:=Cur^.otch;
pol:=Cur^.pol;
stag:=Cur^.stag;
adress:=Cur^.Adress;
tel:=Cur^.tel;
dolg:=Cur^.dolg;
oklad:=Cur^.oklad;
With Cur^ do begin
rnom:=rnom1;
fam:=fam1;
name:=name1;
otch:=otch1;
pol:=pol1;
stag:=stag1;
adress:=Adress1;
tel:=tel1;
dolg:=dolg1;
oklad:=oklad1;
procedure Sortirovka; {Сортировка по алфавиту}
Cur:=Top;
While Cur<>nil do
Next:=Cur^.link;
while next<>nil do
if ord(Next^.fam[1]) < ord(Cur^.fam[1]) then
ForSort;
Next:=Next^.link;
cur:=cur^.link;
procedure Uporyad; {Сортровка по окладу}
if ord(Next^.Oklad) > ord(Cur^.Oklad) then
procedure Position(pos:integer);
var i:integer;
For i:=1 to pos do
if i<>pos then Cur:=Cur^.link;
procedure punkt0; {Очистка базы}
var cc,k,ch:char; i:integer;
key:char;
assign(sotrud,'sotrudn.dat');
cc:=chr(13);
{cc:=readkey;}
if cc=chr(13) then
gotoxy(25,10);
writeln('Вы уверены,что хотите удалить базу????');
gotoxy(25,11);
Writeln('Enter-ДА, Esc-НЕТ');
key:=readkey;
if key=chr(13) then
gotoxy(11,4);
write('0%');
gotoxy(63,4);
write('100%');
gotoxy(13,4);
for i:=1 to 20 do
write('=');
delay(500);
for i:=21 to 34 do
delay(1300);
for i:=35 to 50 do
delay(200);
rewrite(sotrud);
gotoxy(32,18);
write('База очищена');
gotoxy(32,19);
write('Нажмите клавишу Esc');
procedure punkt1; {Новый сотрудник}
var k,ch:char;
clrscr;
gotoxy(12,wherey);writeln('*************************************');
gotoxy(12,wherey);writeln('Добавьте в базу информацию о новом сотруднике - "Enter"');
ch:=readkey;
if ch<>chr(27) then
new(Cur);
writeln(' Введите информацию');
write('Регистрационный номер: ');
readln(Cur^.rnom);
write('Фамилия: ');
readln(Cur^.fam);
write('Имя: ');
readln(Cur^.name);
write('Отчество: ');
readln(Cur^.otch);
write('Год и Дата рождения: ');
readln(Cur^.date);
write('Пол: ');
readln(Cur^.pol);
write('Стаж работы: ');
readln(Cur^.stag);
write('Домашний адрес: ');
readln(Cur^.adress);
write('Телефон: ');
readln(Cur^.tel);
write('Должность: ');
readln(Cur^.dolg);
write('Оклад: ');
readln(Cur^.oklad);
Cur^.link:=Top;
Top:=Cur;
procedure Punkt2; {Уволить}
fam1,name1, otch1:string[20];
pos,f:integer;
writeln(' *******************************************');
writeln(' Будите удалять сотрудика из базы - "Enter"');
if ch=chr(13) then
if top=nil then begin
writeln('База пуста');
readln;
end
else
BEGIN
writeln(' **********************');
writeln(' Увольнение сотрудника');
writeln('Пожалуйста введите');
Writeln('Регистрационный номер увольняемого ');readln(rnom1);
writeln('Фамилия увольняемого: ');readln(fam1);
writeln('Имя увольняемого: ');readln(name1);
writeln('Отчество увольняемого: ');readln(otch1);
pos:=1;
repeat
f:=0;
If Cur^.rnom=rnom1 then
If Cur^.fam=fam1 then
If Cur^.Name=name1 then
if Cur^.otch=otch1 then
writeln('Вы действительно хотите удалить данного сотрудника');
if Cur^.link=nil then begin dispose(Cur); f:=1; end
If Cur=Top then begin
If Top^.link<>nil then
Top:=Top^.link;
dispose(Cur);
f:=1;
Position(pos-1);
Prev:=Cur;
Cur:=Cur^.link;
Prev^.link:=Next;
Dispose(Cur);
writeln('Сотрудник ' ,fam1,' ',name1,' ',otch1, ' уволен ');
readkey;
pos:=pos+1;
if (cur=nil) and (f=0) then
WriteLn('Искомый сотрудник не числется.');
writeln('Возможно имя или фамилия были введены с маленькой буквы');
Write('Для продолжения нажмите любую клавишу.');
break;
until f=1;
END;
procedure Punkt3; {Просмотр}
var ch:char;
sortirovka;
writeln(' Список сотрудников');
if top=nil then write('nichego netu')
Repeat
write('Регистрационный номер: ');writeln(Cur^.rnom);
write('Фамилия: ');write(Cur^.fam);
gotoxy(40,wherey); write('Год и Дата рождения: ');writeln(Cur^.date);
write('Имя: ');write(Cur^.name);
gotoxy(40,wherey);write('Домашний адрес: ');writeln(Cur^.adress);
write('Отчество: ');write(Cur^.otch);
gotoxy(40, wherey);write('Телефон: ');writeln(Cur^.tel);
write('Пол: ');write(Cur^.pol);
gotoxy(40,wherey);write('Должность: ');writeln(Cur^.dolg);
Страницы: 1, 2, 3