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

ЯП7

.docx
Скачиваний:
4
Добавлен:
29.06.2023
Размер:
133.93 Кб
Скачать

Министерство образования и науки Российской Федерации

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

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

Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)

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

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

Выполнил

Студент группы 739-1

__________ Климанов М.Д.

24.12.2020

Принял

Младший научный сотрудник

__________ В.А. Полюга

24.12.2020

Содержание

Y

1 Введение 4

2 Ход работы 5

2.1 Разработка системы 5

2.2 Класс Decrypt 5

2.3 Класс Encrypt 6

2.4 Класс Program 7

3 Заключение 8

Приложение А 9

Приложение Б 10

Приложение В 11

Приложение Г 13

1 Введение

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

Задание: Реализовать в программе операции бизнес-логики, соответствующие предметной области варианта задания, с применением наследования и полиморфизма.

2 Ход работы

2.1 Разработка системы

Для выполнения данной работы, сначала необходимо нарисовать UML-диаграмму классов, на основе которой будет написан код самой программы на языку программирования C#. Для выполнения работы была выбрана тема –шифр Скитала.

На рисунке 2.1.1 представлена UML-диаграмма классов.

Рисунок 2.1.1 – UML-диаграмма классов

В приложениях А, Б и В представлены листинги кодов классов Skitala, Decrypt и Encrypt соответственно.

2.2 Класс Decrypt

Класс Decrypt осуществляет дешифровку текста.

На рисунке 2.2.1 изображен фрагмент кода, на котором представлена реализация дешифровки текста.

Рисунок 2.2.1 – Код программы

Листинг кода программы представлен в приложении Б.

2.3 Класс Encrypt

Класс Encrypt осуществляет зашифровку текста.

На рисунке 2.3.1 изображен фрагмент кода, на котором представлена реализация зашифровки текста.

Рисунок 2.3.1 – Код программы

Листинг кода программы представлен в приложении В.

2.4 Класс Program

В классе program выполняется работа с классами и вызовы методов выполняющих дешифровку и расшифровку текста.

На рисунке 2.4.1 изображен фрагмент кода, на котором представлена реализация класса program.

Рисунок 2.4.1 – Код программы

Листинг кода программы представлен в приложении Г.

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

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

3 Заключение

В результате выполнения данной работы были получены навыки по объектно-ориентированному программированию, а также закреплены знания полученные на лекционных занятиях. Отчет написан в соответствии с ОС ТУСУР 2013.

Приложение А

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

Листинг кода класса Skitala:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace _7

{

abstract class Skitala

{

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

}

}

Приложение Б

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

Листинг кода класса Decrypt:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace _7

{

class Decrypt : Skitala

{

public override string Cipher(string text, int d)

{

var column = text.Length / d;

var symbols = new char[text.Length];

int index = 0;

for (int i = 0; i < column; i++)

{

for (int j = 0; j < d; j++)

{

symbols[i + column * j] = text[index];

index++;

}

}

return string.Join("", symbols);

}

public void stat(string text)

{

Console.WriteLine("Расшифрованная фраза:{0}", text);

}

}

}

Приложение В

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

Листинг кода класса Encrypt:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace _7

{

class Encrypt : Skitala

{

public override string Cipher(string text, int d)

{

var k = text.Length % d;

if (k > 0)

{

text += new string(' ', d - k);

}

var column = text.Length / d;

var result = "";

for (int i = 0; i < column; i++)

{

for (int j = 0; j < d; j++)

{

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

}

}

return result;

}

public void stat(string text)

{

Console.WriteLine("Зашифрованная фраза:{0}", text);

}

}

}

Приложение Г

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

Листинг кода класса program:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace _7

{

class Program

{

static void Main(string[] args)

{

Encrypt enc = new Encrypt();

Decrypt dec = new Decrypt();

Console.Write("Введите текст сообщения: ");

var message = Console.ReadLine();

Console.Write("Введите диаметр цилиндра: ");

var diameter = Convert.ToInt32(Console.ReadLine());

var encText = enc.Cipher(message, diameter);

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

dec.stat(encText);

Console.ReadLine();

}

}

}

Томск 2020

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