База данных "Сотрудники"

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

readln(Cur^.stag);

write(Домашний адрес: );

readln(Cur^.adress);

write(Телефон: );

readln(Cur^.tel);

write(Должность: );

readln(Cur^.dolg);

write(Оклад: );

readln(Cur^.oklad);

 

Cur^.link:=Top;

Top:=Cur;

end;

end;

 

procedure Punkt2; {Уволить}

var

rnom1:integer;

fam1,name1, otch1:string[20];

pos,f:integer;

key:char;

begin

clrscr;

writeln( *******************************************);

writeln( Будите удалять сотрудика из базы - "Enter");

writeln( *******************************************);

ch:=readkey;

if ch=chr(13) then

begin

clrscr;

if top=nil then begin

writeln(База пуста);

readln;

end

else

BEGIN

writeln( **********************);

writeln( Увольнение сотрудника);

writeln( **********************);

writeln(Пожалуйста введите);

Writeln(Регистрационный номер увольняемого );readln(rnom1);

writeln(Фамилия увольняемого: );readln(fam1);

writeln(Имя увольняемого: );readln(name1);

writeln(Отчество увольняемого: );readln(otch1);

Cur:=Top;

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

begin

writeln(Вы действительно хотите удалить данного сотрудника);

 

Writeln(Enter-ДА, Esc-НЕТ);

key:=readkey;

if key=chr(13) then

begin

if Cur^.link=nil then begin dispose(Cur); f:=1; end

else

If Cur=Top then begin

If Top^.link<>nil then

begin

Top:=Top^.link;

dispose(Cur);

f:=1;

end;

end

else

begin

Position(pos-1);

Prev:=Cur;

Cur:=Cur^.link;

Next:=Cur^.link;

Prev^.link:=Next;

Dispose(Cur);

f:=1;

end;

 

writeln(Сотрудник ,fam1, ,name1, ,otch1, уволен );

readkey;

end;

end;

Cur:=Cur^.link;

pos:=pos+1;

if (cur=nil) and (f=0) then

begin

WriteLn(Искомый сотрудник не числется.);

writeln(Возможно имя или фамилия были введены с маленькой буквы);

Write(Для продолжения нажмите любую клавишу.);

readkey;

break;

end;

until f=1;

end;

END;

 

end;

 

procedure Punkt3; {Просмотр}

var ch:char;

begin

clrscr;

sortirovka;

writeln( **********************);

writeln( Список сотрудников);

writeln( **********************);

Cur:=Top;

if top=nil then write(nichego netu)

else

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);

write(Стаж работы: );write(Cur^.stag);

gotoxy(40,wherey);write(Оклад: );writeln(Cur^.oklad);

writeLn(**********************************************);writeln;

Cur:=Cur^.link;

ch:=ReadKey;

if ch<>chr(13) then break;

if cur=nil then

begin

Write(список окончен);

readkey;

break;

end;

until (Cur=nil) or (ch<>chr(13));

end;

 

procedure Punkt4; {Упорядочить}

var ch:char;

begin

clrscr;

Uporyad;

writeln( **********************);

writeln( Список сотрудников);

writeln( **********************);

Cur:=Top;

if top=nil then write(Файл пуст)

else

Repeat

write(Регистрационный номер: );writeln(Cur^.rnom);

write(Фамилия: );write(Cur^.fam);

gotoxy(40,wherey); write(Имя: );writeln(Cur^.name);

write(Отчество: );write(Cur^.otch);

gotoxy(40,wherey);write(Оклад: );writeln(Cur^.oklad);

writeLn(**********************************************);writeln;

Cur:=Cur^.link;

ch:=ReadKey;

if ch<>chr(13) then break;

if cur=nil then

begin

Write(список окончен);

readkey;

break;

end;

until (Cur=nil) or (ch<>chr(13));

end;

 

Procedure Punkt5; {Поиск сотрудника}

var

dol:String[10];

sch,kol:integer;

search:boolean;

sotr:array[1..10] of base;

begin

clrscr;

gotoxy(33,wherey); writeln(****************);

gotoxy(33,wherey); writeln(Поиск сотрудника);

gotoxy(33,wherey); writeln(****************);

write(Введите должность сотрудника: );readln(dol);

clrscr;

gotoxy(30,wherey); writeln(********************);

gotoxy(30,wherey); writeln(Найденные сотрудники);

gotoxy(30,wherey); writeln(********************);

Sch:=0;

I:=0;

Search:=false;

Cur:=Top;

While Cur<>nil do

begin

If Cur^.Dolg = dol then begin

i:=i+1;

sotr[i]:=Cur^;

Sch:=Sch+1;

search:=true;

end;

Cur:=Cur^.link;

if (search=false) and (Cur=nil) then

begin

Write(Искомых сотрудников нет в базе.);

writeln(Возможно должность введена с маленькой буквы);

end;

end;

If Search=true then

begin

WriteLn(Искомая должность: ,dol);

WriteLn();

For i:=1 to Sch do

begin

write(Регистрационный номер: );writeln(Sotr[i].rnom);

write(Фамилия: );write(Sotr[i].fam);

gotoxy(40,wherey); write(Год и Дата рождения: );writeln(Sotr[i].date);

write(Имя: );write(Sotr[i].name);

gotoxy(40,wherey);write(Домашний адрес: );writeln(Sotr[i].adress);

write(Отчество: );write(Sotr[i].otch);

gotoxy(40, wherey);write(Телефон: );writeln(Sotr[i].tel);

write(Пол: );write(Sotr[i].pol);

gotoxy(40,wherey);write(Должность: );writeln(Sotr[i].dolg);

write(Стаж работы: );write(Sotr[i].stag);

gotoxy(40,wherey);write(Оклад: );writeln(Sotr[i].oklad);

writeLn(***************************************************);

 

ch:=ReadKey;

if ch<>chr(13) then break;

end;

end;

 

readkey;

end;

 

Begin

clrscr;

gotoxy(28,wherey);writeln(**************************);

gotoxy(28,wherey);writeln(БАЗА ДАННЫХ ПО СОТРУДНИКАМ);

gotoxy(28,wherey);writeln(**************************);

Top:=nil;

menu[1]:=1. НОВЫЙ СОТРУДНИК;

menu[2]:=2. УВОЛИТЬ СОТРУДНИКА;

menu[3]:=3. ПРОСМОТРЕТЬ СПИСОК;

menu[4]:=4. УПОРЯДОЧИТЬ СПИСОК;

menu[5]:=5. НАЙТИ СОТРУДНИКА;

menu[6]:=6. ВЫХОД;

menu[8]:= 1. Очистить базу ;

menu[9]:= 2. Продолжить базу;

menu[10]:=3. ВЫХОД;

menu[11]:=;

punkt:=8; x:=30; y:=-2; textattr:=norm;

n:=10; p:=8;

Menus;

repeat

ch:=ReadKey;

if ch=chr(0) then

begin

ch:=ReadKey;

case ch of

chr(80) : { стрелка вниз }

if punkt<=n+1 then begin

if punkt=10 then begin

gotoxy(x,y+punkt-1);

write(menu[punkt]);

textattr:= norm;

end;

if punkt=10 then punkt:=7;

gotoxy(x,y+punkt-1);

write(menu[punkt]);

punkt:=punkt+1;

textattr:=sel;

gotoxy(x,y+punkt-1);