Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Варіанти
Варіант 1. Калькулятор іпотеки
1. Початковий рівень. Створити застосунок WPF, у якому користувач вводить у поля, розміщені на панелі Grid, вартість житла, перший внесок, річну ставку та строк у роках, а після натискання кнопки Calculate бачить щомісячний ануїтетний платіж і переплату.
2. Базовий рівень. Створити застосунок WPF «Іпотека» з полями вартості (до 50 000 000 грн), внеску (не менше 15 %), ставки та строку й повзунком Slider для строку. Некоректні поля позначаються текстом помилки під полем, а таблиця ListView показує помісячний графік платежів (місяць, платіж, тіло, відсотки, залишок) з підсумком у StatusBar.
3. Високий рівень. Створити застосунок WPF «Іпотечний калькулятор», який за вартістю житла, першим внеском, ставкою і строком будує графік платежів, з меню File (Open…, Save…, Exit), вкладками TabControl для ануїтетної та класичної схем і модальним вікном порівняння двох розрахунків. Розрахунок зберігається у файл JSON і відкривається з нього через SaveFileDialog і OpenFileDialog; помилки читання показуються в MessageBox, а команди Open і Save мають клавіші Ctrl+O і Ctrl+S.
Варіант 2. Анкета клієнта банку
1. Початковий рівень. Створити застосунок WPF з анкетою клієнта (прізвище, ім’я, дата народження DatePicker, телефон), розміченою панеллю Grid, і кнопкою Submit, яка показує введені дані в MessageBox.
2. Базовий рівень. Створити застосунок WPF «Анкета клієнта банку» з трьома вкладками TabControl (особисті дані, контакти, дохід) і кнопками Back та Next. Перехід на наступну вкладку можливий лише після перевірки полів поточної (вік від 18 років, телефон, додатний дохід), а помилки виводяться червоним TextBlock під полем.
3. Високий рівень. Створити застосунок WPF «Кредитна анкета» з покроковим заповненням на вкладках (особисті дані, контакти, дохід, сума кредиту) з перевіркою полів, підсумковою сторінкою для перевірки всіх даних і модальним вікном підтвердження з DialogResult. Підтверджені анкети дописуються у файл JSON, а головне меню відкриває вікно списку поданих анкет з пошуком за прізвищем. Поля мають клавіші доступу, кнопки – IsDefault і IsCancel.
Варіант 3. Меню ресторану
1. Початковий рівень. Створити застосунок WPF, який показує меню ресторану з восьми страв як картки (назва, ціна) на панелі WrapPanel; клацання по картці додає страву до списку замовлення й оновлює загальну суму.
2. Базовий рівень. Створити застосунок WPF «Меню ресторану» з картками страв (назва, категорія, ціна; задані в коді) на WrapPanel у ScrollViewer, фільтром категорій ComboBox і кошиком ListBox з кількістю кожної страви та сумою. Один обробник спливаючої події Click, підключений до панелі, обслуговує всі кнопки Add, а кнопка Order доступна лише для непорожнього кошика.
3. Високий рівень. Створити застосунок WPF «Ресторан», який завантажує меню (категорія, назва, ціна, файл зображення) з файлу JSON і будує картки користувацьким елементом DishCard з властивостями залежності Title і Price. Кошик дає змогу змінювати кількість і видаляти позиції, модальне вікно підтвердження показує чек зі знижкою 10 % на замовлення понад 1 000 грн, а замовлення зберігаються у файл.
Варіант 4. Годинник світу
1. Початковий рівень. Створити застосунок WPF, який показує поточний час у Мадриді, Лондоні та Нью-Йорку у трьох рядках Grid і оновлює його щосекунди таймером DispatcherTimer.
2. Базовий рівень. Створити користувацький елемент керування WPF CityClock з властивістю залежності TimeZoneId, який показує назву міста, час і дату в цьому поясі. Головне вікно містить шість таких елементів на UniformGrid і список ComboBox для додавання міста; некоректний ідентифікатор часового поясу показує напис Unknown time zone.
3. Високий рівень. Створити застосунок WPF «Годинник світу» з користувацьким елементом аналогового циферблата на Canvas (стрілки – Line, властивість залежності Time) і цифровим підписом. Перелік міст зберігається у файл JSON, меню Clocks додає місто через модальне вікно пошуку й видаляє вибране, а перемикач 12h/24h змінює формат усіх годинників.
Варіант 5. Нотатник
1. Початковий рівень. Створити застосунок WPF «Нотатник» з багаторядковим полем TextBox на все вікно і кнопками Open та Save, які відкривають і зберігають текстовий файл через OpenFileDialog і SaveFileDialog.
2. Базовий рівень. Створити застосунок WPF «Нотатник» з меню Menu (File: New, Open…, Save, Exit; Edit: Cut, Copy, Paste), панеллю ToolBar і рядком стану з кількістю рядків і символів. Меню й кнопки використовують вбудовані команди ApplicationCommands, а Save доступна лише за незбережених змін.
3. Високий рівень. Створити застосунок WPF «Нотатник» з кількома документами на вкладках TabControl, ознакою незбережених змін у заголовку вкладки, питанням про збереження під час закриття вкладки й вікна, діалогом пошуку й заміни (модальне вікно) та списком останніх п’яти файлів у меню, що зберігається між запусками. Помилки файлових операцій показуються в MessageBox.
Варіант 6. Каталог рослин
1. Початковий рівень. Створити застосунок WPF, у якому дерево TreeView містить родини рослин і рослини, а після вибору рослини праворуч показуються її назва та короткий опис.
2. Базовий рівень. Створити застосунок WPF «Каталог рослин» (дані задано в коді) з TreeView за родинами, роздільником GridSplitter і карткою вибраної рослини (назва, латинська назва, умови догляду, фото Image з ресурсів проєкту). Поле пошуку розгортає й виділяє першу рослину, назва якої містить введений текст, або повідомляє, що нічого не знайдено.
3. Високий рівень. Створити застосунок WPF «Довідник садівника», який завантажує рослини з файлу JSON (родина, назва, опис, шлях до фото), будує дерево з лінивим завантаженням вузлів і дає змогу додавати та редагувати рослини в модальному вікні з перевіркою полів і вибором фото через OpenFileDialog. Зміни зберігаються у файл командою Save (Ctrl+S).
Варіант 7. Калькулятор площ
1. Початковий рівень. Створити застосунок WPF з вкладками TabControl для прямокутника, кола й трикутника, на кожній з яких користувач вводить розміри й отримує площу та периметр фігури.
2. Базовий рівень. Створити застосунок WPF «Калькулятор площ» з вкладками для прямокутника, кола й трикутника, на яких користувач вводить розміри й бачить площу та периметр, з перевіркою розмірів (додатні числа, нерівність трикутника) і ескізом фігури на Canvas (Rectangle, Ellipse, Polygon), масштабованим так, щоб фігура займала полотно.
3. Високий рівень. Створити застосунок WPF «Площа ділянки», у якому користувач клацаннями по Canvas задає вершини багатокутника, а програма показує площу за формулою Гаусса, периметр і довжини сторін у таблиці з масштабом 1 піксель = 0,1 м. Вершини можна перетягувати мишею й видаляти правою кнопкою, а контур зберігається у файл і відкривається з нього.
Варіант 8. Розклад уроків
1. Початковий рівень. Створити застосунок WPF, який показує розклад на тиждень у Grid (стовпці – дні, рядки – номери уроків) з назвами предметів, заданими в коді.
2. Базовий рівень. Створити застосунок WPF «Розклад уроків» з таблицею на Grid, де подвійне клацання по клітинці відкриває модальне вікно редагування (предмет ComboBox, кабінет, вчитель), а OK оновлює клітинку. Порожні клітинки виділено сірим, а рядок стану показує кількість уроків на тиждень.
3. Високий рівень. Створити застосунок WPF «Розклад класу», який показує тижневий розклад уроків (предмет, кабінет, вчитель) у таблиці на Grid, зберігає розклади кількох класів у файлі JSON, перемикає клас у ComboBox, перевіряє конфлікти (той самий вчитель або кабінет одночасно в різних класах) і показує їх у списку, а також експортує розклад вибраного класу у файл CSV через SaveFileDialog.
Варіант 9. Конвертер кольорів
1. Початковий рівень. Створити застосунок WPF з трьома повзунками Slider (R, G, B від 0 до 255), прямокутником попереднього перегляду кольору та написом з кодом кольору у форматі #RRGGBB.
2. Базовий рівень. Створити застосунок WPF «Конвертер кольорів» з повзунками RGB і HSV, які змінюють одне одного, полем для введення коду #RRGGBB з перевіркою, прямокутником перегляду та кнопкою Copy, що копіює код у буфер обміну (Clipboard.SetText).
3. Високий рівень. Створити застосунок WPF «Палітра», що містить користувацький елемент ColorPicker з властивістю залежності SelectedColor, палітру збережених кольорів на WrapPanel, генерування гармонійних кольорів (доповняльний, тріада) та збереження палітри у файл JSON. Клацання по зразку в палітрі вибирає колір, а контекстне меню видаляє його.
Варіант 10. Планувальник подорожей
1. Початковий рівень. Створити застосунок WPF, який показує план подорожі на три дні: кожен день – елемент Expander із заголовком дати та списком місць для відвідування.
2. Базовий рівень. Створити застосунок WPF «Планувальник подорожей», у якому користувач задає дати початку й завершення (DatePicker), після чого для кожного дня створюється Expander з полем додавання місця та списком. Некоректний період (кінець раніше за початок, понад 30 днів) показує повідомлення, а підсумок містить кількість місць.
3. Високий рівень. Створити застосунок WPF «Подорож» з кількома поїздками, збереженими у файлі JSON: для кожного місця задаються час, адреса й орієнтовні витрати, дні показуються в Expander, а рядок стану містить загальний бюджет. Місця можна переносити між днями через контекстне меню, а план експортується в текстовий файл.
Варіант 11. Гра «П’ятнашки»
1. Початковий рівень. Створити застосунок WPF з грою «П’ятнашки» на панелі UniformGrid 4 × 4: клацання по плитці поруч із порожньою клітинкою переміщує її.
2. Базовий рівень. Створити застосунок WPF «П’ятнашки» з перемішуванням лише допустимими ходами (щоб гра мала розв’язок), лічильником ходів, таймером і повідомленням про перемогу. Один обробник Click підключено до UniformGrid, а стрілки клавіатури переміщують плитки.
3. Високий рівень. Створити застосунок WPF «П’ятнашки» з вибором розміру поля 3 × 3, 4 × 4 або 5 × 5, режимом картинки (плитки – частини зображення з файлу), кнопкою скасування ходу та таблицею рекордів для кожного розміру, що зберігається у файл JSON і показується в окремому вікні.
Варіант 12. Картотека бібліотеки
1. Початковий рівень. Створити застосунок WPF, який показує список книг (назва, автор, рік) у ListView з поданням GridView і дає змогу додати книгу з полів під таблицею.
2. Базовий рівень. Створити застосунок WPF «Картотека бібліотеки» з таблицею книг (назва, автор, рік), полем фільтра за назвою або автором і модальним вікном додавання та редагування з перевіркою року (від 1450 до поточного) та кнопками OK і Cancel. Подвійне клацання по рядку відкриває редагування.
3. Високий рівень. Створити застосунок WPF «Бібліотека» з вкладками книг (назва, автор, рік) і читачів (прізвище, телефон), видачею книги читачеві на визначений строк у модальному вікні, позначкою прострочених видач і збереженням усіх даних у файлі JSON. Меню Reports відкриває вікно боржників з сумою штрафу 5 грн за кожен день прострочення.
Варіант 13. Секундомір спортсмена
1. Початковий рівень. Створити застосунок WPF «Секундомір» з великим написом часу у форматі мм:сс.сс і кнопками Start/Stop та Reset; час вимірює Stopwatch, а напис оновлює DispatcherTimer.
2. Базовий рівень. Створити застосунок WPF «Секундомір спортсмена» з написом часу, кнопками Start/Stop, Reset і Lap, списком кіл (номер, час кола, загальний час), виділенням найкращого й найгіршого кола та керуванням клавішами Space і L через KeyBinding або обробник PreviewKeyDown.
3. Високий рівень. Створити застосунок WPF «Тренування з бігу» із секундоміром і записом кіл, який зберігає результати кількох спортсменів (ім’я вибирається в ComboBox), показує кола в ListView, обчислює середній темп на кілометр для заданої довжини кола та експортує тренування у файл CSV. Вікно історії показує найкращий час кожного спортсмена.
Варіант 14. Реєстр пацієнтів
1. Початковий рівень. Створити застосунок WPF з формою пацієнта (ПІБ, дата народження DatePicker, стать RadioButton, телефон) на панелі Grid і кнопкою Save, що додає пацієнта до списку.
2. Базовий рівень. Створити застосунок WPF «Реєстр пацієнтів» з формою пацієнта (ПІБ, дата народження, стать, телефон) та таблицею, у якій поля перевіряються перед збереженням (обов’язкові поля, дата не пізніше ніж сьогодні, телефон у форматі +380XXXXXXXXX), помилки показуються біля полів, а поле пошуку фільтрує таблицю за прізвищем.
3. Високий рівень. Створити застосунок WPF «Реєстратура», що зберігає пацієнтів (ПІБ, дата народження, телефон) і записи на прийом (лікар, дата, час) у файлі JSON, показує календар записів на вибрану дату, не дає записати двох пацієнтів до одного лікаря на той самий час і відкриває картку пацієнта з історією відвідувань у немодальному вікні.
Варіант 15. Електронна шкала оцінок
1. Початковий рівень. Створити застосунок WPF, у якому користувач вводить кількість балів (0–100) і бачить оцінку за шкалою ECTS та національною шкалою.
2. Базовий рівень. Створити користувацький елемент керування WPF GradeControl з властивістю залежності Score (0–100, з примусовим обмеженням CoerceValueCallback), який показує бали, смугу заповнення й літеру ECTS. Головне вікно містить список студентів з таким елементом і повзунком для кожного.
3. Високий рівень. Створити застосунок WPF «Електронний журнал» для групи з файлу CSV (прізвище, бали за модулі), де користувацький елемент GradeControl (властивість залежності Score, смуга заповнення й літера ECTS) показує підсумок кожного студента, таблиця сортується за прізвищем або балами, а вікно статистики показує розподіл оцінок ECTS стовпцями на Canvas. Змінені бали зберігаються назад у файл.
Варіант 16. Конструктор піци
1. Початковий рівень. Створити застосунок WPF, у якому користувач обирає розмір піци (RadioButton) та інгредієнти (CheckBox), а напис одразу показує вартість.
2. Базовий рівень. Створити застосунок WPF «Конструктор піци» з вибором розміру (RadioButton) та інгредієнтів (CheckBox) з цінами, заданими в коді, у якому вибрані інгредієнти показуються шарами зображень Image з прозорим тлом, накладеними на панелі Grid в одній клітинці, ціна перераховується одним обробником спливаючої події Checked/Unchecked, а замовлення понад п’ять інгредієнтів забороняється з повідомленням.
3. Високий рівень. Створити застосунок WPF «Піцерія», що завантажує інгредієнти й ціни з файлу JSON, дає змогу зібрати кілька піц у кошик, зберегти улюблену піцу під назвою та оформити замовлення в модальному вікні з адресою й часом доставки. Історія замовлень зберігається у файл і показується в окремому вікні.
Варіант 17. Облік пального
1. Початковий рівень. Створити застосунок WPF, у якому користувач вводить показання одометра та кількість літрів двох заправок, а програма обчислює витрату пального на 100 км.
2. Базовий рівень. Створити застосунок WPF «Облік пального» з таблицею заправок (дата, одометр, літри, ціна за літр), формою додавання з перевіркою (одометр зростає, додатні значення) і рядком стану StatusBar із середньою витратою та загальними витратами в гривнях.
3. Високий рівень. Створити застосунок WPF «Автомобільний журнал» для кількох автомобілів з файлу JSON із заправками (дата, одометр, літри, ціна), з додаванням, редагуванням і видаленням заправок, графіком витрати на 100 км за заправками (лінія Polyline на Canvas) та звітом за вибраний місяць у модальному вікні з експортом у CSV.
Варіант 18. Фотоальбом
1. Початковий рівень. Створити застосунок WPF, який показує зображення з вибраної через OpenFolderDialog папки мініатюрами на WrapPanel у ScrollViewer.
2. Базовий рівень. Створити застосунок WPF «Фотоальбом», який показує зображення з вибраної через OpenFolderDialog папки мініатюрами на WrapPanel, вибране фото – у Viewbox, має кнопки й клавіші ← та → для переходу між фото та рядок стану з ім’ям файлу, розміром зображення в пікселях і розміром файлу.
3. Високий рівень. Створити застосунок WPF «Фотоальбом» для зображень з вибраної папки з мініатюрами, слайд-шоу (DispatcherTimer, інтервал у налаштуваннях), повноекранним режимом (F11), обертанням фото (RotateTransform), альбомами – списками вибраних фото, що зберігаються у файл JSON, та обробкою помилок пошкоджених файлів.
Варіант 19. Калькулятор калорій
1. Початковий рівень. Створити застосунок WPF, у якому користувач обирає продукт у ComboBox, вводить масу в грамах і бачить калорійність порції.
2. Базовий рівень. Створити застосунок WPF «Калькулятор калорій» з довідником продуктів (калорії, білки, жири, вуглеводи на 100 г), заданим у коді, списком з’їденого за день (продукт, маса, калорії, білки, жири, вуглеводи), денною нормою, що вводиться користувачем, індикатором ProgressBar виконання норми та перевіркою введеної маси.
3. Високий рівень. Створити застосунок WPF «Щоденник харчування», що завантажує довідник продуктів з файлу CSV, зберігає записи за днями у файл JSON, дає змогу переходити між днями (DatePicker) і показує тижневий звіт стовпцями на Canvas. Нові продукти додаються в модальному вікні з перевіркою полів.
Варіант 20. Словник-тренажер
1. Початковий рівень. Створити застосунок WPF, який показує англійське слово з заданого в коді списку, приймає переклад у полі TextBox і повідомляє, чи відповідь правильна.
2. Базовий рівень. Створити застосунок WPF «Словник-тренажер» зі списком англійських слів і перекладів, заданим у коді, карткою слова, режимами «англійська → українська» та «українська → англійська» (RadioButton), перевіркою введеного перекладу без урахування регістру й зайвих пробілів, лічильниками правильних і неправильних відповідей та клавішею Enter для перевірки.
3. Високий рівень. Створити застосунок WPF «Вивчення слів», що завантажує набори слів з файлів CSV (слово, переклад), показує слова для перекладу, частіше показує слова з помилками, зберігає статистику кожного слова у файл JSON і має вікно редагування набору (додавання, видалення, пошук) та вікно результатів сесії з відсотком правильних відповідей.
Варіант 21. Гра «Сапер»
1. Початковий рівень. Створити застосунок WPF з полем «Сапера» 8 × 8 на UniformGrid, де клацання по клітинці показує міну або кількість мін навколо.
2. Базовий рівень. Створити застосунок WPF «Сапер» з полем 8 × 8 на UniformGrid і випадково розміщеними мінами, рекурсивним відкриванням порожніх областей, прапорцями на правій кнопці миші, лічильником мін і повідомленням про перемогу або поразку. Натискання обробляє одна тунельна подія PreviewMouseDown, підключена до поля.
3. Високий рівень. Створити застосунок WPF «Сапер» з рівнями складності (8 × 8, 16 × 16, 30 × 16), власним розміром поля в модальному вікні, таймером, гарантією безпечного першого ходу та таблицею рекордів у файлі JSON для кожного рівня.
Варіант 22. Колекція монет
1. Початковий рівень. Створити застосунок WPF з деревом TreeView країн і монет, у якому вибір монети показує її номінал, рік і матеріал.
2. Базовий рівень. Створити застосунок WPF «Колекція монет» (країна, назва, номінал, рік, матеріал, фото) з деревом за країнами, пошуком за назвою або роком, карткою монети з фото та формою додавання монети з перевіркою року й номіналу; після додавання дерево розгортає відповідну країну.
3. Високий рівень. Створити застосунок WPF «Нумізмат», що зберігає колекцію монет (країна, номінал, рік, матеріал) у файлі JSON, групує монети в дереві за країною або століттям (перемикач), дає змогу редагувати й видаляти монети, позначати дублікати для обміну та експортувати список дублікатів у текстовий файл.
Варіант 23. Генератор паролів
1. Початковий рівень. Створити застосунок WPF, що генерує пароль заданої повзунком Slider довжини (8–32) з латинських літер і цифр та показує його в полі TextBox.
2. Базовий рівень. Створити застосунок WPF «Генератор паролів» з прапорцями наборів символів (малі, великі, цифри, спецсимволи), гарантією хоча б одного символу кожного вибраного набору, індикатором надійності ProgressBar з підписом і кнопкою копіювання в буфер обміну.
3. Високий рівень. Створити застосунок WPF «Паролі», що генерує паролі та фрази з кількох слів зі словника (файл), оцінює ентропію в бітах, зберігає історію генерацій з призначенням у файл і має користувацький елемент StrengthMeter з властивістю залежності Entropy.
Варіант 24. Термінал кінотеатру
1. Початковий рівень. Створити застосунок WPF зі схемою залу 6 × 10 місць на панелі Grid, де клацання по місцю змінює його стан «вільне/вибране» та оновлює кількість вибраних місць.
2. Базовий рівень. Створити застосунок WPF «Термінал кінотеатру» з вибором фільму та сеансу (ComboBox, дані задано в коді), схемою залу 6 × 10 із зайнятими, вільними й вибраними місцями, різною ціною рядів і кнопкою Buy, яка показує квиток у модальному вікні.
3. Високий рівень. Створити застосунок WPF «Кінотеатр», що завантажує розклад сеансів із файлу JSON, зберігає продані місця для кожного сеансу, не дає обрати місця так, щоб між ними залишилося одне вільне місце, та друкує (зберігає в текстовий файл) квитки з номером замовлення.
Варіант 25. Калькулятор оренди авто
1. Початковий рівень. Створити застосунок WPF, у якому користувач обирає клас автомобіля (ComboBox) і дати оренди (DatePicker), а програма показує кількість днів і вартість.
2. Базовий рівень. Створити застосунок WPF «Оренда авто» з вибором класу автомобіля з добовою ціною (ComboBox) і дат оренди (DatePicker), перевіркою періоду (не в минулому, від 1 до 30 днів), додатковими опціями (CheckBox: дитяче крісло, страховка, GPS), знижкою 10 % від семи днів і підсумковою таблицею розрахунку.
3. Високий рівень. Створити застосунок WPF «Прокат автомобілів» з каталогом авто на WrapPanel з файлу JSON, перевіркою доступності автомобіля на вибраний період з урахуванням наявних бронювань, оформленням договору в модальному вікні та збереженням бронювань у файл.
Варіант 26. Панель розумного будинку
1. Початковий рівень. Створити застосунок WPF з перемикачами ToggleButton для світла в чотирьох кімнатах, де кожна кнопка показує стан «On/Off», а напис – кількість увімкнених ламп.
2. Базовий рівень. Створити застосунок WPF «Розумний будинок» з групами пристроїв за кімнатами (GroupBox), повзунками яскравості й температури, кнопкою All off і одним обробником спливаючої події Checked/Unchecked на рівні вікна, що оновлює орієнтовне споживання потужності.
3. Високий рівень. Створити застосунок WPF «Розумний будинок», що завантажує конфігурацію кімнат і пристроїв з файлу JSON, будує інтерфейс користувацьким елементом DeviceTile, підтримує сценарії («Ніч», «Вихід з дому») у модальному вікні редагування та веде журнал змін станів у файлі.
Варіант 27. Конвертер часових поясів
1. Початковий рівень. Створити застосунок WPF, у якому користувач обирає місто в ComboBox і вводить час, а програма показує відповідний час у Лондоні.
2. Базовий рівень. Створити застосунок WPF «Конвертер часових поясів» з вибором дати й часу зустрічі та кількох міст, таблицею місцевого часу для кожного міста з позначкою робочого часу (9:00–18:00) та урахуванням переходу на літній час через TimeZoneInfo.
3. Високий рівень. Створити застосунок WPF «Планувальник зустрічей», що для учасників з різних міст підбирає години, робочі для всіх, показує їх смугою на Canvas, зберігає зустрічі у файл JSON і експортує запрошення в текстовий файл з часом для кожного учасника.
Варіант 28. Облік тренувань
1. Початковий рівень. Створити застосунок WPF зі списком вправ і полями (вправа, підходи, повторення, вага) внизу вікна, розміщеного панеллю DockPanel, та кнопкою додавання.
2. Базовий рівень. Створити застосунок WPF «Облік тренувань» з головним вікном на DockPanel (меню, список тренувань за датами, рядок стану) і модальним вікном додавання вправи з перевіркою полів. Рядок стану показує загальний тоннаж (підходи × повторення × вага) вибраного тренування.
3. Високий рівень. Створити застосунок WPF «Щоденник тренувань», що зберігає тренування у файлі JSON, містить довідник вправ за групами м’язів (TreeView), показує прогрес ваги вибраної вправи графіком на Canvas і будує звіт за місяць з експортом у CSV.
Варіант 29. Тест з правил дорожнього руху
1. Початковий рівень. Створити застосунок WPF, що показує одне питання ПДР з трьома варіантами відповіді (RadioButton) і після натискання Check повідомляє, чи відповідь правильна.
2. Базовий рівень. Створити застосунок WPF «Тест ПДР» з десятьма питаннями, заданими в коді, зображенням дорожньої ситуації з ресурсів проєкту, переходом між питаннями та підсумковим вікном з кількістю правильних відповідей і списком помилок.
3. Високий рівень. Створити застосунок WPF «Іспит ПДР», що завантажує питання, варіанти й файли зображень з файлу JSON, обирає 20 випадкових питань, обмежує час 20 хвилинами, завершує іспит після трьох помилок і зберігає результати спроб у файл з вікном історії.
Варіант 30. Розширений калькулятор
1. Початковий рівень. Створити застосунок WPF «Калькулятор» з кнопками цифр і чотирьох дій на UniformGrid, де один обробник спливаючої події Click обслуговує всі кнопки.
2. Базовий рівень. Створити застосунок WPF «Калькулятор» з десятковою комою, зміною знака, відсотком, історією обчислень у ListBox і введенням з клавіатури через тунельну подію PreviewTextInput; ділення на нуль показує Error.
3. Високий рівень. Створити застосунок WPF «Інженерний калькулятор» з перемиканням звичайного та інженерного режимів (функції sin, cos, log, степінь, дужки й пріоритет операцій), історією, яку можна зберегти у файл і повторно використати клацанням, та командами копіювання результату (Ctrl+C).
Порядок виконання та захисту роботи
- Опрацювати теоретичні відомості та приклади розв’язання завдань.
- Намалювати ескіз кожного вікна, визначити панелі компонування, елементи керування, їхні імена та події; створити у Visual Studio 2026 проєкт WPF Application (.NET 10).
- Описати інтерфейс розміткою XAML:
Gridз розмірамиAutoі*, вкладені панелі, клавіші доступу,IsDefaultіIsCancel; перевірити компонування під час зміни розміру вікна (Live Visual Tree, Display Layout Adorners). - Реалізувати обробники подій, команди, перевірку введених даних і роботу з файлами; спільну обробку групи елементів виконати через маршрутизовані події, повторювані частини винести в користувацькі елементи керування.
- Зібрати проєкт без попереджень і перевірити роботу застосунку на коректних, некоректних і граничних даних.
- Продемонструвати роботу застосунку викладачеві, пояснити розмітку XAML і код та відповісти на контрольні питання.