- •Факультет информатики и вычислительной техники
- •Содержание
- •1 Содержание курсовой РаБоТы и ее оформление
- •2 ТеМы курсовых работ
- •3 Задания к курсовым работам
- •Тема 1
- •Тема 3
- •Тема 4
- •Тема 5
- •Тема 6
- •Тема 7
- •Тема 8
- •Тема 9
- •Тема 10
- •Тема 11
- •Тема 12
- •Тема 13
- •Тема 14
- •Тема 15
- •Тема 16
- •Тема 17
- •Тема 18
- •Тема 19
- •Тема 20
- •Тема 21
- •Тема 22
- •Тема 23
- •Тема 24
- •Тема 25
- •4 Общие методические указания
- •5 Стиль записи программ
- •Void poligon::draw() // Заголовок функции пишем с // 3 позиции
- •Void main() // Функция main такая же, как и другие
- •6 Литература
Тема 10
Класс для работы со структурами типа Мультимножество"
1. Для программирования операций с объектами типа "Мульти-множество" создать класс MultiSet. Тип элемента множества представить шаблоном. В отличие от обычного множества мульти-множество может включать в себя идентичные элементы. Для построения класса в качестве базовой структуры рекомендуется использовать одномерный динамический массив.
2. Для создания объектов типа MultiSet, их инициализации и правильного их удаления предусмотреть соответствующие конструкторы и деструктор. Предусмотреть в классе конструктор копирования.
3. Для программирования операций над объектами типа MultiSet выполнить перегрузку следующих символов операций:
- динамическое присваивание, символ "=" ;
- проверка двух мультимножеств на совпадение, символ "==";
- объединение мультимножеств, символ "+" ;
- пересечение мультимножеств, символ "* " ;
- вычитание мультимножеств, символ "-" ;
- ввод мультимножества из файла, символ "<<";
- вывод мультимножества в файл, символ ">>".
4. Предусмотреть следующие функции - члены класса:
void Set::include(type& x) - добавить новый элемент к мультимножеству;
void Set::exclude(type& x) - удалить заданный элемент из мультимножества;
int Set::size() - получить число элементов мульти-множества;
bool Set::empty() - проверка, является ли мультимножество пустым;
int Set::multip(type& x) - возвращает кратность заданного элемента, при отсутствии заданного значения x в мультимножестве возвращает 0.
5. Разработать демонстрационно-тестирующую программу. Выполнить тестирование созданного класса.
Тема 11
Класс для работы со структурами типа "Словарь"
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. Разработать демонстрационно-тестирующую программу. Выполнить тестирование созданного класса.