Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Варіанти
Варіант 1. Електронний щоденник
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL, у якій сутності «Учень» і «Оцінка» (предмет, бал від 1 до 12, дата) пов’язані 1:N; таблиці створюються міграцією, програма додає трьох учнів з оцінками і виводить оцінки кожного учня.
2. Базовий рівень. Створити консольну програму C# з EF Core, яка для моделі «клас – учень – предмет – оцінка» запитує назву класу і виводить таблицю середніх балів учнів за предметами (проєкція з GroupBy, два знаки після коми); про неіснуючий клас повідомляється.
3. Високий рівень. Створити консольний застосунок C# «Щоденник» з EF Core і PostgreSQL (сутності «клас», «учень», «предмет», «оцінка» з датою) з командами add-grade <учень> <предмет> <бал>, report <клас> [--from дата] [--to дата] і import <файл.csv>: імпорт виконується в транзакції (рядок з помилкою скасовує весь файл), звіт виводить середні бали з підсумком класу; --help, помилки в потік помилок, коди завершення.
Варіант 2. Прокат спорядження
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Спорядження» (назва, ціна за добу) і «Видача» (клієнт, дата видачі, дата повернення, необов’язкова); програма додає видачу і виводить спорядження, яке зараз не повернуто.
2. Базовий рівень. Створити консольну програму C# з EF Core для прокату спорядження, у якій до сутності «Спорядження» додається властивість «Застава» новою міграцією з типовим значенням 0, а програма запитує категорію і відсоток та змінює ціни всіх речей категорії одним викликом ExecuteUpdateAsync, виводячи кількість змінених записів.
3. Високий рівень. Створити консольний застосунок C# «Прокат» з EF Core і PostgreSQL (сутності «Спорядження»: назва, ціна за добу; «Видача»: клієнт, дати видачі й повернення) з командами rent, return і debtors: видача перевіряє, що річ вільна (про конфлікт паралельності через токен xmin повідомляється), повернення обчислює вартість за дні з пенею за прострочення, debtors виводить таблицю боржників із сумами; --help, коди завершення.
Варіант 3. Рецепти й інгредієнти
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL, у якій рецепти й інгредієнти пов’язані N:M без проміжної сутності; програма додає три рецепти й виводить кожен рецепт з переліком інгредієнтів (Include).
2. Базовий рівень. Створити консольну програму C# з EF Core, у якій зв’язок «рецепт – інгредієнт» має проміжну сутність із кількістю та одиницею виміру; програма запитує назву рецепта і кількість порцій та виводить перерахований список інгредієнтів.
3. Високий рівень. Створити консольний застосунок C# «Кулінарна книга» з EF Core і PostgreSQL (рецепти та інгредієнти, зв’язок N:M), який приймає список наявних продуктів (аргументи або файл) і виводить рецепти, для яких бракує не більше N інгредієнтів (--missing N), з переліком відсутніх; запит фільтрує дані в базі, SQL перевіряється через LogTo; --help, коди завершення.
Варіант 4. Облік проєктів
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Проєкт» і «Завдання» (назва, статус, оцінка в годинах); програма додає проєкт із завданнями і виводить завдання проєкту, відсортовані за статусом.
2. Базовий рівень. Створити консольну програму C# з EF Core для моделі «проєкт – завдання – виконавець – запис часу», яка запитує місяць і рік та виводить таблицю годин кожного виконавця за проєктами (GroupBy у базі даних) з підсумками.
3. Високий рівень. Створити застосунок Windows Forms «Проєкти» з EF Core, PostgreSQL і IDbContextFactory<T> (сутності «Проєкт», «Завдання» зі статусом і виконавцем, «Запис часу»): список проєктів, таблиця завдань вибраного проєкту з фільтром за статусом і виконавцем, додавання запису часу з перевіркою (від 0,25 до 12 год на день), звіт годин за період з експортом у CSV.
Варіант 5. Медична лабораторія
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Пацієнт», «Аналіз» (назва, норма від і до) та «Результат» (значення, дата); програма додає результати і виводить результати пацієнта з позначкою «поза нормою».
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL (сутності «Пацієнт», «Аналіз» з нормою, «Результат» зі значенням і датою), яка запитує номер пацієнта, номер сторінки і розмір сторінки (від 5 до 50) та виводить історію його аналізів сторінками (Skip/Take, сортування за датою), номер сторінки і загальну кількість сторінок.
3. Високий рівень. Створити консольний застосунок C# «Лабораторія» з EF Core і PostgreSQL (сутності «Пацієнт», «Аналіз» з нормою від і до, «Результат» зі значенням і датою) з командами add-result, history <пацієнт> [--page N] і alerts [--days N]: alerts виводить результати поза нормою за останні N днів з відхиленням у відсотках, дані читаються без відстеження, модель має індекси за датою і пацієнтом; --help, коди завершення.
Варіант 6. Книжковий магазин
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL, у якій книги пов’язані з видавництвами (1:N) і авторами (N:M); програма додає дані і виводить книги з назвою видавництва та авторами.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL для книгарні (книги з ціною, пов’язані з авторами N:M), яка запитує частину прізвища автора і діапазон цін (мінімальна не більша за максимальну) та виводить знайдені книги проєкцією в DTO з сортуванням за ціною; про порожній результат повідомляється.
3. Високий рівень. Створити консольний застосунок C# «Книгарня» з EF Core і PostgreSQL (книги з ціною й залишком, замовлення з рядками), у якому замовлення кількох книг оформлюється в транзакції зі зменшенням залишків, конфлікт одночасних замовлень виявляється токеном xmin і повторюється до трьох разів, а команда report <рік> виводить продажі за місяцями; --help, коди завершення.
Варіант 7. Спортивні змагання
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Етап», «Учасник» і «Результат» (час у секундах); програма додає результати і виводить протокол етапу, відсортований за часом.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL (сутності «Етап», «Учасник», «Результат» з часом), яка обчислює загальний рейтинг учасників за сумою очок за етапи (очки за місце задані в програмі) проєкцією з групуванням і виводить таблицю з місцем, прізвищем і сумою.
3. Високий рівень. Створити консольний застосунок C# «Змагання» з EF Core і PostgreSQL (сутності «Етап», «Учасник», «Результат» з часом і очками) з командами import <файл.csv> (результати етапу в транзакції з перевіркою дублікатів), stage <номер> і standings [--top N]; учасники з однаковою сумою отримують однакове місце; --help, помилки в потік помилок, коди завершення.
Варіант 8. Орендні квартири
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Власник», «Квартира» (адреса, площа, ціна) та «Договір» (орендар, дата початку і кінця); програма додає дані і виводить квартири з кількістю договорів.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL (сутності «Квартира» й «Договір» з орендарем і датами початку й кінця), яка запитує квартиру і період оренди (дата кінця пізніша за дату початку), перевіряє запитом, чи не перетинається він з наявними договорами, і створює договір або виводить конфліктний договір.
3. Високий рівень. Створити застосунок Windows Forms «Оренда» з EF Core, PostgreSQL і IDbContextFactory<T> (сутності «Власник», «Квартира»: адреса, площа, ціна; «Договір» з датами): пошук вільних квартир на період за ціною і площею, оформлення договору в транзакції з повторною перевіркою перетину дат, таблиця договорів власника і звіт доходу за рік.
Варіант 9. Кав’ярня
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Позиція меню» (назва, ціна) і «Замовлення» з рядками замовлення (кількість); програма оформлює два замовлення і виводить їх суми.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL для кав’ярні (позиції меню з ціною, замовлення з датою та рядками з кількістю), яка запитує дату і виводить 5 найпопулярніших позицій за 7 днів до неї (кількість і виручка, групування в базі даних) та загальну виручку тижня.
3. Високий рівень. Створити консольний застосунок C# «Кав’ярня» з EF Core і PostgreSQL (позиції меню з ціною, замовлення з рядками) з командами order <позиція:кількість>…, menu --set-price <позиція> <ціна> і report --week <дата>: зміна цін виконується ExecuteUpdateAsync, старі замовлення зберігають ціну продажу, звіт виводить таблицю за днями з підсумками; --help, коди завершення.
Варіант 10. Трекер звичок
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Звичка» і «Відмітка» (дата, унікальна для звички); програма додає звичку, відмічає кілька днів і виводить відмічені дати.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL (сутності «Звичка» і «Відмітка» з датою), яка для кожної звички виводить кількість відміток за поточний місяць і найдовшу серію днів поспіль (дати читаються запитом без відстеження, серія обчислюється в програмі).
3. Високий рівень. Створити консольний застосунок C# «Звички» з EF Core і PostgreSQL (сутності «Звичка» і «Відмітка» з датою) з командами add, check <звичка> [дата], stats [--month рррр-мм]: повторна відмітка дня відхиляється унікальним індексом з повідомленням, статистика виводить поточну і найдовшу серії та календар місяця в текстовому вигляді; --help, коди завершення.
Варіант 11. Автосервіс
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Автомобіль» (номер, марка), «Ремонт» (дата) і «Робота» (назва, вартість); програма додає ремонт з роботами і виводить історію ремонтів автомобіля.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL для автосервісу (автомобілі, ремонти з роботами та їх вартістю), у якій запчастини з ціною пов’язані з ремонтами через проміжну сутність із кількістю; програма запитує номер ремонту і виводить рахунок: роботи, запчастини, суми та загальну суму.
3. Високий рівень. Створити консольний застосунок C# «Автосервіс» з EF Core і PostgreSQL (автомобілі, ремонти зі статусом і майстром, роботи, запчастини на складі), у якому закриття ремонту в одній транзакції списує запчастини зі складу (нестача скасовує операцію), створює рахунок і змінює статус, а команда report --month рррр-мм виводить виручку за майстрами; --help, коди завершення.
Варіант 12. Шкільна олімпіада
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Учень», «Завдання» (максимальний бал) і «Розв’язок» (бал); програма додає розв’язки і виводить суму балів кожного учня.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL (сутності «Учень», «Завдання» з максимальним балом, «Розв’язок» з балом), яка запитує номер завдання і новий максимальний бал та пропорційно перераховує бали всіх розв’язків цього завдання одним викликом ExecuteUpdateAsync, виводячи кількість змінених записів і новий рейтинг.
3. Високий рівень. Створити консольний застосунок C# «Олімпіада» з EF Core і PostgreSQL (сутності «Учень» з класом, «Завдання» з максимальним балом, «Розв’язок» з балом), який імпортує бали з CSV у транзакції (бал більший за максимальний скасовує імпорт), виводить рейтинг за класами з визначенням переможців і призерів (перші 10 % і 25 %) та зберігає протокол у файл; --help, коди завершення.
Варіант 13. Музей
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Зал» і «Експонат» (назва, епоха, рік); програма додає експонати і виводить експонати кожного залу.
2. Базовий рівень. Створити консольну програму C# з EF Core, у якій виставки пов’язані з експонатами зв’язком N:M; програма запитує епоху і виводить виставки, що містять експонати цієї епохи, з кількістю таких експонатів.
3. Високий рівень. Створити застосунок Windows Forms «Музей» з EF Core, PostgreSQL і IDbContextFactory<T> (експонати з епохою, виставки з періодом, зв’язок N:M): пошук експонатів за назвою (ILIKE) і епохою з пагінацією, редагування виставки (додавання й вилучення експонатів через список), перевірка, що експонат не бере участі у двох виставках в один період.
Варіант 14. Служба таксі
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Водій» і «Поїздка» (відстань, вартість, оцінка від 1 до 5); програма додає поїздки і виводить поїздки водія.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL (водії, поїздки з вартістю й оцінкою 1–5), у якій адреси посадки й висадки поїздки моделюються складним типом «Адреса» (місто, вулиця, будинок); програма запитує вулицю і виводить поїздки з неї та середню оцінку водіїв.
3. Високий рівень. Створити консольний застосунок C# «Таксі» з EF Core і PostgreSQL (водії з ознакою активності, поїздки з відстанню, вартістю й оцінкою) з командами ride, rate <поїздка> <оцінка> і drivers [--min-rating X]: рейтинг обчислюється в базі даних, водії з рейтингом нижче порога позначаються пакетним оновленням як неактивні; --help, помилки в потік помилок, коди завершення.
Варіант 15. Облік підписок
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Сервіс», «План» (ціна за місяць) і «Підписка» (дата початку, кінця); програма додає підписки і виводить активні підписки на поточну дату.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL (сутності «Сервіс», «План» з ціною за місяць, «Підписка» з датами початку й кінця), яка запитує номер підписки і кількість місяців (від 1 до 24), продовжує підписку, зберігає зміну і виводить нову дату завершення та вартість продовження.
3. Високий рівень. Створити консольний застосунок C# «Підписки» з EF Core і PostgreSQL (сутності «Сервіс», «План» з ціною за місяць, «Підписка» з датами й активністю) з командами renew, expiring --days N і income <рік>: income виводить дохід за місяцями і сервісами (групування в базі даних), прострочені підписки деактивуються ExecuteUpdateAsync; --help, коди завершення.
Варіант 16. Садівництво
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Ділянка» і «Рослина»; види рослин (назва, інтервал поливу в днях) задаються початковими даними HasData у міграції, програма виводить рослини кожної ділянки.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL (ділянки, рослини з видом, вид з інтервалом поливу в днях), у якій журнал поливу пов’язаний із рослинами; програма запитує дату і виводить рослини, які потребують поливу (остання дата поливу плюс інтервал не пізніше за задану дату).
3. Високий рівень. Створити консольний застосунок C# «Сад» з EF Core і PostgreSQL (ділянки, рослини, види з інтервалом поливу, журнал поливу) з командами water <рослина|ділянка>, due [дата] і history <рослина> [--page N]: полив цілої ділянки записується однією транзакцією, види рослин додаються міграцією з HasData, due групує рослини, що потребують поливу, за ділянками; --help, коди завершення.
Варіант 17. Кіберспортивний турнір
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Команда», «Гравець» і «Матч» (дві команди, рахунок); програма додає матчі і виводить склад команд та результати матчів.
2. Базовий рівень. Створити консольну програму C# з EF Core, у якій матч має два зв’язки з командою (господар і гість), налаштовані через Fluent API; програма виводить турнірну таблицю (перемоги, поразки, очки), обчислену запитом.
3. Високий рівень. Створити консольний застосунок C# «Турнір» з EF Core і PostgreSQL (команди, матчі з раундом, двома командами й рахунком), який будує олімпійську сітку для 8 команд, записує результат матчу і створює матч наступного раунду в одній транзакції та виводить сітку текстовою схемою; нічия і повторний запис результату відхиляються; --help, коди завершення.
Варіант 18. Бюро перекладів
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL, у якій перекладачі та мови пов’язані N:M; програма додає перекладачів і виводить для кожної мови список перекладачів.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL для бюро перекладів (перекладачі й мови N:M, замовлення з мовами, сторінками й статусом), яка запитує мову оригіналу, мову перекладу і кількість сторінок та призначає замовлення перекладачеві з цими мовами, який має найменше незавершених сторінок; якщо такого немає, виводиться повідомлення.
3. Високий рівень. Створити застосунок Windows Forms «Бюро перекладів» з EF Core, PostgreSQL і IDbContextFactory<T> (перекладачі й мови N:M, замовлення з мовами, сторінками, статусом і перекладачем): список замовлень із фільтром за статусом і мовами, зміна статусу з перевіркою дозволених переходів, звіт завантаження перекладачів за місяць і обробка конфлікту одночасного редагування замовлення.
Варіант 19. Обладнання лабораторії
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Приміщення» і «Обладнання» (інвентарний номер унікальний); програма додає обладнання і виводить його за приміщеннями.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL (приміщення, обладнання з унікальним інвентарним номером, журнал переміщень), яка запитує інвентарний номер і нове приміщення, переміщує обладнання і записує подію в журнал переміщень в одній транзакції та виводить історію переміщень цього обладнання.
3. Високий рівень. Створити консольний застосунок C# «Інвентар» з EF Core і PostgreSQL (приміщення, обладнання з інвентарним номером, журнал переміщень) з командами move, history і audit <файл.csv>: audit порівнює фактичний список обладнання приміщення з базою і виводить відсутнє та зайве; перед збереженням зміни виводяться з ChangeTracker для підтвердження; --help, коди завершення.
Варіант 20. Онлайн-курси
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Курс», «Модуль» і «Урок» з порядковими номерами; програма додає курс і виводить його структуру (Include і ThenInclude).
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL (курси, модулі, уроки, записи студентів на курси), у якій прогрес студента зберігається як сутність «студент – урок – дата завершення»; програма запитує студента і виводить відсоток завершення кожного курсу, на який він записаний.
3. Високий рівень. Створити консольний застосунок C# «Курси» з EF Core і PostgreSQL (курси, модулі, уроки з порядковими номерами, записи студентів і завершені уроки) з командами enroll, complete <урок> і report <курс>: урок можна завершити лише після попередніх, звіт виводить розподіл студентів за відсотком проходження, запити перевіряються на відсутність N+1 через LogTo; --help, коди завершення.
Варіант 21. Благодійний фонд
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Збір» (мета, сума) і «Внесок» (донор, сума, дата); програма додає внески і виводить зібрану суму та відсоток виконання кожного збору.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL (сутності «Збір» і «Внесок»: донор, сума, дата), яка запитує рік і виводить 10 найбільших донорів (сума і кількість внесків, групування в базі даних) та загальну суму внесків за рік.
3. Високий рівень. Створити консольний застосунок C# «Фонд» з EF Core і PostgreSQL (сутності «Збір»: мета, сума, стан; «Внесок»: донор, сума, дата) з командами donate, close <збір> і report --from дата --to дата: закриття збору переносить надлишок в інший збір у транзакції, звіт виводить таблицю зборів із підсумками і зберігається в CSV; --help, коди завершення.
Варіант 22. Пасіка
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Вулик» (номер, порода бджіл) і «Огляд» (дата, сила сім’ї від 1 до 10, примітка); програма додає огляди і виводить останній огляд кожного вулика.
2. Базовий рівень. Створити консольну програму C# з EF Core, у якій медозбір (дата, кілограми) пов’язаний з вуликом; програма виводить медозбір за сезонами (роками) для кожного вулика і середній збір із вулика.
3. Високий рівень. Створити консольний застосунок C# «Пасіка» з EF Core і PostgreSQL (вулики, огляди з датою і силою сім’ї 1–10, медозбір з датою й кілограмами) з командами inspect, harvest і report <рік>: вулики зі слабкою силою сім’ї у двох останніх оглядах виводяться як проблемні, звіт порівнює збір із попереднім роком у відсотках; --help, коди завершення.
Варіант 23. Костюмерна театру
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Костюм» (назва, розмір) і «Вистава»; зв’язок N:M показує, у яких виставах використовується костюм; програма виводить костюми вистави.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL для костюмерної театру (костюми з назвою й розміром, бронювання костюма на період), яка запитує костюм і період бронювання та перевіряє запитом, чи не перетинається він з іншими бронюваннями цього костюма; бронювання створюється або виводиться конфліктне.
3. Високий рівень. Створити застосунок Windows Forms «Костюмерна» з EF Core, PostgreSQL і IDbContextFactory<T> (костюми з назвою й розміром, вистави, бронювання костюмів на період): пошук костюмів за назвою і розміром, бронювання набору костюмів для вистави в одній транзакції (конфлікт будь-якого костюма скасовує все), календар бронювань вибраного костюма.
Варіант 24. Автобусні маршрути
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL, у якій маршрут містить упорядковані зупинки через проміжну сутність із порядковим номером; програма виводить зупинки маршруту по порядку.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL, у якій маршрут містить упорядковані зупинки через проміжну сутність із порядковим номером; програма запитує дві зупинки і виводить маршрути, на яких друга зупинка йде після першої, з кількістю перегонів між ними.
3. Високий рівень. Створити консольний застосунок C# «Маршрути» з EF Core і PostgreSQL (маршрути з упорядкованими зупинками, розклад) з командами route, timetable <маршрут> і find <від> <до> [--after HH:mm]: розклад зберігає час відправлення з кінцевої і тривалість перегонів, пошук виводить найближчі рейси не більше ніж з однією пересадкою; --help, коди завершення.
Варіант 25. Фотостудія
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Клієнт» і «Фотосесія» (дата, час початку, тривалість); програма додає фотосесії і виводить розклад на задану дату.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL для фотостудії (клієнти, фотосесії з датою, часом початку й тривалістю), у якій фотосесії пов’язані з обладнанням зв’язком N:M; програма запитує дату, час і тривалість та перевіряє, що студія й обладнання вільні, перш ніж створити фотосесію.
3. Високий рівень. Створити застосунок Windows Forms «Фотостудія» з EF Core, PostgreSQL і IDbContextFactory<T> (клієнти, фотосесії з датою, часом і тривалістю, обладнання N:M): тижневий розклад у DataGridView, створення й перенесення фотосесій з перевіркою накладок у транзакції, звіт завантаження обладнання за місяць.
Варіант 26. Облік кредитів
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Позичальник», «Кредит» (сума, ставка, строк) і «Платіж»; програма додає платежі і виводить залишок боргу за кожним кредитом.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL (позичальники, кредити із сумою, ставкою, строком і ознакою прострочення, платежі з датою), яка позначає як прострочені всі кредити без платежу понад 30 днів одним викликом ExecuteUpdateAsync і виводить їх список з кількістю днів прострочення.
3. Високий рівень. Створити консольний застосунок C# «Кредити» з EF Core і PostgreSQL (позичальники, кредити із сумою, ставкою й строком, платежі з датою та розподілом на відсотки й тіло) з командами pay, schedule <кредит> і overdue --date дата: графік ануїтетних платежів обчислюється в програмі, платіж розподіляється в транзакції, звіт виводить прострочення з пенею; --help, коди завершення.
Варіант 27. Шкільна їдальня
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Страва» і «Алерген», пов’язаними N:M; програма додає страви і виводить страви без заданого алергену.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL для шкільної їдальні (страви з ціною, меню тижня зі стравами за днями, замовлення класу), яка запитує клас, день і кількість учнів та оформлює замовлення на день, виводячи кількість порцій кожної страви і вартість.
3. Високий рівень. Створити консольний застосунок C# «Їдальня» з EF Core і PostgreSQL (страви й алергени N:M, меню тижня, класи з алергенами учнів, замовлення) з командами menu <тиждень>, order <клас> <день> і report <тиждень>: замовлення виключає страви з алергенами учнів класу, звіт виводить порції за днями і класами з підсумками; --help, коди завершення.
Варіант 28. Мобільний оператор
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Тариф» (абонплата, ціна хвилини), «Абонент» і «Дзвінок» (тривалість у секундах, дата); програма додає дзвінки і виводить дзвінки абонента.
2. Базовий рівень. Створити консольну програму C# з EF Core і PostgreSQL (тарифи з абонплатою й ціною хвилини, абоненти, дзвінки з тривалістю в секундах і датою), яка запитує номер абонента, місяць і рік та виводить рахунок: абонплата, кількість дзвінків, хвилини (округлення вгору) і сума до сплати.
3. Високий рівень. Створити консольний застосунок C# «Оператор» з EF Core і PostgreSQL (тарифи, абоненти, дзвінки з тривалістю й датою) з командами import-calls <файл.csv>, bill <номер> <рррр-мм> і top --month рррр-мм: імпорт тисяч дзвінків виконується пакетами з вимкненим відстеженням після збереження, top виводить абонентів з найбільшими рахунками; --help, коди завершення.
Варіант 29. Кінофестиваль
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Фільм», «Номінація» і «Член журі»; програма додає фільми до номінацій і виводить фільми кожної номінації.
2. Базовий рівень. Створити консольну програму C# з EF Core, у якій оцінка (від 1 до 10) пов’язує члена журі з фільмом, а повторна оцінка заборонена унікальним індексом; програма виводить середні оцінки фільмів номінації.
3. Високий рівень. Створити консольний застосунок C# «Фестиваль» з EF Core і PostgreSQL (фільми, номінації, члени журі, оцінки 1–10 з унікальною парою «журі – фільм») з командами rate, results <номінація> і winners: переможець номінації визначається за середнім балом, а за рівності – за кількістю оцінок 10, результати зберігаються в транзакції, про відхилення дублікатів повідомляється; --help, коди завершення.
Варіант 30. Притулок для тварин
1. Початковий рівень. Створити консольну програму C# з EF Core і PostgreSQL із сутностями «Тварина» (кличка, вид, дата надходження) і «Опікун»; програма додає тварин і виводить тварин, які ще не мають опікуна.
2. Базовий рівень. Створити консольну програму C# з EF Core для притулку, у якій схема змінюється міграціями: друга міграція додає до тварини вагу і дату вакцинації, третя – сутність «Адопція»; програма виводить список застосованих міграцій (GetAppliedMigrationsAsync) і тварин без вакцинації.
3. Високий рівень. Створити консольний застосунок C# «Притулок» з EF Core і PostgreSQL (тварини з кличкою, видом і статусом, опікуни, адопції з датою) з командами adopt <тварина> <опікун>, return <тварина> і stats <рік>: адопція в транзакції змінює статус тварини і створює запис адопції, повторна адопція відхиляється, статистика виводить адопції за місяцями і видами; --help, коди завершення.
Порядок виконання та захисту роботи
- Опрацювати теоретичні відомості та приклади розв’язання завдань.
- Створити в PostgreSQL окрему базу даних для свого варіанта, проєкт .NET 10 з пакетами EF Core і рядок з’єднання в секретах користувача.
- Описати сутності, зв’язки й обмеження (угоди, анотації, Fluent API), створити міграцію, переглянути її код і застосувати командою
dotnet ef database update. - Реалізувати операції з даними: додавання, зміну, видалення, запити з фільтрацією, проєкціями, групуванням і пагінацією; увімкнути
LogToі перевірити згенерований SQL (без N+1 запитів). - Обробити помилки: недоступний сервер, порушення обмежень (
DbUpdateException), конфлікти паралельності; для змін кількох таблиць використати транзакцію. - Продемонструвати роботу програми викладачеві, показати міграції та таблиці в DataGrip, пояснити програмний код і відповісти на контрольні питання.