3.3. Інструкції з експлуатації для користувача
Для
роботи з розробленою програмою, користувач
повинен викликати файл 
course.exe. Після відкриття цього файлу, з’являється меню навігації(рис.3.1.), де користувач починає роботу с програмою.
Рис.3.1.Меню
навігації
Рис.3.2. Створення нового файлу
Для створення нового файлу користувач має натиснути «1» (рис.3.2). Потім користувач має ввести таку інформацію: прізвище, номер цеху, кваліфікацію робітника, кількість виробів категорій А,В,С. Після цього, якщо користувач завершив заповнення файлу, він повинен ввести «n» і
знову з’явиться меню навігації для подальшої роботи з файлом. Якщо ввести «y», то користувач знову має ввести зазначену вище інформацію, тобто продовжити заповнення файлу.
Для
перегляду створенного файлу, користувач
має натиснути «2» у меню навігації.
Програма запросить ввести назву файлу
і після правильного 
Рис.3.3.Зчитування інформації з файлу
вводу, користувач зможе переглянути усю информацію файла, як на прикладі(рис. 3.3).
Для того, щоб підрахувати середню заробітну плату усіх робітників, треба вибрати 3 пункт меню навігації.

Рис.3.4. Розрахунок середньої зарплати робітника

Рис.3.5. Пошук робітника за прізвищем
Для пошуку робітників за прізвищем або за кваліфікацією потрібно ввести «4». Програма запропонує користувачу приклади правильного вводу даних. У разі неправильного вводу даних програма знову виведе користувача на меню навігації.

