В модуле description.cpp описаны все классы и методы, которые использованы в данном программном комплексе. Базовым классом будет являться класс city, и наследуемые от него классы: Capital,Region,District,Village.
Так же в модуле будет описан класс variety, который будет хранить указатели на объекты класса. На рисунке 2 будет изображена иерархия классов, которые присутствуют в программе.
Рисунок 2 – Иерархия классов
В модуле описаны методы программного комплекса, такие как
- openFile – открыть файл;
- saveFile – сохранить файл;
- ShowAll – показать все введенные/открытые элементы массива
- addItem – нахождение элемента в массиве по названию телевизионного шоу;
- deleteItemId – удаление элемента в массиве по названию телевизионного шоу;
- findItem – нахождение элемента;
- sortMas – сортировка масссива;
- groupResult – групповой результат.
Также описана функция меню menu.
Класс city является базовым классом, для всех городов страны. В себя он включает методы, которые вызывают наследники.
В классе city находятся следующие поля: name – отвечающий за название города, population – количество жителей, attraction – главные достопримечательности города.
Так же в классе описаны конструкторы, а так же сеттеры и геттеры данных: setname, setrating, setduration, getname, getrating, getduration. Используются в классе два виртуальных метода, это getGenre и getNumberGenre
В каждом классе элементы множества данных содержат три конструктора: конструктор без параметров, который очищает переменные объекта класса; конструктор с параметром в виде строки значений, разделенных точкой с запятой; конструктор с тремя параметрами-значениями.
Capital ( ) : city ( ) {}
Capital ( char* tmpStr ): city ( tmpStr ) {}
Capital ( float p, char* n, char* a ) : city ( p, n, a ) {}
Так же через переопределенный геттер getLevel мы получаем административный уровень в виде строки, а через переопределенный геттер getIntLevel получаем административный уровень в виде целого числа.
char* getLevel ( ){ return "Capital"; }
int getIntLevel ( ) { return 1; }
Данные классы весьма похожи на класс Capital, только используются индивидуальные конструкторы и переопределенные виртуальные функции, которые возвращают свои строковые и символьные значения.
В данном классе-массиве будут храниться все данные. В классе содержаться все методы для работы с массивами строк. Это функции: открытия CSV файла, сохранение, удаление, добавление нового элемента, отображение данных всего массива, сортировка, поиск элемента, отображение групповых результатов по городам города. В классе так же храниться массив указателей на объекты класса и счетчик.
Данный модуль является связующим между всеми модулями программы. Подключаются стандартные библиотеки.
Задается директива #define NUMBER 100, в которой храниться максимальный размер массива, а так же задается стандартная область действия имен.
Вызываются функции menu, showHeadTable (шапка таблицы), showSeparator (разделитель между элементами таблицы) и showEndTable (конец таблицы).
Для начала откроем файл kursa4.exe. Отображается меню для работы с элементами массива (рисунок 3). Каждый пункт меню отдельная строчка, отдельная цифра, при выборе которой будут выполняться соответствующие действия. Пункты меню:
1. Открытие файла;
2. Сохранение файла;
3. Просмотр всех элементов;
4. Добавление элементов из существующего файла;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.