Розробка уроку

Тема: елементи мови C++ для подійноорієнтованого програмування.

Мета:

По завершенню вивчення теми учень (учениця):

Тип уроку: комбінований.

Обладнання: комп’ютери зі встановленими ОС, середовищем програмування CodeBlocks та бібліотекою WxWidgets, (дана) інструкція.

Примітка. Перед виконанням роботи потрібно налаштувати комп'ютер — див. описи для ОС Windows 10 та Linux Mint 18.1 Serena (Mate).

Структура уроку

  1. Організаційний момент.
  2. Актуалізація опорних знань.
  3. Вивчення нового матеріалу.
  4. Інструктаж з ТБ.
  5. Вироблення умінь і навичок.
  6. Підведення підсумків уроку.
  7. Домашнє завдання.
Хід уроку

1. Організаційний момент
Привітання з учнями. Перевірка присутності і готовності учнів до уроку. Перевірка виконання домашнього завдання. Оголошення теми й мети уроку.

2. Актуалізація опорних знань
Обговорення понять, виділених у тексті жирним шрифтом, порівняння з очікуваними відповідями (вибірково).

Поняття величини є одним з найважливіших понять математики й фізики. Більшість з них є числовими. У програмуванні користуються таким визначенням.

Величинаодиниця даних, якими оперує програма. Вона має такі властивості:

З кожною величиною (або її складовою для структурованої величини) пов'язана ділянка оперативної пам’яті, куди її під час роботи програми заносять та у якій зберегають. Цю ділянку визначено її адресою. Тут під адресою розуміють адресу першого байту з послідовновних щодо адресації байтів, відведених для збереження величини. Назва змінної слугує назвою цієї послідовності байтів під час виконання програми.

Тип даних характеризує допустимі величини для цих даних і сукупністю операцій над ними.

Об'єкт (від латинською objectum — предмет, явище) — це те, на що спрямована певна діяльність (на противагу суб'єкту, який здійснює таку діяльність).

Кожний об'єкт має свою назву: «м'яч», «годинник», «чашка», «книга». Крім назви кожний об'єкт має низку властивостей (параметрів), значення яких повністю описує об'єкт.

Властивості бувають:

Значення властивостей об'єкта у певний момент часу визначають його стан. Вони можуть змінюватися, але їхня сукупність залишається сталою. Якщо така сукупність зазнає змін, то ми маємо справу вже з іншим об'єктом.

Стан об'єкта — це сукупність значень його параметрів у певний момент часу.

Подіязміна властивостей об'єкта, взаємодія між об'єктами, утворення нового об'єкта або знищення наявного об'єкта.

Працюючи з прикладними програмами, користувач виконує дії з певними об'єктами: вказівками меню, кнопками, прапорцями, текстовими полями тощо. Об'єкт — основна структура даних у сучасних програмах, які тому і називають об'єктно-орієнтованими.

Зокрема стан кнопки можна описати так: розмір 90×20 пікселів, колір — сірий, шрифт — Arial, стан — ненатиснута. Крім стану об'єкт має поведінку — сукупність дій, які він може виконувати. Зауважимо, що не лише об'єкт здатен виконувати дії, а й над ним можуть виконувати дії інші об'єкти. Так, користувач може клацнути кнопку або перемістити фрагмент тексту — це дії користувача над кнопкою та фрагментом тексту. Одні дії можуть спричиняти інші. Наприклад, натискання кнопки у середовищі Libre Office Writer призводить до того, що виділений фрагмент тексту копіюють до буферу обміну.

У програмуванні ті дії, які спричиняють інші, називають подіями. Програмні об'єкти виконують дії не самі по собі, не раптово, а лише у відповідь на настання тієї чи іншої події. У цьому і полягає основний принцип подійно-орієнтованого програмування. Переважна більшість програм, з якими ви працюєте, є не лише об'єктно-орієнтованими, а й подійно-орієнтованими. Це інша характерна риса сучасного програмного забезпечення.

