Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программа - объектно ориентированное программир...doc
Скачиваний:
1
Добавлен:
19.08.2019
Размер:
184.83 Кб
Скачать

5.2 Разделы дисциплины и междисциплинарные связи с обеспечиваемыми (последующими) дисциплинами

№ п/п

Наименование обеспечиваемых (последующих) дисциплин

№ № разделов данной дисциплины, необходимых для изучения обеспечиваемых (последующих) дисциплин

1

2

3

4

5

6

7

8

9

10

1

Проектирование информационных систем в медиаиндустрии

*

*

*

*

*

*

*

*

*

*

2

Информационные системы и технологии в медиаиндустрии

*

*

*

*

*

*

*

*

*

*

3

Инструментальные средства информационных технологий в медиаиндустрии

*

*

*

*

*

*

*

*

*

*

4

Выпускная квалификационная работа

*

*

*

*

*

*

*

*

*

*

5.3. Разделы дисциплин и виды занятий

№ п/п

Наименование раздела дисциплины

Л

ПЗ

ЛР

С

СРС

Все-го

час.

1.

Теоретические основы объектно - ориентированного программирования.

3

2

СП=7

12

2.

Ключевые операции с классом.

3

2

СП=7

12

3.

Объектные ссылки и выделение памяти. Функции и декларации.

3

3

СП=7

13

4.

Работа со строками.

3

3

СП=7

13

5.

Контейнерные классы в С++.

4

3

СП=8

15

6.

Контейнерные классы в Java.

4

3

СП=8

15

7.

Исключительные ситуации и их обработка.

3

3

СП=8

14

8.

Параметризованные классы. Расширение классов.

4

6

СП=8

18

9.

Множественное наследование в C++.

3

3

СП=8

14

10.

Применение ООП - парадигмы при разработке многопоточных приложений.

4

6

СП=8

18

11.

Курсовой проект.

КП=36

12.

Подготовка к экзамену

Э=36

6. Лабораторный практикум

№ п/п

№ раздела дисциплины

Наименование лабораторных работ

Трудо-емкость

(час.)

1.

1

Начальные шаги в Java и C++.

Задание. Разработать приложения на языках Java и С++ для ввода элементов числового массива с терминала, поэлементного суммирования этих массивов, и последующего вывода полученной суммы на экран.

2

2.

2

Разработка простых объектов на Java или C++.

Задание. Разработать объектную модель, описывающую банковский счет предприятия и банковский счет физического лица. Банковский счет должен поддерживать операции начисления и снятия денежных сумм, перевод денежных сумм с одного счета на другой. Опционально можно объединять (разделять) счета нескольких предприятий (физических лиц). Также, счет может содержать расширенную информацию о его владельце (кредитная история). Разработать классы в С++ и Java, реализующую эту объектную модель.

2

3.

3

Выделение и высвобождение памяти в С++ и Java.

Задание. Разработать приложение на C++ или Java, считывающее графический файл в формате jpg, извлекающее из него числовую информацию (попиксельное описание), и сохраняющее эти данные в массиве, зарезервированном в памяти. Затем высвободить память.

Предварительные и вспомогательные соображения рассказываются предварительно преподавателем.

3

4.

4, 5, 6

Работа со строками и коллекциями в Java и C++.

Задание. Разработать приложение на С++ или Java, которое выполняет следующее:

- программа считывает текстовый файл в память, при этом опускает символы пунктуации и любые другие небуквенные символы, примыкающие к словам в их начале или конце;

- сохраняет «очищенные» таким образом слова в векторе или списке;

- сортирует сформированный вектор (список).

3

5.

5

Работа с контейнерами в С++.

Задание. Разработать на С++ программу PruneList.cc, которая выполняет следующее:

- при вызове из командной строки принимает два аргумента: имя файла и целое число;

- указанный файл текстовый файл состоит из одной или нескольких строк, каждая из которых, в свою очередь, состоит из некоторого числа чисел;

- считывает все описанные выше элементы и помещает их в некоторый контейнерный класс С++; выбор класса обсуждается индивидуально с преподавателем;

