Как сделать иерархию классов

Обновлено: 07.07.2024

Описание классов данных. Основное меню программы. Добавление и удаление объектов. Вывод устройств хранения в указанном ПК. Устройство хранения, класс ноутбук, класс жёсткий диск, класс персональный компьютер, класс планшет и класс Flash-память.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 30.03.2014
Размер файла 1,8 M

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

“Создание иерархии классов”

Курсовая работа состоит из 3 разделов: состав и структура программы, функции и алгоритмы функций, руководство пользователя. Так же имеются 3 приложения: листинг “h”-файла, листинг “.cpp”-файла и листинг основной программы.

Пояснительная записка к курсовой работе оформлена в текстовом процессоре Microsoft Word 2010. Программа написана в среде Microsoft Visual Studio 2010.

В данной курсовой работе необходимо связать отношением наследования иерархию классов согласно варианту задания. Класс, стоящий во главе иерархии, определить как абстрактный.

Список лит. - 3 назв.

В данной курсовой работе необходимо связать иерархией отношений заданные классы. Класс, находящийся во главе иерархии - это абстрактный класс. Всего дано шесть классов: устройство хранения, класс ноутбук, класс жёсткий диск, класс персональный компьютер, класс планшет, класс Flash-память. В качестве базовых классов выступают классы персона и транспорт. Классы водитель и пассажир будут производными от класса персона, а классы поезд и автомобиль будут производными от класса транспорт. Помимо иерархии классов, будет реализована иерархия объектов, которую можно реализовать с помощью полей классов, представляющих собой статические массивы указателей на соответствующие подчиненные объекты.

Иерархия классов представлена на рисунке 1

Иерархия объектов представлена на рисунке 2

Рисунок 1-Иерархия классов

Рисунок 2-Иерархия объектов

1. СОСТАВ И СТРУКТУРА ПРОГРАММЫ

Данная программа состоит из трех, связанных между собой файлов. В первом файле(h-файл) описаны классы, во втором файле(.cpp) показана их реализация. В третьем-основном файле выполняются необходимые по заданию операции. Основная программа состоит из двенадцати функций: функция добавления устройства хранения, функция добавления персонального компьютера (далее - ПК), функция удаления заданного устройства хранения (далее ЗУ - запоминающее устройство), функция удаления заданного ПК, функция вывода меню, функция вывода перечня ЗУ по заданному ПК, функция вывода перечня ПК с объёмом памяти ЗУ больше заданного, функция вывода перечня ПК указанного вида с ценой, меньше заданной, функция вывода перечня ПК указанного вида с указанной операционной системой (далее - ОС), функция вывода перечня ПК указанного вида с частотой процессора больше заданной.

2. ОБЗОР МЕТОДОВ РЕШЕНИЯ

2.1 Описание классов данных

В данной курсовой работе используется шесть классов, с которыми производится работа программы.

1. Class TDevice - базовый класс для двух других классов. Содержит данные по ЗУ: производитель, модель, назначение, объём памяти, гарантийный срок.

2. Class THard - производный от TDevice класс, который содержит данные по жёсткому диску: объём памяти и марка.

3. Class TFlash - производный от TDevice класс, который содержит данные по устройствам Flash-памяти: объём памяти и марка.

4. Class TPc - базовый класс для двух других классов. Содержит данные по ПК: операционная система, объём памяти, цена, частота процессора. Так же данный класс содержит указатель на массив класса TDevice.

5. Class TNotebook - производный от TPc класс, который содержит данные по ноутбуку: модель и страна-производитель.

6. Class TTablet - производный для TPc класс, который содержит данные по планшету: модель и страна производитель.

2.2 Функция main()

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

Блок-схема функции main() представлена на рисунке 3

Рисунок 3-Блок-схема функции main()

2.3 Функция PrintMenu()

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

Блок-Схема функции PrintMenu() представлена на рисунке 4

Рисунок 4-Блок-схема функции PrintMenu()

2.4 Функция DobDev()

Блок-схема функции DobDev() представлена на рисунке 5

Рисунок 5-Блок-схема функции DobDevice()

2.5 Функция DobPC()

Данная функция вводит в базу данных информацию о ПК. В начале функция предлагает выбор добавляемого, т.е. можно ввести либо данные по ноутбуку, либо данные по планшету. Функция выводит мини-меню с выбором добавляемого объекта.

Блок-схема функции DobPC() представлена на рисунке 6

Рисунок 6-Блок-Схема функции DobPC()

2.6 Функция DelPC()

Данная функция удаляет данные по заданному ПК. Сначала программа проверяет данные на их наличие. Если данных нет, то функция завершается, если данные по ПК есть, то функция предлагает ввести номер того ПК, который мы хотим удалить. Данная функция предусматривает неверный ввод номера удаляемого ПК. Если же номер удовлетворяет условию, то данные с этим номером по заданному ПК автоматически удаляются.

Блок-схема функции DelPC() представлена на рисунке 7

Рисунок 7-Блок-схема функции DelPC()

2.7 Функция DelDev()

Блок-схема функции DelDev() представлена на рисунке 8

2.8 Функция SpisMod()

Данная функция выводит список устройств хранения в указанном ПК. Вначале функция проверяет на наличие данных по ПК и устройствам хранения. Если данных нет, то функция завершает работу. Если данные по устройствам хранения есть, то предлагается ввести номер ПК, по которому выводится список ЗУ. После этого выводится марка ПК и данные по устройствам хранения.

