zhChinese    enEnglish
  ПМ-ПУ  » Образование  » Программы курсов  » Дисциплины специализаций » C++: структуры данных и процессов

C++: структуры данных и процессов

Специальный курс

Лектор доцент кандидат технических наук Новожилова Л. М.

ВВЕДЕНИЕ

Простая С++программа. Подготовка программы к исполнению компьютером. Технологическая среда исполнения программы. Библиотеки. Понятия модуля и функции. Стэковый фрейм функции. Структура С++программы. Области действия объектов программы. Организация памяти, двоичные коды и понятие типа. Авторские типы. Алфавит С++.

ОБЗОР С++.

Процедурное программирование. Переменная. Арифметика. Оценка состояний: если, то, иначе; до тех пор, пока не; все время пока. Циклические вычисления. Указатели и ссылки. Массивы. Модульное программирование. Раздельная компиляция. Обработка исключений. Абстракция данных. Модули определения типов. Конкретные и абстрактные типы. Виртуальные функции. Объектно-ориентированное программирование. Иерархия классов.

ОБЗОР СТАНДАРТНОЙ БИБЛИОТЕКИ.

Пространство имен. Строки. Ввод. Контейнеры. Алгоритмы. Применение итераторов. Типы итераторов. Итераторы и ввод-вывод. Проход с выполнением и предикаты. Алгоритмы стандартной библиотеки. Математические вычисления. Комплексные числа. Векторная арифметика. Средства стандартной библиотеки.

ГРАММАТИЧЕСКИЕ КОНСТРУКЦИИ.

Типы и объявления: фундаментальные, символьные, целые. Типы с плавающей точкой. Декларации и дефиниции. Имена, область видимости, инициализация. Объекты r-value и l-value. Указатели и ссылки, массивы и структуры. Эквивалентность типов. Выражения и инструкции. Калькуляция. Обзор операторов, приоритеты. Инкремент, декремент. Свободная память. Явное преобразование типов. Функции. Декларация и дефиниция. Передача аргументов. Возвращение. Перегруженные имена функции. Аргументы по умолчанию. Пространства имен и исключения. Разбиение на модули и интерфейсы. Исходные файлы и программы.

КЛАССЫ.

Классы. Типы, определяемые пользователем. Объекты. Конструирование и уничтожение. Локальные переменные. Свободная память. Объекты в качестве членов. Массивы. Локальная статическая память. Временные объекты. Перегрузка операторов. Производные классы. Абстрактные классы. Проектирование иерархий классов. Шаблоны. Простой шаблон строк. Шаблоны функций. Специализация. Члены-шаблоны. Организация исходного кода. Обработка исключений. Иерархии классов Стандартные библиотеки контейнеры. Строки.

ПОТОКИ.

Вывод встроенных и авторских типов. Ввод. Связывание потоков. Форматирование. Файловые и строковые потоки. Буферизация.

РАЗРАБОТКА И ПРОЕКТИРОВАНИЕ ПРОГРАММНЫХ ИЗДЕЛИЙ.

Цикл разработки. Этапы проектирования: выявление классов, определение операций, определение взаимозависимостей, определение интерфейсов, реорганизация иерархии классов. Тестирование. Классы. Иерархии классов и внутрииерархические зависимости. Отношения включения. Включение и наследование. Отношение использования. Программируемые отношения. Отношения внутри класса. Инварианты, предусловия и постусловия, Инкапсуляция. Компоненты. Роли классов.

СТРУКТУРЫ ДАННЫХ.

Векторы, матрицы. Стеки, возвратность. Очереди, списки. Деревья. Сортировка, поиск.

ГРАФЫ И ИХ ПРИЛОЖЕНИЯ.

Представление графов в памяти С++машины. Транзитивное замыкание. Алгоритм Уоршала. Алгоритмы синтеза кратчайшего пути. Деревья. Обходы бинарных деревьев. Задачи принятия решений. Базы данных. Деревья сортировки. Кратчайший остов. Алгоритм Краскала. Циклы. Независимость и покрытия. Раскраски. Потоковые алгоритмы.

ПОЛЕЗНЫЕ ДОПОЛНЕНИЯ.

Синтаксис языка С++. Совместимость С/С++. Аспекты реализации. Технические подробности.

Литература

  1. Телло Э. Объектно-ориентированное программирование в среде WINDOWS. 1993.
  2. Марченко А. Л. С++. Бархатный путь. 2000.
  3. Страуструп Б. Язык программирования С++. 1999.
  4. Бен-Ари М. Языки программирования. Практический сравнительный анализ. 2000.
  5. Daconta M. C++ pointers and dynamic memory management. 1995.
  6. Rudd A. C++ complete. 1994.
  7. Мейерс С. Эффективное использование С++. 2000.
  8. Элджер Д. С++. 2000.
  9. Ammeraal I. C++ for programmers. 1995.
  10. Tenenbaum A. Data structures using C. 1994.