Xарактерні риси сучасних прикладних програмце виконання дій у результаті настання тих чи інших подій та зберігання даних у вигляді об'єктів. Це називають об'єктною та подійною орієнтованістю.

У програмному коді, що орієнтований на опрацювання подій, програміст повинен вказати як слід реагувати на різні події чи дії користувача. Створюювати об'єкти графічного інтерфейсу в середовищах програмування можна двома способами:

Одним із таких засобів наочного програмування є поєднання мови програмування С++, середовища програмування СodeBlocks і бібліотеки wxWidgets.

3. Вивчення нового матеріалу

Вікно CodeBlocks, налаштоване на здійснення об'єктно- і подійно-орієнтоване програмування з використанням бібліотеки wxWidgets, має такі складові:

Екранна формаце вікно, що містить графічні елементи або об'єкти управління (меню, кнопки тощо). Кожний такий об'єкт може мати зв'язаний із ним функціональний програмний код, оформлений у вигляді процедури опрацювання події.

Розглянемо деякі з подій, умови їхньої настання і можливості використання.

4. Інструктаж з ТБ
5. Формування умінь і навичок


Завдання. Створити проект, в якому користувач, після натиснення на кнопку з надписом Click here (Натисніть тут), побачить на екрані надпис з привітанням Hello C++! (Привіт С++!).

