|
|||
Работа № 5. Наследование классов, механизм виртуальных функцийЗадание к работе Общая постановка. Пользовательский класс String должен содержать необходимые элементы-данные, которые создаются в динамической области памяти. · Конструктор для создания строк: String (…); · Деструктор: ~String(); · Метод ввода исходной строки: Set(); · Метод печати: void print(…); Код методов – вне пространства определения класса. Программа иллюстрирует прямой и косвенный способы обращения к методам. Ввести с клавиатуры строку символов S1. Признак окончания ввода строки - нажатие клавиши " Ввод". Программа должна содержать перегруженную операцию «=», использование которой скопирует S1 в S2. Исходную и преобразованную строки вывести в файл.
Варианты заданий 1. Длина L нечетная, то удаляется символ, стоящий посередине строки; 2. Длина L четная, то удаляются 2 первых и 2 последних символа; 3. Длина L кратна 2-м, то удаляются все числа, которые делятся на 2; 4. Длина L кратна 3-м, то удаляются все числа, делящиеся на 3; 5. Длина L > 10, то удаляются все цифры; 6. Длина L > 15, то удаляются все a.. z; 7. Длина L=10, то удаляются все A.. Z; 8. Длина L кратна 4-м, то первая часть строки меняется местами со второй; 9. Длина L кратна 5-и, то подсчитывается количество скобок всех видов; 10. Длина L > 5-и, то выделяется подстрока до первого пробела; 11. Длина L > 6-и, то выделяется подстрока { } скобках; 12. Длина L > 10-и, то удаляется подстрока в [] скобках; 13. Длина L > 12-и, то удаляется подстрока до первой ( скобки; 14. Длина L кратна 4-м, то выделяется подстрока после последнего пробела; 15. Длина L > 5, то удаляются все точки. 16. Длина L четная, то выделяется подстрока до первого пробела 17. Длина L четная, то удаляется подстрока до первого пробела 18. Длина L четная, то выделяется подстрока со второго пробела 19. Длина L нечетная, то выделяется подстрока после первого пробела 20. Длина L нечетная, то удаляется подстрока со второго пробела 21. Длина L кратна 3, то удаляется каждый 3-й символ 22. Длина L четная, то удаляется каждый 2-й символ 23. Длина L нечетная, то 24. Длина L четная, то выделяется подстрока до последнего пробела 25. Длина L нечетная, то выделяется подстрока от последней цифры 26. Длина L=15, то удаляются все символы кроме A-Z 27. Длина L делится на 5, то удаляется все символы кроме a-z 28. Длина L четная и > =10, то удаляются все пробелы 29. Длина L нечетная и < 12, произвести инверсию (abcdef-> fedcba) 30. Длина L > 5 и < 30, изменить регистр символов (aBcDeF-> AbCdEf)
Контрольные вопросы 1. Как объявить динамическую строку в С++? 2. Какие вы знаете функции работы со строками? 3. Как определяются строки при передаче в функцию, в качестве фактических параметров? 4. Поясните механизм перегрузки операций для объектов данного класса.
Работа № 5. Наследование классов, механизм виртуальных функций
|
|||
|