Помогите пожалуйста написать программу! Честно, в программировании не соображаю! Вся надежда на вас! Умоляю!
Лабораторная работа 6. Вариант 7.
Описать базовый класс СТРОКА.
Обязательные члены класса:
указатель на char - хранит адрес динамически выделенной памяти
для размещения символов строки;
значение типа int - хранит длину строки в байтах.
Обязательные методы должны выполнять следующие действия:
конструктор без параметров;
конструктор, принимающий в качестве параметра
Си-строку (заканчивается нулевым байтом);
конструктор, принимающий в качестве параметра символ (char).
конструктор копирования;
деструктор.
очистка строки (сделать строку пустой);
Производный от СТРОКА класс СТРОКА_ИДЕНТИФИКАТОР
Строки данного класса строятся по правилам записи идентификаторов
в СИ, и могут включать в себя только те символы, которые могут входить
в состав Си-идентификаторов. Если исходные данные противоречат правилам
записи идентификатора, то создается пустая СТРОКА_ИДЕНТИФИКАТОР.
Обязательные методы:
конструктор без параметров;
конструктор, принимающий в качестве параметра Си-строку
(заканчивается нулевым байтом);
конструктор, принимающий в качестве параметра символ (char).
конструктор копирования;
деструктор.
поиск первого вхождения символа в строку;
Переопределить следующие операции:
присваивание (=);
сложение (+) - операция конкатенации строк;
индексное выражение [];
Производный от СТРОКА класс КОМЛЕКСНОЕ_ЧИСЛО.
Строки данного класса состоят из двух полей, разделенных символом i.
Первое поле задает значение реальной части числа, а второе - мнимой.
Каждое из полей может содержать только символы десятичных
цифр и символы - и +, задающие знак числа. Символы - или + могут
находиться только в первой позиции числа, причем символ + может
отсутствовать, в этом случае число считается положительным. Если
в составе инициализирующей строки будут встречены любые символы,
отличные от допустимых, КОМЛЕКСНОЕ_ЧИСЛО принимает нулевое значение.
Примеры строк 33i12
-7i100
+5i-21
Обязательные методы:
конструктор без параметров;
конструктор, принимающий в качестве параметра
Си-строку (заканчивается нулевым байтом);
конструктор копирования;
деструктор;
Переопределить следующие операции :
присваивание (=);
сложение + - сумма чисел.
Разработчик вправе вводить любое (с обоснованием необходимости)
число дополнительных членов и методов.
Задание:
Разработать иерархию классов по следующей схеме:
СТРОКА
|
V
--------------------------------------------
| |
СТРОКАИДЕНТИФИКАТОР КОМПЛЕКСНОЕЧИСЛО
с обязательной поддержкой заданных членов и методов.
Написать тестовую программу, которая:
динамически выделяет массив указателей на базовый класс (4-6 шт.);
в режиме диалога заполняет этот массив указателями на производные классы,
при этом экземпляры производных классов создаются динамически с заданием
начальных значений;
для созданных экземпляров производных классов выполняется
проверка всех разработанных методов (в соответствии с вариантом задания),
с выводом исходных данных и результатов на дисплей.
для конструкторов копирования каждого класса предусмотреть
диагностическую печать количества его ввызовов в заданное место дисплея,
(рекомендуется использовать статические члены класса).
Режим диалога обеспечивается с помощью иерархического меню.
Основные пункты:
1. "Инициализация".
Подпункты:
1.1 "Число элементов" - задает число элементов в массиве указателей
на базовый класс.
Запрещается после задания числа элементов пользоваться этим
пунктом меню.
1.2 "Начальное значение" - с помощью этого пункта меню можно
задать номер элемента, его тип и начальное значени