Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

АИСД (2 семестр) на С# / Лабоаторная1

.docx
Скачиваний:
3
Добавлен:
20.08.2023
Размер:
1.17 Mб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

отчет

по лабораторной работе №1

по дисциплине «Алгоритмы и структуры данных»

Тема: Работа с иерархией объектов: наследование и полиморфизм.

Студенты гр.

Преподаватель

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

2023

Цель работы – изучить работу с иерархией объектов, наследованием и полиморфизмом.

Задание: доработать модуль shape.cpp, добавив параллелограмм с крестом. Для этой фигуры нужно определить подходящее место в иерархии классов и написать недостающие функции-члены.

Вариант: 2. Наименование: параллелограмм с крестом. Отражение: да. Поворот: да.

Работа с классами

1. Добавленные классы

Для реализации фигуры параллелограмм с крестом был создан класс “parallelogram”, который является наследником класса rectangle и реализует интерфейсы rotatable и reflectable.

2. Переопределение методов у добавленного класса

В классе “parallelogram” были переопределен метод draw() и

точки привязки для правильной отрисовки параллелограмма.

3. Реализация недоступности необязательных методов класса

В классе “parallelogram” не были использованы закрытые методы, так как

методы (rotate_right(), rotate_left(), flip_horisontally(), flip_vertically()) используются в классе main для выполнения различных операций при рисовании фигуры параллелограмм. Точки привязки и метод draw() имеют модификатор virtual (переопределяют методы базового класса), поэтому не могут быть закрытыми.

Результат работы программы

  1. Исходный набор фигур

  1. Результат подготовки фигур к сборке

3)Собранное изображение физиономии.

Вывод: В ходе работы были получены практические навыки по работе с наследованием классов. Изучены такие понятия как наследование, полиморфизм, виртуальные и абстрактные методы.

Список использованных источников

Колинько, П. Г. Пользовательские структуры данных: Методические указания по дисциплине “Алгоритмы и структуры данных, часть 2”.– СПБ.: СПБГЭТУ “ЛЭТИ”, 2022. – 64 с.

Код программы:

circle.cs

Line.cs

Main.cs

Myshape.cs

parallelogram.cs

Point.cs

rectangle.cs

reflectable.cs

rotatable.cs

Screen.cs

Shape1.cs

utility.cs

Соседние файлы в папке АИСД (2 семестр) на С#