Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа. Матвиенко. Вариантk 018__.doc
Скачиваний:
11
Добавлен:
30.05.2020
Размер:
820.22 Кб
Скачать

1 Постановка задачі

Практичне завдання

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

Написати програму, що видає наступну інформацію:

– список роботодавців та середню заробітну плату за професією Х;

– список професій, що мають попит у порядку зростання кількості робочих місць, що пропонується;

– список роботодавців за спеціальностями, що пропонуються, та відповідна кількість робочих місць;

– за заробітною платою вивести пропозиції про працевлаштування.

Вимоги до програми

Створення та обробка бази даних здійснюється шляхом вибору відповідного пункту меню.

Основні пункти меню програми:

– створення файлу записів;

– додавання інформації у файл;

– внесення змін у запис за запитом;

– видалення запису;

– виведення вмісту файлу даних у вигляді таблиці.

Обробка файлу (створення, додавання, видалення, редагування і т.д.) повинна здійснюватися за допомогою процедур та функцій.

Введення даних повинно відбуватися з перевіркою на область допустимих значень.

Всі процедури та функції повинні бути розміщенні у відповідних модулях.

Фай повинен містити не менше 10 записів.

2 Алгоритм розробки програми

  1. Створюємо файл з програмою.

  2. В файлі з програмою потрібно оголосити бібліотеки, які будуть потрібні для роботи з файлом.

  3. Оголосити глобальні величини.

    1. Створити структуру, яка відповідає одному запису в базі.

    2. Оголосити глобальну змінну Strochka, Baza та вказівник файлу (який буде вказаний пізніше в підпрограмах).

    3. Оголосити глобальну змінну Baza

    4. Оголосити глобальну змінну вказівник файлу (який буде вказаний пізніше в підпрограмах).

  4. Оголосити підпрограми (процедури).

    1. Оголосити основні підпрограмами (ті, котрі викликаються з основної програми).

    2. Оголосити допоміжні підпрограми (ті, котрі будуть визиватися основними підпрограмами).

  5. Створити тіло основної програми.

    1. Здійснюємо збільшення розмірів екрану спеціальними функціями в текстовому режимі (для того, щоб поміщалася таблиця бази даних програми). Оголошується змінна для номера вибраного пункту меню.

    2. Викликається програма заставки в графічному режимі.

    3. Забезпечити вивід на екран меню.

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

    5. Після вибору запустити процедури підпрограми вибраного пункту меню.

  6. Створити підпрограму, яка забезпечить виконання першого пункту меню (Створення та заповнення нової бази даних) .

    1. Створити та відкрити файл бази даних baza.dat.

    1. Перевірка створення файлу, тобто якщо створення бази даних неможливе (наприклад треба зберегти файл на диск, на який просто так не збережеш, тому що потрібні спеціальні програми для прожогу диску, або ж пам'ять заповнена) і т.д.

    2. Організовуємо цикл вводу даних та їх запису в файл.

      1. Визиваємо підпрограму VvodStrockiSEkrana, яка займається вводом даних про пропозицію працевлаштування і перевіряє введені данні .

      2. Потім записуємо введені дані із структури Strochka у відкритий попередньо файл (кожне поле на окремому рядку).

      3. Даємо можливість завершити бази по натисканню клавіші ESC.

    3. Закрити файл бази даних.

    4. По бажанню відступити місце перед подальшим виводом меню.

  1. Другим пунктом є додавання запису в уже існуючу базу даних.

    1. Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.

    2. Відкрити файл бази даних (для читання).

    3. Перевірити, «чи відкрився» файл. Якщо не відкрився, виводиться повідомлення «Виникла помилка. Редагування неможливе…», якщо ж файл відкрився створюється читання з файлу, поки він не закінчиться, одночасно зчитую їх кількість.

    4. Потім робиться підрахування номеру по всій базі даних (для комфорту).

    5. Закриваємо відкритий для читання файл.

    6. Відкриваємо файл бази даних для допису в кінець бази.

    7. Відкриваємо цикл для дописування в базу.

      1. Підраховуємо номер введеного запису (підраховуючи з почотку цього вводу, а потім й усієї бази).

      2. Визиваємо підпрограму для однієї пропозиції про працевлаштування.

      3. Записати введені дані з структури Strochka у відкритий файл (кожен пункт на окремому рядочку).

      4. Дати можливість закінчити заповнення бази через натискання ESC.

    8. Закрити файл бази даних та зробити відступ перед виводом меню.

  2. Третім пунктом є зміна запису у базі даних.

    1. З початку треба оголосити змінні, які потрібні для функціонування підпрограми.

    2. Визиваємо функцію ChtenieMassivaIzFayla, яка копіює із файлу існуючу базу даних в масив у оперативній пам’яті комп’ютера та підраховує кількість структур.

    3. Потім за бажанням користувача виводиться таблиця для комфорту (щоб подивитися, які дані потрібно змінювати).

    4. Створюємо цикл зміни запису в базі, яка знаходиться в оперативній памяті комп’ютера.

      1. Вводиться відповідний напис номеру зміни рядочка за допомогою циклу та з перевіркою на введення тільки символів-цифр, щоб нумерація рядочка не виходила за межі бази даних.

      2. Визиваємо підпрограму VvodStrockiSEkrana, котра вводить нові дані в глобальну структуру Strochka (з перевіркою вводу).

      3. Потім іде процес копіювання із структури у потрібний елемент масиву.

      4. Надаємо користувачу можливість закінчити заповнення бази даних за натисканням клавіші ESC, та записуємо оновлений масив у файл.

    5. Визиваємо підпрограму ZapisMassivaVFayl, котра перезаписує змінену базу з масиву в файл.

  3. Четвертим пунктом мого інтерфейсного меню є видалення запису з бази даних.

    1. Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.

    2. Визиваємо функцію ChtenieMassivaIzFayla, яка копіює існуючу базу даних з файлу в масив у пам’яті комп’ютера та підраховує кількість структур.

    3. Потім, по бажанню, виводиться таблиця перед видаленням.

    4. Відкриваємо цикл видалення записів.

      1. Потім за допомогою циклу перевіряємо, чи не порожня база. Якщо ж вона порожня, то виводиться на екран напис «База повністю пуста».

      2. Інакше ж, вводимо напис, який рядочок потрібно видалити. Робимо перевірку на введення тільки символів-цифр та щоб нумерація рядочка не виходила за межі бази даних.

      3. Всі елементи масиву база зсуваємо на один елемент вверх.

      4. Надаємо можливість користувачу закінчити заповнення бази даних за натисканням клавіші ESC, та записуємо оновлений масив у файл.

    5. Визиваємо підпрограму ZapisMassivaVFayl, котра перезаписує змінену базу з масива у файл.

  4. П’ятим пунктом меню програми є вивід бази даних на екран.

    1. Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.

    2. Малюємо, відтабульовуємо та підганяємо приблизно таблицю, так би мовити робимо гарний інтерфейс, для зручності користування, редагування та видалення.

    3. Визиваємо функцію ChtenieMassivaIzFayla, яка копіює з файлу в масив у пам’яті комп’ютера існуючу базу даних та підраховує кількість структур.

    4. За допомогою циклу з заданою кількістю кроків виводимо елементи глобального масиву бази на екран, продовжуючи розчерчувати таблицю на екрані.

    5. Виводимо напис «Для продовження натисніть будь-яку клавішу» та відступаємо місце пере роботою з наступним пунктом меню.

  5. Шостий пункт меню називається «Вивід списку роботодавців та середньої зарплати по професії»

    1. Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.

    2. Визиваємо функцію ChtenieMassivaIzFayla, яка копіює з файлу в масив у пам’яті комп’ютера існуючу базу даних та підраховує кількість структур.

    3. Відкриваємо цикл для обробки бази за заданими професіями.

      1. Просимо користувача ввести назву професії, по котрій потрібно буде робити перевірку.

      2. Робимо перевірку на співпадання введеної професії з вмістом відповідного поля бази даних.

      3. Якщо професії співпали, то виводимо на екран поля роботодавця та середньої зарплати даного масиву.

      4. Передбачаємо перевірку на відсутність в базі вказаної користувачем професії.

      5. Даємо можливість користувачу закінчити роботу з базою даних за натисканням клавіші ESC.

  6. Наступним, сьомим пунктом меню, є вивід списку професій у порядку зростання робочих місць.

    1. Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.

    2. За допомогою спеціальної функції Sortirovka сортуємо базу по професії.

    3. За допомогою допоміжної бази Spisok копіюємо з основної бази Baza елементи з неспівпадаючими професіями, якщо прфесії співпали, замість копіювання робимо додавання по полю KolRabMest.

    4. Сортуємо допоміжну базу Spisok за кількістю робочих місць.

    5. Малюємо, відтабульовуємо та підганяємо приблизно таблицю, робимо гарний інтерфейс, для зручності користування.

    6. Даємо можливість користувачу перейти до наступного пункту меню натисканням будь-якої клавіші.

  7. Восьмим пунктом меню є виведення списку роботодавців та кількості робочих місць за спеціальностями.

    1. Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.

    2. Визиваємо функцію ChtenieMassivaIzFayla, яка копіює з файлу в масив у пам’яті комп’ютера існуючу базу даних та підраховує кількість структур.

    3. Визиваємо підпрограму Sortirovka, котра сортує базу по професіям.

    4. Малюємо, відтабульовуємо та підганяємо приблизно таблицю, робимо гарний інтерфейс, для зручності користування.

    5. Робимо умовне затирання повторюваної професії.

  8. Дев’ятий пункт меню – виведення пропозицій про працевлаштування по заробітній платі.

    1. Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.

    2. Визиваємо функцію ChtenieMassivaIzFayla.

    3. Визиваємо функцію Sortirovka, котра сортує масив Baza по заробітній платі.

    4. Малюємо, відтабульовуємо та підганяємо приблизно таблицю, робимо гарний інтерфейс, для зручності користування.

    5. Виводимо на екран масив умовно затираючи повторювані професії.

  9. Далі йде процедура під назвою Nachalo, яка по завданню виводить в графічному режимі початкову заставку.

    1. Відкриваємо графічне вікно з заданими розмірами.

    2. Встановлюємо колір тексту та фону.

    3. Виводимо на екран ім’я, прізвище та варіант завдання.

    4. Виводимо надпис: «Для продовження натисніть Enter…» та передбачаємо її обробку.

  10. Далі іде процедура під назвою Vihod, яку в завданні треба було вивести в графічному режимі.

    1. Відкриваємо вікно з заданими розмірами.

    2. Встановлюємо колір тексту та фону.

    3. Виводимо напис: : «Кінець роботи з програмою…».

  11. Далі йдуть допоміжні процедури, які обслуговують основні підпрограми.

    1. Першою такою допоміжною програмою є процедура VvodStrockiSEkrana, котра заповнює з екрана глобальну змінну Strochka, при цьому вона перевіряє всі введені дані.

      1. В тимчасову текстову змінну bufer вводиться роботодавець. Дані проходять перевірки: нічого не введено та забагато введено (більше 28 символів.) По результатам перевірки відбувається копіювання даних з тимчасової змінної у змінну Strochka.Rabotodatel, або запит у користувача нових даних.

      2. В тимчасову текстову змінну bufer вводиться професія. Дані проходять перевірку: нічого не введено та забагато введено (більше 28 символів.) По результатам перевірки відбувається копіювання данних з тимчасової змінної у змінну Strochka.Professiya, або запит у користувача нових даних.

      3. В тимчасову текстову змінну bufer вводиться кількість робочих місць в текстовому форматі. Дані проходять перевірку: нічого не введено; введена кількість цифр, котра перевищує реально можливу кількість робочих місць при нинішній економічній ситуації в Україні; всі введені символи є цифрами з десятичної системи числення. За результатами перевірки відбувається перетворення тектових даних комірки bufer у ціле число, яке записується в змінну Strochka.KolRabMest, або запит у користувача нових даних.

      4. В тимчасову текстову змінну bufer вводиться середня зарплата в формате (ГривніКрапкаКопійкиКопійки). Дані проходять перевірку: знаків не менше чотирьох (один символ-гривні, один символ – точка, два символи копійки); всі гривні записані цифрами; всі копійки записані цифрами; на третьому місці з кінця стоїть крапка; кількість цифр гривень не більше чотирьох (реальна заробітна платня в Центр зайнятості); всі цифри-символи, які пройшили перевірку копіюються на відповідні місця в тимчасову текстову змінну Dengi (тільки цифри, без крапки), звідки спочатку перетворюються в ціле число, потім, шляхом множення на 0,01, в дійсне числоі записується в числову змінну Strochka.Zarplata. Якщо хоча б одна перевірка не пройдена, від користувача вимагають ввести допустимі данні.

    2. Функція ChtenieMassivaIzFayla зчитує дані з файлу baza.dat в глобальний масив і повертає кількість заповнених елементів масиву Baza.

      1. Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.

      2. Відкриваємо для читання файлу baza.dat.

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

      4. Закриваємо файл бази даних.

    3. Процедура ZapisMassivaVFayl записує масив Baza в текстовий файл baza.dat.

      1. Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.

      2. Створюємо файл baza.dat і відкриваємо його для запису.

      3. Циклом записуємо файл baza.dat і всі елементи масиву Baza (кожен елемент на окремий рядочок).

      4. Закривається файл бази даних.

    4. Процедура Sortirovka сортує масив база по заданому стовбцю (полю).

      1. Оголошуємо локальні змінні, які потрібні для виконання цієї процедури.

      2. Оператором switch-case надаємо вибір поля для сортування методом «Бульбашки».