Практикумы по объектно-ориентированному программированию С++

Автор: Тяжельникова Инна Николаевна

Организация: МАОУ Гимназия № 47

Населенный пункт: Свердловская область, г. Екатеринбург

Ключевые слова: объектно-ориентированное программирование, C++

Введение

Сейчас сложно представить нашу жизнь без вычислительной техники, без устройств, функционирующих в соответствии с заданной программой, начиная со стиральной машины дома и заканчивая конвейером на производстве, без гаджетов, без поиска нужной информации, без личного кабинета на сайте государственных услуг, в налоговой инспекции, в банке, у провайдера, в магазине, в школе и т.д. Используя различные приложения, мы заполняем анкеты, осуществляем платежи, смотрим оценки – мы производим обмен информацией. Список ежедневно используемых нами программ на телефоне, ноутбуке, персональном компьютере очень большой.

Большинство современных программ, предназначенных для пользователей, управляются с помощью графического интерфейса. Мы все знакомы с понятиями “окно программы”, “кнопка”, “поле ввода”, “полоса прокрутки” и другими. Такие оконные системы чаще всего построены на принципах объектно-ориентированного программирования (ООП), т.е. все элементы окон – это объекты, которые обмениваются данными, посылая друг другу сообщения. [1]

До ООП в разработке использовался другой подход — процедурный. Программа представляется в нем как набор процедур и функций — подпрограмм, которые выполняют определенный блок кода с нужными входящими данными. Процедурное программирование хорошо подходит для легких программ без сложной структуры. [2]

Объектно-ориентированное программирование (ООП) — это подход, при котором программа рассматривается как набор объектов, взаимодействующих друг с другом. У каждого объекта есть свойства и поведение. [2]

Переменная - в языках программирования именованная часть памяти, в которую могут помещаться разные значения переменной. Причем в каждый момент времени переменная имеет единственное значение. В процессе выполнения программы значение переменной может изменяться. [3]

Функция – в программировании - один из видов подпрограммы. Особенность, отличающая её от другого вида подпрограмм - процедуры, состоит в том, что функция возвращает значение, а её вызов может использоваться в программе как выражение.[3]

Объект — это набор переменных и функций… Переменные и функции и есть его свойства.

  • Атрибуты — это переменные, конкретные характеристики объекта, такие как цвет поля или имя пользователя.
  • Методы — это функции, которые описаны внутри объекта или класса. Они относятся к определенному объекту и позволяют взаимодействовать с ними или другими частями кода.[2]

В современных программах порядок действий определяется пользователем, другими программами или поступлением новых данных из внешнего источника, т.е. неким событием. Событие – это переход какого-либо объекта из одного состояния в другое. События могут быть вызваны действиями пользователя (управление клавиатурой и мышью), сигналами от внешних устройств (изменение состояния принтера, получение данных из сети). Таким образом, весь ход выполнения современной программы определяется происходящими событиями, а не жестко заданным алгоритмом. Соответствующий стиль программирования называется событийно-ориентированным.[1]

(Алгоритм – однозначное описание последовательности операций над исходными данными (из некоторой совокупности возможных исходных данных), направленной на получение результата, полностью определяемого этими исходными данными.[3])

В современных системах программирования реализован графический интерфейс для создания объектов из набора существующих модулей. Рассмотрим процесс на примере создания Windows-приложения.

Свойства (атрибуты) объектов настраиваются разработчиком или используются значения по умолчанию, в процессе работы программы-приложения свойства могут изменяться в результате действий пользователя. Результатом работы разработчика в графическом интерфейсе является автоматически сгенерированный средой разработки код по созданию формы и размещению на ней элементов. Для каждого элемента определены значения его свойств. Кроме того, разработчик пишет программы обработки событий, которые определяются задачами приложения.

Такие системы программирования получили название сред быстрой разработки приложений - RAD-сред (от англ. Rapid Application Development). Разработка программ в RAD-системе состоит из следующих этапов:

  • Создание формы;
  • Расстановка на форме элементов интерфейса (полей ввода, кнопок, списков) с помощью мыши и настройка их свойств;
  • Создание обработчиков событий;
  • Написание алгоритмов обработки данных, которые выполняются при вызове обработчиков событий. [1]

Событие в объектно-ориентированном программировании – это сообщение, которое возникает в различных точках исполняемого кода при выполнении определённых условий. События предназначены для того, чтобы иметь возможность предусмотреть реакцию программного обеспечения.[3]

Для решения поставленной задачи создаются обработчики событий: как только программа попадает в заданное состояние, происходит событие, посылается сообщение, а обработчик перехватывает это сообщение. В общем случае в обработчик не передаётся ничего, либо передаётся ссылка на объект, инициировавший (породивший) обрабатываемое событие. В особых случаях в обработчик передаются значения некоторых переменных или ссылки на какие-то другие объекты, чтобы обработка данного события могла учесть контекст возникновения события. [3]

Общее описание практикумов

Для разработки практикумов по объектно-ориентированному программированию в качестве среды разработки была выбрана среда Visual Studio C++. Каждый практикум рассчитан на 2-х часовое занятие. Результатом выполнения каждого практикума является Windows-приложение.

Курс построен по принципу “от простого к сложному”. Первый практикум содержит задание по созданию формы, на которой появляются и исчезают объекты, в следующих практикумах задания усложняются расчетами, использованием случайных величин, графикой и анимацией.

Для разработки практикумов были использованы идеи авторов книг по созданию приложений, программированию графики и игр [4] ,[5], [6], а также собственный опыт многолетней работы инженером–программистом по созданию приложений для работы с базами данных.

