Рекомендуем

Ключевые слова:
C++ООППрограммирование
С++. Бархатный путьМарченко А.Л. С++. Бархатный путь
От С к С++Каширин И.Ю., Новичков В.С. От С к С++
Азбука STLМосквин П.В. Азбука STL

Книга

Объектно-ориентированное программирование в С++: лекции и упражнения

Учебное пособие для вузов
2-е изд., перераб. и доп.
2017 г.
336 стр.
Тираж 500 экз.
Формат 60х90/16 (145x215 мм)
Исполнение: в мягкой обложке
ISBN 978-5-9912-0423-1
ББК 32.97
УДК 681.3
Гриф УМО
Допущено УМО вузов по университетскому политехническому образованию в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению подготовки дипломированных специалистов «Информатика и вычислительная техника» и по направлению подготовки бакалавров «Информатика и вычислительная техника»
Аннотация

На доступном для начинающего программиста уровне изложены концепция объектно-ориентированного программирования (ООП) и сведения необходимые для быстрого освоения языка программирования С++. Информация в книге расположена в порядке усложнения: от способов написания простейших программ, имеющих линейную структуру, до достаточно сложных, с использованием библиотеки STL. Большое внимание уделено вопросам работы с функциями, которые являются основой для перехода к ООП. Приведены многочисленные примеры, контрольные вопросы и практические задания.

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

Оглавление

ПРЕДИСЛОВИЕ

ГЛАВА 1. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ ЯЗЫКА С++
1.1. Алфавит языка
1.2. Структура программы на языке С++

ГЛАВА 2. СТАНДАРТНЫЕ ТИПЫ ДАННЫХ
2.1. Переменные целого типа
2.2. Переменные вещественного типа
2.3. Переменные логического типа
2.4. Константы
2.5. Выражения
2.6. Операции
2.7. Преобразование типов
2.8. Манипулятор setw

ГЛАВА 3. ЛИНЕЙНЫЕ И РАЗВЕТВЛЕННЫЕ АЛГОРИТМЫ
3.1. Линейные алгоритмы
3.2. Разветвленные алгоритмы
3.2.1. Условный оператор if
3.2.2. Оператор if – else
3.2.3. Вложенные ветвления
3.2.4. Условная операция
3.2.5. Оператор множественного выбора

ГЛАВА 4. ОРГАНИЗАЦИЯ ЦИКЛОВ В ЯЗЫКЕ С++
4.1. Оператор цикла с предварительным условием
4.2. Оператор цикла с последующим условием
4.3. Оператор цикла с параметром
4.4. Оператор break
4.5. Оператор continue
4.6. Оператор goto
4.7. Останов программы с помощью оператора exit
4.8. Область видимости переменных внутри блока

ГЛАВА 5. ИСПОЛЬЗОВАНИЕ ОПЕРАТОРОВ ЦИКЛА ДЛЯ РЕШЕНИЯ ПРИКЛАДНЫХ ЗАДАЧ
5.1. Вычисление суммы бесконечного ряда с заданной точностью
5.2. Понятие о рекуррентных формулах
5.3. Использование операторов цикла для решения задач численными методами
5.3.1. Вычисление с заданной точностью ε корня уравнения F(x)=0 методом простых итераций
5.3.2. Решение уравнения f(x) = 0 с заданной точностью ε методом деления отрезка пополам
5.4. Использование операторов цикла для вычисления определенных интегралов
5.4.1. Вычисление значения ∫f(x)dx с заданной точностью методом прямоугольников
5.4.2. Вычисление ∫ f(x)dx по формуле Симпсона

ГЛАВА 6. МАССИВЫ И СТРОКИ
6.1. Одномерные массивы
6.2. Инициализация массива
6.3. Методы сортировки массивов
6.3.1. Сортировка простым выбором
6.3.2. Метод пузырьковой сортировки
6.3.3. Метод пузырьковой сортировки с оптимизацией
6.4. Двумерные массивы
6.5. Обработка матриц
6.5.1. Работа с матрицей в целом
6.5.2. Работа со строками/столбцами матрицы
6.5.3. Диагональные элементы матриц
6.6. Строка как массив символов
6.6.1. Ввод и вывод строк
6.6.2. Функции для работы со строками

