Математика | ||||
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руб. |
||||