Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovaya.docx
Скачиваний:
13
Добавлен:
24.02.2016
Размер:
375.91 Кб
Скачать

3.2 Опис програми

Програма була написана мовою програмування Pascal. Його стандартні можливості повністю дозволяють організувати роботу з текстовими файлами і виконати всі вимоги технічного завдання.

Розроблена програма має наступні процедури:

1)процедуру створення текстового файлу

2)процедуру зчитування з текстового файлу

3)процедуру підрахунку середньої зарплатні

4)процедури пошуку за прізвищем

5) процедури пошуку за кваліфікацією

6)синтаксичний аналізатор.

Для процедур була створена змінна info, тип даних якої record, яка має такі поля: FullName типу String, яке вміщує прізвище користувача, Qualification типу String – кваліфікація робітника, Craft типу String – найменування/номер цеху, а також A, B та C типу Word – кількість виробів по категоріям.

При запуску програми, перше, що бачить користувач - меню, яке складається з 5 пунктів: створення файлу, перегляд файлу, підрахунок зарплатні, пошук робітників(за прізвищем та кваліфікацією) та вихід із програми.

Для того, щоб створити файл і додати до нього інформацію була створена процедура Create(її алгоритм представлений на рис.2.1 у Розділі ІІ). З початку процедури користувач вводить з клавіатури ім’я нового файлу. Якщо такого файлу не існує, він створюється, якщо файл існував попередня інформація повністю стирається. Після цього користувач має ввести прізвища робітників(робітника), кваліфікацію, номер цеху та кількість виробів по категоріям. За бажанням користувача, цикл введення інформації повторюється кілька разів. Після закінчення файл закривається і процедура закінчує свою роботу.

Для того, щоб зчитати інформацію з файлу, була створена процедура Review(її алгоритм представлений на рис.2.2 у Розділі ІІ). Початковими даними цієї процедури є файлова змінна, яка зв’язується з файлом, ім’я якого задає користувач. З початку перевіряється наявність файлу. Далі процедура построково зчитує інформацію із файлу і виводить її до таблиці. Після досягнення кінця файлу процедура закриває його і завершує свою роботу.

Для реалізації алгоритму підрахунку середньої заробітної платні робітника була створена процедура SalarySR (рис.2.3 у Розділі ІІ). Початковими даними цієї процедури є файлова змінна, яка зв’язується з файлом, ім’я якого задає користувач та кількість виробів, які потрібно порахувати. Процедура зчитує дані з файлу, після чого підраховується середня заробітна платня робітників та ділиться на їх кількість. Після чого виводиться середня заробітна платня працівників чи працівника цеху.

Для пошуку робітника за прізвищем виконується алгоритм на рис.2.4 у Розділі ІІ, який описує процедуру poiskFN. Цей алгоритм починає роботу з вводу прізвища робітника , і якщо цей файл з інформацією про цього робітника існує, тоді відкриває його для зчитування, а в іншому випадку виводить користувача в головне меню. Якщо на наступному кроці робітник знайдений за прізвищем, тоді виводиться інформація про нього. Якщо пошук за прізвищем не приніс бажаного результату, тоді користувач знову повертається до головного меню.

Аналогічно до пошуку робітника за прізвищем, виконується пошук за кваліфікацією(рис.2.5 у Розділі ІІ). Цей алгоритм описує процедуру poiskQualification.

Для реалізації алгоритму синтаксичного аналізу(рис.2.6 у Розділі ІІ) була створена процедура Analizator. Початковими даними якої є файлова змінна, яка зв’язується з файлом, ім’я якої задає користувач, і запит на пошук. Зпочатку перевіряється наявність файлу, якщо його не існує, пропонується ввести інше ім'я. Відразу з вводом прізвища чи кваліфікації, пропонується приклад правильного вводу даних. Далі за допомогою функції пошуку підстроки pos, вихідний запит аналізується на наявність ключових слів "фамилия" або "квалификация". Якщо користувач неправильно ввів прізвище чи кваліфікацію, тоді буде запропоновано ще раз вибрати пункт меню. Після досягнення кінця файлу процедура закриває його і закінчує свою роботу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]