Перейти к основному содержанию
EDU-MMCS
Вы используете гостевой доступ (Вход)

4.4 ООП в С++ (с/к)

  1. В начало
  2. Курсы
  3. Осенний семестр
  4. Прикладная математика и информатика
  5. ООП в С++
  6. Модуль 1. Полиморфизм. Наследование
  7. Индивидуальное задание 1.

Индивидуальное задание 1.

Требуемые условия завершения
Открыто с: среда, 8 октября 2014, 15:00
Срок сдачи: воскресенье, 19 октября 2014, 23:55

Реализовать класс, включая конструктор по умолчанию, конструктор копии, операцию присваивания и другие перегруженные операции.

1.       Двусвязный список с двунаправленным итератором.

Функции-члены списка и внешние функции: те же, что и в варианте 1, кроме cut и divide. Функции-члены итератора списка: те же, что
и в варианте 1, а также : bol – состояние «начало списка»; operator-- – префиксный и постфиксный.

2.       Односвязный список с подсчетом ссылок.

Функции-члены и внешние функции: те же, что и в варианте 1. Отличие: в узле списка необходимо хранить не значение, а указатель на объект, содержащий значение и счетчик ссылок (в скольких списках содержится).

3.       Множество на базе списка с двунаправленным итератором.

Функции-члены множества: те же, что и в варианте 3; добавить
foreach – применение функции, передаваемой в качестве параметра,
к элементам множества. Функции-члены итератора множества: конструктор; eos – состояние «конец множества»; bos – состояние «начало множества»; operator++ – префиксный и постфиксный; operator-- – префиксный и постфиксный; operator* – ссылка на текущий элемент
во множестве.

4.       Множество на базе бинарного дерева с двунаправленным итератором.

Функции-члены множества и его итератора: те же, что и в варианте 4. При сложностях в реализации сделать операцию удаления элемента
из множества простым перебором элементов с перезаписью в другое множество.

5.       Очередь с приоритетом с подсчетом ссылок.

Элементы очереди должны иметь перегруженный operator<, сравнивающий приоритеты. При вставке элемента в конец очереди он продвигается вперед до элемента с более высоким приоритетом. Элементы могут находиться в нескольких очередях, поэтому должны иметь счетчик очередей, в которых стоят. В очереди необходимо хранить не сами элементы,
а указатели на них.

Функции-члены очереди: конструктор по умолчанию; деструктор; конструктор копии; operator=; пуста ли очередь; количество объектов
в очереди; operator<< и operator+= – добавление элемента в очередь;
operator>> – взятие элемента из начала очереди; operator+= – добавление очереди к очереди.

Внешние функции: operator==; operator!=; operator+ – слияние очередей; operator<< – вывод в поток; operator>> – ввод
из потока (признак конца ввода – ввод некоторого значения).

6.       Матрица и вектор.

Функции-члены вектора: конструктор; деструктор; конструктор копии; operator =; возвращение размера; operator[]; унарные операции operator+, operator-; все возможные комбинации operator+=,
operator-=, operator*= – и т. д.; operator() с двумя параметрами для выделения подвектора.

Функции-члены матрицы: конструктор; деструктор; конструктор копии; operator=; конструктор с одним параметром, преобразующий число c в матрицу cE; возвращение размеров; operator[] – возвращение строки матрицы в виде вектора; operator+, operator- – бинарные (с контролем размерности); operator* – умножение матрицы на вектор (с контролем размерности); operator+=, operator-=; operator*= – все возможные комбинации; operator() с четырьмя параметрами для выделения подматрицы; swap(i,j) – перестановка двух строк.

Внешние функции: транспонирование матрицы; вычисление определителя матрицы; operator==, operator!= для матрицы и вектора;
operator+, operator- – бинарные (с контролем размерности) для матрицы и вектора; operator* – умножение вектора на число; operator* – умножение матрицы на число; operator* – скалярное произведение векторов; operator* – умножение матрицы на матрицу (с контролем размерности); operator<< – вывод в поток для матрицы и вектора.

7.       Разреженный массив на базе списка.

Функции-члены массива: конструктор; деструктор; конструктор копии; operator=; унарные операции operator+, operator-;
operator* – умножение каждого элемента на число; operator+=,
operator-=, operator*= – все возможные комбинации.

Операция индексирования operator[], если такого элемента
в массиве нет и operator[] – в правой части операции присваивания,
то возвращать 0 (точнее, значение конструктора по умолчанию для данного типа). Если такого элемента в массиве нет и operator[] – в левой части операции присваивания, то вставлять элемент в список. Внешние функции: operator==, operator!=; бинарные operator+, operator-.

8.       Многочлен на базе списка.

Функции-члены многочлена: конструктор; деструктор; конструктор копии; operator =; operator[] (см. комментарий к operator[] для разреженного массива); унарные operator+, operator-; все возможные комбинации operator+=, operator-=, operator*=; operator() – вычисление многочлена в точке.

