
Объектно-ориентированное программирование / 12_116608_1_50088
.pdfУЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра информатики
"Утверждаю" декан факультета КСиС
_________ Никульшин Б.В. "___"_________ 2005 г.
РАБОЧАЯ ПРОГРАММА
по курсу "Обьектно-ориентированное программирование" для студентов специальности 31.03.04 "Информатика", факультет компьютерных систем и сетей
кафедра информатики курс 2, семестр 4.
Форма обучения |
дневная |
Лекции |
34 |
Лабораторные работы |
32 |
Зачет (семестр) |
4 |
Курсовой проект (семестр) |
5 |
Минск 2005 г.
2
Разработал программу ассистент Галковский А.В.
Рабочая программа обсуждена на кафедре информатики
"___"________ 2005 г., протокол № ____
Зав. кафедрой информатики Л.И.Минченко
Рабочая программа одобрена методической комиссией факультета
Председатель методической комиссии Н.И.Мельник
3
1.ЦЕЛИ И ЗАДАЧИ ДИСЦИПЛИНЫ, ЕЕ МЕСТО В УЧЕБНОМ ПРОЦЕССЕ. 1.1.Цель преподавания дисциплины - дать студентам информацию о современных методах и средствах программирования, основных принципах объектноориентированного проектирования программной продукции.
1.2.Задачи изучения дисциплины:
1.2.1.овладеть основными методами объектно-ориентированного программирования;
1.2.2.приобрести практические навыки разработки программ на C++.научиться использовать стандартные приложения; 1.3.Теоретический материал курса базируется на сведениях, полученных студен-
тами при изучении курсов высшей математики и программирования (язык C).
2.СОДЕРЖАНИЕ ДИСЦИПЛИНЫ.
2.1.Наименование тем, их содержание, объем в часах лекционных занятий.
2.1.1.Введение. Предмет курса, его задачи, структура. Концепция объектноориентированного программирования. Понятие объекта и фундаментальные характеристики ООП (инкапсуляция, наследование, полиморфизм). - 2 часа.
2.1.2. Не связанные с объектами расширения C++ относительно C. Новое в описании типов и переменных. Комментарии. Встроенные (inline) функции Перегружаемые функции и функции с аргументами по умолчанию. Ссылки - 4 часа.
2.1.3.Классы и объекты. Определение классов (class, struct, union). Элементы данных и методы класса. Защита элементов класса и атрибуты доступа. Объявление и определение методов класса. Вызов членов класса. - 4 часа.
4
2.1.4.Конструкторы и деструкторы. Инициализация объектов. Автоматические, динамические и статические объекты. Операторы "new" и "delete". Распределение памяти. Указатель "this" - 2 часа.
2.1.5.Базовые и производные классы. Ограничение доступа. Наследование свойств и модификаторы доступа. Множественное наследование. Конструкторы базовых и производных классов. Инициализация объектов - 4 часа.
2.1.4. Виртуальные функции. Особенности разработки и использования виртуальных функций. Чистые виртуальные функции. Абстрактные классы. Примеры - 2 часа.
2.1.4.Полиморфизм. Перегрузка функций. Особенности использования перегруженных функций. Перегрузка конструктора. Примеры - 2 часа.
2.1.5.Полиморфизм. Перегрузка операторов. Общие правила переопределения операторов. Примеры. Дружественные функции и особенности их использования для переопределения операторов - 2 часа.
2.1.11.Параметризация классов и шаблоны функций. Оператор "template". Методы использования шаблонов. Передача дополнительных аргументов в шаблоны - 2 часа.
2.1.12.Потоки ввода-вывода. Понятие потока. Иерархия классов ввода-вывода. Основные уровни иерархии. Классы потоков. Основные функции. Форматированный и неформатированный ввод-вывод. Функции. Поля управления форматированием, манипуляторы. Непараметризированные манипуляторы и манипуляторы с параметрами - 4 часа.
5
2.1.14.Файловый ввод-вывод. Классы файлового ввода-вывода. Организация доступа к файлу. Основные функции. Примеры - 4 часа.
2.1.17. Технология программирования. Понятие программного обеспечения. Жизненный цикл программы. Модели жизненного цикла ПО. – 2 часа
2.2.Лабораторные занятия: наименование, объем в часах.
2.2.1.Инкапсуляция. Классы и объекты. Использование средств разграничения доступа к классам. Простейшие конструкторы и деструкторы - 4 часа. 2.2.2.Проектирование иерархии классов и объектов. Наследование свойств и модификаторы доступа. Простейшие примеры использования наследуемых свойств. Простейшие примеры создания графических объектов (графических примитивов) - 4 часа.
2.2.3.Полиморфизм. Разработка и использование перегруженных функций. Перегрузка конструкторов (для графических объектов) - 4 часа.
2.2.4.Перегрузка операторов. Разработка и использование перегруженных операторов для пользовательских типов данных. Разработка методов управления перемещением графических объектов - 4 часа.
2.2.5.Проектирование иерархии классов. Создание сложных графических объектов. Разработка методов управления отдельными объектами и их совокупностью. Использование статических переменных - 4 часа.
2.2.6.Массивы данных и их использование для создания сложных графических объектов - 4 часа.
2.2.7.Динамические объекты. Использование виртуальных и чисто виртуальных функций для проектирования иерархии классов. Доступ к ним через указатели. Разработка и использование конструктора копирования для работы с объектами - 4 часа.
6
2.2.8. Проектирование списковых структур. Объектно-ориентированные списки. Использование списков для управления множеством объектов - 4 часа.
2.3. Курсовое проектирование. Типы заданий.
2.3.1.Создание пользовательского интерфейса для систем, работающих в графическом и текстовом режимах.
2.3.2.Разработка графических и текстовых редакторов с минимальным набором типовых функциональных возможностей.
2.3.3.Разработка диалоговых обучающих программ.
2.3.4.Реализация игровых программ.
3. УЧЕБНО - МЕТОДИЧЕСКИЕ МАТЕРИАЛЫ. 3.1. Литература.
3.1.1.Соловьёв В.В. Объектно-ориентированное программирование на языке C++: Методические указания по курсу “Программирование” для студентов специаль-
ности 22.01.- Мн.: БГУИР, 1994.
3.1.2.Касаткин А.И., Вальвачёв А.Н. От Turbo C к Borland C++.- Мн.: Вышэйшая школа, 1992.
3.1.3.Касаткин А.И. Управление ресурсами.- Мн.: Вышэйшая школа, 1992. 3.1.4.Скляров В.А. Язык C++ и объектно-ориентированное программирование: Справ. пособие.- Мн.: Вышэйшая школа, 1997.
3.1.5.Язык программирования C++.- М.: "И.В.К.-СОФТ", 1991. 3.2.Дополнительная литература.
3.2.1.Неформальное введение в C++ и TURBO VISION.- С.-Петербург: Галерея "ПЕТРОПОЛЬ", 1992.
3.2.2.Керниган Б., Ритчи Д. Язык программирования Си.- М.: Финансы и стати-
стика, 1992.
3.2.3.Ирэ П. Объектно-ориентированное программирование с использованием С++. Пер. с англ.- К.: НИПФ "ДиаСофтЛтд", 1995.
7
3.2.4.Буч Г. Объектно-ориентированное проектирование с примерами применения. Пер. с англ.- М.: Конкорд, 1992.