Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MMM.doc
Скачиваний:
2
Добавлен:
17.11.2018
Размер:
4.9 Mб
Скачать

Задание 5. Классы

Требования к программам:

  1. Необходимо точно выполнять условия задач, при сомнениях консультироваться с преподавателем.

  1. Текст программы должен быть откомментирован.

В заголовке указать:

  • имя автора, группу,

  • формулировку задания.

Имена переменных, функций и проч. должны иметь осмысленные имена. Желательно объявление переменной снабжать комментарием о ее назначении.

  1. Интерфейс программы должен быть достаточно удобен для пользователя.

Программа должна быть снабжена удобным интерфейсом на базе меню.

  1. Программа должна компилироваться без ошибок и предупреждений при всех включенных сообщениях компилятора.

  1. Программы должны быть хорошо протестированы перед сдачей.

  1. Классы, использующие динамическую память, должны содержать как минимум следующие методы:

  • конструктор по умолчанию;

  • конструктор копии;

  • перегруженный оператор присваивания;

  • деструктор;

Варианты:

1. Реализуйте класс «Односвязный список целых чисел» с методами:

  • Конструктор по умолчанию

  • Стандартные методы списка

  • Вывести список на печать

  • Деструктор

На базе этого класса реализовать производный класс «Стек целых чисел» с методами:

  • Поместить (PUSH) элемент в вершину стека

  • Извлечь (POP) элемент из вершины стека

Примечание: Программа должна демонстрировать работу с классом «Односвязный список целых чисел» и с классом «Стек целых чисел».

2. Реализуйте класс «Двусвязный список целых чисел» с методами:

  • Конструктор по умолчанию

  • Стандартные методы списка

  • Вывести список на печать

  • Деструктор

На базе этого класса реализовать производный класс «Очередь» с методами:

  • Добавить элемент в конец очереди

  • Извлечь элемент из начала очереди

Примечание: Программа должна демонстрировать работу с классом «Двусвязный список целых чисел» и с классом «Очередь».

3. Реализуйте класс «Бинарное дерево символов» с методами:

  • Конструктор по умолчанию

  • Включить элемент в дерево

  • Поиск элемент в дереве

  • Вывести элементы дерева на печать

  • Деструктор

Написать демонстрационную программу. Меню программы должно обеспечить проверку всех методов и перегруженных операций.

4. Описать абстрактный класс «Функция на отрезке [a,b]»

единственным метод которого - метод с непустым телом, выдающий значение функции в заданной точке. Само вычисления значения поручить виртуальному методу.

Реализовать производные классы:

1. полиномы 2-й степени одной переменной

2. линейная комбинация тригонометрических функций sin и cos

3. экспонента

4. константную функцию

В производных классах реализовать виртуальный метод – вычисление функции в заданной точке.

Написать демонстрационную программу. Меню программы должно обеспечить проверку всех методов и перегруженных операций.

5. Создать класс «Геометрическая фигура» с полями X, Y (координаты точки привязки).

Методы:

  • Конструктор по умолчанию

  • Конструктор с параметрами X, Y

  • Метод What - Вывод на экран Наименования класса и всех его полей

Реализовать производные классы:

  • Прямоугольник

  • Квадрат

  • Окружность

В производных классах реализовать методы:

  • Конструктор по умолчанию

  • Конструктор - инициализатор

  • Получить структуру – «Точка привязки»

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

6. Создать класс «СТРОКА».

Обязательные поля класса:

  • Указатель на char - хранит адрес динамически выделенной памяти для размещения символов строки;

  • Значение int – хранит длину строки в байтах.

Обязательные методы:

  • Конструктор без параметров

  • Конструктор с параметром С-строка (char *)

  • Конструктор копирования

  • Получение длины строки

  • Очистка строки (сделать строку пустой)

  • Деструктор

Реализовать производный класс «Битовая строка».

Строки данного класса могут содержать только символы `0` или `1`. Если в инициализирующей строке встретятся другие символы, битовая строка заполняется нулями. Содержимое данных строк рассматривается как двоичное число. Отрицательные числа хранятся в дополнительном коде.

В производном классе реализовать:

Обязательные методы:

  • Конструктор без параметров

  • Конструктор с параметром С-строка (char *)

  • Конструктор копирования

  • Деструктор

  • Изменение знака на противоположный (перевод в дополнительный код).

Перегрузить следующие операции:

  • Присваивания (=)

  • Сложения (+)

  • Проверка на равенство (= =)

Примечание: Длина строки результата равна длине большей строки, более короткая строка расширяется влево знаковым разрядом.

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

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