Видеолекции - Разработка видеолекций по программированию С++

Для записи видео лекций были разработаны программы на С++ с помощью которых были показаны такие темы как создание классов в среде Visual Studio, инкапсуляция, полиморфизм, наследование, создание конструкторов и деструкторов.

Для первой видео лекции была разработанная программа, производящая действия сложения полиномов. Было создано больше операций над полиномами, однако они не были показаны, дабы не усложнять лекции.

Для создания класса использовался инструмент "добавить класс", с помощью которого создаются 3 файла: заголовочный файл, файл с самим классом и файл с основной программой.

Заголовочный файл Polynom. h выглядит следующим образом

(рисунок 6).

содержание файла polynom.h

Рисунок 6 - Содержание файла polynom. h

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

Далее идет заголовочный файл iostream - заголовочный файл с классами, функциями и переменными для организации ввода-вывода в языке программирования C++.

Создается класс Polynom с инкапсулированными данными Deg - степень многочлена и Coef - его коэффициенты, далее идут заголовки методов класса, а именно: конструктор без параметров, конструктор с одним параметром, конструктор с двумя параметрами, копирующий конструктор, деструктор объектов типа Polynom, перегруженные операции присваивания и сложения, вывод полинома на экран средствами консольного вывода.

Файл Polynom. cpp содержит непосредственно сам класс и реализацию его методов.

Для его работы необходим файл предкомпилированных заголовков и подключения заголовочного файла Polynom. h, так же используется стандартное пространство имен (рисунок 7).

заголовки файла polynom.cpp

Рисунок 7 - Заголовки файла polynom. cpp

Для создание объекта типа многочлен нам понадобятся несколько конструкторов (рисунок 8).

конструкторы полинома

Рисунок 8 - Конструкторы полинома

Первый конструктор выделяет память инициализирует объект, заданный без параметров.

Второй конструктор создает многочлен заданной степени с нулевыми коэффициентами и выделяет для него память.

Третий конструктор с двумя аргументами создает многочлен с заданной степенью и набором коэффициентов и выделяет для него память.

Так же нам понадобится копирующий конструктор (рисунок 9).

копирующий конструктор

Рисунок 9 - Копирующий конструктор

Для освобождения памяти и обнуления коэффициентов изменим стандартный деструктор (рисунок 10).

деструктор

Рисунок 10 - Деструктор

Для того, чтобы производить операции вида Polynom A + Polynom B необходимо произвести перегрузку стандартного оператора +, то есть описывается процесс сложения полиномов для этого оператора (рисунок 11).

перегрузка оператора +

Рисунок 11 - Перегрузка оператора +

Здесь производится сложение объекта Polynom, который находится слева от оператора +, для этого объекта используется this, и полинома, находящегося справа от оператора + - он передается по константной ссылке в виде полинома B. В результате производится сложение коэффициентов многочлена при членах одинаковой степени.

Для того чтобы присвоить значения одного полинома другому так же потребуется перегрузка операции присваивания (рисунок 12).

перегрузка оператора =

Рисунок 12 - Перегрузка оператора =

Полиному, стоящему слева от знака = присваивается значение полинома, стоящего справа (полином B) значение которого передается по константной ссылке. видео дистанционный обучение программирование

Для отображения полинома на экране создадим метод, производящий его консольный вывод (рисунок 13).

метод вывода полинома на экран

Рисунок 13 - Метод вывода полинома на экран

С помощью данного метода производится консольный вывод полинома в виде: a + bx^1 + cx^2 + ... + zx^n.

Файл основной программы (рисунок 14).

содержание основной программы

Рисунок 14 - Содержание основной программы

Для его работы подключаются файлы предкомпилированных заголовков, а так же заголовочный файл Polynom. h. Используется стандартное пространство имен.

Для создания объекта типа Polynom создадим массивы a и b типа double в которых будут содержаться значения коэффициентов, начиная с коэффициента нулевой степени, первой степени, и так далее.

Создаются три объекта типа Polynom. pl0 - пустой полином и создается с помощью конструктора без параметров. pl1 и pl2 - полиномы второй степени, использующий значения из массивов b и a, создаются с помощью конструктора с двумя параметрами. Далее полиному pl0 присваивается значение суммы полиномов pl1 и pl2 и с помощью PolynomCout производится его консольный вывод на экран. Команда cin. get() служит для того, чтобы окно с результатами не закрывалось сразу после выполнения программы.

Второй урок рассказывает о полиморфизме. Для него используется программа, эмулирующая телефонный звонок.

Для ее работы подключаются заголовочный файл предкомпилированных заголовков и iostream - заголовочный файл с классами, функциями и переменными для организации ввода-вывода в языке программирования C++. Используется стандартное пространство имен.

Далее создаем класс phone с методами dial, answer, hangup, ring, конструктор - phone и переменную number типа char (рисунок 15).

класс phone

Рисунок 15 - Класс phone

Далее создаются два класса потомка touch_tone и pay_phone - кнопочный и дисковой телефоны. В них отличаются лишь методы dial, а остальные методы унаследованы от родительского класса. Они так же имею свои собственные конструкторы, а класс pay_phone - собственную переменную amount - стоимость звонка (рисунок 16).

потомки класса phone

Рисунок 16 - Потомки класса phone

В основном коде программе для корректного отображения кириллических символов в консольном окне требуется включить русский язык. Далее происходит создания объектов платный, кнопочный телефон и дисковый телефон - объект базового класса. Далее создается объект Poly_Phone базового класса phone и ему его свойства изменяются на свойства объекта rotary, затем производится звонок, далее свойства объекта Poly_phone изменяются на св-ва cityph и hphone и производятся звонки соответственно (рисунок 17)

текст основной программы

Рисунок 17 - Текст основной программы

Похожие статьи




Видеолекции - Разработка видеолекций по программированию С++

Предыдущая | Следующая