Для успешного выполнения практикума в распоряжении учащихся есть следующие источники информации:

  • Описание каждого практикума, которое содержит порядок работы в объеме 1-2 страниц с фрагментами кода и другой информацией, необходимой для выполнения практикума;
  • На основании источника [5] создана презентация с описанием типов данных, компонентов форм и графических примитивов, которые используются при выполнении практикумов;
  • На экране проектора учитель показывает вариант реализации готового рабочего приложения, которое должно появиться у каждого ученика на компьютере к концу занятия.

Этапы урока по ФГОС [7] в рамках практикума:

  • Организационный этап – мотивация к учебной деятельности: “хотим уметь решать задачи”, есть задача текущего практикума, надо создать приложение, его реально создать в течение занятия.
  • Постановка цели “освоить новые возможности языка программирования” и задачи урока “написать работающее приложение”;
  • Актуализация знаний: по результатам работы на предыдущих уроках мы обладаем знаниями и умениями для выполнения части практикума;
  • Первичное усвоение новых знаний: новый материал разбирается по презентации или по описанию практикума;
  • Первичная проверка понимания: обратная связь от учеников о готовности выполнить работу самостоятельно, в зависимости от этого:
    • возможно параллельное выполнение ключевых моментов программирования учителем на своем компьютере (с трансляцией изображения на проектор) и учащимися на своих компьютерах;
    • возможно использование учителем готовой рабочей программы для иллюстрации нового материала;
  • Первичное закрепление: самостоятельная работа учащихся на своих компьютерах по заданию практикума;
  • Информация о домашнем задании, инструктаж по его выполнению: обычно практикум рассчитан на выполнение в течение занятия, при желании учащиеся могут скопировать и переслать код программы себе на электронную почту, доделать дома и предъявить результат с целью повышения оценки;
  • Рефлексия (подведение итогов занятия): в конце занятия, учащимся предоставляется возможность посмотреть друг у друга созданные рабочие приложения, выбрать лучшие, сравнить свой выбор с выбором учителя.

Знакомство со средой. Практикум “Текстовая мозаика”

Практикумы и презентация были разработаны для среды Microsoft Visual Studio C++ 2010 Express.

Выполнение практикума может быть выполнено в среде Microsoft Visual Studio 2019 Community С++, при отсутствии опыта работы в этой среде можно воспользоваться видео-роликом с сюжетом по созданию проекта [8].

Задание практикума

В результате выполнения практикума нужно создать приложение – открытку. На форме должны быть размещены кнопки, текстовые метки и картинка. Для каждой кнопки нужно написать обработчик события ее нажатия: если соответствующий этой кнопке элемент (текст или картинка) не виден на форме, то сделать его видимым, и наоборот, видимый элемент сделать невидимым.

Порядок выполнения практикума

  1. Создайте новый проект (например, myAPP)

В среде Microsoft Visual C++ 2010 Express

Создайте новый проект типа: Приложение Windows Forms

 

В среде Visual Studio 2019 Community С++

  • Создайте новый проект типа: Пустой проект CLR (.NetFramework)
  • Добавьте новый элемент типа ИП: Форма Windows Forms
  • Дополните код модуля MyForm.cpp

#include "MyForm.h"

#include <Windows.h>

using namespace myAPP;

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {

Application::EnableVisualStyles();

Application::SetCompatibleTextRenderingDefault(false);

Application::Run(gcnew MyForm);

return 0;

}

 

  1. Используя “Панель элементов” добавьте новые объекты на форму, используя “Панель свойств” измените их свойства в соответствии с заданием.

Действие

Объект

Свойство

значение

Измените название формы

MyForm

Text

Текстовая мозаика

Создайте цветной фон

MyForm

BackColor

по выбору

Добавьте текст “C”, определите свой цвет и размер

Label1

Text, Font/Size, ForeColor

по выбору

Добавьте рисунок

pictureBox1

Image

по выбору

Добавьте кнопку, измените текст, цвет

Button1

Text, BackColor

по выбору

  1. Запрограммируйте форму в соответствии с заданием

Кликните по кнопке.

В процедуре инициализации формы проставьте для буквы свойство “видимость”=ложь.

this->label1 ->Visible =false;

В процедуре обработки нажатия кнопки для метки Label1 производите анализ значения свойства “видимость” и меняйте его на противоположное (если значение истина, то установить его в значение ложь, и наоборот).

this->label1 ->Visible =true;

  1. Используя приобретенные навыки, создайте праздничное поздравление.

Литература

  1. Поляков К.Ю. Информатика (в 2 частях).11 класс. Ч.2: учебник базового и углубленного уровеней/ К.Ю. Поляков, Е.А. Еремин, М.: Просвещение, 2021
  2. SkillFactory.Блог Как попасть в IT и освоить цифровые профессии
    https://blog.skillfactory.ru/glossary/oop-obektno-orientirovannoe-programmirovanie/
  3. Словари и энциклопедии на Академике
    https://dic.academic.ru/
  4. Пахомов Б.И. “С/С++ и MS Visual C++ 2012 для начинающих”, СПб.:БХВ-Петербург, 2015
  5. Н.Б. Культин, “Microsoft Visual C++ в задачах и примерах”, СПб.:БХВ-Петербург, 2014
  6. Доусон М. “Изучаем С++ через программирование игр”, СПб.: Питер, 2016
  7. Этапы урока по ФГОС ( шпаргалка)
    https://www.sites.google.com/site/fgosurok/home/etapy-uroka-po-fgos-spargalka
  8. Создание оконного приложения С++_Visual studio 2019_Windows Form
    https://www.youtube.com/watch?v=QbMVxkzTi54

Приложения:
  1. file0.docx.. 239,7 КБ
  2. file1.pptx.zip.. 147,8 КБ
  3. file2.docx.. 27,5 КБ
Опубликовано: 29.07.2022