Содержание
Постановка задания
Задание для всех вариантов звучит так (или, возможно, немного изменено, т к могут быть разные издания учебного пособия):
Тема: Реализация методов ООП средствами 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 минут.
Добавить комментарий