Волзький університет імені В. Н. Татіщева
Кафедра "Інформатика та системи управління"
Курсова робота
з дисципліни: "Алгоритмізація та мови програмування"
Тема: База даних "Співробітники"
Виконав: студент гр. ІС-104
Григор'єв А. В.
Викладач: Матвєєва Н.В.
Тольятті 2006
Зміст
Завдання, на основі якого виконується курсова робота
Опис предметної області
Опис алгоритму задачі
Додаток 1 (лістинг програми)
Додаток 2 (роздруківка структури бази даних)
Додаток 3 (роздруківка результатів рішення задачі за даними контрольного прикладу.)
1. Завдання, на основі якого виконується курсова робота
Співробітники
ОПИС
Програма повинна використовувати масив даних про співробітників невеликої фірми (до 10 співробітників). По кожному співробітнику вводиться наступна інформація:
Прізвище, ім'я, по батькові;
Рік та дата народження;
Пол;
Стаж роботи за фахом;
Домашня адреса;
Телефон;
Посада;
Оклад.
Інформація про співробітників фірми зберігається у файлі workers. Dat.
Програма містить наступні процедури і функції:
• Новий співробітник (призначена для введення даних про новому співробітнику та збереження її у файлі workers. Dat);
• Звільнити (видаляє інформацію про звільненого співробітника з масиву даних);
• Переглянути (дозволяє переглянути інформацію про співробітників в алфавітному порядку);
• Упорядкувати (впорядковує список співробітників в порядку зменшення величини окладу);
• Знайти (виводить на екран список співробітників, що працюють у зазначеній посаді, наприклад інженером).
У програмі дозволяється використовувати додаткові файли, щоб перевірити й пошук необхідної інформації про співробітника.
Вхід
Ім'я викликається процедури повинно викликати із списку пунктів меню за номером пункту.
Інформація про новому співробітнику вводиться в діалозі типу "Введіть прізвище співробітника:" і т.д.
Процедура Звільнити запитує введення прізвища І.О. звільнюваного співробітника.
Процедура Переглянути повинна чекати натискання "гарячої" клавіші переходу до інформації про чергове співробітника в списку.
Процедура Знайти запитує введення посади за вибором користувача.
ВИХІД
Процедура Переглянути по кожному натискання "гарячої" клавіші виводить повну інформацію про чергове співробітника з алфавітного списку.
Процедура Упорядкувати виводить на екран список з прізвища І.О. і окладів співробітників в порядку зменшення величини окладу.
Процедура Знайти виводить на екран список співробітників, що працюють у зазначеній посаді.
ПОМИЛКИ
Помилковий введення інформації, правильність якої комп'ютер в змозі перевірити, повинен призводити до відмови від неправильного вводу з виходом на повторне введення цієї ж інформації.
2. Опис предметної області
В даний час з'являється багато нових маленьких і великих фірм і підприємств для реєстрації та зберігання даних про службовців фірми або підприємства необхідно мати спеціальну програму для того, щоб спростити роботу відділу кадрів даного підприємства або фірми.
Моя програма спеціально розроблена для таких фірм і підприємств. Аналогові програми коштують досить дорого. Моя ж програма коштує набагато дешевше і легко доступна для будь-якого користувача.
Моя програма хороша тим, що вона легка в обігу невеликих розмірів і має все необхідне для реєстрування службовця. Цією програмою може користуватися навіть людина, яка не разу не сідел за комп'ютером, достатньо лише прочитати інструкцію (опис алгоритму задачі). Програміст, який надалі буде обслуговувати мою програму, для того щоб розібратися в програмі, потрібно прочитати "опис алгоритму задачі".
3. Опис алгоритму задачі
Для користувача даної програми:
Щоб запустити програму, потрібно увійти в файл 1 - kyrs. Exe, або увійти в файл 1 - kyrs. Pas і натиснути у ній клавіші "Ctrl + F 9" .
Програма виглядає як меню, що складається з безлічі пунктів. За меню можна пересуватися з допомогою клавіш "стрілка вниз" і "стрілка вгору", вийти з меню можна за допомогою натискання клавіші "Esc" або натиснути пункт меню "Вихід". Вхід в пункти меню відбувається при натисканні клавіші "Enter". При вході в який або пункт меню, за програмою викликається відповідна процедура.
При вході в програму дані, що зберігаються у файлі, автоматично відкриваються. Для того, щоб звільнити якого ні будь службовця, необхідно увійти в пункт меню «Звільнити працівника». При виході з програми, дані автоматично зберігаються.
Для того щоб ввести інформацію про новий службовця необхідно увійти в пункт меню "Новий співробітник" і ввести інформацію про новий співробітника.
ПІБ - може складатися не більше ніж з 60 символів.
Дата народження - не більше 15 символів.
Пол - підлога писати повністю
Стаж роботи - в роках.
Адреса - 30 символів.
Телефон - писати без тире.
Посада - 20 символів.
Розмір окладу - необмежене число.
У випадку якщо що-небудь було введено неправильно відбудеться вихід з програми, з втратою всіх незбережених даних.
"Переглянути список" - виводить список усіх співробітників в алфавітному порядку, після виведення кожного співробітника потрібно натиснути клавішу "Enter".
"Знайти співробітника" - Шукає службовця по введеної посади
"Звільнити працівника" - стирає службовця по введеному реєстраційним номером та П.І.Б.
"Очистити базу" - видаляє всіх співробітників
Примітка:
У програмі є підказки з правого боку екрану.
Для програміста:
Програма складається з безлічі процедур, які викликаються з пунктів меню.
Користувальницькі типи:
worker - тип динамічної пам'яті типу base;
base - тип - запис (інформація про співробітників);
sotrud - для роботи з файлами типу base.
Використовувані процедури:
Punct 1 - за цією процедурою здійснюється занесення службовця у файл.
Punkt 3 - виведення списку в алфавітному порядку. Сортування відбувається по полю "fam";
Punkt 4 - за цією процедурою виробляється сортування списку за величиною окладу.
Punkt 5 - виводить службовця з зазначеної посади. Вводиться потрібна посада і при обході списку відбувається порівняння по полю "dolg" і висновок цього запису;
Punkt 2 - видалення запису зі списку (видалення відбувається по введеному користувачем реєстраційним номером та П.І.Б.);
Punkt 0 - у цій процедурі відбувається перезапис файлу і обнулення односвязного списку.
Додаток 1
Лістинг програми
program kursovaia;
uses crt;
const norm = $ 74; {колір НЕ виділеного пункту}
norm1 = $ 8;
sel = $ 31; {колір виділеного пункту}
sel1 = $ 15;
type
{------------------- Опис запису ----------------}
Worker = ^ base;
base = record
rnom: integer; {РЕЄСТРАЦІЙНИЙ НОМЕР}
fam: string [20]; {ПРІЗВИЩЕ}
name: string [20]; {ІМ'Я}
otch: string [20]; {БАТЬКОВІ}
date: string [20]; {ДАТА НАРОДЖЕННЯ}
pol: string [20]; {ПОЛ}
stag: integer; {СТАЖ РОБОТИ}
adress: string [30]; {ДОМАШНІЙ АДРЕСА}
tel: integer; {ТЕЛЕФОН}
dolg: string [20]; {ПОСАДУ}
oklad: integer; {ОКЛАД}
link: worker;
{------------------------------------------------- -}
end;
var
Top, Cur, Next, Prev: Worker;
menu: array [1 .. 11] of string [50]; {Меню}
punkt: integer; {}
ch, cc: char; {Введений символ}
sotrud: file of base;
buf, buf1: base; {Два буфер обміну}
k, m: char;
p, n, x, y, i: integer; {}
Procedure FileToDin; {З файлу в динам. пам'ять}
begin
top: = nil;
Assign (sotrud, 'sotrudn.dat');
{$ I-}
Reset (sotrud);
If IOResult <> 0 then
begin
rewrite (sotrud);
end
{$ I +}
else
if filesize (sotrud) <> 0 then
repeat
New (Cur);
Read (sotrud, Cur ^);
Cur ^. Link: = Top;
Top: = Cur;
until eof (sotrud);
close (sotrud);
end;
Procedure DinToFile; {З дин. пам'яті в файл}
begin
If Top <> nil then
begin
Assign (sotrud, 'sotrudn.dat');
Rewrite (sotrud);
Cur: = Top;
repeat
Write (sotrud, Cur ^);
Cur: = Cur ^. Link;
until Cur = nil;
close (sotrud);
end;
end;
Procedure Menus; {висновок меню на екран}
var
i: integer;
begin
clrscr;
gotoxy (28, wherey); writeln ('**************************');
gotoxy (28, wherey); writeln ('БАЗА ДАНИХ ПО ПРАЦІВНИКАМ');
gotoxy (28, wherey); writeln ('**************************');
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;
end;
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;
end;
With Next ^ do begin
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;
end;
With Cur ^ do begin
rnom: = rnom1;
fam: = fam1;
name: = name1;
otch: = otch1;
pol: = pol1;
stag: = stag1;
adress: = Adress1;
tel: = tel1;
dolg: = dolg1;
oklad: = oklad1;
end;
end;
procedure Sortirovka; {Сортування по алфавітом}
begin
Cur: = Top;
While Cur <> nil do
begin
Next: = Cur ^. Link;
while next <> nil do
begin
if ord (Next ^. fam [1]) <ord (Cur ^. fam [1]) then
ForSort;
Next: = Next ^. Link;
end;
cur: = cur ^. link;
end;
end;
procedure Uporyad; {Сортровка по окладу}
begin
Cur: = Top;
While Cur <> nil do
begin
Next: = Cur ^. Link;
while next <> nil do
begin
if ord (Next ^. Oklad)> ord (Cur ^. Oklad) then
ForSort;
Next: = Next ^. Link;
end;
cur: = cur ^. link;
end;
end;
procedure Position (pos: integer);
var i: integer;
begin
Cur: = Top;
For i: = 1 to pos do
if i <> pos then Cur: = Cur ^. link;
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
************************************************** ***********
список закінчено