на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
База данных "Сотрудники"
p align="left">end;

procedure punkt0; {Очистка базы}

var cc,k,ch:char; i:integer;

key:char;

begin

assign(sotrud,'sotrudn.dat');

cc:=chr(13);

{cc:=readkey;}

if cc=chr(13) then

begin

gotoxy(25,10);

writeln('Вы уверены,что хотите удалить базу????');

gotoxy(25,11);

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

key:=readkey;

if key=chr(13) then

begin

gotoxy(11,4);

write('0%');

gotoxy(63,4);

write('100%');

gotoxy(13,4);

for i:=1 to 20 do

begin

write('=');

delay(500);

end;

for i:=21 to 34 do

begin

write('=');

delay(1300);

end;

for i:=35 to 50 do

begin

write('=');

delay(200);

end;

rewrite(sotrud);

gotoxy(32,18);

write('База очищена');

gotoxy(32,19);

write('Нажмите клавишу Esc');

end;

end;

end;

procedure punkt1; {Новый сотрудник}

var k,ch:char;

begin

clrscr;

gotoxy(12,wherey);writeln('*************************************');

gotoxy(12,wherey);writeln('Добавьте в базу информацию о новом сотруднике - "Enter"');

gotoxy(12,wherey);writeln('*************************************');

ch:=readkey;

if ch<>chr(27) then

begin

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;

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

write(menu[punkt]);

textattr:= norm;

end;

chr(72) : { стрелка вверх }

if (punkt<=n) and not(punkt<p) then begin

if punkt=8 then begin

gotoxy(x,y+punkt-1);

write(menu[punkt]);

textattr:= norm;

end;

if punkt=8 then punkt:=11;

gotoxy(x,y+punkt-1);

write(menu[punkt]);

punkt:=punkt-1;

textattr:=sel;

gotoxy(x,y+punkt-1);

write(menu[punkt]);

textattr:= norm;

end;

end; {case : of }

end

else

if ch=chr(13) then {нажата клавиша <Enter>}

begin

case punkt of

8 : punkt0 ;

9 : ch:=chr(27) ;

10 : exit ; {выход}

end;

End;

until ch= chr(27) ; {27 - код <Esc>}

{clrscr;}

punkt:=1; x:=30; y:=5; textattr:=norm;

n:=6; p:=1;

Menus;

filetodin;

repeat

ch:=ReadKey;

if ch=chr(0) then

begin

ch:=ReadKey;

case ch of

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

if punkt<=n+1 then begin

if punkt=6 then begin

gotoxy(x,y+punkt-1);

write(menu[punkt]);

textattr:= norm;

end;

if punkt=6 then punkt:=0;

gotoxy(x,y+punkt-1);

write(menu[punkt]);

punkt:=punkt+1;

textattr:=sel;

gotoxy(x,y+punkt-1);

write(menu[punkt]);

textattr:= norm;

end;

chr(72) : { стрелка вверх }

if (punkt<=n) and not(punkt<1) then begin

if punkt=1 then begin

gotoxy(x,y+punkt-1);

write(menu[punkt]);

textattr:= norm;

end;

if punkt=1 then punkt:=7;

gotoxy(x,y+punkt-1);

write(menu[punkt]);

punkt:=punkt-1;

textattr:=sel;

gotoxy(x,y+punkt-1);

write(menu[punkt]);

textattr:= norm;

end;

end; {case : of }

end

else

if ch=chr(13) then {нажата клавиша <Enter>}

begin

case punkt of

1 : punkt1 ;

2 : punkt2 ;

3 : punkt3 ;

4 : punkt4 ;

5 : punkt5 ;

6 : ch:=chr(27) ; {выход}

end;

Menus;

End;

until ch= chr(27) ; {27 - код <Esc>}

{clrscr;}

dintofile;

End.

Приложение 2

Распечатка структуры базы даны

**********************

Список сотрудников

**********************

Регистрационный номер: 2

Фамилия: Бояршина Год и Дата рождения: 2.06.85