Внешние функции: operator==; operator!=; operator+,
operator-, operator*– бинарные; operator* – умножение на число; operator<< – вывод в поток; operator>> – ввод из потока.

9.       Ассоциативный массив на базе списка с итератором.

В ассоциативном массиве в качестве ключа использовать строку.

Функции-члены массива: конструктор по умолчанию; деструктор; конструктор копии; operator=; operator[]; operator<<; operator+= – добавление элемента; operator+= – добавление в конец списка другого списка; find – поиск значения по ключу и возвращение итератора на него; remove – удаление элемента по ключу.

Функции-члены итератора массива: конструктор; eoa – состояние «конец массива»; operator++ – префиксный и постфиксный; operator* – ссылка на текущий элемент в массиве.

Внешние функции: operator==; operator!=; operator+ – соединение двух массивов в третий; operator<< – вывод в поток;
operator>> – ввод из потока (признак конца ввода – ввод некоторого значения); foreach – применение функции, передаваемой в качестве параметра, к диапазону значений, задаваемому парой итераторов; find – поиск значения в диапазоне, задаваемом парой итераторов, и возвращение итератора на него.

10.  Бинарное дерево поиска с итераторами.

Функции-члены дерева: конструктор по умолчанию, деструктор, конструктор копии; operator=; определение глубины дерева; operator<< и operator+= – вставка элемента в дерево; remove – удаление элемента из дерева.

Функции-члены итераторов дерева (три итератора для трех направлений обхода): конструктор; eot – состояние «конец дерева»; operator++ и operator-- – префиксные и постфиксные; operator* – ссылка на текущий элемент в дереве.

Внешние функции: operator==, operator!=; operator+ – объединение деревьев; operator<< – вывод в поток (с одним из итераторов).

11.  Дерево с подсчетом ссылок.

Каждый элемент хранит список элементов следующего уровня,
на которые он ссылается. Элементы могут находиться в нескольких деревьях, поэтому должны иметь счетчик своих владельцев. В дереве необходимо хранить не сами элементы, а указатели на них.

Функции-члены: конструктор по умолчанию; деструктор; конструктор копии; operator=; operator<< и insert – вставка поддерева или элемента в данное поддерево; remove – удаление поддерева или элемента; find – поиск элемента в дереве (поддереве); foreach – применение функции, передаваемой в качестве параметра, ко всем элементам дерева.

Внешние функции: operator==; operator!=; operator<< – вывод в поток.

◄ Лаб.№2 Класс Список и Итератор для Списка
Лаб.№3 Задание на проектирование и реализацию объектов. ►
Пропустить Навигация
Навигация
  • В начало

    • Страницы сайта

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

      • Осенний семестр

        • Прикладная математика и информатика

          • P2K

          • GraphAlgo(BI)

          • ИИ (4 курс)

          • ЧМ-2022 (ПМИ-3 4 и 5)

          • GrAlg

          • МО (бак)

          • ANSYS

          • Численные методы -1,3

          • МСС 2022

          • УМФ III (1-2)

          • VPD

          • ООП в С++

            • Общее

            • Модуль 1. Полиморфизм. Наследование

              • ЗаданиеЛаб.№1. Класс Динамический массив

              • ФайлИтераторы

              • ЗаданиеЛаб.№2 Класс Список и Итератор для Списка

              • ЗаданиеИндивидуальное задание 1.

              • ЗаданиеЛаб.№3 Задание на проектирование и реализацию объе...

              • ФайлUML

              • ГиперссылкаDia Diagram Editor

              • ГиперссылкаUMLet 13.1 Free UML Tool for Fast UML Diagrams

            • Модуль 2. Обобщенное программирование

            • Модуль 3. Многопоточность

            • Модуль 4. Паттерны проектирования

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Весенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Воскресная компьютерная школа

        • Пользователь компьютера плюс

        • Пользователь прикладных программ

        • Программирование I ступень

        • Программирование II ступень

        • Программирование III ступень

        • Архив

      • Воскресная математическая школа

        • Открытое тестирование РНОМЦ и мехмата ЮФУ - 2025

        • Олимпиадная математическая школа

        • Повышение квалификации

        • Доступная математика

        • Лаборатория математического онлайн-образования мех...

        • Осенняя универсиада

        • Научно-практическая конференция

        • ВМШ

          • ВМШ - 24

        • Летняя олимпиадная математическая школа РНОМЦ и ме...

      • Государственная итоговая аттестация

      • Дополнительное образование

      • Олимпиады

      • Видеолекции

      • Разное

      • Архив курсов

      • Заочная школа мехмата ЮФУ

Служба поддержки сайта
Вы используете гостевой доступ (Вход)
ООП в С++
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика