![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Компьютеры, Программирование
Программирование, Базы данных
Моделирование структуры книги |
ОглавлениеВведение 3 Анализ и описание предметной области проекта 4 Разработка объектной модели 5 Определение объектов и классов 5 Подготовка словаря данных 5 Определение атрибутов объектов 6 Определение методов классов 7 Упрощение классов при использовании наследования и графическое изображение объектной модели 7 Реализация объектной модели на языке программирования C 9 Реализация класса книги 9 Порождение объектов 19 Вызов операций 20 Использование наследования 21 Реализация зависимостей 22 Анализ полученных результатов и выводы 23 Снимок экрана программы 24 Литература 25 Введение Темой данной курсовой работы является изучение объектно-ориентированных возможностей языка C (номер варианта 34). Предметная область курсовой работы согласно варианту – моделирование структуры книги. В методическом приложении были приведены особенности предметной области, рассмотренной в данной работе, – в книге выделяются компоненты: страница, глава, раздел. По условию задачи необходимо реализовать объектную модель книги и написать программу с использованием класса C , который отражает структуру книги и наглядно демонстрирует эффективность использования объектно-ориентированной технологии разработки программ. Для повышения эффективности создания программных комплексов и сокращения времени, отводимого на проектирование и реализацию конечного продукта, фирма Microsof рекомендует использовать разработанную ею библиотеку классов MFC (Microsof Fou da io Classes), поставляемую в составе среды разработки программ Microsof Visual C 6. Поэтому приложение, созданное в ходе написания данной курсовой работы, является приложением, использующем библиотеку MFC, и разработано в визуальной среде Microsof Visual C 6. Предназначение данного приложения – наглядное представление в визуальной форме структуры книги. Анализ и описание предметной области проекта Предметная область данной курсовой работы была выбрана в методическом приложении: моделирование структуры книги (вариант №34). Книга содержит текстовую информацию (в простейшем случае) и имеет древовидную структуру – книга состоит из нескольких разделов, раздел состоит из нескольких глав, глава, в свою очередь, состоит из страниц. Особый компонент книги, облегчающий ее использование, – оглавление, имеющее также древовидную структуру. Недостаток бумажной книги – необходимость часто открывать страницы, содержащие оглавление, для определения номеров нужных страниц, далее необходимо осуществлять поиск этих страниц по известным номерам, на что снова уходит некоторое время. В электронных книгах (например, созданных для просмотра с помощью программы Adobe Acroba Reader) оглавление всегда находится перед глазами читателя и переход на нужную страницу осуществляется простым щелчком мыши по элементу, соответствующему некоторой странице. Кроме того, в таких оглавлениях показываются все страницы, а не только первые страницы глав, что также упрощает навигацию по книге. И в бумажных, и в электронных книгах всегда присутствует возможность перевернуть одну страницу вперед или назад. Для упрощения задачи и осуществления совместимости с книгами, созданными для просмотра на ПК, ориентированных на текстовые операционные системы (типа DOS), страницу мы будем рассматривать как объект, содержащий исключительно текстовую информацию, отображаемую единым шрифтом и не содержащую никакого форматирования.
Таким образом, можно представить страницу как массив с константным количеством расположенных вертикально сверху вниз горизонтальных строк, содержащих константное количество символов (в случае использования немоноширинных шрифтов строки имеют постоянную длину, выраженную в физических единицах: сантиметрах, дюймах, пикселях и т.п.). Разработка объектной моделиОпределение объектов и классов Согласно модели приложения, используемой библиотекой MFC, любое SDI-приложение должно иметь определения следующих классов: класс приложения, порожденный от CWi App, класс окна, порожденный от CFrameW d, класс документа, порожденный от CDocume , и класс представления, порожденный от CView. Т.к. приложение для просмотра книг выполнено в стиле “Explorer”, то также определен класс представления оглавления книги, порожденный от C reeView. Кроме того, класс представления страницы книги порожден не непосредственно от класса CView, а от наследуемого от CView класса – класса CLis View. Т.е. страница книги имеет представление в виде списка ее строк. Класс, отражающий структуру книги, имеет название CBookClass. Определены классы коллекций разделов, глав и страниц – класс CRazdels, класс CGlavas и класс CPages соответственно; а также классы собственно раздела, главы и страницы – класс CRazdel, класс CGlava и класс CPage соответственно. Подготовка словаря данных Приложение – глобальный объект класса приложения, используемый для согласования работы объектов других стандартных классов MFC и для разрешения ссылок внутри одних объектов на другие объекты. Окно приложения – объект визуального представления приложения, организовывающий взаимное расположение визуальных компонентов программы на экране и реализующий стандартный интерфейс взаимодействия пользователя с программой. Документ – информация, которую пользователь может сохранять в процессе работы с приложением и затем считывать. Представление – средства представления документа пользователю в процессе выполнения приложения. Положенная в основу MFC концепция документ/представление позволяет отделить данные от средств, с помощью которых пользователь имеет возможность просмотреть эти данные и манипулировать ими. Объекты-документы ответственны за хранение, загрузку и выгрузку данных, а объекты-представления, которые представляют собой те же окна, позволяют пользователю просматривать данные на экране и редактировать их соответственно логике работы приложения. Объект класса представления содержит указатель на объект класса документа, который используется для доступа к членам-переменным этого класса, где собственно и хранятся данные. Значения терминов книга, раздел, глава, страница, строка и оглавление очевидны и не подлежат объяснению. Определение атрибутов объектов В классе документа определен открытый атрибут – объект класса CBookClass: class CBookDoc : public CDocume { public: CBookClass m Book; }; В класс документа включен открытый член с тем, чтобы не затруднять доступ к нему из объектов классов представления. Определения атрибутов других классов соответствуют классическому объектно-ориентированному подходу, который требует включать в класс закрытые или защищенные члены-переменные и открытые члены-функции считывания и модификации этих переменных.
Классы книги, раздела, главы и страницы имеют закрытую член-переменную m ame класса CS ri g. Т.к. книга имеет древовидную структуру, то классы книги, раздела и главы соответствуют ветвям дерева, а класс страницы – листу этого дерева. Поэтому классы-ветви содержат член-переменную класса коллекции более мелких объектов (книга содержит коллекцию разделов, глава – коллекцию страниц), а страница содержит член-переменную – массив объектов класса CS ri g (строки этой страницы). Классы раздела и главы содержат члены-переменные типа WORD – номера первой и последней страниц, принадлежащих данному разделу или главе. Класс раздела содержит также номера первой и последней глав, принадлежащих этому разделу. В классе книги определен закрытый атрибут типа WORD, хранящий номер страницы, которая в данный момент времени просматривается пользователем. Кроме того, в классе книги определены члены-указатели на элементы управления C reeC rl и CLis C rl, позволяющие осуществлять при чтении книги переход от одной страницы к другой. Для этой же цели в классе страницы определена член-переменная – указатель на элемент дерева – типа H REEI EM. Для перебора всех страниц книги удобно пользоваться не деревом, а массивом страниц. Поэтому в классе книги определена член-переменная – массив указателей на страницы книги – MFC-класса CP rArray. Определение методов классов Помимо открытых членов-функций, осуществляющих чтение и модификацию закрытых членов-переменных, в классах, используемых в программе, определены и другие члены-функции. В классе книги определены открытые члены-функции, осуществляющие переход при чтении книги к предыдущей и последующей страницам. Кроме того, в этом классе определена закрытая член-функция Re ewC rls(), которая вызывается вышеупомянутыми функциями при переходе к другой странице. Данная функция вызывает глобальные функции Re ew ree() и Re ewLis (), которые обновляют визуальное содержание представлений оглавления и страницы соответственно. Классы коллекций разделов, глав и страниц (CRazdels, CGlavas и CPages) имеют открытые члены-функции Dele eRazdels(), Dele eGlavas() и Dele ePages() соответственно. Данные члены-функции осуществляют освобождение памяти, выделенной под хранение книги, при открытии другой книги или завершении работы программы. В классе книги перегружены конструктор и деструктор по умолчанию. Конструктор обнуляет номер текущей страницы для того, чтобы при открытии новой книги автоматически отображалась первая страница. Деструктор запускает механизм освобождения памяти. Упрощение классов при использовании наследования и графическое изображение объектной модели Объектно-ориентированный подход в программировании имеет одну очень привлекательную черту – возможность повторного использования уже разработанного кода. Во-первых, можно использовать классы, созданные другими разработчиками, не заботясь о деталях реализации методов внутри класса. Примером могут служить сотни классов из библиотеки MFC. Но более существенные преимущества дает повторное использование кода, реализуемое через механизм наследования. Класс, использующий код другого класса, называется производным или подклассом.
Отметим также, что в основу указанного метода должна быть положена общая модель структуры государственной службы, содержащая технологическую, функциональную и системообразующую части. Такая общая модель должна быть разработана для каждой структуры государственной службы и для государственной службы в целом. Метод системной философии дает возможность практического осуществления моделирования структур государственной службы в данной постановке. Рассмотрим, в дополнение к уже рассмотренным в предыдущих разделах моделям системной технологии государственного управления (в т.ч. системной машинизации, технологизации и индустриализации, раздел 1.1), возможности применения принципов пропорциональности, ритмичности, непрерывности и параллельности к развитию структур государственного управления. Эти принципы, предложенные в работе Синягова А.А. «Социально-экономические аспекты развития новой техники» (М.: Мысль, 1982, 281 с.), в [24] описаны с позиций метода системной философии. Эти принципы организации производства можно интерпретировать для моделей развития государственных управленческих систем следующим образом
2. Синтез оптимальных уравнений
3. Моделирование систем радиосвязи и сетей радиовещания
4. Классификация структур сетей ЭВМ
5. Принципы структуризации и проектирования сетей Ethernet
9. Моделирование систем и сетей связи на GPSS
10. Моделирование распределения потенциала в МДП-структуре
11. Структура и основные проблемы книги Самуэльсона "Экономикс"
12. Структура рабочей сети Internet
13. Моделирование распределения потенциала в МДП-структуре
15. Структура и содержание книги Д. Рикардо Начала политической экономии и налогового обложения
17. Оптимизация структуры локальной вычислительной сети вуза
18. Синтез комбинацонных схем и конечных автоматов, сети Петри
20. Структура рабочей сети Internet
21. Технические решения построения городской операторской сети на базе технологии Optical Ethernet
25. Моделирование компьютерных сетей
26. Основы организации локальных компьютерных сетей на основе технологии Ethernet
27. Структура, принципы функционирования и технологии глобальной информационной сети
28. Измерения параметров сигнала. Структура оптимального измерителя
29. Формування оптимальної структури маркетингових каналів
30. Совершенствование деятельности сети книжных магазинов "ТОП-книга"
31. Синтез наноразмерных структур металлов электроразрядным методом
32. Состав, структура и синтез ионообменных смол
34. Структура и алгоритмы работы спутниковых радионавигационных систем
35. Эволюция, образование и структура Вселенной
36. Синтез белка
37. Структура и состояние водоснабжения и водосброса, подземных вод и артезианских скважин города Киева
41. Минеральный состав, текстуры и структуры руд.
42. Государственный аппарат и его структура
43. Правовые аспекты применения сети "Интернет" в России
44. Социально-экономическая структура Верхнеудинска в феодальный период (середина XVII в.- 1862 год)
45. Структура государственных органов США по Конституции 1787 года
46. Двухпалатная структура Федерального Собрания
48. Понятие и структура компетенции местного самоуправления
49. Структура налоговых органов РФ права, обязанности и функции
50. Структура налоговых органов Российской Федерации
51. Цели, задачи и структура Федерального закона № 122-ФЗ
53. Структура правоотношения. Классификация правоотношений: критерии и виды
57. Аппарат произведения печати. Элементы книги
58. Тематика и типы древнерусских книг
59. Книга как основное средство документной коммуникации
60. Виктор Суворов: критические замечания по книгам "Ледокол" и "День "М"
61. Значение текста в художественном образе древнерусской рукописной книги конца XIV – начала XV века
62. Загальна структура мовної системи
63. Проблематика и структура пьесы Б. Шоу "Пигмалион"
64. Трансформация жанровой структуры литературы Древнего Египта
66. Быть или не быть книге (интернет против книг)
67. Реферат перевода с английского языка из книги “A History of England” by Keith Feiling
68. Реферат по книге Фернана Броделя
69. Иван IV Грозный. Сравнительная характеристика по книгам В.Кобрина и К.Валишевского
73. Основные компоненты систем управления документооборотом. Фрейм: его структура и понятие
75. Организация корпоративной компьютерной сети в предприятии
76. Опыт и перспективы использования сети Интернет в коммерческих целях
78. Организация доступа в Internet по существующим сетям кабельного телевидения
82. Локальные вычислительные сети. Операционная система NetWare фирмы Novell
83. Локальные и глобальные сети. Электронная почта
89. Экспертная система по проектированию локальной сети ("NET Совет")
92. Проектирование локальной вычислительной сети
93. Кабели для компьютерных сетей
94. Глобальные гипертекстовые структуры: WWW
95. Разработка локальной вычислительной сети
96. Отчёт по производственной практике "Локальные сети"
97. Быть или не быть книге (интернет против книг)
98. Компьютерные сети Информационных технологий
99. Сетевой уровень построения сетей. Адресация в IP сетях. Протокол IP