Блок-схема функции SpisMod() представлена на рисунке 9

Рисунок 9-Блок-схема функции SpisMod()

2.9 Функция SpisSystem()

Рисунок 10-Блок-схема функции SpisSystem()

2.10 Функция SpisMemory()

Блок-схема функции SpisMemory() представлена на рисунке 11

Рисунок 11-Блок-схема функции SpisMemory()

2.11 Функция SpisCena ()

Блок-схема функции SpisСena() представлена на рисунке 12

класс данные хранение диск

Рисунок 12-Блок-схема функции SpisCena()

2.12 Функция SpisChastota ()

Блок-схема функции SpisСena() представлена на рисунке 12

Рисунок 12-Блок-схема функции SpisChastota()

3. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

3.1 Основное меню программы

Рисунок 13-Скриншот основного меню программы

3.2 Добавление объектов

3.2 Удаление объектов

3.3 Вывод устройств хранения в указанном ПК

Рисунок 19-Скриншот вывода перечня устройств хранения в указанном ПК

На рисунке 19 показан вывод устройств хранения в указанном ПК. Сначала с клавиатуры вводится необходимый номер ПК, далее выводится список устройств хранения которые мы хотим посмотреть.

3.4 Вывод информации о ПК указанного вида с указанной ОС.

Рисунок 21-Скриншот вывода информации о ПК указанного вида с указанной ОС

На рисунке 21 представлен скриншот вывода информации о ПК указанного вида с указанной ОС. Для вывода информации необходимо ввести ОС.

3.5 Вывод перечня ПК указанного вида с ценой, меньше заданной

Рисунок 22-Скриншот вывода перечня ПК указанного вида с ценой, меньше заданной

На рисунке 22 представлен скриншот вывода перечня ПК указанного вида с ценой, меньше заданной. Для вывода списка необходимо ввести цену, по которой будет выведены данные.

3.5 Вывод перечня ПК с объёмом памяти устройств хранения, больше заданного

Рисунок 23-Скриншот вывода перечня ПК с объёмом памяти устройств хранения, больше заданного

На рисунке 23 представлен скриншот вывода перечня ПК с объёмом памяти устройств хранения, больше заданного. Для вывода списка необходимо ввести объём памяти, по которому будет выведены данные.

3.6 Вывод перечня ПК указанного вида с частотой процессора, больше заданной

Рисунок 23-Скриншот вывода перечня ПК указанного вида с частотой процессора, больше заданной

На рисунке 23 представлен скриншот вывода перечня ПК указанного вида с частотой процессора, больше заданной. Для вывода списка необходимо ввести частоту процессора, по которой будут выведены данные.

Эта программа, создана для удобной обработки. Благодаря разработанному алгоритму мы получили ряд преимуществ. Ряд преимуществ иерархии классов:

-Иерархическое представление системы можно использовать для описания того, как влияют изменения приоритетов на верхних уровнях на приоритеты элементов нижних уровней.

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

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

-Иерархии устойчивы и гибки; они устойчивы в том смысле, что малые изменения вызывают малый эффект, а гибкие в том смысле, что добавления к хорошо структурированной иерархии не разрушают ее характеристик.

1. Лафоре Р. Объектно-ориентированное программирование в С++ / Р. Лафоре - 4-е изд. - Питер.: 2010. - 654 с.

2. Давыдов В.Г. Технологии программирования. С++ / В. Г. Давыдов - Санкт-Петербург: БХВ-Петербург, 2009. - 432 с.

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

Во-первых, вот 2 класса, которые будут помогать нам иллюстрировать важные моменты:

В этом примере класс Child является дочерним, а класс Parent — родительским:


Поскольку Child наследует переменные-члены и методы класса Parent, то вы можете предположить, что члены класса Parent копируются в класс Child, но это не так. Вместо этого рассматривайте Child как класс, который состоит из двух частей: первая — Parent, вторая — Child:


Вы уже видели множество примеров того, что происходит при создании объектов обычного (не дочернего) класса:

Parent — это не дочерний класс, так как он не наследует свойства каких-либо других классов. C++ выделяет память для Parent, затем вызывается конструктор по умолчанию класса Parent для выполнения инициализации.

Теперь рассмотрим, что происходит при создании объектов дочернего класса:

Поэтому, при создании объекта класса Child, сначала создается часть Parent класса Child (с использованием конструктора по умолчанию класса Parent) и после того, как с частью Parent покончено, создается вторая часть Child (с использованием конструктора по умолчанию класса Child). В нашем примере больше нет дочерних классов, поэтому на этом всё и заканчивается.

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

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

Ниже представлен пример создания сложной иерархии обобщенных классов:

Как видите обобщенный класс можно так же наследовать от необобщенного. Структура наследования обобщенных классов из вышеуказанного примера представлена ниже:

Написать программу, в которой создается иерархия классов. Включить полиморфные объекты в связанный список, используя статические компоненты класса. Показать использование виртуальных функций.
Порядок выполнения работы.
1. Определить иерархию классов (в соответствии с вариантом).
2. Определить в классе статическую компоненту - указатель на начало связанного списка объектов и статическую функцию для просмотра списка.
3. Реализовать классы.
4. Написать демонстрационную программу, в которой создаются объекты различных классов и помещаются в список, после чего список просматривается.
5. Сделать соответствующие методы не виртуальными и посмотреть, что будет.
6. Реализовать вариант, когда объект добавляется в список при создании, т.е. в конструкторе

Читайте также: