- 1
- 2
- 3
- 4
- . . .
- последняя »
модулей Модуль ClassFile.cpp содержит описание всех используемых в программе классов. А точнее базовый класс памятника и четыре его наследника (здание, квартал, площадь и скульптура), а также класс оболочка, который содержит динамический массив и все функции для работы с массивом памятника (добавление, удаление, сортировка и т.д.) Модуль FunctionFile.cpp содержит различные вспомогательные функции. Это и вывод на экран различных частей таблицы и вывод различных меню, а также выбор имени файла. Модуль main.cpp содержит точку входа в программу, в которой находится оператор switch для выбора необходимых действий.
Файл global.h является связующим звеном, где описаны все стандартные библиотеки и функции из файла FunctionFile.cpp
1.2 Модуль ClassFile.cppВ модуле описаны следующие классы:
− Pamiatnik;
− Zdanie;
− Kvartal;
− Square;
− Skulptura;
− Massiv_Pamiatnikov.
Иерархия классов представлена на рисунке 2. Рисунок 2 - Иерархия классов 1.2.1 Класс Pamiatnik
Класс Pamiatnik является базовым классом для всех памятников. Именно поэтому он содержит все общие поля и все общие методы. Ко всему прочему данный класс считается абстрактным, т.е. нельзя непосредственно создавать экземпляры этого класса. Данный класс предназначен только как шаблон для создания других классов памятника. Однако, несмотря на это, он содержит в себе множество методов, которые могут вызывать наследники.
Класс Pamiatnik содержит следующие поля:
Set_God - Год основания памятника;
Set_Stoimost - Стоимость расходов на содержание памятника;
Set_Name - Название памятника;
Type - Тип памятника. Используется для того, чтобы каждому памятнику присвоить соответствующее значение в данном поле. Значение именно из этого поля будет использоваться каждым классом, когда он будет создавать строковое представление всех своих ключевых полей для сохранения в файл.
prev - указатель на предыдущий памятник в массиве.
next - указатель на следующий памятник в массиве.
Поля prev и next предназначены для построения динамического массива. Принцип динамического массива заключается в том, что все его элементы не обязаны находиться в памяти последовательно друг за другом. Однако все элементы массива должны быть выстроены в определённую последовательность. При такой концепции сам массив должен знать элемент, который является первым, чтобы именно с него начать работу с массивом, а также должен знать последний элемент, для того, чтобы знать, куда добавлять следующий элемент. Таким образом, с помощью полей prev и next каждый памятник точно знает своё место в массиве.
При работе с динамическими массивами, элементами которых являются большие структуры данных, можно очень быстро управлять элементами. Например, если необходимо удалить элемент массива, то достаточно только будет изменить указатель у предыдущего элемента и у следующего элемента, и при этом не образуется пустой ячейки, как это было бы при работе со статическим массивом.
Так как все ключевые поля являются закрытыми, то необходимо в поле public создать методы для записи и чтения данных в/из этих ключевых полей. Методы для записи имеют в своём названии слово Set, а методы для получения значения - Get.
В связи с тем, что в программе необходимо предусмотреть возможность пользователю добавить новый памятник, в том числе и вручную. Поэтому класс Pamiatnik содержит метод Vvod.
- 1
- 2
- 3
- 4
- . . .
- последняя »
Похожие работы
Интересная статья: Быстрое написание курсовой работы