Лабораторна робота 6
ЛАБОРАТОРНА РОБОТА №6
Тема: Робота з файлами. Серіалізація.
Мета роботи: Закріпити теоретичні знання та набути практичних навичок роботи з файлами у мові програмування Python. Ознайомитися з методами серіалізації даних, а також із використанням бібліотек Faker, csv, pandas та openpyxl для створення, зчитування, обробки й аналізу даних у форматах CSV та XLSX. Навчитися організовувати програмні проєкти у віртуальному оточенні, документувати залежності за допомогою файлу requirements.txt та розміщувати результати роботи у репозиторії GitHub.
Хід виконання роботи
1. Створити віртуальне оточення (ім'я оточення - прізвище студента). В цьому оточенні створити проект Python – “Employees”
2. В проекті створити три програми. Перша зберігає в файл CSV таблицю наступної структури:

І додає в неї не менш ніж 500 записів.
При чому 40% жіночої і 60% чоловічої статі в довільному порядку. Всі назви і імена повинні бути коректними. Якщо стать вказана жіноча, то Ім’я та По батькові теж повинні бути жіночі. Так само для чоловіків. Дата народження від 1938 до 2008 року.
Для генерування даних використати пакет Faker.
- https://pypi.org/project/Faker/
- https://faker.readthedocs.io/en/master/
- https://www.it-notes.wiki/python/python-faker/
В параметрах вказати українську локалізацію:
from faker import Faker
fake = Faker(locale='uk_UA')
print(fake.first_name())
По батькові - Faker не вміє генерувати! Тому для генерування цих даних створити і використати словник, в який додати не менше 20 чоловічих По батькові і не менше 20 жіночих.
3. Друга програма створює файл XLSX.
В ньому 5 аркушів – “all”, “younger_18”, “18-45”, “45-70”, “older_70”. В аркуш “all” записує всі данні із CSV файлу, який створено в другому пункті. На інших аркушах відображає данні про співробітників, які належать до відповідної вікової категорії наступної структури:

Вік – кількість повних років на момент поточної дати. Програма повинна виводити в консоль наступні повідомлення:
- Ok, якщо програма завершила свою роботу успішно;
- Повідомлення про неможливість створення XLSX файлу;
- Повідомлення про відсутність, або проблеми при відкритті файлу CSV.
4. Третя програма зчитує дані з CSV файлу і виконує наступні функції:
- Виводить повідомлення про відсутність, або проблеми при відкритті файлу CSV, або Ok.
- Рахує кількість співробітників чоловічої і жіночої статі. Результати виводить в консоль і будує відповідну діаграму.
- Рахує кількість співробітників кожної вікової категорії (вказані в пункті 3). Результати виводить в консоль і будує відповідну діаграму.
- Рахує кількість співробітників жіночої та чоловічої статі кожної вікової категорії (вказані в пункті 3). Результати виводить в консоль і будує відповідні діаграми.
5. Створити файл requirments.txt, в якому зберігаються всі встановлені модулі та пакети (Команда в терміналі: pip freeze > requirments.txt)
6. Створити звіт, що відповідає структурі наведеної нижче.
7. Завантажити проект на сервіс GitHub.
Форма подання результатів виконаної роботи: звіт в електронному форматі.
Звіт повинен містити:
- Титульний аркуш
- Текст завдання
- Код кожної програми
- Скріншоти виконання програм (в віртуальному середовищі із п.1) і діаграми.
- Посилання на GitHub з проектом.
- Посилання на відео (на платформі YouTube, обліковий запис НУБіП) з демонстрацією запуску і роботи програм (за вимогою викладача).
Критерії оцінювання:
Максимальна кількість балів - 14 балів
| N | Кількість балів | Критерій |
| 1 | 0 | Роботу не здано |
| 2 | 1 | Не виконаний пункт 1 завдання: Віртуальне оточення не створено, або його назва не співпадає з призвищем студента. |
| 3 | 1 | Код розробленої студентом програми не працює |
| 4 | 1 | Скріншоти, що демонструють роботу програм були правлені в графічному редакторі або іншим чином. |
| 5 | 1-10 | Роботу здано після встановленого терміну |
| 6 | 2-5 | Програма працює, але не задовільняє вимогам завдання |
| 7 | 2-5 | Програма працює. Студент не може пояснити роботу коду програми. На більшість питань викладача дає неправильні відповіді. |
| 8 | 6-7 | Програма працює і задовільняє всім вимогам завдання. Звіт оформлено не належним чином (не відповідає вимогам пункту 6, скріншоти не відповідають вимогам). |
| 9 | 8-9 | Програма працює і задовільняє всім вимогам завдання. Звіт оформлено належним чином (задовільняє всім вимогам пункту 6, всі скріншоти якісні і мають праввильну орієнтацію) |
| 10 | 10-11 | Програма працює і задовільняє всім вимогам завдання, або має незначні недоліки. Звіт оформлено належним чином. Студент може пояснити роботу коду програми, правильно відповів на переважну більшість питаннь викладача під час захисту роботи. |
| 11 | 12-13 | Програма працює і задовільняє всім вимогам завдання, але має незначні недоліки які студент може виправити під час захисту. Всі пункти завдання виконані. Звіт оформлено належним чином. Студент може пояснити роботу коду програми і особливості роботи алгоритму, правильно відповідає на всі питання викладача під час захисту роботи. |
| 12 | 14 | Програма працює і задовільняє всім вимогам завдання. Всі пункти завдання виконані. Звіт оформлено належним чином. Студент може пояснити роботу коду програми і особливості роботи алгоритму, правильно відповідає на всі питання викладача під час захисту роботи. |
Термін подання результатів - згідно календарного плану роботи.
Шрифти
Розмір шрифта
Колір тексту
Колір тла
Кернінг шрифтів
Видимість картинок
Інтервал між літерами
Висота рядка
Виділити посилання