- сканирует созданную коллекцию, находит в ней все элементы, превосходящие переданное в командной строке пороговое значение, удаляет их из коллекции, но «не навсегда», а помещает в конец коллекции;

- возвращается указатель на то место в коллекции, с которого начинается участок с перемещенными элементами.

3

6.

6

Работа с контейнерами в Java

Задание. Разработать Java класс PruneList, который делает следующее:

- при вызове из командной строки принимает два аргумента: имя файла и целое число (java PruneList filename 30);

- файл filename состоит из одной или нескольких строк, содержащих числа, записанных с использованием некоторого разделителя;

- класс считывает все строки, разбирает их, выделяет числа, и помещает в ArrayList;

- сортирует полученный ArrayList;

- далее, проходит по полученному списку (итерирует) и удаляет все элементы списка, превосходящих пороговое значение, переданное во втором аргументе при вызове класса;

- выводит содержание списка до и после удаления указанных элементов.

3

7.

7

Исключительные ситуации в С++ и Java

Задание. Разработать на С++ и Java словарь в виде бинарного дерева. В каждом узле дерева находится одно слово, причем словарь организован так, что слово, находящееся в узле, в лексикографическом смысле «больше» каждого из слов, находящихся в двух дочерних узлах данного узла. Приложение осуществляет поиск заданного слова в словаре. При нахождении слова, то есть – при совпадении слова в узле дерева с ключевым словом, поиск прекращается, и бросается некоторое исключение.

3

8.

8

Наследование и расширение классов в С++ и Java.

Задание.

  1. Разработать на С++ и Java базовый класс Employee, описывающий обобщенного сотрудника предприятия; далее разработать классы (примерно) Worker, Engineer, Manager, Security, Director, описывающие, соответственно, рабочего, инженера, менеджера, охранника, директора и т.п.. Базовый класс имеет метод makework() («выполнять работу»), классы - наследники должны соответствующим образом наследовать и расширять этот метод.

  2. Разработать на С++ и Java иерархию классов, описывающих различных животных – пациентов ветеринарной клиники (Pet, Dog, Cat, и т.п.). Базовый класс Pet имеет метод heal() («лечить»), классы – наследники должны наследовать и соответствующим образом расширять этот метод. Должны учитываться также различные породы собак, кошек и т.п.

  3. Разработать на C++ и Java иерархию классов, описывающих геометрические фигуры, которые можно рисовать на экране монитора. Базовый класс Figure имеет метод paint(), классы наследники (например, Circle, Rectangle и т.п.) должны наследовать этот метод и наполнять конкретным для каждой фигуры исполнением.

6

9.

9

Множественное наследование в С++.

Задание. Разбор примеров, приведенных преподавателем (от простого к сложному) с различными системами классов с множественным наследованием (на С++). Примеры подобраны так, что содержат неочевидные ошибки. Учащиеся должны найти и исправить ошибки.

3

10.

4, 5, 10

Многопоточные приложении, в том числе с использованием коллекций.

Задание.

  1. Разработать приложение «часы» (отдельно на Java и С++), моделирующее работу стрелочных часов. Один поток обновляет положение минутной стрелки, другой - положение часовой стрелки.

  2. Разработать приложение «обедающие философы» (отдельно на Java и С++). За круглым столом сидит 5 философов; между каждыми двумя соседними философами лежит одна вилка; каждый философ периодически становится голодным и пытается пообедать; философ может начать есть (перейти в соответствующее состояние), только если свободны обе вилки по бокам от него (т.е., их не захватили соседние философы), тогда философ захватывает обе вилки и переходит в состояние «ест»; далее, философ «ест» в течение некоторого времени, после чего возвращает вилки на место.

  3. Разработать на языке Java приложение, моделирующее работу почтового сервера. «Почтовый ящик» моделируется некоторой коллекцией: отправители кладут письма в «ящик», в то время как «почтовый сервер» забирает письма из ящика и отправляет их адресатам.

6