Определение атрибутов объектов
Стр 1 из 3Следующая ⇒ Оглавление
Введение 3 Анализ и описание предметной области проекта 4 Разработка объектной модели 5 Определение объектов и классов 5 Подготовка словаря данных 5 Определение атрибутов объектов 6 Определение методов классов 7 Упрощение классов при использовании наследования и графическое изображение объектной модели 7 Реализация объектной модели на языке программирования C++ 9 Реализация класса книги 9 Порождение объектов 19 Вызов операций 20 Использование наследования 21 Реализация зависимостей 22 Анализ полученных результатов и выводы 23 Снимок экрана программы 24 Литература 25
Темой данной курсовой работы является изучение объектно-ориентированных возможностей языка C++ (номер варианта 34). Предметная область курсовой работы согласно варианту – моделирование структуры книги.
В методическом приложении были приведены особенности предметной области, рассмотренной в данной работе, – в книге выделяются компоненты: страница, глава, раздел. По условию задачи необходимо реализовать объектную модель книги и написать программу с использованием класса C++, который отражает структуру книги и наглядно демонстрирует эффективность использования объектно-ориентированной технологии разработки программ. Для повышения эффективности создания программных комплексов и сокращения времени, отводимого на проектирование и реализацию конечного продукта, фирма Microsoft рекомендует использовать разработанную ею библиотеку классов MFC (Microsoft Foundation Classes), поставляемую в составе среды разработки программ Microsoft Visual C++ 6. Поэтому приложение, созданное в ходе написания данной курсовой работы, является приложением, использующем библиотеку MFC, и разработано в визуальной среде Microsoft Visual C++ 6. Предназначение данного приложения – наглядное представление в визуальной форме структуры книги. Анализ и описание предметной области проекта
Предметная область данной курсовой работы была выбрана в методическом приложении: моделирование структуры книги (вариант №34). Книга содержит текстовую информацию (в простейшем случае) и имеет древовидную структуру – книга состоит из нескольких разделов, раздел состоит из нескольких глав, глава, в свою очередь, состоит из страниц. Особый компонент книги, облегчающий ее использование, – оглавление, имеющее также древовидную структуру. Недостаток бумажной книги – необходимость часто открывать страницы, содержащие оглавление, для определения номеров нужных страниц, далее необходимо осуществлять поиск этих страниц по известным номерам, на что снова уходит некоторое время. В электронных книгах (например, созданных для просмотра с помощью программы Adobe Acrobat Reader) оглавление всегда находится перед глазами читателя и переход на нужную страницу осуществляется простым щелчком мыши по элементу, соответствующему некоторой странице. Кроме того, в таких оглавлениях показываются все страницы, а не только первые страницы глав, что также упрощает навигацию по книге. И в бумажных, и в электронных книгах всегда присутствует возможность перевернуть одну страницу вперед или назад. Для упрощения задачи и осуществления совместимости с книгами, созданными для просмотра на ПК, ориентированных на текстовые операционные системы (типа DOS), страницу мы будем рассматривать как объект, содержащий исключительно текстовую информацию, отображаемую единым шрифтом и не содержащую никакого форматирования. Таким образом, можно представить страницу как массив с константным количеством расположенных вертикально сверху вниз горизонтальных строк, содержащих константное количество символов (в случае использования немоноширинных шрифтов строки имеют постоянную длину, выраженную в физических единицах: сантиметрах, дюймах, пикселях и т.п.).
Разработка объектной модели
Определение объектов и классов Согласно модели приложения, используемой библиотекой MFC, любое SDI-приложение должно иметь определения следующих классов: класс приложения, порожденный от CWinApp, класс окна, порожденный от CFrameWnd, класс документа, порожденный от CDocument, и класс представления, порожденный от CView. Т.к. приложение для просмотра книг выполнено в стиле “Explorer”, то также определен класс представления оглавления книги, порожденный от CTreeView. Кроме того, класс представления страницы книги порожден не непосредственно от класса CView, а от наследуемого от CView класса – класса CListView. Т.е. страница книги имеет представление в виде списка ее строк. Класс, отражающий структуру книги, имеет название CBookClass. Определены классы коллекций разделов, глав и страниц – класс CRazdels, класс CGlavas и класс CPages соответственно; а также классы собственно раздела, главы и страницы – класс CRazdel, класс CGlava и класс CPage соответственно. Подготовка словаря данных Приложение – глобальный объект класса приложения, используемый для согласования работы объектов других стандартных классов MFC и для разрешения ссылок внутри одних объектов на другие объекты.
Окно приложения – объект визуального представления приложения, организовывающий взаимное расположение визуальных компонентов программы на экране и реализующий стандартный интерфейс взаимодействия пользователя с программой. Документ – информация, которую пользователь может сохранять в процессе работы с приложением и затем считывать. Представление – средства представления документа пользователю в процессе выполнения приложения. Положенная в основу MFC концепция документ/представление позволяет отделить данные от средств, с помощью которых пользователь имеет возможность просмотреть эти данные и манипулировать ими. Объекты-документы ответственны за хранение, загрузку и выгрузку данных, а объекты-представления, которые представляют собой те же окна, позволяют пользователю просматривать данные на экране и редактировать их соответственно логике работы приложения. Объект класса представления содержит указатель на объект класса документа, который используется для доступа к членам-переменным этого класса, где собственно и хранятся данные. Значения терминов книга, раздел, глава, страница, строка и оглавление очевидны и не подлежат объяснению. Определение атрибутов объектов
В классе документа определен открытый атрибут – объект класса CBookClass:
class CBookDoc: public CDocument { public: CBookClass m_Book; };
В класс документа включен открытый член с тем, чтобы не затруднять доступ к нему из объектов классов представления. Определения атрибутов других классов соответствуют классическому объектно-ориентированному подходу, который требует включать в класс закрытые или защищенные члены-переменные и открытые члены-функции считывания и модификации этих переменных. Классы книги, раздела, главы и страницы имеют закрытую член-переменную m_Name класса CString. Т.к. книга имеет древовидную структуру, то классы книги, раздела и главы соответствуют ветвям дерева, а класс страницы – листу этого дерева. Поэтому классы-ветви содержат член-переменную класса коллекции более мелких объектов (книга содержит коллекцию разделов, глава – коллекцию страниц), а страница содержит член-переменную – массив объектов класса CString (строки этой страницы). Классы раздела и главы содержат члены-переменные типа WORD – номера первой и последней страниц, принадлежащих данному разделу или главе. Класс раздела содержит также номера первой и последней глав, принадлежащих этому разделу.
В классе книги определен закрытый атрибут типа WORD, хранящий номер страницы, которая в данный момент времени просматривается пользователем. Кроме того, в классе книги определены члены-указатели на элементы управления CTreeCtrl и CListCtrl, позволяющие осуществлять при чтении книги переход от одной страницы к другой. Для этой же цели в классе страницы определена член-переменная – указатель на элемент дерева – типа HTREEITEM. Для перебора всех страниц книги удобно пользоваться не деревом, а массивом страниц. Поэтому в классе книги определена член-переменная – массив указателей на страницы книги – MFC-класса CPtrArray.
Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|