Главная » Просмотр файлов » Е.И. Большакова - Задания практикума по объектно-ориентированному программированию

Е.И. Большакова - Задания практикума по объектно-ориентированному программированию (1162571), страница 13

Файл №1162571 Е.И. Большакова - Задания практикума по объектно-ориентированному программированию (Е.И. Большакова - Задания практикума по объектно-ориентированному программированию) 13 страницаЕ.И. Большакова - Задания практикума по объектно-ориентированному программированию (1162571) страница 132019-09-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 13)

Заметим, что впрограммном коде агрегация превращается либо во включение по значению, прикотором один объект является атрибутом другого, либо во включение по ссылке,при котором один объект содержит ссылку на другой.При связи использования метод одного класса или вызывает операциюдругого класса, или порождает экземпляр другого класса, или использует объектдругого класса как параметр, или же возвращает его в качестве своего значения.Отношения использования слабее и менее ограничительны, в то же времяагрегация часто предпочтительнее, т.к.

позволяет скрыть части в целом.Для более полного описания проектных решений, касающихсяответственности классов, необходимо составить текстовые спецификацииклассов – они должны содержать то, что не отображено в диаграмме, но удобнеезаписать в текстовом виде. Спецификация класса есть по сути описание егоинтерфейса, т.е. его видимых извне операций (методов).

Текстовыеспецификации могут быть записаны на используемом объектноориентированном языке программирования с добавлением комментариев,содержащих дополнительную информацию об атрибутах и операциях классов(например: статический, виртуальный, чисто виртуальный и т.п.).Диаграмма классов должна быть дополнена диаграммой объектов,показывающей взаимодействие основных объектов программной системы.Классы статичны, т.е.

их содержание определено в процессе компиляциипрограммного кода, и диаграмма классов описывает структуру программнойсистемы. Напротив, объекты динамичны – они создаются и уничтожаются впроцессе выполнения программы, и диаграмма объектов характеризует ееповедение, т.е. совместное функционирование объектов.Объекты на диаграмме изображаются прямоугольниками с закругленнымиуглами, внутри которых указывается имя объекта (а нередко и его класс).

Связиобъектов на диаграмме показывают пути передачи сообщений между ними(вызовов операций), направление сообщения (вызова) обозначается стрелкой,указывающей на объект, который предоставляет операцию. Связи целесообразнопомечать именем вызываемой операции.Важно, что диаграммы классов и объектов должны быть согласованы:если объект X посылает объекту Y сообщение, то в соответствующей диаграммеклассов должна быть надлежащая связь между классами этих объектов.Отметим, что объектное проектирование – итеративный процесс. Напрактике очень часто невозможно завершить проектирование, не закончивпрограммирование классов – таким образом, эти процессы выполняютсяпоследовательно и итеративно.

В итоге логический класс превращается впрограммный класс, т.е. объявление класса в конкретном языкепрограммирования.45Особенность всех описанных вариантов задания практикума в том, чтоони допускают несколько различных способов проектирования, равноприемлемых и отображаемых в разных итоговых диаграммах и спецификациях.Проектирование файловой структуры системыВ ходе проектирования и программирования решается также вопрос ораспределении классов по модулям (файлам) программной системы.Ряд объектных языков и интегрированных сред разработки приложенийнавязывают определенный способ разбиения программного кода на модулифайлы.

В тех же случаях, когда остается свобода выбора, разумно сгруппироватьв отдельные файлы внутренне (логически) связанные классы, например,выделить в отдельные модули: основную расчетную часть (математическуюмодель процесса или явления), процедуры визуализации моделируемогопроцесса или явления, процедуры организации интерфейса с пользователем.В больших проектах следует избегать вариантов модульной структуры,при которых каждый класс помещен в отдельном файле. В то же времянежелательна и другая крайность, когда все спроектированные классыобъединяются в одном файле – такое решение допустимо для небольших задач.Отчет о выполнении задания практикумаТекст отчета должен включать следующие разделы:1. Уточнение постановки задачи для выбранного варианта задания, принеобходимости – описание математической модели процесса или явления.Например: Демонстрационная модель солнечной системы.Смоделировать на основе законов Кеплера движение планет Солнечнойсистемы и пролет кометы через нее с заданной скоростью.2.

