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

laba6

.pdf
Скачиваний:
1
Добавлен:
12.12.2024
Размер:
524.68 Кб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)

Кафедра безопасности информационных систем (БИС)

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАМИРОВАНИЕ

Отчет по лабораторной работе №6 по дисциплине «Языки программирования»

Выполнил:

Студент гр. 730-2

____Подойницын К.В.

23.04.2022

Принял:

Преподаватель кафедры КИБЭВС

Полюга В.А. 23.04.2022

Томск 2022

2

1 Введение Цель работы: знакомство с основными концепциями и приемами

объектно-ориентированного анализа и проектирования, выработка практических навыков в построении модели предметной области и элементов модели проектирования.

3

2 Ход работы

В данной лабораторной работе производится изучение основы ООП и реализация основных методов. В качестве языка программирования был выбран

C#.

2.1 Модель предметной области и модель проектирования

Модель предметной области – описание объектов задачи, такое как если бы мы и не собирались писать никакую программу. На модели предметной области приводятся типы объектов, их атрибуты, связи между объектами разных типов.

Модель проектирования – это описание объектов системы,

приближенное к реализации в выбранной среде программирования (на конкретном языке программирования) с учетом применяемых технологий

(например, базы данных)

UML диаграмма предметной области представлена на рисунке 2.1

Рисунок 2.1 – UML диаграмма ПО

4

2.2 Наследование и абстрактный класс

Наследование – это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым или родительским. Новый класс – потомком, наследником или производным классом.

Абстрактный класс – это класс, который не может иметь экземпляров. В

них присутствуют функции члены, которые объявлены, но не определены. Эти функции определяются в наследниках, которые уточняют данную абстракцию.

На рисунке 2.2.1 приведён результат работы с абстрактным классом.

Рисунок 2.2.1 – Абстрактный класс На рисунке 2.2.2 представлено наследование

Рисунок 2.2.2 – Наследование

2.3 Полиморфизм Полиморфизм – это свойство системы использовать объекты с

одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

На рисунке 2.3.1 представлен фрагмент кода демонстрирующий полиморфизм.

Рисунок 2.3.1 – Фрагмент кода, демонстрирующий полиморфизм

5

Результат работы программы представлен на рисунке 2.3.2.

Рисунок 2.3.2 – Результат работы программы

2.4 Инкапсуляция

Инкапсуляция – это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.

Инкапсуляция представлена на рисунке 2.4

Рисунок 2.4 – Инкапсуляция

6

Заключение

В ходе лабораторной работы были изучены основные концепции и приемы объектно-ориентированного анализа и проектирования, реализованы абстрактный класс, принципы наследования и полиморфизма, а также построена

UML-диаграмма.

7

Приложение А

(Обязательное)

using System;

namespace laba6_YAP

{

class Program

{

static void Main(string[] args)

{

Scytale S = new Scytale(); Console.Write("Введите текст сообщения: "); var m = Console.ReadLine(); Console.Write("Введите диаметр: ");

var d = Convert.ToInt32(Console.ReadLine()); var encText = S.ScytaleE(m, d);

Console.WriteLine("Зашифрованный текст: {0}", encText); S.End();

Console.ReadLine();

}

}

abstract class Base // создание абстрактного класса

{

protected string text; protected int d;

public abstract string ScytaleE(string text, int d);

}

class Scytale : Base // наследование

{

public override string ScytaleE(string text, int d) // полиморфизм

{

var k = text.Length % d; if (k > 0)

{

//дополняем строку пробелами text += new string(' ', d - k);

}

var c = text.Length / d; string result = "";

for (int i = 0; i < c; i++) // строка

{

for (int j = 0; j < d; j++) // столбец

{

result += text[i + c * j].ToString();

}

}

return result;

}

private string result; // инкапсуляция public string get()

{

return result;

}

public void set()

{

Console.WriteLine("Изменение сообщения: "); string result = Console.ReadLine();

}

public void End()

{

set();

}

}

}

Соседние файлы в предмете Языки программирования