Рис.3.6. Пошук робітника за кваліфікацією
ВИСНОВКИ
В ході курсового проекту був створений текстовий файл, що містить зведення про кількість виробів категорій А, В, С, зібраних робітником за місяць. Завдання виконано в повному обсязі. Створена програма є цільною та може використовуватися користувачами усіх рівнів володіння ПК. До програми розроблена інструкція.
Дана програма була написана на мові програмування Pascal.
Програму умовно можна поділити на чотири частини, тобто чотири алгоритми: алгоритм створення текстового файлу, алгоритм зчитування з файлу, алгоритм підрахунку середньої заробітної плати, алгоритм синтаксичного аналізатору. Для роботи процедур, що реалізують алгоритми був створений тип даних information який має шість полів: FN типу String, в якому буде зберігається прізвище користувача, Qualification типу String – кваліфікація робітника, Craft типу String – найменування/номер цеху, а також A, B та C типу Word – кількість виробів по категоріям.
Програма починає свою роботу з меню, яке складається з 5 пунктів: створення файлу, перегляд файлу, підрахунок зарплатні, пошук збирачів та вихід із програми. Надалі користувач, за допомогою інструкцій, поданих у розділі , працює з програмою.
СПИСОК ЛІТЕРАТУРИ
Методичні вказівки до виконання лабораторних робіт з дисципліни
„Інформатика та комп’ютерна техніка”. Розділ «Основи алгоритмізації та програмування мовою Pascal» / Укладачі: Є.М.Литвиненко, О.В.Мерлак, О.В. Леуненко – Харків: ХДТУБА, 2005.
Д. Прайс. Программирование на языке Паскаль. Практическое руководство. 1987 год.
М.А. Черкасов. Практический курс программирования на ПАСКАЛЕ. Уч. пособие. 2005 год.
Т.А. Павловская. Паскаль. Программирование на языке высокого уровня. Учебник. 2007 год.
Методичні вказівки до виконання курсової роботи з дисципліни
«Алгоритмізація та програмування» для студентів напряму підготовки
6.050101 «Комп’ютерні науки» / Укладачі: Є.М.Литвиненко, О.В. Мерлак, –Харків: ХНУБА, 2015.
ДОДАТОК А
Вихідний код програми
program Course;
Type Info = record
FullName : String;
Qualification : String;
Craft : String;
A,B,C : Word;
end;
Const Sa = 5;
Const Sb = 10;
Const Sc = 15;
Var ch :Byte;
f : text;
t : info;
n : String;
Procedure Create;
Var c : Char;
Begin
Write ('введите название файла: ');
ReadLn (n);
assign(f,n);
rewrite (f);
Repeat
WriteLn ('введите данные о собирателе');
WriteLn ('введите фамилию собирателя: ');
ReadLn (t.FullName);
WriteLn (f,t.FullName);
WriteLn ('Введите номер цеха: ');
ReadLn (t.Craft);
WriteLn (f,t.Craft);
WriteLn ('введите квалифицацию собирателя');
ReadLn (t.Qualification);
WriteLn (f,t.Qualification, ' ');
WriteLn ('введите количество изделий категории А');
ReadLn (t.A);
WriteLn (f, t.A);
WriteLn ('введите количество изделий категории B');
ReadLn (t.B);
WriteLn (f,t.B);
WriteLn ('введите количество изделий категории С');
ReadLn (t.C);
WriteLn (f,t.C);
Write ('вводить следующего собирателя (y/n)?: ');
ReadLn (c);
Until c='n';
reset(f);
Close (f);
End;
Procedure review;
Var t: Info;
n: String;
Begin
Write ('Введите название файла: ');
ReadLn (n);
Assign (F,n);
{$I-}
Reset (F);
while ioresult<>0 do begin
writeln;
writeln('Указаный файл не найден');
writeln;
write('Введите имя файла: ');
readln(n);
assign(f,n);
reset(f);
end;
{$I+}
writeLn;
WriteLn ('Фамилия',' ':8,'Квалификация',' ':11,'Номер цеха',' ':8,'A',' ':3,'B',' ':3,'C',' ':3);
While Not (Eof(F)) do
begin
ReadLn (f, t.FullName);
ReadLn (f,t.Craft);
ReadLn (f, t.Qualification);
ReadLn (f, t.A);
ReadLn (f, t.B);
ReadLn (f, t.C);
WriteLn;
WriteLn (t.FullName,' ':(15-Length(t.FullName)),t.Qualification,' ':(23-Length(t.Qualification)),t.Craft,' ':(18-Length(t.Craft)),t.A:1,' ',t.B:3,' ',t.C:3);
WriteLn;
end;
Close (f);
end;
Procedure SalarySR;
Var
Sal : Word;
Worker : Word;
Begin
write ('введите название файла: ');
ReadLn (n);
Assign (F,n);
{$I-}
Reset (F);
while ioresult<>0 do begin
writeln;
writeln('Указаный файл не найден');
writeln;
write('Введите имя файла: ');
readln(n);
assign(f, n);
reset(f);
end;
{$I+}
Sal:= 0;
Worker := 0;
While Not (Eof(F)) do
begin
ReadLn (f,t.FullName);
ReadLn (f,t.Craft);
ReadLn (f,t.Qualification,t.A, t.B, t.C);
Sal := Sal + (t.A*Sa) + (t.b *Sb)+ (t.c * Sc);
WriteLn;
Worker := Worker+1;
WriteLn;
end;
Close(F);
Write ('Средняя зарплата работника цеха: ');
WriteLn (Sal/Worker:5:2);
ReadLn;
End;
procedure poiskFN(n, FullName:string);
begin
assign(f,n);
reset(f);
while not (eof(f)) do
begin
ReadLn (f,t.FullName);
ReadLn (f,t.Craft);
ReadLn (f,t.Qualification);
ReadLn (f,t.A);
ReadLn (f,t.B);
ReadLn (f,t.C);
if t.FullName=FullName then
begin
WriteLn ('Фамилия',' ':8,'Квалификация',' ':11,'Номер цеха',' ':8,'A',' ':3,'B',' ':3,'C',' ':3);
WriteLn (t.FullName,' ':(15-Length(t.FullName)),t.Qualification,' ':(23-Length(t.Qualification)),t.Craft,' ':(18-Length(t.Craft)),t.A:1,' ',t.B:3,' ',t.C:3);
end;
end;
close(f);
end;
procedure poiskQualification(n, Qualification:string);
begin
assign(f,n);
reset(f);
while not (eof(f)) do
begin
ReadLn (f,t.FullName);
If t.Qualification=Qualification then
begin
ReadLn (f,t.Craft);
ReadLn (f,t.Qualification);
ReadLn (f,t.A);
ReadLn (f,t.B);
ReadLn (f,t.C);
WriteLn ('Фамилия',' ':8,'Квалификация',' ':11,'Номер цеха',' ':8,'A',' ':3,'B',' ':3,'C',' ':3);
WriteLn (t.FullName,' ':(15-Length(t.FullName)),t.Qualification,' ':(23-Length(t.Qualification)),t.Craft,' ':(18-Length(t.Craft)),t.A:1,' ',t.B:3,' ',t.C:3);
end;
end;
close(f);
end;
procedure analizator;
var s, Qualification, n, FullName:string;
p:integer;
begin
write('Введите название файла:');
readLn(n);
writeLn('Введите запрос:(например:"Фамилия=Иванов","Квалификация=Квалификация")');
readLn(s);
if pos('Фамилия=',s)<>0 then
begin
p:=pos('=',s);
FullName:=copy(s,p+1,length(s));
poiskFN(n,FullName);
end
else if pos('Квалификация=',s)<>0 then
begin
p:=pos('=',s);
Qualification:=copy(s,p+1,length(s));
poiskQualification(n,Qualification);
end;
end;
Begin
Repeat
WriteLn ('1 : Создание файла');
WriteLn ('2 : Просмотр файла');
WriteLn ('3 : Подсчет зарплаты');
WriteLn ('4 : Поиск сотрудников');
Writeln ('5 : Выход из программы');
Write ('Выберите пункт меню : ');
readLn(ch);
Case ch of
1: Create;
2: Review;
3: SalarySr;
4: Analizator;
5:;
else WriteLn ('Ошибка ввода');
end;
Until ch=5;
end.
