Одним из главных принципов уникальной «системы Физтеха», заложенной в основу образования в МФТИ, является тщательный отбор одаренных и склонных к творческой работе представителей молодежи. Абитуриентами Физтеха становятся самые талантливые и высокообразованные выпускники школ всей России и десятков стран мира.

Студенческая жизнь в МФТИ насыщенна и разнообразна. Студенты активно совмещают учебную деятельность с занятиями спортом, участием в культурно-массовых мероприятиях, а также их организации. Администрация института всячески поддерживает инициативу и заботится о благополучии студентов. Так, ведется непрерывная работа по расширению студенческого городка и улучшению быта студентов.

Адрес e-mail:

Объектно-ориентированное программирование

                                                                                                УТВЕРЖДАЮ

                                    Проректор по учебной работе

                                    __________ Ю.А. Самарский

                                                                                                                                                                                             “_____” ____________  2004 г.  

                                                               ПРОГРАММА

По курсу: Объектно-ориентированное программирование

Факультет: ФУПМ

Курс 5

Семестр  9

Лекции 32

Практические занятия 32

ВСЕГО ЧАСОВ 64

Программу составил: к.ф.-м.н., доцент Б.Г. Кухаренко

Программа обсуждена на заседании

Кафедры информатики

 “     “_________ 2004 года

Заведующий кафедрой                              И.Б. Петров

Объектно-ориентированное программирование

 

 

I . Обеспечение повторного использования клиентских программ

1.      Диаграммы проектирования клиентских классов в С++ , Java и C#.

2.      Язык  UML.

3.      Использование паттернов проектирования при разработке архитектуры программ  на основе Swing/JFC (Java 2) и WinForms (.NET).

II .  Канонические паттерны проектирования в С++, Java и C #

1. Порождающие паттерны:

абстрактная фабрика Abstract Factory строитель Builder фабричный метод Factory Method прототип Prototype одиночка Singleton

2. Структурные паттерны:

адаптер Adapter мост Bridge компоновщик Composite декоратор Decorator фасад Facade приспособленец Flyweight заместитель Proxy

3. Паттерны поведения:

цепочка обязанностей ChainOfResponsibility команда Command интерпретатор Interpreter итератор Iterator посредник Mediator хранитель Memento наблюдатель Observer состояние State стратегия Strategy шаблонный метод TemplateMethod посетитель Visitor

III .  Подходы к выбору паттернов для решения задач проектирования

1. Файловая система на основе TemplateMethod.

2. Файловая система на основе Composite + Proxy + ChainOfResp + Iterator + Visitor + Observer + Command.

3. Файловая система на основе 7 предыдущих паттернов + Decorator.

 

Задачи

1.      В экранную форму поочередно вводятся строки вида ‘LastName, FirstName’ либо ‘FirstName LastName’. Реализовать фабрику объектов вида {String ‘FirstName’, String ‘LastName’}.

2.      Создать класс Singleton используя статический метод.

3.      На основе Builder реализовать графический интерфейс (GUI), имеющий вид ListBox или CheckBox в зависимости от числа отображаемых объектов иерархической базы данных.

4.      На основе Prototype  реализовать клонирование инверсного вектора.

5.      На основе Adapter реализовать GUI для формирования списка записей, обеспечивающий перенос выделенных записей в другой список.

6.      На основе Bridge реализовать GUI, представляющий список в ListBox и Table одновременно.

7.      На основе Composite реализовать иерархическое дерево субординации объектов бинарного отношения часть-целое.

8.      На основе Decorator реализовать GUI, подсвечивающий кнопки панели управления  при продвижении курсора мыши.

9.      На основе Facade реализовать класс, обеспечивающий соединение с базой данных.

10.      На основе Flyweight реализовать GUI в виде экранной формы с папками, представляющими объекты.

11.      Реализовать класс ImageProxy, рисующий в экранной форме прямоугольник соответствующего размера в том месте, где будет загружено изображение класса Image.

12.      На основе ChainOfResponsibility реализовать GUI системы HELP, которая после выбора ключевого слова (команды) показывает содержимое графических либо текстовых файлов, а также предлагает выбрать родственные ключевые слова (команды).

13.    На основе Command реализовать GUI, принимающий и отменяющий команды фиксированного меню.

14.      На основе Interpreter реализовать класс Parser для разбора алгебраических выражений с операциями +, -, *, /.

15.      Реализовать класс Iterator для перечисления Enumeration объектов классов, полученных с помощью Wrapper из базовых типов данных.

16.      На основе Mediator реализовать GUI, обеспечивающий взаимодействие элементов управления в виде 2-х кнопок Button: Copy и Clear, и  2-х  списков ListBox.

17.      Реализовать класс рисования прямоугольников в экранной форме и класс Memento для сохранения параметров предыдущего рисунка.

18.      На основе Observer реализовать форму с радио кнопками выбора цвета с отображением выбранного цвета в графическом окне и истории выбора цветов в виде списка ListBox.

19.      На основе State реализовать GUI с тремя кнопками для выбора типа рисуемых фигур: треугольников, прямоугольников и окружностей.

20.      На основе Strategy реализовать класс с динамическим выбором алгоритма для представления графиков функций в декартовых либо полярных координатах.

21.      На основе паттерна Template реализовать абстрактный класс представления графиков функций без конкретизации типа используемых координат (функции масштабирования присутствуют).

22.      Реализовать класс Visitor для перечисления классов.

Литература

 

 

1. Preiss B.R. Data structures and algoritms with object-oriented design patterns in C++. John Wiley and Sons. 1997.

2. Preiss B.R. Data structures and algoritms with object-oriented design patterns in Java. John Wiley and Sons. 1998.

3. Preiss B.R. Data structures and algoritms with object-oriented design patterns in C#. John Wiley and Sons. 2001.

4. Александреску А. Современное проектирование на С++. Обобщенное программирование и прикладные шаблоны проектирования. Вильямс. Москва. 2002. 335 с.

5. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. Питер. Санкт-Петербург. 2003. 366 с.

6. Влиссидес Дж.  Применение паттернов проектирования. Дополнительные штрихи. Вильямс. Москва. 2003. 136 с.

7. Стелтинг С., Маасен О. Применение шаблонов Java. Вильямс. Москва. 2002

8. Cooper J.M. The design patterns. Java companion. Addison-Wesley. Reading, MA. 1998. 218 p.

 


 

Если вы заметили в тексте ошибку, выделите её и нажмите Ctrl+Enter.

© 2001-2016 Московский физико-технический институт
(государственный университет)

Техподдержка сайта

МФТИ в социальных сетях

soc-vk soc-fb soc-tw soc-li soc-li
Яндекс.Метрика