ГЛАВА 7. ТИПЫ ДАННЫХ, СОЗДАВАЕМЫЕ ПОЛЬЗОВАТЕЛЕМ (СТРУКТУРЫ, ОБЪЕДИНЕНИЯ, ПЕРЕЧИСЛЕНИЯ)
7.1. Структуры
7.1.1. Присваивание значений структурным переменным
7.1.2. Псевдонимы структур
7.1.3. Операции, допустимые над переменными структурного типа
7.1.4. Вложенные структуры
7.1.5. Массивы структур
7.1.6. Структуры с битовыми полями
7.2. Объединения
7.3. Перечисления

ГЛАВА 8. МАГНИТНЫЕ НОСИТЕЛИ ДАННЫХ. ПОНЯТИЕ О ФАЙЛОВЫХ СИСТЕМАХ
8.1. Структура диска
8.2. Файловая система DOS. Таблица размещения файлов
8.3. Файловая система NTFS
8.3.1. Структура раздела
8.3.2. Структура MFT
8.3.3. Файлы и потоки
8.3.4. Каталоги

ГЛАВА 9. ОРГАНИЗАЦИЯ ВВОДА И ВЫВОДА. ФАЙЛОВАЯ СИСТЕМА
9.1. Стандартные файлы ввода и вывода
9.2. Текстовые файлы
9.3. Основные методы обработки текстовых файлов
9.4. Двоичные файлы
9.5. Последовательный доступ к элементам двоичных файлов
9.6. Организация произвольного доступа к элементам двоичных файлов

ГЛАВА 10. ОБОБЩЕННАЯ АРХИТЕКТУРА ПРОЦЕССОРА IBM PC
10.1. Понятие об адресном пространстве
10.2. Система адресации в MS-DOS
10.3. Понятие о моделях памяти

ГЛАВА 11. ФУНКЦИИ В ЯЗЫКЕ С++
11.1. Объявление и определение функций
11.2. Понятие о параметрах функций
11.3. Локальные и глобальные переменные
11.4. Отсутствие прототипов функций
11.5. Строки, массивы и структуры в качестве параметров функций
11.6. Рекурсия
11.7. Встраиваемые функции
11.8. Перегрузка функций
11.9. Использование аргументов по умолчанию

ГЛАВА 12. ПОНЯТИЕ ОБ УКАЗАТЕЛЯХ И ССЫЛКАХ. РЕЗЕРВИРОВАНИЕ ПАМЯТИ
12.1. Объявление указателей
12.2. Разыменование указателей
12.3. Нулевые указатели и указатели на тип void
12.4. Ссылки
12.5. Резервирование памяти в куче

ГЛАВА 13. УКАЗАТЕЛИ И СТРУКТУРЫ ДАННЫХ
13.1. Указатели и массивы
13.2. Указатели и многомерные массивы
13.3. Cтроковые указатели
13.4. Указатели и структуры
13.5. Указатели и модификатор const

ГЛАВА 14. УКАЗАТЕЛИ И ФУНКЦИИ
14.1. Способы передачи параметров
14.2. Передача массивов посредством указателей
14.3. Строки как аргументы функций
14.4. Передача структур по указателю и по ссылке
14.5. Ссылка в качестве возвращаемого значения функции
14.6. Функции, возвращающие указатели
14.7. Константные ссылки и константные указатели в качестве параметров функций
14.8. Указатели на функции

ГЛАВА 15. ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ
15.1. Понятие о самоссылочных структурах
15.2. Формирование очереди
15.3. Формирование стека
15.4. Добавление и удаление элементов в односвязных списках
15.5. Двусвязные списки
15.6. Бинарные деревья

ГЛАВА 16. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ

ГЛАВА 17. СИСТЕМА ВВОДА-ВЫВОДА В С++
17.1. Основные понятия
17.2. Форматируемый ввод-вывод
17.3. Функции установки ширины поля, точности и символа заполнения
17.4. Манипуляторы ввода-вывода

ГЛАВА 18. КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ
18.1. Понятие о конструкторах и деструкторах
18.2. Конструкторы с параметрами
18.3. Конструкторы по умолчанию
18.4. Указатели на объекты
18.5. Перегрузка конструкторов
18.6. Присваивание объектов
18.7. Конструктор копирования

