Математика

Физика

Химия

Биология

Техника и    технологии

C++. Объектно-ориентированное программирование: Практикум - Павловская Т. А Питер, 2005. — 265 с.: ил.
C++. Объектно-ориентированное программирование: Практикум - Павловская Т. А Питер, 2005. — 265 с.: ил.

Павловская Т. А., Щупак Ю. А.
C++. Объектно-ориентированное программирование: Практикум. — СПб.: Питер, 2005. — 265 с.: ил.
ISBN 5-94723-842-Х
Практикум предназначен для студентов, изучающих язык C++ на семинарах или самостоятельно. Классы, шаблоны, наследование, исключения, стандартная библиотека, UML, концепции программной инженерии (software engineering) и паттерны проектирования рассматриваются на примерах, сопровождаемых необходимыми теоретическими сведениями. Обсуждаются алгоритмы, приемы отладки и вопросы качества. По каждой теме приведено по 20 вариантов заданий.
Допущено Министерством образования Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению «Информатика и вы-
Содержание
Предисловие........................9
От издательства.................................11
Семинар 1. Классы.....................12
Появление ООП — реакция на кризис программного обеспечения........12
Критерии качества декомпозиции^проекта....................13
Что принесло с собой ООП............................14
От структуры—к классу.......................... . 16
Задача 1.1. Поиск в массиве структур....................... 16
Отладка программы..............................25
Инициализаторы конструктора........................27
Конструктор копирования...........................28
Перегрузка операций.............................29
, Перегрузка операций инкремента ......................30
Перегрузка операции присваивания.....................31
Статические элементы класса . ,......................32
Задача 1.2. Реализация класса треугольников..................33
, Этап 1.......................,..............34
Тестирование и отладка первой версии программы.............41
Этап 2..................................... 42
Этап 3.....................................44
Этап 4................................•.....48
Задания.....................................53
Семинар 2. Наследование..................58
Наследование классов ..............................58
Замещение функций базового класса .....................59
Конструкторы и деструкторы в производном классе.............60
Устранение неоднозначности при множественном наследовании......61
Доступ к объектам иерархии......... . ...............62
Виртуальные методы............................. 63
Абстрактные классы. Чисто виртуальные методы...........< ... 64
*
Содержание
Отношения между классами. Диаграммы классов на языке UML......... 65
Ассоциация...................,.......<..,...'.... 66
Наследование.................................67
Агрегация...................................67
Зависимость................................. 68
Проектирование программы с учетом будущих изменений............. 69
Задача 2.1. Функциональный калькулятор . .'"..................72
Задача 2.2. Продвинутый функциональный калькулятор ...............81
Задача 2.3. Работа с объектами символьных и шестнадцатеричных строк .... 88 Задания ..................................... 102
Семинар 3. Шаблоны классов. Обработка
исключительных ситуаций................. 105
Шаблоны классов................................105
Определение шаблона класса....................... . 106
Использование шаблона класса ....................... 107
Организация исходного кода...........•.............107
Параметры шаблонов............................ 108
1 Специализация............................... 110
Использование классов функциональных объектов
для настройки шаблонных классов..................... 110
Разработка шаблонного класса для представления разреженных массивов........................... 112
Задача 3.1. Шаблонный класс для разреженных массивов . ........... 113.
Обработка исключительных ситуаций . . ....................119
Определение исключений............................120
Перехват исключений..........................; . 121
Неперехваченные исключения..........................122
Классы исключений. Иерархии исключений................. 123
Спецификации исключений......................^. . . 124
Исключения в конструкторах........................ 125
Исключения в деструкторах.........................129
Задача 3.2. Шаблонный класс векторов (динамических массивов)....... 129
Задания......................................141
Семинар 4. Стандартные потоки.............. 143
Потоковые классы................................/143
,, •
Классы стандартных потоков........................ 144
Заголовочные файлы библиотеки ввода/вывода C++............ 144
Объекты и методы стандартных потоков ввода/вывода........... 144
Обработка ошибок потоков . [.......-....-. , ........... 147
Перегрузка операций извлечения и вставки для типов,
определенных программистом ........ . .............. 148
Задача 4.1. Разработка потоковых классов, поддерживающих
ввод/вывод кириллицы ...........•.....•........... . 149
Задача 4.2. Первичный ввод и.поиск информации в базе данных........ 166
Задания..................................... 173
Семинар 5. Файловые и строковые потоки.
Строки класса string....................181
Файловые потоки................................181
Строковые потоки................................185
Строки класса string...............................186
Задача 5.1. Подсчет количества вхождений слова в текст............189
Задача 5.2. Вывод вопросительных предложений.................191
Задания . . . , ..........'.......................193
Семинар 6. Стандартная библиотека шаблонов ....... 196
Основные концепции STL . . . .........................196
Контейнеры................................. 197
Итераторы...................................197
Общие свойства контейнеров........................200
Алгоритмы..................................201
Использование последовательных контейнеров.................202
Задача 6.1. Сортировка вектора ..........................204
Шаблонная функция print() для вывода содержимого контейнера.....• 205
Адаптеры контейнеров............................206
Использование алгоритмов.........................208
Использование ассоциативных контейнеров..................215
Множества ..................................215
Словари....................ч...............217
Задача 6.2. Формирование частотного словаря....................218
Задача6.3. Морской бой................... ..........220
Задания.................,...................233
Приложение. Паттерны проектирования...........241
Порождающие паттерны.............................243
Структурные паттерны..............................245
Паттерны поведения...............................247
Паттерн Стратегия (Strategy)..........................252
Паттерн Компоновщик (Composite).......................255
Литература........................260
Алфавитный указатель...................261

Цена: 150руб.

Назад

Заказ

На главную страницу

Hosted by uCoz