Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Варіанти
Варіант 1. Кругова діаграма бюджету
1. Початковий рівень. Створити застосунок Windows Forms, який малює кругову діаграму витрат за п’ятьма статтями (суми задані в програмі): сектори з різною штриховкою HatchBrush і легенду.
2. Базовий рівень. Створити застосунок Windows Forms, у якому статті й суми (додатні числа) вводяться в DataGridView з перевіркою, а кругова діаграма з відсотками біля секторів перемальовується після кожної зміни даних і розміру вікна.
3. Високий рівень. Створити застосунок Windows Forms «Бюджет», який малює кругову діаграму витрат за статтями, відкриває і зберігає статті й суми в CSV-файлі (рядки з помилками пропускаються з повідомленням), виділяє сектор під курсором (GraphicsPath.IsVisible), зберігає діаграму в PNG і показує попередній перегляд друку.
Варіант 2. Шахова дошка
1. Початковий рівень. Створити застосунок Windows Forms, який малює шахову дошку 8 × 8 зі штрихованими темними клітинками та підписами a–h і 1–8; розмір клітинки залежить від розміру вікна.
2. Базовий рівень. Створити застосунок Windows Forms, який малює шахову дошку 8 × 8 з підписами, розставляє фігури (літери в колах) за рядком FEN із текстового поля з перевіркою формату і показує в рядку стану назву клітинки, на яку клацнув користувач (наприклад, e4).
3. Високий рівень. Створити застосунок Windows Forms «Шахова дошка», який малює дошку 8 × 8 з фігурами в початковій позиції; фігури перетягуються мишею, ходи записуються в список у форматі e2-e4, останній хід позначається пунктирними рамками, позиція зберігається й відкривається як рядок FEN, а дошка експортується в PNG.
Варіант 3. Сонячна система
1. Початковий рівень. Створити застосунок Windows Forms, який малює Сонце в центрі вікна і чотири планети на пунктирних колових орбітах з підписами назв.
2. Базовий рівень. Створити застосунок Windows Forms, який малює Сонце і чотири планети на колових орбітах; планети рухаються з різними періодами за Timer без мерехтіння, а кнопки запускають і зупиняють анімацію та змінюють швидкість від 0,5 до 5 разів.
3. Високий рівень. Створити застосунок Windows Forms «Сонячна система», який малює Сонце і планети, що рухаються коловими орбітами, читає параметри планет (назва, радіус орбіти, період, розмір) із JSON-файлу з перевіркою, змінює масштаб колесом миші, показує дані планети під курсором і зберігає поточний кадр у PNG.
Варіант 4. Графік температур
1. Початковий рівень. Створити застосунок Windows Forms, який малює лінійний графік температури за 12 місяців (значення задані в програмі) з осями, підписами місяців і маркерами в точках.
2. Базовий рівень. Створити застосунок Windows Forms, який малює лінійний графік температури за 12 місяців; температури (від −60 до 60 °C) вводяться в таблицю, графік масштабується за діапазоном значень і розміром вікна, а під курсором виводиться підказка з місяцем і значенням.
3. Високий рівень. Створити застосунок Windows Forms «Температури», який відкриває CSV-файли кількох міст (рядок – місяць і температура), малює їхні графіки температур різними стилями ліній з легендою, дозволяє вмикати й вимикати міста, зберігає графік у PNG і друкує його з попереднім переглядом.
Варіант 5. Спідометр
1. Початковий рівень. Створити застосунок Windows Forms, який малює спідометр від 0 до 200 км/год з поділками через 10 км/год, підписами через 20 км/год і стрілкою на значенні 90.
2. Базовий рівень. Створити власний елемент керування Speedometer, який малює круглу шкалу швидкості з поділками та стрілкою, з властивостями Value, Maximum і RedZone (перевірка діапазону, атрибути Category, Description, DefaultValue); зона понад RedZone заштрихована, а стрілка на формі керується TrackBar.
3. Високий рівень. Створити застосунок Windows Forms «Тест-драйв» з власним елементом керування Speedometer (кругла шкала зі стрілкою, властивості Value і Maximum), у якому клавіші зі стрілками плавно змінюють швидкість (Timer), елемент генерує подію перевищення швидкості, а журнал перевищень зберігається у файл.
Варіант 6. Дерево Піфагора
1. Початковий рівень. Створити застосунок Windows Forms, який рекурсивно малює дерево Піфагора глибиною 8, використовуючи TranslateTransform, RotateTransform, Save і Restore.
2. Базовий рівень. Створити застосунок Windows Forms, який рекурсивно малює дерево Піфагора; глибина (1–14) і кут (15–75°) задаються NumericUpDown, дерево масштабується під вікно, а в рядку стану виводяться кількість квадратів і час малювання.
3. Високий рівень. Створити застосунок Windows Forms «Фрактали», який малює дерево Піфагора або криву Коха в Bitmap, змінює масштаб і зсув мишею, зберігає параметри в JSON-файл і зображення заданого розміру в PNG.
Варіант 7. Карта кінозалу
1. Початковий рівень. Створити застосунок Windows Forms, який малює схему кінозалу з 8 рядів по 12 місць із номерами, екран угорі та номери рядів ліворуч.
2. Базовий рівень. Створити застосунок Windows Forms, який малює схему кінозалу (8 рядів по 12 місць, ціна квитка задана в програмі); клацання вибирає або скасовує вибір місця (вибрані заштриховані, зайняті закреслені й недоступні), а праворуч виводяться вибрані місця та загальна вартість.
3. Високий рівень. Створити застосунок Windows Forms «Кінозал», який читає схему залу й зайняті місця з JSON-файлу, малює схему, дозволяє вибрати мишею не більше 6 місць, зберігає бронювання у файл, зберігає квиток у PNG і друкує квитки з попереднім переглядом.
Варіант 8. Секундомір
1. Початковий рівень. Створити застосунок Windows Forms, який малює циферблат секундоміра з 60 поділками і стрілкою, що рухається за Timer.
2. Базовий рівень. Створити застосунок Windows Forms «Секундомір», який малює циферблат з 60 поділками і стрілкою, має кнопки Start, Stop, Reset, вимірює час Stopwatch, використовує подвійну буферизацію та показує цифровий час у форматі mm:ss.ff під циферблатом.
3. Високий рівень. Створити застосунок Windows Forms «Секундомір» з циферблатом і записом кіл: список кіл, позначка найшвидшого й найповільнішого кола, стовпчиковий графік тривалостей, збереження результатів у CSV і графіка в PNG.
Варіант 9. Гістограма оцінок
1. Початковий рівень. Створити застосунок Windows Forms, який малює гістограму кількості оцінок «2»–«5» групи (значення задані в програмі) зі штрихованими стовпчиками й підписами.
2. Базовий рівень. Створити застосунок Windows Forms, у якому бали студентів (0–100) вводяться в список, групуються за шкалою ECTS (A–F) і показуються гістограмою з числами над стовпчиками та пунктирною лінією середнього балу.
3. Високий рівень. Створити застосунок Windows Forms «Статистика оцінок», який відкриває CSV-файл відомості (прізвище; бал 0–100) з повідомленням про некоректні рядки, малює гістограму балів з вибраною шириною інтервалу, зберігає гістограму в PNG і друкує звіт на сторінці A4.
Варіант 10. План квартири
1. Початковий рівень. Створити застосунок Windows Forms, який малює план із чотирьох кімнат-прямокутників у масштабі 1 м = 50 пікселів з назвами та площами кімнат.
2. Базовий рівень. Створити застосунок Windows Forms, який малює план кімнати в масштабі 1 м = 50 пікселів з меблями-прямокутниками; меблі перетягуються мишею без виходу за межі кімнати, а в рядку стану показуються координати курсора в метрах.
3. Високий рівень. Створити застосунок Windows Forms «План квартири», який малює в масштабі кімнати-прямокутники з назвами й меблі, зберігає й відкриває план у JSON-файлі, дозволяє додавати кімнати й меблі, повертати меблі на 90°, змінювати масштаб колесом миші і друкувати план з попереднім переглядом.
Варіант 11. Гра «Змійка»
1. Початковий рівень. Створити застосунок Windows Forms, який малює поле 20 × 20 клітинок, змійку з п’яти сегментів і їжу у випадковій вільній клітинці.
2. Базовий рівень. Створити гру Windows Forms «Змійка», у якій змійка рухається за Timer, керується стрілками, росте після їжі, а зіткнення зі стіною чи собою завершує гру з рахунком; малювання не мерехтить.
3. Високий рівень. Створити гру Windows Forms «Змійка» з рівнями швидкості, перешкодами з файлу карти, паузою і таблицею 10 рекордів у JSON-файлі; логіка гри реалізується класами, незалежними від форми.
Варіант 12. Генератор візерунків
1. Початковий рівень. Створити застосунок Windows Forms, який малює орнамент: фігуру з еліпсів, повторену 12 разів поворотом навколо центру вікна (RotateTransform).
2. Базовий рівень. Створити застосунок Windows Forms, який малює орнамент із фігури, повтореної поворотом навколо центру вікна; кількість повторень (3–36), вид фігури (еліпс, пелюстка з кривих Безьє, многокутник) і товщина лінії задаються елементами керування, а візерунок одразу перемальовується.
3. Високий рівень. Створити застосунок Windows Forms «Візерунки», який генерує симетричний візерунок із фігур, повернутих навколо центру, за числом-зерном, зберігає й відкриває параметри в JSON-файлі, експортує PNG заданого розміру (100–4000 пікселів) і показує попередній перегляд друку.
Варіант 13. Траєкторія снаряда
1. Початковий рівень. Створити застосунок Windows Forms, який малює траєкторію снаряда зі швидкістю 50 м/с під кутом 45° (g = 9,81 м/с²) з осями та масштабом.
2. Базовий рівень. Створити застосунок Windows Forms, який малює траєкторію снаряда з осями; швидкість (1–500 м/с) і кут (1–89°) вводяться з перевіркою, траєкторія вписується у вікно, а найвища точка й дальність позначаються з підписами.
3. Високий рівень. Створити застосунок Windows Forms «Балістика», який за введеними швидкістю й кутом малює траєкторії снаряда і порівнює до п’яти траєкторій різними стилями ліній з легендою, анімує політ за Timer, зберігає постріли в CSV-файл і графік у PNG.
Варіант 14. Діаграма Ганта
1. Початковий рівень. Створити застосунок Windows Forms, який малює діаграму Ганта для п’яти завдань (назва, початок, тривалість задані в програмі) з часовою шкалою по днях.
2. Базовий рівень. Створити застосунок Windows Forms, який малює діаграму Ганта з часовою шкалою по днях; завдання (назва, початок, тривалість) вводяться в DataGridView з перевіркою дат, поточна дата позначається пунктирною лінією, а прострочені завдання – штриховкою.
3. Високий рівень. Створити застосунок Windows Forms «Діаграма Ганта», який зберігає проєкт у JSON-файлі, змінює дати перетягуванням смуг мишею, малює залежності стрілками і друкує діаграму на кількох сторінках (HasMorePages).
Варіант 15. Малювання мишею
1. Початковий рівень. Створити застосунок Windows Forms, у якому користувач малює мишею лінії; лінії зберігаються як списки точок і не зникають після зміни розміру вікна.
2. Базовий рівень. Створити застосунок Windows Forms «Пензель», у якому користувач малює мишею лінії, товщина лінії (1–30) задається TrackBar, стиль – ComboBox, кнопка Clear питає підтвердження, а Ctrl+Z скасовує останню лінію.
3. Високий рівень. Створити застосунок Windows Forms «Малювання», у якому користувач малює мишею, малюнок накопичується в Bitmap; застосунок підтримує 20 кроків скасування й повторення, гумку, фонове зображення, збереження в PNG або JPEG і попереджає про незбережені зміни.
Варіант 16. Світлофор
1. Початковий рівень. Створити застосунок Windows Forms, який малює світлофор із трьох кругів: увімкнений сигнал зафарбований, вимкнені – контури; сигнал перемикається кнопкою.
2. Базовий рівень. Створити власний елемент керування TrafficLight, який малює світлофор із трьох сигналів (увімкнений зафарбований), з властивостями State і Interval (1–60 с) з атрибутами для Properties, подією StateChanged і автоматичним перемиканням за Timer.
3. Високий рівень. Створити застосунок Windows Forms «Перехрестя» з чотирма узгодженими власними елементами TrafficLight (світлофор із трьох сигналів з автоматичним перемиканням), автомобілями, що зупиняються на сигнал, тривалостями фаз у JSON-файлі та журналом перемикань.
Варіант 17. Мозаїка зображення
1. Початковий рівень. Створити застосунок Windows Forms, який відкриває зображення через OpenFileDialog і показує його у вікні зі збереженням пропорцій (DrawImage).
2. Базовий рівень. Створити застосунок Windows Forms, який відкриває зображення через OpenFileDialog, розбиває його на плитки 4–64 пікселі, обчислює середній колір плиток через GetPixel і малює мозаїку; про некоректний файл повідомляється без аварійного завершення.
3. Високий рівень. Створити застосунок Windows Forms «Мозаїка», який перетворює відкрите зображення на мозаїку з плиток середнього кольору методом LockBits, показує оригінал і результат поруч, пропонує квадратні або круглі плитки, виводить час обробки і зберігає результат у PNG.
Варіант 18. Свічковий графік цін
1. Початковий рівень. Створити застосунок Windows Forms, який малює свічковий графік за 10 днів (ціни задані в програмі): зростання – порожні свічки, падіння – заповнені.
2. Базовий рівень. Створити застосунок Windows Forms, який читає ціни з CSV-файлу (дата, відкриття, максимум, мінімум, закриття) з перевіркою (мінімум не більший, максимум не менший за інші ціни), малює свічковий графік з осями й підписами та показує дані свічки під курсором.
3. Високий рівень. Створити застосунок Windows Forms «Біржовий графік», який малює свічковий графік цін із CSV-файлу (дата, відкриття, максимум, мінімум, закриття) з масштабуванням колесом миші, прокручуванням перетягуванням, ковзним середнім за вибраною кількістю днів, збереженням у PNG і друком.
Варіант 19. Лабіринт
1. Початковий рівень. Створити застосунок Windows Forms, який читає лабіринт із текстового файлу (# – стіна, пробіл – прохід) і малює його клітинками зі штрихованими стінами.
2. Базовий рівень. Створити застосунок Windows Forms, який малює лабіринт із текстового файлу (# – стіна, пробіл – прохід); гравець-коло рухається лабіринтом клавішами зі стрілками, не проходить крізь стіни, кроки рахуються в рядку стану, а вихід завершує гру повідомленням.
3. Високий рівень. Створити застосунок Windows Forms «Лабіринт», який генерує лабіринт розміром 5–60 клітинок пошуком у глибину, показує найкоротший шлях пунктиром, зберігає лабіринт у файл та експортує в PNG.
Варіант 20. Термометр
1. Початковий рівень. Створити застосунок Windows Forms, який малює термометр зі шкалою від −40 до 50 °C, поділками через 5 °C і стовпчиком на значенні 22 °C.
2. Базовий рівень. Створити власний елемент керування Thermometer, який малює термометр зі шкалою й стовпчиком, з властивостями Value, Minimum, Maximum і HighLimit (перевірка діапазонів, атрибути для Properties); зона понад HighLimit заштрихована, а значення на формі задає NumericUpDown.
3. Високий рівень. Створити застосунок Windows Forms «Метеостанція» з трьома власними елементами Thermometer (шкала зі стовпчиком і межею HighLimit), дані яких читаються з CSV-файлу (час і три температури) і програються за Timer; подія виходу за межі записується в журнал, а графік змін зберігається в PNG.
Варіант 21. Схема метро
1. Початковий рівень. Створити застосунок Windows Forms, який малює три лінії метро (суцільна, пунктирна, штрих-пунктирна) зі станціями-колами й назвами (координати задані в програмі).
2. Базовий рівень. Створити застосунок Windows Forms, який читає станції (назва, координати) та лінії з текстового файлу з перевіркою формату, малює схему метро зі станціями-колами, пересадки подвійними колами і підсвічує рамкою станцію, знайдену за назвою.
3. Високий рівень. Створити застосунок Windows Forms «Метро», який малює схему ліній і станцій із файлу, знаходить маршрут між двома станціями, вибраними мишею, з мінімумом пересадок, виділяє його товстою лінією, виводить список станцій і друкує схему з маршрутом.
Варіант 22. Годинник часових поясів
1. Початковий рівень. Створити застосунок Windows Forms, який малює три аналогові годинники з поточним часом Мадрида, Лондона й Токіо та підписами міст.
2. Базовий рівень. Створити застосунок Windows Forms, який малює аналогові годинники з поточним часом вибраних міст; годинники оновлюються за Timer без мерехтіння, міста (1–6) вибираються зі списку TimeZoneInfo, а нічний час позначається темним циферблатом.
3. Високий рівень. Створити застосунок Windows Forms «Світовий час» з власним елементом AnalogClock, який малює аналоговий годинник (властивості TimeZone, ShowSeconds), збереженням вибраних міст у JSON-файл і конвертером часу між двома містами.
Варіант 23. Фільтри зображень
1. Початковий рівень. Створити застосунок Windows Forms, який перетворює відкрите зображення на відтінки сірого методами GetPixel і SetPixel і показує оригінал та результат.
2. Базовий рівень. Створити застосунок Windows Forms, який відкриває зображення й застосовує фільтри Grayscale, Negative, Brightness (−100…100) і Threshold (0–255) з меню, показує результат поруч з оригіналом і час обробки в рядку стану.
3. Високий рівень. Створити застосунок Windows Forms «Фоторедактор», який відкриває зображення, застосовує фільтри (відтінки сірого, негатив, яскравість, поріг) через LockBits, підтримує ланцюжок фільтрів зі скасуванням, будує гістограму яскравості і зберігає результат у PNG або JPEG.
Варіант 24. Гра «Тетріс»
1. Початковий рівень. Створити застосунок Windows Forms, який малює склянку 10 × 20 клітинок і фігуру «T» із чотирьох квадратів у верхній частині.
2. Базовий рівень. Створити гру Windows Forms «Тетріс» зі склянкою 10 × 20 клітинок, у якій фігури падають за Timer, рухаються і повертаються клавішами з перевіркою меж, а заповнені рядки видаляються з лічильником рядків.
3. Високий рівень. Створити гру Windows Forms «Тетріс» з показом наступної фігури, рівнями швидкості, паузою, рахунком і таблицею рекордів у JSON-файлі; логіка гри реалізується класами, незалежними від форми.
Варіант 25. Діаграма Венна
1. Початковий рівень. Створити застосунок Windows Forms, який малює діаграму Венна для двох множин: два кола з різною штриховкою та назвами множин.
2. Базовий рівень. Створити застосунок Windows Forms, який малює діаграму Венна для двох множин, елементи яких вводяться через кому; перетин і різниці виводяться у відповідних областях, а область перетину виділяється через Region.Intersect.
3. Високий рівень. Створити застосунок Windows Forms «Діаграма Венна», який читає три множини з файлу (рядок – назва й елементи через кому) і малює їх колами; клацання в області (Region.IsVisible) показує її елементи, кола перетягуються, а діаграма зберігається в PNG.
Варіант 26. Електрична схема
1. Початковий рівень. Створити застосунок Windows Forms, який малює схему з батареї, вимикача, резистора і лампи, з’єднаних лініями (позначення побудовані з ліній і фігур).
2. Базовий рівень. Створити застосунок Windows Forms, у якому елементи електричної схеми (батарея, вимикач, резистор, лампа) вибираються на панелі інструментів, ставляться мишею на сітку з кроком 20 пікселів і перетягуються; кожен елемент – нащадок абстрактного класу з методом Draw.
3. Високий рівень. Створити застосунок Windows Forms «Редактор схем», у якому елементи електричної схеми (батарея, вимикач, резистор, лампа) ставляться мишею й з’єднуються лініями, лінії рухаються разом з елементами, а схема зберігається в JSON-файл, експортується в PNG і друкується.
Варіант 27. Бейдж учасника
1. Початковий рівень. Створити застосунок Windows Forms, який малює бейдж учасника конференції: рамку із заокругленими кутами, назву події, ім’я та роль.
2. Базовий рівень. Створити застосунок Windows Forms, який малює бейдж учасника конференції (рамка, назва події, ім’я, роль, фото); ім’я, роль і фото вводяться на формі, довге ім’я зменшує шрифт (MeasureString), фото вписується з пропорціями, а бейдж зберігається в PNG.
3. Високий рівень. Створити застосунок Windows Forms «Бейджі», який читає учасників конференції з CSV-файлу (ім’я; роль), генерує бейджі (рамка, назва події, ім’я, роль) пакетом у PNG з роздільною здатністю 300 dpi і друкує їх по 8 на сторінці A4 з попереднім переглядом.
Варіант 28. Маятник
1. Початковий рівень. Створити застосунок Windows Forms, який малює маятник: точку підвісу, нитку довжиною 200 пікселів і вантаж-коло, відхилений на 30°.
2. Базовий рівень. Створити застосунок Windows Forms, у якому маятник коливається за формулою малих коливань за Timer без мерехтіння, довжина (0,1–5 м) і кут (1–60°) задаються на формі, а період виводиться в рядку стану.
3. Високий рівень. Створити застосунок Windows Forms «Маятник», який моделює коливання із затуханням чисельним методом, дозволяє відхилити вантаж мишею, малює графік кута від часу і зберігає дані в CSV, а графік у PNG.
Варіант 29. Прогрес-кільце
1. Початковий рівень. Створити застосунок Windows Forms, який малює кільце прогресу: світло-сіре кільце, товсту чорну дугу для 65 % і текст відсотків у центрі.
2. Базовий рівень. Створити власний елемент керування ProgressRing, який малює кільце прогресу з дугою й текстом відсотків, з властивостями Value (0–100), Thickness і ShowText з атрибутами для Properties і подією Completed; значення на формі задає TrackBar.
3. Високий рівень. Створити застосунок Windows Forms «Копіювання файлів» з власним елементом ProgressRing (кільце прогресу з текстом відсотків), який плавно анімує зміну значення, має невизначений режим з обертовою дугою і показує прогрес копіювання теки з журналом у файлі.
Варіант 30. Морський бій
1. Початковий рівень. Створити застосунок Windows Forms, який малює поле 10 × 10 з підписами A–J і 1–10 та п’ять кораблів, заданих у програмі, заштрихованими клітинками.
2. Базовий рівень. Створити застосунок Windows Forms, який малює поле «Морського бою» 10 × 10 з підписами; кораблі розставляються мишею з перевіркою правил (не торкаються, не виходять за межі), а пробіл повертає корабель.
3. Високий рівень. Створити гру Windows Forms «Морський бій» проти комп’ютера з двома полями, пострілами мишею (промах – точка, влучання – хрест), збереженням гри в JSON-файлі та статистикою ігор.
Порядок виконання та захисту роботи
- Опрацювати теоретичні відомості та приклади розв’язання завдань.
- Створити проєкт Windows Forms App (.NET 10) для свого варіанта; спланувати, які дані зберігаються в полях форми, а які малюються в
OnPaintабо в обробникуPaint. - Реалізувати малювання в окремому методі з параметром
Graphics, щоб його можна було використати для вікна,Bitmapі друку; звільняти пера, пензлі та шрифти операторомusing. - Реалізувати взаємодію з користувачем (миша, клавіатура, елементи керування, таймер) і перевірку введених даних; для анімації ввімкнути подвійну буферизацію.
- Перевірити, що малюнок не зникає після згортання вікна, коректно масштабується під час зміни розміру і читається у відтінках сірого.
- Продемонструвати роботу застосунку викладачеві, пояснити програмний код і відповісти на контрольні питання.