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

КонтролЬная работа № 1

Тема: Реализация контейнерного класса динамической структуры данных. Инкапсуляция. Перегрузка функций и операторов.

Цель работы: Изучить основы программирования на языке С++. Получить практические навыки составления программ на С++, описания классов, перегрузки операторов и функций.

Задание. Реализовать и протестировать контейнерный класс динамической структуры данных, содержащей строки. Класс должен иметь интерфейс АТД для добавления, удаления и поиска элементов, а также содержать следующие функции-члены:

  1. перегруженные конструкторы:

    • по умолчанию;

    • копирования;

    • с параметрами по умолчанию.

  2. деструктор;

  3. перегруженные операции:

    • добавление элемента +;

    • удаление элемента -;

    • индексирование [];

    • копирование =;

    • отношение равенства ==;

    • отношение порядка >;

    • вывод значения контейнера в стандартный поток вывода <<;

  1. объявление и реализация дружественной функции.

Контрольные вопросы:

  • абстракция;

  • АТД;

  • инкапсуляция;

  • методы доступа к членам класса;

  • дружественные функции и классы;

  • перегрузка функций;

  • перегрузка унарных и бинарных операторов.

Структура и содержание отчета

Перечень обязательных элементов отчета.

  1. Титульный лист.

  2. Лист задания: тема, цель, номер варианта, задание.

  3. Выполнение задания.

  4. Листинг программы / программных модулей на С++ с комментариями.

  5. Выводы.

Варианты заданий

Номер варианта выбирается по номеру по журналу.

Варианты заданий приведены в списке ниже.

  1. Массив.

  2. Стек.

  3. Дек.

  4. Очередь.

  5. Приоритетная очередь.

  6. Односвязный список.

  7. Двусвязный список.

  8. Хэш-таблица.

  9. Множество.

  10. Мультимножество.

  11. Бинарное дерево.

  12. Граф.

  13. Словарь ассоциаций.

Методические указания к выполнению контрольной работы

1 Понятие абстракции

Существенным понятием объектно-ориентированного программирования является абстракция. Ее смысл состоит в том, что абстракция позволяет смотреть на объект, не заставляя себя разобраться в той совокупности сложных частей, из которых состоит данный объект. Через абстракцию человек управляет сложностью [1-3].

Например, люди не представляют себе автомобиль как набор десятков тысяч индивидуальных частей (деталей). В их воображении автомобиль - хорошо определенный объект со своим собственным уникальным поведением. Эта абстракция позволяет людям использовать автомобиль, не задумываясь над сложностью деталей, из которых он состоит.

Мощным способом управления абстракцией является применение иерархических классификаций. Они позволяют расслоить семантику сложных систем, разбивая их на более управляемые части. Иерархические абстракции сложных систем можно также применить и к компьютерным программам. Данные из традиционной программы, ориентированной на процесс, могут быть трансформированы, путем абстракции в компоненты ее объектов. Последовательность шагов алгоритмического процесса может стать набором сообщений между этими объектами. Таким образом, каждый из этих объектов описывает свое собственное уникальное поведение. Вы можете трактовать эти объекты как конкретные сущности, которые откликаются на сообщения, говорящие им, что нужно делать.