ЯП7
.docxМинистерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
Отчёт по практической работе № 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