База данных "Сотрудники"
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
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);