Вказівки до виконання
(ілюстрації подано для OC Windows 10, CodeBlocks 16.01, WxWidgets 3.0.2)

  1. Створити теку Ваше прізвище у вказаній вчителем теці.

  2. У середовищі CodeBlocks скористатися вказівкою меню New / Рroject… (Новий / Проект…).

  3. У вікні діалогу обрати вказівку WxWidgets project і натиснути Go (Далі).

  4. У вікні привітання натиснути Next (Далі). Цей крок в подальшому можна пропустити, якщо виставити мітку Skip this page next time (Пропустити цю сторінку наступного разу).

  5. У наступному вікні діалогу обрати версію бібліотеки (для поданого прикладу 3.0.x) і натиснути кнопку Next (Далі).

  6. У вікні діалогу wxWidgets project вказати назву проекту (tutorial для поданого прикладу) у полі Project title (Назва проекту) та теку, в якій буде збережено проект, у полі Folder to create project in (Тека, у якій створити проект). Решту полів буде заповнено автоматично. Натиснути кнопку Next (Далі).

  7. За бажанням вказати дані про автора проекту:

    • у поді Author — ім'я і прізвище;
    • у поді Author's e-mail — адресу електронної скриньки;
    • у поді Author's webcite — адресу сайту

    і натиснути кнопку Next (Далі).

  8. Обрати графічний користувацький інтерфейс GUI Builder — інструмент для побудови програмного забезпечення (для поданого прикладу — wxSmith, Frame Based) і натиснути кнопку Next (Далі).

  9. Вказати розташування теки (найвищого рівня), де було розпаковано wxWidgets (для поданого прикладу D:\WxWidgets) і натиснути кнопку Next (Далі).

  10. Вказати GNU GCC Compiler — компілятор, який буде використано, і натиснути кнопку Next (Далі).

  11. Вказати параметри конфігурації wxWidgets. Для поданого прикладу як на малюнку.

  12. При появі вікна попередження про неможливість знайти конфігурацію відладчика у вказаній теці WxWidgets, обирати варіант Так. Згодом можна буде уточнити шлях до теки з відладчиком.

  13. Вказати розширені параметри компілятора (для доданого прикладу як на малюнку) і настинути кнопку Finish (Готово)

  14. Переконатися у правильності налаштувань компілятора, використавши вказівку меню Settings / Compiler… (Налаштування / Компілятор).

    У вікні налаштувань компілятора в розділі Global compiler settings (Глобальні параметри компілятора) переконатися, що обрано компілятор GNU GCC Compiler та на вкладенні Compiler Flags (Прапорці компілятора) прапорець виставлено лише для такого:

    Have g++ follow the C++ 11 ISO C++ language standard [-std=c++11].

    Перейти на вкладення Toolchain executables (Виконувані файли) і натиснути кнопку Auto-detect (Автовизначення) для уточнення шлях до теки з відладчиком. Натиснути ОK для завершення налаштувань.

  15. В інспекторі об'єктів перейти на вкладення Resources (Джерела). Виділити об'єкт wxFrame (Конструкція) та змініть розміри конструкції екранної форми, прибравши прапорець навпроти властивості Default size (Розміри як усталено),

    надайти нові значення властивостям:
    Width (Ширина) = 400,
    Height (Висота)= 200.

  16. На панелі об'єктів — компонентів графічного інтерфейсу перейти на вкладення Layot (Макет), обрати інструмент wxBoxSizer. Цей компонент використовують як контейнер для інших компонентів. Розташувати його на екранній формі, клацнувши на ній клік лівою клавішею миші.

  17. На панелі компонентів Standart (Стандартна) обрати інструмент wxButton (Кнопка). Розташувати її на екранній формі всередині контейнера wxBoxSizer.

  18. Змінити значення властивостей об'єкта wxButton (Кнопка):

    • Label (Надпис) — Click here! (для того щоб текст було подано двома рядками, потрібно викликати редактор тексту, натиснувши на кнопку праворуч від значення Label);

    • Font (Шрифт) — для початку форматування тексту натиснути на кнопку праворуч від значення Click to edit (Натисніть для редагування), з'явиться вікно Font settings (Налаштування шрифту) в ньому натиснути кнопку Change (Змінити).


      У вікні налаштування шрифту надати такі значення властивостей:

      • Шрифт — Arial;
      • Накреслення — звичайне;
      • Розмір — 20;
      • Колір — за власним смаком.
  19. Створити програмний код для опрацювання події OnButtonClick — натискання лівої кнопки миші. Для цього в інспекторі об'єктів перейти на вкладення {} Event (Події). В полі EVT_Button випадного списку обрати значення Add new handler (Додати новий обробник). У вікні, що з'явиться, вказати значення події OnButtonClick та натиснути кнопку ОK.

    У вікні редактора коду внести код опрацювання події:

    void tutorialFrame::OnButton1Click(wxCommandEvent& event)
    {
      wxString msg = _T("Hello C++!");
      wxString info = _T("greeting");
      wxMessageBox (msg, info, wxOK|wxICON_INFORMATION, this);
    }

    Проаналізувати цей код.

  20. Запустити проект на виконання, натиснувши на панелі інструментів кнопку Build and run (Побудувати та виконати). Перевірити правильність роботи програми. За потреби виправити помилки.

  21. Зберегти проект і завершити роботу з проектом і середовищем.

6. Підбиття підсумків уроку

  1. Що таке подійно-орієнтоване програмування?

  2. Які події об'єктно-орієнтованого програмування Ви знаєте?

  3. Опишіть умови настання і можливе використання обробників таких подій: OnChanging, OnChange, OnClick, OnCreate, OnDblClick, OnDragDrop, OnDragOver, OnEndDrag, OnEnter, OnExit, OnKeyDown, OnKeyPress, OnKeyUp, OnMouseDown, OnMouseUp, OnMouseEnter, OnMouseLeave, OnMouseMove, OnPaint, OnProgress, OnStartDrag.

  4. Чи виникали труднощі на уроці? У чому?

Виставлення оцінок.

7. Домашнє завдання

  1. Вивчити навчальний матеріал уроку.

  2. Налаштувати на домашньому ПК CodeBlocks + wxWidjets.

  3. За зразком програми, створеної у класі, скласти й виконати програми виведення на екран Вашого імені при наведенні миші на встановлену Вами кнопку.


Текст упорядкувала Холодова Олена Станіславівна, вчитель спеціалізованої школи І–ІІІ ступенів № 120 з поглибленим вивченням предметів природничо-математичного циклу Дніпровського району міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 24.10.2016 по 28.10.2016.