Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 курс / Отчет по лаб.Работе.docx
Скачиваний:
0
Добавлен:
27.10.2026
Размер:
31 Кб
Скачать
☆

Федеральное государственное автономное образовательное учреждение высшего образования «Национальный исследовательский университет итмо»

УТВЕРЖДАЮ

старший преподаватель

(должность)

Безруков В. А.

(ФИО)

«___» _________ 20__ г.

ЛАБОРАТОРНАЯ РАБОТА №6:

ПО «ПРОГРАММИРОВАНИЮ»

Отчет по лабораторной работе

студент

Петербургский Н. А.

(должность)

(подпись, дата)

(ФИО)

г. Санкт-Петербург

СПИСОК ИСПОЛНИТЕЛЕЙ

  1. Петербургский Николай Александрович, студент 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.