ГЛАВА 19. ФУНКЦИИ И ОБЪЕКТЫ
19.1. Указатели на объекты
19.2. Передача объектов в функции
19.2.1. Передача объектов по значению
19.2.2. Передача объектов по указателю
19.2.3. Передача объектов по ссылке
19.3. Объекты в качестве возвращаемых значений
19.4. Дружественные функции

ГЛАВА 20. ПЕРЕГРУЗКА ОПЕРАТОРОВ
20.1. Перегрузка унарных операторов
20.2. Перегрузка бинарных операторов
20.3. Перегрузка операторов отношения и логических операторов
20.4. Перегрузка оператора индексирования
20.5. Перегрузка оператора присваивания
20.6. Перегрузка операторов управления памятью
20.6.1. Перегрузка оператора new
20.6.2. Перегрузка оператора delete
20.7. Использование дружественных оператор-функций
20.8. Перегрузка операторов вставки и извлечения
20.9. Перегрузка оператора вызова функции

ГЛАВА 21. НАСЛЕДОВАНИЕ
21.1. Введение в наследование
21.2. Простое наследование
21.3. Режимы доступа к элементам базового класса
21.4. Поведение конструкторов и деструкторов при наследовании
21.5. Множественное наследование
21.5.1. Создание иерархии классов
21.5.2. Прямое наследование нескольких базовых классов

ГЛАВА 22. ВИРТУАЛЬНЫЕ ФУНКЦИИ
22.1. Понятие о виртуальных функциях
22.2. Указатели на базовый и производные классы
22.3. Виртуальные функции и наследование
22.4. Абстрактные классы и чисто виртуальные функции
22.5. Виртуальные деструкторы
22.6. Виртуальные базовые классы

ГЛАВА 23. ОБЪЕКТЫ И ФАЙЛОВЫЕ ПОТОКИ. ТЕКСТОВЫЕ ФАЙЛЫ
23.1. Потоковый ввод-вывод дисковых файлов
23.2. Текстовые файлы
23.2.1. Создание и запись
23.2.2. Посимвольное чтение файла
23.2.3. Посимвольная запись файла
23.2.4. Построчное чтение файла
23.2.5. Построчная запись файла
23.3. Признак конца файла

ГЛАВА 24. ОБЪЕКТЫ И ДВОИЧНЫЕ ФАЙЛЫ
24.1. Сохранение данных в двоичных файлах
24.1.1. Сохранение в двоичных файлах данных стандартных типов
24.1.2. Сохранение в двоичных файлах данных, имеющих тип, создаваемый пользователем
24.2. Произвольный доступ к элементам двоичных файлов
24.2.1. Файловый указатель
24.2.2. Организация доступа к элементам двоичных файлов

ГЛАВА 25. ШАБЛОНЫ. РОДОВЫЕ ФУНКЦИИ. РОДОВЫЕ КЛАССЫ
25.1. Понятие шаблона и родовой функции
25.2. Определение более чем одного родового типа данных
25.3. Родовые классы (шаблоны классов)

ГЛАВА 26. ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ

ГЛАВА 27. ДИНАМИЧЕСКАЯ ИДЕНТИФИКАЦИЯ ТИПА
27.1. Оператор dynamic_cast
27.2. Оператор typeid
27.3. Структура класса type_info
27.4. Операторы приведения типа

ГЛАВА 28. СТАНДАРТНАЯ БИБЛИОТЕКА ШАБЛОНОВ. КОНТЕЙНЕРЫ, ИТЕРАТОРЫ, АЛГОРИТМЫ
28.1. Основные определения
28.2. Контейнеры
28.2.1. Векторы
28.2.2. Списки
28.3. Итераторы
28.4. Алгоритмы

ГЛАВА 29. СТРОКОВЫЙ КЛАСС
29.1. Ввод и вывод строк
29.2. Поиск в строке
29.3. Модификация строки
29.4. Сравнение строк
29.5. Получение информации об объекте класса string

ПРИЛОЖЕНИЕ А. СВЕДЕНИЯ О СИСТЕМАХ СЧИСЛЕНИЯ
A-1. Десятично-двоичные и двоично-десятичные преобразования
А-2. Восьмеричная и шестнадцатеричная системы счисления
А-3. Таблицы истинности логических схем
А-4. Примеры использования двоичной арифметики

ПРИЛОЖЕНИЕ Б. СХЕМЫ АЛГОРИТМОВ

СПИСОК ЛИТЕРАТУРЫ