Имя: Елена Домашний адрес: Гая

Отчество: Александровна Телефон: 28666

Пол: ж Должность: Уборщица

Стаж работы: 5 Оклад: 2000

*************************************************************

Регистрационный номер: 6

Фамилия: Герасимов Год и Дата рождения: 21.12.80

Имя: Евгений Домашний адрес: Ворошилова 34-34

Отчество: Алексеивич Телефон: -23077

Пол: м Должность: Секретарь

Стаж работы: 3 Оклад: 4000

*************************************************************

Регистрационный номер: 3

Фамилия: Григорьев Год и Дата рождения: 10.07.85

Имя: Александр Домашний адрес: Голосова 103-108

Отчество: Владимирович Телефон: 2632

Пол: м Должность: Директор

Стаж работы: 4 Оклад: 30000

*************************************************************

Регистрационный номер: 4

Фамилия: Матросов Год и Дата рождения: 16.07.85

Имя: Игорь Домашний адрес: Голосова 102-102

Отчество: Витальевич Телефон: 2027

Пол: м Должность: Бухгалтер

Стаж работы: 2 Оклад: 6000

*************************************************************

Регистрационный номер: 1

Фамилия: Прохоров Год и Дата рождения: 23.11.80

Имя: Виктор Домашний адрес: Баныкина

Отчество: Сергеевич Телефон: -856

Пол: м Должность: Охранник

Стаж работы: 3 Оклад: 5500

*************************************************************

Регистрационный номер: 5

Фамилия: Ромашенко Год и Дата рождения: 12.05.80

Имя: Владимир Домашний адрес: Баныкина

Отчество: Владимирович Телефон: -4124

Пол: м Должность: Мэнеджер

Стаж работы: 5 Оклад: 10000

*************************************************************

список окончен

Приложение 3

Распечатку результатов решения задачи по данным контрольного примера

Уволен служащий с ФИО - Матросов Игорь Витальевич

Принят на работу новый сотрудник с ФИО - Сурьянинова Алена

Структура база данных выглядит следующим образом:

**********************

Список сотрудников

**********************

Регистрационный номер: 2

Фамилия: Бояршина Год и Дата рождения: 2.06.85

Имя: Елена Домашний адрес: Гая

Отчество: Александровна Телефон: 28666

Пол: ж Должность: Уборщица

Стаж работы: 5 Оклад: 2000

*************************************************************

Регистрационный номер: 6

Фамилия: Герасимов Год и Дата рождения: 21.12.80

Имя: Евгений Домашний адрес: Ворошилова 34-34

Отчество: Алексеивич Телефон: -23077

Пол: м Должность: Секретарь

Стаж работы: 3 Оклад: 4000

*************************************************************

Регистрационный номер: 3

Фамилия: Григорьев Год и Дата рождения: 10.07.85

Имя: Александр Домашний адрес: Голосова 103-108

Отчество: Владимирович Телефон: 2632

Пол: м Должность: Директор

Стаж работы: 4 Оклад: 30000

*************************************************************

Регистрационный номер: 1

Фамилия: Прохоров Год и Дата рождения: 23.11.80

Имя: Виктор Домашний адрес: Баныкина

Отчество: Сергеевич Телефон: -856

Пол: м Должность: Охранник

Стаж работы: 3 Оклад: 5500

*************************************************************

Регистрационный номер: 5

Фамилия: Ромашенко Год и Дата рождения: 12.05.80

Имя: Владимир Домашний адрес: Баныкина

Отчество: Владимирович Телефон: -4124

Пол: м Должность: Мэнеджер

Стаж работы: 5 Оклад: 10000

*************************************************************

Регистрационный номер: 7

Фамилия: Сурьянинова Год и Дата рождения: 12.05.80

Имя: Алёна Домашний адрес: Революционная

Отчество: Александровна Телефон: 16676

Пол: ж Должность: Секретарь

Стаж работы: 10 Оклад: 5000

*************************************************************

список окончен

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.