Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Варіанти
Варіант 1. Інтернет-магазин
1. Початковий рівень. Створити скрипт SQL для PostgreSQL, який створює таблиці customers, products, orders і order_items з первинними й зовнішніми ключами та обмеженнями CHECK (ціна й кількість додатні), наповнює їх тестовими даними і виводить замовлення з іменем покупця та сумою.
2. Базовий рівень. Створити консольну програму C# з Npgsql для бази PostgreSQL інтернет-магазину (таблиці customers, products, orders, order_items), яка запитує email покупця, перевіряє його формат і виводить таблицю його замовлень (номер, дата, кількість позицій, сума) параметризованим запитом; якщо покупця не знайдено, виводиться повідомлення.
3. Високий рівень. Створити консольний застосунок C# «Магазин» для бази PostgreSQL (таблиці customers, products із залишками, orders, order_items) з командами order <email> <productId:qty>… і report <year>: замовлення оформлюється в транзакції зі зменшенням залишків (нестача товару скасовує все замовлення), звіт виводить продажі за місяцями з підсумком; --help, повідомлення про помилки в потік помилок і коди завершення.
Варіант 2. Поліклініка
1. Початковий рівень. Створити скрипт SQL, який створює таблиці doctors, patients і appointments (лікар, пацієнт, дата й час прийому, унікальність пари «лікар – час»), наповнює їх і виводить розклад прийомів лікаря на задану дату з іменами пацієнтів.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL поліклініки (таблиці doctors, patients, appointments з датою й часом прийому), яка виводить список лікарів, запитує номер лікаря і дату (з перевіркою формату) та показує вільні 30-хвилинні проміжки з 9:00 до 15:00; зайняті проміжки читаються з таблиці appointments.
3. Високий рівень. Створити застосунок Windows Forms «Реєстратура» для бази PostgreSQL поліклініки (таблиці doctors, patients, appointments з унікальною парою «лікар – час»), у якому лікар вибирається в ComboBox, дата в DateTimePicker, прийоми показуються в DataGridView; запис пацієнта перевіряє зайнятість часу в транзакції (порушення унікальності показується повідомленням), а звіт виводить кількість прийомів кожного лікаря за місяць.
Варіант 3. Автосалон
1. Початковий рівень. Створити скрипт SQL з таблицями brands, cars (модель, рік, ціна, пробіг) і sales, обмеженнями на рік і ціну, тестовими даними та запитами: автомобілі дешевші за 500 000 грн, кількість автомобілів кожної марки, непродані автомобілі.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL автосалону (таблиці brands, cars: модель, рік, ціна, пробіг), яка шукає автомобілі за маркою (частина назви без урахування регістру), діапазоном років і максимальною ціною, введеними з клавіатури з перевіркою, і виводить результат відсортованою таблицею параметризованим запитом.
3. Високий рівень. Створити консольний застосунок C# «Автосалон» для бази PostgreSQL (таблиці brands, cars, sales) з командами add, find, sell <carId> <client> і stats: продаж оформлюється в транзакції (автомобіль не можна продати двічі), статистика виводить кількість і суму продажів за марками з підсумком; --help і коди завершення.
Варіант 4. Кінотеатр
1. Початковий рівень. Створити скрипт SQL з таблицями halls, movies, sessions і tickets (унікальна пара «сеанс – місце»), наповнити їх і вивести сеанси на задану дату з назвою фільму та кількістю проданих квитків.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL кінотеатру (таблиці halls, movies, sessions, tickets з місцями), яка виводить сеанси фільму, назва якого вводиться з клавіатури, і для вибраного сеансу показує схему залу, де зайняті місця позначено символом X, а вільні – номером місця.
3. Високий рівень. Створити застосунок Windows Forms «Каса кінотеатру» для бази PostgreSQL (таблиці halls, movies, sessions, tickets з унікальною парою «сеанс – місце»): вибір сеансу, схема залу з кнопок, продаж кількох місць однією транзакцією (якщо хоча б одне місце вже продано, продаж скасовується з повідомленням) і звіт виручки за фільмами за період.
Варіант 5. Університетський розклад
1. Початковий рівень. Створити скрипт SQL з таблицями teachers, rooms, groups і lessons (день тижня, номер пари, аудиторія, група, викладач), наповнити їх і вивести розклад групи на тиждень, упорядкований за днем і парою.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL розкладу (таблиці teachers, rooms, groups, lessons: день тижня, номер пари, аудиторія, група, викладач), яка виводить розклад викладача, прізвище якого вводиться з клавіатури, а також список вільних аудиторій для заданих дня і номера пари (значення перевіряються).
3. Високий рівень. Створити консольний застосунок C# «Розклад» для бази PostgreSQL (таблиці teachers, rooms, groups, lessons: день, пара, аудиторія, група, викладач) з командами add, teacher <name>, group <name> і conflicts: перед додаванням заняття перевіряються накладки аудиторії, групи й викладача, а команда conflicts знаходить усі накладки одним запитом SQL із самоз’єднанням таблиці lessons; --help, коди завершення.
Варіант 6. Готель
1. Початковий рівень. Створити скрипт SQL з таблицями rooms (номер, тип, ціна за ніч), guests і bookings (дати заїзду й виїзду, обмеження CHECK), наповнити їх і вивести бронювання з іменем гостя та вартістю проживання.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL готелю (таблиці rooms: номер, тип, ціна за ніч; guests; bookings з датами заїзду й виїзду), яка за введеними датами заїзду й виїзду (з перевіркою) виводить вільні номери, тобто номери без бронювань, що перетинаються з цим періодом.
3. Високий рівень. Створити застосунок Windows Forms «Готель» для бази PostgreSQL (таблиці rooms: номер, тип, ціна; guests; bookings з датами заїзду й виїзду): пошук вільних номерів за датами й типом, бронювання в транзакції з повторною перевіркою перетину дат, скасування бронювання і звіт завантаженості номерів у відсотках за вибраний місяць.
Варіант 7. Бібліотека кафедри
1. Початковий рівень. Створити скрипт SQL з таблицями books, readers і loans (дата видачі, строк, дата повернення), наповнити їх і вивести книги, які зараз на руках, з іменем читача та кількістю днів прострочення.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL бібліотеки (таблиці books, readers з email, loans з датами видачі й повернення), яка запитує email читача і виводить історію його видач, а також рейтинг десяти найактивніших читачів за кількістю видач поточного року.
3. Високий рівень. Створити консольний застосунок C# «Бібліотека» для бази PostgreSQL (таблиці books з кількістю примірників, readers, loans з датами видачі, строку й повернення) з командами issue <bookId> <email>, return <loanId>, overdue і top <n>: видача виконується в транзакції зі зменшенням кількості примірників, повернення – зі збільшенням; помилки в потік помилок, коди завершення.
Варіант 8. Авіарейси
1. Початковий рівень. Створити скрипт SQL з таблицями airports, flights (звідки, куди, виліт, приліт, кількість місць) і tickets, наповнити їх і вивести рейси між двома аеропортами на задану дату з кількістю вільних місць.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL авіарейсів (таблиці airports, flights: звідки, куди, виліт, приліт, кількість місць; tickets), яка за кодами аеропортів і датою, введеними з клавіатури з перевіркою, виводить прямі рейси, а також рейси з однією пересадкою (між прильотом і наступним вильотом від 1 до 6 годин) одним запитом з JOIN.
3. Високий рівень. Створити застосунок Windows Forms «Авіаквитки» для бази PostgreSQL (таблиці airports, flights з кількістю місць, tickets): пошук рейсів, продаж квитка пасажиру в транзакції з перевіркою вільних місць, повернення квитка, список пасажирів рейсу в DataGridView і збереження списку у CSV-файл.
Варіант 9. Спортивна ліга
1. Початковий рівень. Створити скрипт SQL з таблицями teams і matches (господарі, гості, голи, дата; команда не грає сама з собою), наповнити їх і вивести результати матчів з назвами команд.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL спортивної ліги (таблиці teams, matches: господарі, гості, голи, дата), яка виводить турнірну таблицю (ігри, перемоги, нічиї, поразки, м’ячі, очки), обчислену одним запитом SQL, і дозволяє додати, перейменувати або видалити команду з перевіркою введення.
3. Високий рівень. Створити консольний застосунок C# «Ліга» для бази PostgreSQL (таблиці teams, matches: тур, господарі, гості, голи, дата) з командами teams, add-team, match <home> <away> <score> (рахунок 2:1) і table [--round N]: турнірна таблиця за станом після заданого туру, видалення команди з матчами заборонене; --help, коди завершення.
Варіант 10. Службова автобаза
1. Початковий рівень. Створити скрипт SQL з таблицями drivers, vehicles і trips (дата, пробіг, витрачене пальне), наповнити їх і вивести сумарний пробіг і витрату пального кожного автомобіля.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL автобази (таблиці drivers, vehicles з нормою витрати, trips: дата, пробіг, витрачене пальне), яка за номером автомобіля і місяцем, введеними з клавіатури, виводить поїздки та середню витрату пального на 100 км, позначаючи поїздки з витратою, вищою за норму автомобіля.
3. Високий рівень. Створити застосунок Windows Forms «Автобаза» для бази PostgreSQL (таблиці drivers, vehicles, trips: водій, автомобіль, дата, пробіг, пальне): довідники водіїв і автомобілів у DataGridView, реєстрація поїздки з перевіркою, що водій і автомобіль вільні на цю дату, та місячний звіт за водіями з підсумками і збереженням у CSV.
Варіант 11. Ресторан
1. Початковий рівень. Створити скрипт SQL з таблицями dishes, tables, orders і order_items, наповнити їх і вивести п’ять найпопулярніших страв за кількістю порцій.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL ресторану (таблиці dishes з категорією й ціною, tables, orders, order_items), яка виводить меню за категоріями, приймає номер столика і позиції замовлення у форматі номер×кількість з перевіркою та зберігає замовлення з позиціями в транзакції.
3. Високий рівень. Створити застосунок Windows Forms «Ресторан» для бази PostgreSQL (таблиці dishes, tables, orders, order_items): відкриті замовлення столиків, додавання страв, закриття рахунку зі знижкою в транзакції та звіт виручки й популярних страв за вибраний період.
Варіант 12. Ветеринарна клініка
1. Початковий рівень. Створити скрипт SQL з таблицями owners, pets і visits (дата, діагноз, вартість), наповнити їх і вивести історію візитів тварин власника із загальною вартістю.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL ветклініки (таблиці owners, pets, visits: дата, діагноз, вартість), яка шукає власника за частиною прізвища або телефону, виводить його тварин і дозволяє додати візит вибраної тварини з перевіркою дати й вартості.
3. Високий рівень. Створити консольний застосунок C# «Ветклініка» для бази PostgreSQL (таблиці owners, pets з видом тварини, visits: дата, діагноз, вартість) з командами owner, pet, visit і report <from> <to>: звіт показує кількість візитів і виручку за видами тварин, а видалення власника з тваринами заборонене; --help, коди завершення.
Варіант 13. Фітнес-центр
1. Початковий рівень. Створити скрипт SQL з таблицями clients, memberships (тип, дата початку й кінця) і attendances, наповнити їх і вивести клієнтів, абонемент яких закінчується протягом семи днів.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL фітнес-центру (таблиці clients з телефоном, memberships з датами початку й кінця, attendances), яка за телефоном клієнта перевіряє чинність абонемента й реєструє відвідування (одне на день), виводячи кількість відвідувань цього місяця.
3. Високий рівень. Створити застосунок Windows Forms «Фітнес-центр» для бази PostgreSQL (таблиці clients, memberships з датами, attendances, payments): список клієнтів із пошуком, продовження абонемента в транзакції (новий запис абонемента і платіж), статистика відвідувань за днями тижня і збереження звіту в CSV.
Варіант 14. Склад
1. Початковий рівень. Створити скрипт SQL з таблицями goods, receipts і shipments, наповнити їх і вивести залишок кожного товару як різницю сум надходжень і відвантажень.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL складу (таблиці goods, receipts, shipments; залишок – різниця надходжень і відвантажень), яка оформлює надходження або відвантаження товару (код товару й кількість вводяться з перевіркою) і не дозволяє відвантажити більше, ніж є на складі.
3. Високий рівень. Створити консольний застосунок C# «Склад» для бази PostgreSQL (таблиці goods з ціною, receipts, shipments) з командами in, out, stock і deficit <min>: рух товару виконується в транзакції, звіт дефіциту виводить товари із залишком нижче мінімального з підсумковою вартістю закупівлі; --help, коди завершення.
Варіант 15. Туристична агенція
1. Початковий рівень. Створити скрипт SQL з таблицями tours (країна, дати, кількість місць, ціна), clients і bookings, наповнити їх і вивести тури з кількістю вільних місць.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL турагенції (таблиці tours: країна, дати, кількість місць, ціна; clients; bookings), яка шукає тури за країною і максимальною ціною та бронює вибраний тур для клієнта на задану кількість осіб з перевіркою вільних місць.
3. Високий рівень. Створити застосунок Windows Forms «Турагенція» для бази PostgreSQL (таблиці tours з місцями й ціною, clients, bookings, payments): каталог турів із фільтрами, продаж туру в транзакції (повторна перевірка місць, запис бронювання й оплати), скасування і звіт продажів за країнами.
Варіант 16. Музична платформа
1. Початковий рівень. Створити скрипт SQL з таблицями artists, albums, tracks, playlists і playlist_tracks (зв’язок N:M з порядковим номером), наповнити їх і вивести плейлист із назвами треків, виконавцями й загальною тривалістю.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL музичної платформи (таблиці artists, albums, tracks, playlists, playlist_tracks з порядковим номером), яка шукає треки за частиною назви або виконавця і додає вибраний трек у кінець плейлиста (без повторів), виводячи оновлений плейлист.
3. Високий рівень. Створити консольний застосунок C# «Плейлисти» для бази PostgreSQL (таблиці artists, tracks, playlists, playlist_tracks з порядковим номером) з командами create, add, move <from> <to> (зміна порядку треків у транзакції), show і top: top виводить виконавців, треки яких найчастіше трапляються в плейлистах; --help, коди завершення.
Варіант 17. Облік ремонтів
1. Початковий рівень. Створити скрипт SQL з таблицями masters, requests (пристрій, опис, статус із переліку CHECK, дати створення й завершення), наповнити їх і вивести заявки кожного статусу.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL сервісного центру (таблиці masters, requests: пристрій, опис, статус, майстер, дати створення й завершення), яка змінює статус заявки за номером (дозволені переходи перевіряються) і виводить середній час виконання заявок кожного майстра в годинах.
3. Високий рівень. Створити застосунок Windows Forms «Ремонти» для бази PostgreSQL (таблиці masters, requests зі статусом, request_history): список заявок із фільтром за статусом, призначення майстра, зміна статусу із записом у таблицю історії в одній транзакції та звіт завантаженості майстрів.
Варіант 18. Школа мистецтв
1. Початковий рівень. Створити скрипт SQL з таблицями studios, students, enrollments і payments, наповнити їх і вивести гуртки з кількістю учнів та вільними місцями.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL школи мистецтв (таблиці studios з віковими межами, кількістю місць і місячною платою, students, enrollments), яка записує учня в гурток (вік і кількість місць перевіряються) і виводить список гуртків учня з місячною платою.
3. Високий рівень. Створити консольний застосунок C# «Школа мистецтв» для бази PostgreSQL (таблиці studios з місячною платою, students, enrollments, payments) з командами enroll, pay, debts <month> і report: запис і перший платіж виконуються в транзакції, debts виводить учнів без оплати за місяць; --help, коди завершення.
Варіант 19. Кур’єрська служба
1. Початковий рівень. Створити скрипт SQL з таблицями parcels, couriers і status_history (статус, час, місто), наповнити їх і вивести поточний статус кожної посилки.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL кур’єрської служби (таблиці parcels, couriers, status_history: статус, час, місто), яка за номером посилки виводить історію її статусів і дозволяє додати новий статус (допустимі переходи перевіряються).
3. Високий рівень. Створити застосунок Windows Forms «Кур’єр» для бази PostgreSQL (таблиці parcels, couriers, status_history: статус, час, місто): пошук посилок, призначення кур’єра, зміна статусу із записом історії в транзакції, список посилок кур’єра на день і звіт середнього часу доставки за містами.
Варіант 20. Прокат авто
1. Початковий рівень. Створити скрипт SQL з таблицями cars, customers і rentals (дати, плановий і фактичний пробіг, штраф), наповнити їх і вивести автомобілі, які зараз в оренді.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL прокату авто (таблиці cars з добовою ціною, customers, rentals з датами оренди), яка бронює автомобіль на введені дати (перевірка перетину з іншими орендами) і виводить вартість оренди.
3. Високий рівень. Створити консольний застосунок C# «Прокат» для бази PostgreSQL (таблиці cars, customers, rentals: дати, плановий і фактичний пробіг, штраф; payments) з командами rent, return <id> <km> <date> і report: повернення в транзакції обчислює штраф за прострочення й перепробіг, оновлює стан автомобіля і записує платіж; --help, коди завершення.
Варіант 21. Банк
1. Початковий рівень. Створити скрипт SQL з таблицями clients, accounts (баланс numeric, CHECK на невід’ємний баланс) і transfers, наповнити їх і вивести сумарний баланс кожного клієнта.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL банку (таблиці clients, accounts з балансом і CHECK на невід’ємний баланс, transfers), яка переказує введену суму між двома рахунками в одній транзакції (списання, зарахування, запис у transfers) і виводить нові баланси.
3. Високий рівень. Створити консольний застосунок C# «Банк» для бази PostgreSQL (таблиці clients, accounts з балансом, transfers) з командами open, deposit, transfer і statement <account> <from> <to>: переказ виконується в транзакції з рівнем ізоляції Serializable і повторюється в разі помилки серіалізації, виписка показує рух коштів з підсумками; --help, коди завершення.
Варіант 22. Наукова конференція
1. Початковий рівень. Створити скрипт SQL з таблицями sections, authors, papers, paper_authors (N:M) і reviews (оцінка 1–5), наповнити їх і вивести доповіді із середньою оцінкою.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL наукової конференції (таблиці sections, authors з email, papers, paper_authors, reviews), яка реєструє доповідь з кількома авторами (автори шукаються за email або створюються) в одній транзакції і виводить програму секції.
3. Високий рівень. Створити застосунок Windows Forms «Конференція» для бази PostgreSQL (таблиці sections, authors, papers, paper_authors, reviews з оцінкою 1–5): доповіді в DataGridView з фільтром за секцією, призначення рецензента (не автора доповіді), введення рецензій і список прийнятих доповідей із середньою оцінкою не нижче 3,5.
Варіант 23. Житловий комплекс
1. Початковий рівень. Створити скрипт SQL з таблицями apartments (номер, площа), residents, tariffs і charges, наповнити їх і вивести нарахування за місяць для кожної квартири.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL житлового комплексу (таблиці apartments з площею, residents, tariffs, charges), яка за введеним місяцем нараховує плату всім квартирам за площею й тарифом одним запитом INSERT … SELECT і виводить кількість створених записів.
3. Високий рівень. Створити консольний застосунок C# «ЖК» для бази PostgreSQL (таблиці apartments з площею, tariffs, charges, payments) з командами charge <month>, pay, debts і report <year>: повторне нарахування за місяць заборонене обмеженням UNIQUE, оплата зменшує борг у транзакції, звіт показує нараховані й сплачені суми за місяцями.
Варіант 24. Аптека
1. Початковий рівень. Створити скрипт SQL з таблицями drugs, batches (кількість, термін придатності) і sales, наповнити їх і вивести партії, термін яких спливає протягом 30 днів.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL аптеки (таблиці drugs, batches: кількість, термін придатності; sales), яка шукає препарат за частиною назви і виводить його партії з кількістю й терміном придатності, позначаючи прострочені.
3. Високий рівень. Створити консольний застосунок C# «Аптека» для бази PostgreSQL (таблиці drugs, batches: кількість, термін придатності; sales) з командами receive, sell <drug> <qty> і expired: продаж списує кількість з партій з найближчим терміном придатності в одній транзакції (прострочені не продаються); --help, коди завершення.
Варіант 25. Кіностудія
1. Початковий рівень. Створити скрипт SQL з таблицями films, genres, actors і roles (актор, фільм, персонаж), наповнити їх і вивести кількість фільмів і середній бюджет за жанрами.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL кіностудії (таблиці films, genres, actors, roles: актор, фільм, персонаж), яка за іменем актора виводить його фільмографію (рік, фільм, роль), а також акторів, які знімалися з ним у спільних фільмах.
3. Високий рівень. Створити застосунок Windows Forms «Кіностудія» для бази PostgreSQL (таблиці films з роком і бюджетом, genres, actors, roles): каталог фільмів із пошуком за назвою, жанром і роком, редагування складу акторів фільму (додавання й видалення ролей у транзакції) і звіт за жанрами зі збереженням у CSV.
Варіант 26. Олімпіада школярів
1. Початковий рівень. Створити скрипт SQL з таблицями regions, schools, participants і scores (бал за кожне завдання), наповнити їх і вивести підсумковий бал кожного учасника.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL олімпіади школярів (таблиці regions, schools, participants, scores з балами за завдання), яка виводить рейтинг учасників регіону, назва якого вводиться з клавіатури, з місцями (однакові бали – однакове місце) і середнім балом регіону.
3. Високий рівень. Створити консольний застосунок C# «Олімпіада» для бази PostgreSQL (таблиці regions, schools, participants, scores з балами за завдання) з командами import <file.csv> (завантаження балів у транзакції з перевіркою кожного рядка і відкатом за помилки), rating [--region R] і regions; --help, коди завершення.
Варіант 27. Сервіс оголошень
1. Початковий рівень. Створити скрипт SQL з таблицями categories, users і ads (заголовок, ціна, дата, активність), наповнити їх і вивести кількість активних оголошень у кожній категорії.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL сервісу оголошень (таблиці categories, users, ads: заголовок, ціна, дата, активність), яка шукає оголошення за словом (ILIKE) і категорією та виводить результат сторінками по 5 записів (LIMIT/OFFSET) з переходом клавішами.
3. Високий рівень. Створити застосунок Windows Forms «Оголошення» для бази PostgreSQL (таблиці categories, users, ads: заголовок, ціна, дата, активність): пошук із фільтрами за категорією та ціною, пагінація кнопками, сортування за вибраним стовпцем зі списку дозволених, додавання й деактивація оголошень.
Варіант 28. Ферма
1. Початковий рівень. Створити скрипт SQL з таблицями fields (площа), crops і harvests (поле, культура, рік, урожай у тоннах), наповнити їх і вивести врожайність (т/га) кожної культури за роками.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL ферми (таблиці fields з площею, crops, harvests: поле, культура, рік, урожай у тоннах), яка за назвою культури виводить поле з найвищою середньою врожайністю і таблицю врожаю за роками зі зміною відносно попереднього року.
3. Високий рівень. Створити консольний застосунок C# «Ферма» для бази PostgreSQL (таблиці fields з площею, crops, harvests: поле, культура, рік, урожай) з командами field, harvest і report <from> <to>: урожай не можна записати двічі для поля й року, звіт показує врожайність культур за роками з підсумками і зберігається у CSV; --help, коди завершення.
Варіант 29. ІТ-проєкти
1. Початковий рівень. Створити скрипт SQL з таблицями projects, employees, tasks і time_entries (дата, години), наповнити їх і вивести кількість годин за проєктами.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL обліку ІТ-проєктів (таблиці projects, employees, tasks, time_entries: дата, години), яка реєструє години працівника за завданням (не більше 12 годин на день сумарно) і виводить звіт годин працівника за тиждень.
3. Високий рівень. Створити застосунок Windows Forms «Облік часу» для бази PostgreSQL (таблиці projects, employees з погодинною ставкою, tasks, time_entries): проєкти й завдання у DataGridView, призначення виконавців, введення годин із перевірками, закриття завдання та звіт годин і вартості робіт за проєктами за місяць.
Варіант 30. Зоопарк
1. Початковий рівень. Створити скрипт SQL з таблицями enclosures, animals, foods і rations (тварина, корм, кількість, час годування), наповнити їх і вивести графік годування на день.
2. Базовий рівень. Створити консольну програму C# для бази PostgreSQL зоопарку (таблиці enclosures, animals, foods, rations: тварина, корм, кількість, час годування), яка виводить тварин вольєра, номер якого вводиться з клавіатури, і добову потребу кожного корму для цього вольєра.
3. Високий рівень. Створити консольний застосунок C# «Зоопарк» для бази PostgreSQL (таблиці enclosures з місткістю, animals, foods, rations: тварина, корм, кількість, час) з командами animal, move <animal> <enclosure> (переселення з перевіркою місткості вольєра в транзакції), feeding <time> і foods (сумарна потреба в кормах на тиждень); --help, коди завершення.
Порядок виконання та захисту роботи
- Опрацювати теоретичні відомості та приклади розв’язання завдань; встановити PostgreSQL 18 і DataGrip, створити роль і базу даних для свого варіанта.
- Спроєктувати схему бази даних у 3НФ, накреслити ER-діаграму (діаграму DataGrip або від руки) і записати скрипт створення таблиць з первинними й зовнішніми ключами та обмеженнями.
- Наповнити таблиці тестовими даними (щонайменше 5 рядків у кожній основній таблиці) і перевірити запити SQL у консолі DataGrip або
psql. - Створити застосунок C# з пакетом Npgsql; рядок з’єднання зберігати в секретах користувача, усі значення передавати параметрами, з’єднання, команди й читачі звільняти
await using. - Пов’язані зміни виконувати в транзакції; обробити помилки підключення та порушення обмежень з повідомленнями користувачеві.
- Продемонструвати роботу застосунку й скрипт SQL викладачеві, пояснити програмний код і відповісти на контрольні питання.