Гурьянов Л. В., Гурьянова Л. С., Дзюба Е. А., Самуйлов С. В., Гришин Е. В.
Рассматриваются базовые понятия объектно-ориентированного программирования и их использование в программах на языках С# и С++. На простых примерах объясняется использование классов, конструкторов и деструкторов объектов, а также перегрузка операций для классов. Отдельно выделено для изучения и приобретения навыков создание обобщенных классов, программирование наследования и полиморфизма классов, построение приложений с агрегацией, композицией классов и обработкой исключительных ситуаций. Рассматриваются вопросы использования контейнеров С++ (STL) в приложениях. Все методические материалы сопровождаются примерами программ и лабораторным практикумом. Задания на лабораторные работы включают разработку на языке С# консольного приложения и приложения Windows Forms. Для обучающихся по направлениям подготовки 09.03.04 «Программная инженерия» и 09.03.02 «Информационные системы и технологии».
Раздел I. ЯЗЫК С++
1. ОБЪЕКТНАЯ ДЕКОМПОЗИЦИЯ. КЛАСС. КОНСТРУКТОР. ДЕСТРУКТОР 5
1.1. Основы объектно-ориентированного программирования 5
1.2. Перегрузка операций. Шаблон класса 9
1.3. Лабораторный практикум. Основы ООП. 16
1.3.1. Лабораторная работа 1. Введение в ООП 31
1.3.2. Лабораторная работа 2. Конструкторы и деструктор 32
1.3.3. Лабораторная работа 3. Перегрузка функций класса 33
1.3.4. Лабораторная работа 4. Шаблон класса 34
2. ТИПЫ ОТНОШЕНИЙ МЕЖДУ КЛАССАМИ. НАСЛЕДОВАНИЕ. ПОЛИМОРФИЗМ. КОМПОЗИЦИЯ. АГРЕГАЦИЯ 36
2.1. Типы отношений между классами 36
2.2. Наследование 37
2.3. Полиморфизм. Позднее связывание и виртуальные функции 40
2.4. Композиция и агрегация 42
2.5. Лабораторный практикум. Типы отношений между классами 45
2.5.1. Лабораторная работа 5. Наследование 47
2.5.2. Лабораторная работа 6. Виртуальные функции 48
2.5.3. Лабораторная работа 7. Композиция и агрегация 49
3. КОНТЕЙНЕРНЫЕ КЛАССЫ. STL 51
3.1. Последовательные и ассоциативные контейнеры 51
3.2. Адаптеры контейнеров. Stack, queue 55
3.3. Наследование контейнеров 59
3.4. Лабораторный практикум 61
3.4.1. Лабораторная работа 8. Контейнеры 64
4. ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ 65
4.1. Лабораторный практикум 69
4.1.1. Лабораторная работа 9. Классы обработки исключений 69
СПИСОК ЛИТЕРАТУРЫ К ЧАСТИ I 72
Раздел II. ЯЗЫК С#
1. ОБЪЕКТНАЯ ДЕКОМПОЗИЦИЯ. КЛАСС. КОНСТРУКТОР. ДЕСТРУКТОР. СВОЙСТВА 75
1.1. Основы объектно-ориентированного программирования 75
1.2. Перегрузка методов и операций для классов 79
1.3. Обобщенные типы 84
1.4. Лабораторный практикум. Основы ООП 87
1.4.1. Лабораторная работа 1. Массивы и функции 94
1.4.2. Лабораторная работа 2. Введение в ООП 95
1.4.3. Лабораторная работа 3. ООП. Перегрузка методов 96
1.4.4. Лабораторная работа 4. Обобщенные классы 97
2. ТИПЫ ОТНОШЕНИЙ МЕЖДУ КЛАССАМИ. НАСЛЕДОВАНИЕ. ПОЛИМОРФИЗМ. КОМПОЗИЦИЯ. АГРЕГАЦИЯ 99
2.1. Типы отношений между классами 99
2.2. Наследование 100
2.3. Полиморфизм. Позднее связывание и виртуальные функции 103
2.4. Композиция и агрегация 107
2.5. Лабораторный практикум. Типы отношений между классами 111
2.5.1. Лабораторная работа 5. Наследование 113
2.5.2. Лабораторная работа 6. Полиморфизм. Агрегация. Композиция 114
3. ОБОБЩЕННЫЕ КОЛЛЕКЦИИ 116
3.1. Лабораторный практикум 122
3.1.1. Лабораторная работа 7. Коллекции 125
4. ГРАФИКА НА ПЛАТФОРМЕ .NET FRAMEWORK 126
4.1. Рисование таблиц и графиков 126
4.2. Рисование графических фигур 131
4.3. Лабораторный практикум 137
4.3.1. Лабораторная работа 8. Windows Forms. Рисование таблиц и графиков 137
4.3.2. Лабораторная работа 9. Windows Forms. Рисование геометрических фигур 138
5. ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ 140
5.1. Лабораторный практикум 145
5.1.1. Лабораторная работа 10. Классы обработки исключений 145
СПИСОК ЛИТЕРАТУРЫ К ЧАСТИ II 148