Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа Рус ООП.doc
Скачиваний:
6
Добавлен:
17.08.2019
Размер:
190.98 Кб
Скачать

Тема 10

Класс для работы со структурами типа Мультимножество"

1. Для программирования операций с объектами типа "Мульти-множество" создать класс MultiSet. Тип элемента множества представить шаблоном. В отличие от обычного множества мульти-множество может включать в себя идентичные элементы. Для построения класса в качестве базовой структуры рекомендуется использовать одномерный динамический массив.

2. Для создания объектов типа MultiSet, их инициализации и правильного их удаления предусмотреть соответствующие конструкторы и деструкто­р. Предусмотреть в классе конструктор копирования.

3. Для программирования операций над объектами типа MultiSet выполнить перегрузку следующих символов операций:

- динамическое присваивание, символ "=" ;

- проверка двух мультимножеств на совпадение, символ "==";

- объединение мультимножеств, символ "+" ;

- пересечение мультимножеств, символ "* " ;

- вычитание мультимножеств, символ "-" ;

- ввод мультимножества из файла, символ "<<";

- вывод мультимножества в файл, символ ">>".

4. Предусмотреть следующие функции - члены класса:

  1. void Set::include(type& x) - добавить новый элемент к мультимножеству;

  2. void Set::exclude(type& x) - удалить заданный элемент из мультимножества;

  3. int Set::size() - получить число элементов мульти-множества;

  4. bool Set::empty() - проверка, является ли мультимножество пустым;

int Set::multip(type& x) - возвращает кратность заданного элемента, при отсутствии заданного значения x в мультимножестве возвращает 0.

5. Разработать демонстрационно-тестирующую программу. Выполнить тестирование созданного класса.

Тема 11

Класс для работы со структурами типа "Словарь"

1. Создать класс Map для работы со структурами типа "Словарь". Такого рода структуру называют еще ассоциативный массив или отображение. Элемент словаря включает два компонента: ключ и значение. Значение ключа должно быть уникальным в пределах данного словаря. Порядок записи элементов словаря автоматически упорядочивается по значениям ключей. Типы, используемые для ключа и значения, должны быть представлены шаблоном. Структуры типа "Словарь" широко используются при построении ассоциативных баз данных.

2. Для создания объектов типа Map, их инициализации и правильного их удаления предусмотреть соответствующие конструкторы и деструкто­р. Предусмотреть в классе конструктор копирования.

3. Для программирования операций над объектами типа Map выполнить перегрузку следующих символов операций:

- динамическое присваивание, символ "=" ;

- проверка того, являются ли два словаря одинаковыми, символ "==";

- объеднение двух словарей в один, символ "+" ;

- операция доступа к элементу словаря по ключу, символ "[..]" ;

- ввод словаря из файла, символ "<<";

- вывод словаря в файл, символ ">>".

4. Предусмотреть следующие функции - члены класса:

  1. int Map::size() - количество значений, хранящихся в словаре;

  2. bool Map::empty() - проверка, является ли словарб пустым;

  3. void Map::include(eltype x) - добавить новый элемент x в словарь;

  4. eltype Map::exclude(keytype q) - извлечь элемент словаря с заданным ключом q;

valtype Map::find(keytype q) - найти значение, которое соответствует заданному ключу q;

5. Разработать демонстрационно-тестирующую программу. Выполнить тестирование созданного класса.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]