Федеральное государственное автономное образовательное учреждение высшего образования «Национальный исследовательский университет итмо»
УТВЕРЖДАЮ старший преподаватель |
(должность) |
Безруков В. А. |
(ФИО) |
|
«___» _________ 20__ г. |
ЛАБОРАТОРНАЯ РАБОТА №6:
ПО «ПРОГРАММИРОВАНИЮ»
Отчет по лабораторной работе
студент |
|
Петербургский Н. А. |
(должность) |
(подпись, дата) |
(ФИО) |
г. Санкт-Петербург
СПИСОК ИСПОЛНИТЕЛЕЙ
Петербургский Николай Александрович, студент 1 курса направления “Информационная безопасность”
СОДЕРЖАНИЕ
ОПИСАНИЕ ВЫПОЛНЕНИЯ ЗАДАНИЯ 4
ЗАКЛЮЧЕНИЕ 7
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 8
ПРИЛОЖЕНИЯ 9
ОПИСАНИЕ ВЫПОЛНЕНИЯ ЗАДАНИЯ
Данный код представляет собой программу, которая создает и тестирует иерархию классов для работы с различными типами строк и комплексными числами. Вот обзор того, что делает этот код:
Определены три класса: String, IdentifierString, и Complex.
String - базовый абстрактный класс, представляющий строку. Он имеет защищенные члены данных str (указатель на массив символов) и length (длина строки). Определены конструкторы, виртуальный деструктор и чисто виртуальные методы operator[] и read.
IdentifierString - класс, наследующийся от String. В нем добавлены методы toLowerCase() (преобразует символы в строке в нижний регистр, игнорируя цифры), operator> (сравнивает строку с другой строкой) и переопределен оператор присваивания operator=.
Complex - класс, также наследующийся от String. В нем есть дополнительные методы operator/ (деление комплексных чисел), operator== (сравнение комплексных чисел) и переопределен оператор присваивания operator=. Класс Complex представляет комплексное число с действительной и мнимой частью.
В функции main() определено главное меню, которое предоставляет пользователю следующие действия:
Инициализация: Позволяет задать количество элементов и начальные значения для массива указателей на объекты классов.
Тестирование: Позволяет выбрать тип строки для тестирования и запускает тестовые операции на объектах выбранного класса.
Выход: Завершает выполнение программы.
Пользователь может выбрать тип строки для создания (обычная строка, строка-идентификатор или комплексное число) и указать соответствующее начальное значение для каждого элемента массива arrString.
После инициализации массива, пользователь может выбрать тип строк для тестирования (Строка, Строка-идентификатор или Комплексное число) и выполнять тестирование методов соответствующего класса.
По завершении работы программы, освобождаются выделенные ресурсы, включая память, выделенную для объектов в массиве arrString.
Этот код представляет собой интерактивную программу для создания, инициализации и тестирования объектов разных классов, представляющих строки и комплексные числа. Он использует меню и динамическое выделение памяти для управления данными и операциями.
Разбор выполнения задачи по шагам:
Объявление классов и методов: В начале кода объявлены три класса: String, IdentifierString и Complex, каждый из которых наследует от класса String. Эти классы представляют разные типы строк и имеют различные методы.
Конструкторы, деструкторы и виртуальные методы: В каждом классе определены конструктор по умолчанию, конструктор копирования, деструктор и виртуальные методы operator[] и read. Виртуальные методы позволяют переопределить их в производных классах.
Дополнительные методы для IdentifierString и Complex: Класс IdentifierString содержит методы toLowerCase(), operator>, operator=, а класс Complex содержит методы operator/, operator==, operator=.
Главная функция main(): Главная функция выполняет следующие действия:
Инициализирует переменные и массив указателей на объекты классов.
Отображает главное меню с помощью функции printMenu().
Обрабатывает ввод пользователя с использованием _getch() и switch, чтобы определить выбор пользователя.
Инициализация: Если пользователь выбирает "Инициализация", программа предлагает два подпункта:
"Число элементов": Здесь пользователь указывает количество элементов в массиве arrString, который динамически выделяется.
"Начальное значение": Пользователь может создавать объекты разных типов (String, IdentifierString, Complex) и задавать им начальные значения.
Тестирование: Если пользователь выбирает "Тестирование", программа предлагает выбрать тип строки для тестирования:
"Строка": Здесь тестируются методы класса String.
"Строка-идентификатор": Здесь тестируются методы класса IdentifierString.
"Комплексное число": Здесь тестируются методы класса Complex.
Тестирование методов классов: В каждой из трех секций тестирования, программа выполняет различные операции, вызывая методы соответствующего класса. Эти операции выводят информацию на экран.
Освобождение ресурсов: По завершении программы, она освобождает выделенные ресурсы, удаляя объекты и массив указателей.
Важно отметить, что данный код создает и тестирует объекты разных классов, используя наследование и виртуальные методы для обработки различных типов строк. Пользователь взаимодействует с программой через текстовое меню, выбирая действия, которые программа должна выполнить.
ЗАКЛЮЧЕНИЕ
В ходе выполнения задачи было реализована программа, которая включает в себя создание иерархии классов для работы с строками и комплексными числами, а также реализацию меню для их инициализации и тестирования. Программа динамически выделяет память и работает с различными операциями над строками и комплексными числами.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Полубенцева, М.И. C/C++. Процедурное программирование / М.И. Полубенцева. - СПб.: BHV, 2008. - 448 c.
Перри, Г. Программирование на C для начинающих / Г. Перри, Д. Миллер. - М.: Эксмо, 2015. - 368 c. 77. Перри, Г. Программирование на C для начинающих / Г. Перри, Д. Миллер. - М.: ЭКСМО, 2016. - 192 c
Мартынов, Н.Н. Программирование для Windows на C / Н.Н. Мартынов. - М.: БИНОМ, 2013. - 528 c.
МакГрат, М. Программирование на C для начинающих / М. МакГрат. - М.: Эксмо, 2015. - 192 c.
Гукин, Д. Программирование на C для чайников / Д. Гукин. - М.: Диалектика, 2019. - 384 c.
Гриффитс, Д. Изучаем программирование на C / Д. Гриффитс, Д. Гриффитс. - М.: Эксмо, 2015. - 624 c.
Бьярне, Страуструп Программирование: принципы и практика с использованием C++ / Страуструп Бьярне. - М.: Вильямс, 2016. - 1328 c.
