УТВЕРЖДАЮ Заведующий кафедрой ИСТ _____________О.И. Наранович подпись «____»_______________20__ г., Протокол №_________________ Методические указания для подготовки к входному компьютерному тестированию по ___________объектно-ориентированному программированию___________ дисциплина для специальности: ___________1-40 01 02 Информационные системы и технологии___________ _____2,3______курс___________3,4,5,6,7_______________семестр_________ _________________________заочное отделение_________________________ (название факультета (ФЗО, ФНО)) Выписка из учебной программы дисциплины РАЗДЕЛ 1 ОСОБЕННОСТИ ЯЗЫКА С++ Тема 1.1 Основные элементы языка C++. Правила написания программ Лексемы Идентификаторы Константы Переменные Тип данных Спецификаторы типов. Операции языка. Функции для работы с действительными числами: Структура программы Компиляция и запуск программы на C++ Операторы присваивания. Простейший вводвывод. Манипуляторы Тема 1.2 Операторы управления программой. Операторы передачи управления .Операторы ветвления. Условный оператор if . Оператор switch. Операторы цикла. Оператор «выражение». Цикл с предусловием (while). Цикл с постусловием (do while).Цикл FOR. Тема 1.3 Составные типы. Массивы. Указатели и ссылки Массивы. Двумерные массивы .Инициализация массивов. Инициализация указателей. Операции с указателями. Ссылки. Тема 1.4 Функции в С/С++. Объявление и определение функций. Области действия и пространства имен. Внешние объявления. Поименованные области. Глобальные переменные. Возвращаемое значение. Параметры функции. Передача массивов в качестве параметров. Передача имен функций в качестве параметров. Параметры со значениями по умолчанию. Тема 1.5 Обработка строк символов и текстов Работа с символами Описание строк. Ввод-вывод строк. Операции со строками. РАЗДЕЛ 2 КОНЦЕПЦИЯ И ОСОБЕННОСТИ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА Тема 2.1 Концептуальные основы объектно-ориентированного подхода. Две парадигмы программирования. Основные направления в программировании. Возникновение ООП. Базовые принципы ООП Тема 2.2 Фундаментальные методы и свойства объектной модели ,ее преимущество. Основные положения объектной модели ее преимущества. Абстрагирование. Модульность. Иерархия. Типизация. РАЗДЕЛ 3 БАЗОВЫЕ АБСТРАКЦИИ ОБЪЕКТНО- ОРИЕНТИРОВАННОГО АНАЛИЗА И ПРОГРАММИРОВАНИЯ Тема 3.1 Классы и объекты. Основные положения объектной модели ее преимущества. Абстрагирование. Модульность. Иерархия. Типизация Тема3.2 Структурные элементы класса и методы взаимодействия объектов. Организация внешнего доступа к локальным компонентам класса. Интерфейсные (Дружественные функции. ) Статические и константные компоненты класса. Вложенные классы. Перегрузка и переопределение функций Тема3.3 Статические и динамические объекты.. Операторы для динамического выделения и освобождения памяти. Статические и динамические объекты. РАЗДЕЛ 4 МЕТОДЫ И МЕХАНИЗМЫ РАЗРАБОТКИ ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ ПРОГРАММ Тема 4.1 Методы и механизмы инкапсуляции и организации доступа к элементам объекта Принцип инкапсуляции. Область действия класса и доступ к компонентам класса. Управление доступом к компонентам класса Тема 4.2 Механизмы наследования и определения собственных типов данных Базовые и производные классы Основные правила построения производных классов. Конструкторы и деструкторы при наследовании .Простое и множественное наследование. Переопределение членов базового класса в производном Тема 4.3 Виртуальные функции и абстрактные классы, механизмы использования Виртуальные функции т механизм их использования. Абстрактные классы их назначение и свойства. Тема 4.4 Полиморфизм, его основные проявления, механизмы использования Понятие раннего и позднего связывания. Использование виртуального механизма для реализации принципа полиморфизма. Доопределение операций. Тема 4.5 Параметризация объектов в объектно- ориентированном программировании Введение в параметризованные классы. Параметризованные классы и методы , их свойства. Совместное использование параметризации и принципов наследования. Организация внешнего доступа компонентам параметризованных классов. Параметризованные классы и статические члены. Тема 4.6 Контейнерные типы и их применение Введение в стандартную библиотеку шаблонов (классов коллекций), основные понятия. Классы контейнеры и итераторы. Типы контейнерных классов, адаптеры контейнеров. Алгоритмы и их использование с контейнерными классами. Тема 4.7.Исключения и их обработка Основы обработки исключений. Генерация исключений. Перехватывание исключений. Повторная генерация исключения. Обработка неожидаемыъ исключений.Генерация исключений в конструкторах Исключения и наследование. Спецификация исключений. Иерархия исключений стандартной библиотеки. Тема 4.8 Потоки ввода-вывода, организация работы с файлами Потоки общее понятие. Организация ввода из потока и вывода в поток. Контроль состояния потока и исправление ошибок. Неформатированный ввод-вывод. Манипуляторы потоков(стандартные и определяемые пользователем) Файлы и потоки, их взаимосвязь. Файлы последовательного и произвольного доступа. Организация ввода-вывода объектов. Тема 4.9 Применение объектно- ориентированного программирования в разработке прикладных программ Применение объектно- ориентированного анализа и проектирования. Компонентный подход. Повторное использование кода. Совместная разработка элементов приложений. Конкретные вопросы, позволяющие раскрыть содержание каждой темы 3 семестр 1. Правила написания программ на языке С++ Структура простейшей программы. 2. Состав языка Си:, идентификаторы, , знаки операций, константы, комментарии. Лексемы. 3. Арифметические операции, Стандартные библиотеки языка C/C++, функции библиотеки math.h. 4. Операция присваивания, ее различные формы (инкремент, декремент).. Блок оператора и пустой оператор. 5. Операции сравнения, логические операции, побитовые операции. 6. Типы данных .Спецификаторы типов 7. Программирование ввода и вывода. 8. Оператор условного перехода if-else, оператор альтернативного выбора switch. 9. Условная тернарная операция «?:». Операторы передачи управления 10. Операторы цикла: оператор цикла с постусловием do-while, оператор цикла с постусловием и коррекцией for. 11. Организация циклов. Ошибки при программировании циклов 12. Операции со строками. 13. Работа с символами 14. Декларация указателя. Указатель на объект, указатель типа void. Инициализация указателя, значение NULL. Операции над указателями. 15. Связь указателей с массивами. Создание динамических массивов и правила работы с ними. 16. . Строка – массив типа char. Стандартные функции библиотеки string.h. 17. Перечисления (enum), объединения (union). 18. Декларация статических массивов, размещение данных в памяти, правила обращения к элементам массивов. 19. Понятие функции, описание и определение функции. Вызов функции. 20. Передача данных в функцию по значению, по указателю, по ссылке. 21. Передача массивов в функцию. Указатель на функцию. 22. Встраиваемые функции. Перегрузка функций. Передача массивов в функцию. Указатель на функцию 23. Параметры функций по умолчанию, функции с переменным числом параметров. 24. Стандартные библиотечные функции для организации ввода-вывода информации (getc, gets, scanf, putc, puts, printf). Спецификации преобразований для данных различных типов. 25. Работа с файлами в C++ 26. Директивы препроцессора. 27. Базовые принципы объектно-ориентированного программирования 28. Признаки объектно-ориентированных языков программирования 29. Базовые блоки ООП. Объект. Класс 30. Реализация механизма сокрытия информации 4 семестр 1. Реализация механизма сокрытия информации 2. Конструкторы. Основные свойства и правила использования конструкторов. 3. Конструктор с параметрами 4. Конструктор копирования. 5. Конструктор по умолчанию 6. Деструкторы. Правила использования деструкторов. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Оператор new и delete Косвенная адресация. Функции манипулирования памятью файла alloc.h Преимущества использования оператора new перед malloc(): Механизм «функции-друга». Свойства и правила использования структур и объединений. Перегрузка функций-членов класса . Отличия перегрузки операций метода класса и функции- друга Перегрузка операторов. Иерархии классов. Наследование Механизм виртуальных функций. Свойства и правила использования Абстрактные классы, Виртуальное наследование. Шаблоны классов. Шаблоны функций. Исключения и их обработка. Ситуация развертывания стека. Обработчики исключительных ситуаций catch. Традиционные методы обработки ошибок. Контейнерные классы. Итераторы. Реализация контейнеров Операции контейнера Последовательный контейнер. Список Последовательный контейнер. Вектор Последовательный контейнер. Очередь Адаптеры контейнеров. Стек. Ассоциативные контейнеры. Потоки ввода-вывода. Двоичные файлы. Перечень рекомендуемых литературных источников 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Астахова И.Ф. Язык C/C++: Учеб. Пособие / И. Ф. Астахова, С. В. Власов, В.В. Фертиков, А.В. Ларин. – Мн.: Новое знание, 2003. – 203 с. Иванова, Г.С. Объектно-ориентированное программирование– 2-е изд., перераб. и доп. – Москва: Изд-во МГТУ имени Н.Э. Баумана, 2003. – 368с. – Ишкова Э. А. C++. Начала программирования. – М.: ООО «Бином-Пресс», 2004. – 368 с. Культин Н. Б. C/C++ в задачах и примерах. – СПб.: БХВ-Питербург, 2004. – 288 с. Кьоу, Дж Объектно-ориентированное программирование – Санкт-Петербург Питер, 2005. – 237 с.: Лаптев, В.В. С++ Объектно-ориентированное программирование. Задачи и упражнения – Санкт-Петербург Питер, 2007. – 287 с.: Луцик, Ю.А. Объектно-ориентированное программирование на языке C++: учеб.пособие /Ю.А.Луцик, В.Н.Комличенко,-Минск: Бгуир,2008 Мейерс, С. Эффективное использование С++ 35 новых рекомендаций по улучшению ваших программ и проектов /– Москва: Питер: ДМК Пресс, 2006. – 296 с. Мейерс, С. Эффективное использование С++ 50 новых рекомендаций по улучшению ваших программ и проектов – Москва: Питер: ДМК Пресс, 2006. – 235 с. Павловская Т. А. C/C++. Программирование на языке высокого уровня-СПб.: Питер, 2005.-461 с. Павловская, Т. А. C/C++. Структурное программирование: Практикум /Т. А. Павловская, Ю.А. Щупак. - СПб.: Питер, 2004. – 239 с. Павловская, Т. А. С++. Объектно-ориентированное программирование: практикум – Санкт-Петербург: Питер,2006.-264 с. : Павловская, Т. А. С++. Структурное и объектно-ориентированное программирование: практикум – Санкт-Петербург: Питер,2010.-347 с. Страуструп, Б. Дизайн и эволюция С++– Москва : Питер : ДМК Пресс, 2007. – 444 с. Холзнер, С.Visual C++ 6 – СПб. : Питер, 2006. – 569с. : Шиманович Е.Л. С/С++ в примерах и задачах- Мн.: Новое знание,2004.-528 с.