Постановка задания

Задание для всех вариантов звучит так (или, возможно, немного изменено, т к могут быть разные издания учебного пособия):

Тема: Реализация методов ООП средствами Visual Studio .NET C++ на примере программы «Класс Строка»

 

Цель работы: описать класс «Строка», инкапсулирующий в себе данные строки и операций для работы с ними. Создать демонстрационную программу в среде Visual Studio .NET C++

 

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

Описать базовый класс СТРОКА.

 

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

    • указатель на char — хранит адрес динамически выделенной памяти для размещения символов строки;
    • значение типа int — хранит длину строки в байтах.

 

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

    • конструктор без параметров;
    • конструктор, принимающий в качестве параметра С-строку (заканчивается нулевым байтом);
    • конструктор, принимающий в качестве параметра символ;
    • конструктор копирования;
    • получение длины строки;
    • очистка строки (сделать строку пустой);
    • деструктор.

 

Описать производный от СТРОКА класс СТРОКА_ИДЕНТИФИКАТОР.

Строки данного класса строятся по правилам записи идентификаторов в языке С++ и могут включать в себя только те символы, которые могут входить в состав С-идентификаторов. Если исходные данные противоречат правилам записи идентификатора, то создается пустая СТРОКА_ИДЕНТИФИКАТОР.

 

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

    • конструктор без параметров;
    • конструктор, принимающий в качестве параметра С-строку (заканчивается нулевым байтом);
    • конструктор, принимающий в качестве параметра символ;
    • конструктор копирования;
    • перевод всех символов строки в верхний регистр;
    • перевод всех символов строки в нижний регистр;
    • поиск первого вхождения символа в строку;
    • деструктор.

 

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

    • присваивание ($=$);
    • сложение ($+$) — операция конкатенации строк;
    • вычитание ($-$) — из строки (первый операнд) удаляются все символы, входящие в строку — второй операнд, при этом может получиться пустая строка;
    • операция ($>$) — проверка на больше. Строка считается больше другой, если код символа первой строки в $i$-й позиции ($i$ изменяется от $0$ до $n — 1$, где $n$ — длина более короткой строки) больше кода символа в той же позиции во второй строке, длины строк могут не совпадать;
    • операция ($<$) — проверка на меньше. Строка считается меньше другой, если код символа первой строки в $i$-й позиции ($i$ изменяется от $0$ до $n — 1$, где $n$ — длина более короткой строки) меньше кода символа в той же позиции во второй строке, длины строк могут не совпадать.

Разработчик вправе вводить любое (с обоснованием необходимости) число дополнительных полей и методов.

 

Написать тестовую программу, которая:

    • динамически выделяет массив указателей на базовый класс;
    • в режиме диалога заполняет этот массив указателями на производные классы, при этом экземпляры производных классов совпадают динамически с заданием начальных значений;
    • для созданных экземпляров производных классов выполняет проверку всех разработанных методов с выводом исходных данных и результатов на дисплей;
    • для конструкторов копирования каждого класса предусмотреть диагностическую печать количества его вызовов в определенное место дисплея (рекомендуется использовать статические члены класса).

Режим диалога обеспечивается с помощью иерархического меню.

Стоимость заказа работы

💡 Стоимость программы в среде Visual Studio, реализующей все требуемые операции, составляет $1\ 400$ рублей.

Для оформления заказа пишите на почту: proglabs@mail.ru.
Время нашего ответа обычно составляет не более 10 минут.