Класс для работы со структурами типа "Словарь"
Класс для работы со структурами типа "Словарь"
1. Создать класс Map для работы со структурами типа "Словарь". Такого рода структуру называют еще ассоциативный массив или отображение. Элемент словаря включает два компонента: ключ и значение. Значение ключа должно быть уникальным в пределах данного словаря. Порядок записи элементов словаря автоматически упорядочивается по значениям ключей. Типы, используемые для ключа и значения, должны быть представлены шаблоном. Структуры типа "Словарь" широко используются при построении ассоциативных баз данных.
2. Для создания объектов типа Map, их инициализации и правильного их удаления предусмотреть соответствующие конструкторы и деструкто¬р. Предусмотреть в классе конструктор копирования.
3. Для программирования операций над объектами типа Map выполнить перегрузку следующих символов операций:
- динамическое присваивание, символ "=" ;
- проверка того, являются ли два словаря одинаковыми, символ "==";
- объеднение двух словарей в один, символ "+" ;
- операция доступа к элементу словаря по ключу, символ "[..]" ;
- ввод словаря из файла, символ "
- вывод словаря в файл, символ ">>".
4. Предусмотреть следующие функции - члены класса:
int Map::size() - количество значений, хранящихся в словаре;
bool Map::empty() - проверка, является ли словарб пустым;
void Map::include(eltype x) - добавить новый элемент x в словарь;
eltype Map::exclude(keytype q) - извлечь элемент словаря с заданным ключом q;
valtype Map::find(keytype q) - найти значение, которое соответствует заданному
ключу q;
5. Разработать демонстрационно-тестирующую программу. Выполнить тестирование созданного класса.
Предлагаемые задание рассчитаны на применение языка программирования C++ и интегрированной среды, позволяющей создавать консольные приложения и поддерживающие стандарт ANSI/ISO C++ (например, пакеты Borland C++ или Microsoft Visual C++). Для реализации разработанных проектов и построения эффективных программных средств рекомендуется использовать проблемно-ориентированные библиотеки и программные компоненты syst, dalmat, algraph.h, vmath
Методику тестирования разработанных программных средств, также как и наборы данных для тестирования студент выбирает самостоятельно. Тестовые расчеты должны убедительно свидетельствовать о том, что разработанные программные компоненты работают должным образом и имеют достаточно высокую эффективность