Диаграмма классов, показывающая выделенные классы и связи между ними.Например:SolarSystem1nCelestialBodySunНаследованиеАгрегацияИспользованиеPlanetSatelliteCometSolarPlanet3. Текстовые спецификации интерфейса основных классов системы.Например, для одного из классов://Интерфейс класса, представляющего Солнечную системуclass CSolarSystem{ public:46//итераторы для объектов системыtypedef TBodies::iterator TIterator;TIterator begin();TIterator end();//конструктор и деструкторCSolarSystem(void);~CSolarSystem(void);//пересчет положения объектов системыvoid nextFrame(double days_per_frame);//добавление тела p в системуvoid addBody(CCelestialBody * p);//удаление тела p из системыvoid removeBody(CCelestialBody * p);};4.

Диаграмма объектов, показывающая основные объекты и их связи.Например, для модели Солнечной системы (для наглядности на стрелках неуказываются названия вызываемых методов):mercuryvenusmoonearthphobosdeimosmarsjupitersolarsaturnganymede...europauranustitanneptunesuncomet5. Инструментальные средства, использованные при выполнении задания: языкпрограммирования, интегрированная среда, библиотеки.Например:Язык разработки – С++Среда разработки – Microsoft Visual Studio .NET 2003Используемые библиотеки – OpenGL, glut.6. Описание файловой структуры системы: перечень всех файлов программы суказанием классов, описанных в каждом из них.Например:solar.cpp – главный файл, интерфейс;47Planets.h и Planets.cpp – объявление и описание классов CPlanets,CSolarPlanet и CSatellite;Comet.h и Comet.cpp – объявление и описание класса CComet;Sun.h – описание класса CSun;CelestialBody.h – объявление класса CCelestialBody;CelestialBody.cpp – описание класса CCelestialBody;SolarSystem.h – объявление класса CSolarSystem;SolarSystem.cpp – описание класса CSolarSystem.7.

Пользовательский интерфейс: вид диалоговых окон для ввода параметровмоделирования и для визуализации моделируемого процесса или явления;описание функций основных элементов управления этих окон.Например: клавиши управления визуализацией Солнечной системы:W – увеличение масштаба изображения;S – уменьшение масштаба изображения;A – движение налево, D – движение направо области просмотра;Мышью при зажатой левой кнопке – повороты тел;+ и - – увеличение и уменьшение скорости движения тел;O – отображение/скрытие орбит;N – отображение/скрытие названий тел Солнечной системы;1..9 – инициирует пролет кометы со скоростью от 1 до 9 скоростейЗемли в точке восхождения;Е – выход из системы.4. Литература1. Буч Г. Объектно-ориентированное проектирование с примерами применения.– М.: Конкорд, 1992.2.

Буч Г. Объектно-ориентированный анализ и проектирование с примерамиприложений на С++. – М.: Бином, 1998.3. Буч Г., Максимчук Р., Энгл М. и др. Объектно-ориентированный анализ ипроектирование с примерами приложений. – М.: Изд. дом «Вильямс», 2008.4. Буч Г., Якобсон И., Рамбо Дж. UML. Классика CS. 2-е изд. - СПб.: Питер,2006.5.

Гамма Э., Хэлм Р., Джонсон Р., Влиссидес Дж. Приемы объектноориентированного проектирования. Паттерны проектирования. – СПб.:Питер, 2010.6. Гультяев А.К., Машин В.А. Проектирование и дизайн пользовательскогоинтерфейса. – СПб.: КОРОНА, 2000.7. Рамбо Дж., Блаха М. UML 2.0. Объектно-ориентированное моделирование иразработка. 2-е изд. – СПб.: Питер, 2006.48.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6510
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее