Лабораторная работа № 9. Лабораторная работа 3 Разработка и отладка модуля шифрования записей текстового файла
Скачать 486.56 Kb.
|
Лабораторная работа № 3 Разработка и отладка модуля шифрования записей текстового файла 1. Цель работы Изучение возможности разработки и отладки модуля шифрования записей текстового файла. 2. Оборудование Персональный компьютер. 3. Пояснения к работе Перед выполнением задания изучить лекционный материал и теоретические сведения. При выполнении лабораторной работы обучающийся должен Знать: - Основные принципы отладки и тестирования программных продуктов Уметь: - Выполнять отладку и тестирование программы на уровне модуля 4. Теоретические сведения Кодирование - это процесс присвоения экономической информации условных обозначений, подчиненных определенным правилам. Совокупность правил, по которым осуществляется кодирование, называется системой кодирования. Код является обозначением признака объекта в виде знака или группы знаков в соответствии с принятой системой кодирования. Шифрование — преобразование информации в целях сокрытия от неавторизованных лиц. Важной особенностью любого алгоритма шифрования является использование ключа, который утверждает выбор конкретного преобразования из совокупности возможных для данного алгоритма. Шифр Цезаря — один из древнейших шифров. При шифровании каждый символ заменяется другим, отстоящим от него в алфавите на фиксированное число позиций. Шифр Цезаря можно классифицировать как шифр подстановки, при более узкой классификации — шифр простой замены. Шифр назван в честь римского императора Гая Юлия Цезаря, использовавшего его для секретной переписки. Цезарь применял следующий алгоритм, для шифрования своих посланий он брал первую букву открытого текста и сдвигал ее на 3 позиции вперед в алфавите, таким образом, получал букву шифр алфавита. Для работы такой системы требуется, чтобы отправитель и получатель согласовали используемый ключ перед началом безопасной передачи сообщения (имели защищенный канал для передачи ключа). Объектно-ориентированное программирование (сокращенно ООП) — это совершенно новый подход к построению сложных (и не очень сложных) программ и систем. Этот подход зародился в таких языках программирования, как Ада, Smalltalk, С++, Borland Pascal. В объектно-ориентированном программировании и проектировании главной, отправной точкой является не процедура, не действие, а объект. Взаимодействие пользователя с компьютерной программой — это взаимодействие двух объектов — программы и человека, которые обмениваются друг с другом определенными сообщениями. Прикладная программа построенная по принципам объектной ориентации — это не последовательность каких-то операторов, не некий жесткий алгоритм. Объектно-ориентрованная программа — это совокупность объектов и способов их Описание блоков алгоритма работы программы "Шифр Цезаря", показанном на рисунке 1: Начало работы программы; Запуск программы, загрузка окна; Пользователь вводит исходные данные для кодирования; Установление ключа, устанавливается число смещения для кодирования буквы, символа, цифры; В текстовом поле выводится закодированные данные. В текстовом поле выводится декодированные данные; Закрытие программы. 3. Протестировать и отладить созданное приложение согласно пункта 2.6 Описание контрольного примера в приложении к лабораторной работе. 4. Протестировать созданное приложение согласно пункта 2.5 Руководство оператора в приложении к лабораторной работе. Примечание: Закодировать свое ФИО и дату рождения, затем его расшифровать. 5. Составить чек-листы на позитивные и негативные тесты. 6. Оформить отчёт. 7. Содержание отчета Отчет должен быть выполнен в соответствии с Общими требованиями к оформлению документов учебной деятельности обучающихся. Отчет должен содержать следующие разделы: 1. Наименование работы. 2. Цель работы. 3. Результаты выполненных заданий: - Скриншоты пошагового выполнения задания с подписями скриншотов что продемонстрировано на скриншоте. - Чек-листы на позитивные и негативные тесты. 5. Вывод. Приложение к лабораторной работе 1 Техническое задание Разработанное приложение представляет собой программу шифрования и дешифрования текстовых сообщений с помощью "шифра Цезаря", то есть "Шифр Цезаря". Назначение разработки: визуальное отображение шифрования текстовых сообщений методом шифра Цезаря. Цели и задачи проведения работы: Цель: реализация с помощью языка программирования приложение "Шифр Цезаря", которое шифрует и дешифрует текстовые сообщения по заданному ключу. Задачи: - изучить теоретический материал метода шифрования Цезаря; - изучить техническую литературу п созданию Windows приложений на объектно-ориентированном языке программирования C#. - определить внешний вид приложения "Шифр Цезаря; - реализация проекта на языке программирования; - оформление технической документации курсовой работы. Технический состав разработки: Таблица 1 Параметры ПК Наименование Значение параметров 1.Тип используемого ПК Процессор Intel Core i3-3240 CPU @ 3.40 GHz 2. ОЗУ 6000 Гб 2.Тип ОС Windows 3.Память на диске 1000Гб 5.Инструментальное ПО Microsoft Word (текстовый редактор), Microsoft Excel (работа с таблицами и некоторыми расчетами в них), Visual Studio, NET Framework 4.6.1 Технические требования к разработке. - требования к функциональным характеристикам: Разработанное приложение должно удовлетворять следующим требованиям: удобный и интуитивно понятный интерфейс, реализованный с помощью объектно- ориентированного языка программирования. - требования к надежности: Разработка должна удовлетворять следующим требованиям надежности: отказоуcтойчивоcть. Требования к документации: Состав программной документации должен соответствовать требованиям ЕСПД (ЕСКД): - спецификация; - описание программы; - руководство программиста; - руководство оператора; - программа и методика испытаний. Кодировка программных документов должна соответствовать кодировке в таблице 2. Таблица 2. Коды программных документов Код документа Вид документа - 12 13 33 34 51 90-99 Спецификация Текст программы Описание программы Руководство программиста Руководство оператора Программа и методика испытаний Техническое задание Особые условия и требования к разработке: отсутствуют. 2 Спецификация Таблица 3. Спецификация Наименование Примечание Документация Описание программы Руководство оператора Руководство программиста 3 Описание программы Приложение "Шифр Цезаря" представляет собой программу, которая предназначена для шифрования и дешифрования текстовых сообщений. Программа "Шифр Цезаря" состоит из программного файла (файла проекта) шифр Цезаря.sln и входящий в ее состав файлы классов: - в файле Cezar.cs создан набор новых классов с описанием алфавита английских, русских букв, а так же цифр и символов; - в файле Class1.cs реализуется программный код задания ключа и смещения букв. При разработке программы использовался объектно- ориентированный язык программирования С#. Программа "Шифр Цезаря" предназначена для использования под управлением ОC Windows7/8/8.1/10. Для корректной работы на компьютере должен быть установлен NET Framework 4.6.1. 4 Руководство программиста Программа "Шифр Цезаря" предназначена для пользователя которому необходимо осуществить шифрование и дешифрование текстовых сообщений методом шифра Цезаря. Язык разработки: С#; Среда разработки: Visual Studio; Программная cовмеcтимоcть: Windows7/8/8.1/10; Для стабильного функционирования программы необходимо наличие персонального компьютера, имеющее следующие минимальные характеристики: - процессор с тактовой частотой не менее 1.7 Ггц (рекомендуемая тактовая частота - 2.5 Ггц); - жесткий диск не менее 200 Мб; - оперативная память не менее 2000 Гбайт; - не менее 4 Мбайт свободного пространства на диске после установки всех программ; - наличие USB – порта; - наличие дисковода или другого сменного носителя данных; - рабочее разрешение экрана 1024x768 точек, 32 bit; - монитор; - клавиатура; - мышь; Для запуска программы необходимо: скопировать папку "шифр Цезаря" на компьютер; запустить программу, с помощью файла шифр_Цезаря.exe расположенного по указанному пути С:\шифр Цезаря\шифр Цезаря\bin\Debug; 5 Руководство оператора - Назначение программы: Данная программа "Шифр Цезаря" предназначена для осуществления шифрования и дешифрования текстовых сообщений методом шифра Цезаря. - Условия выполнения программы: Необходимо запустить шифр_Цезаря.exe . - Выполнение программы: После запуска приложения откроется окно программы рисунок 4., в котором предлагается ввести ключ (то есть указать число смещения цифр и букв), затем необходимо ввести в текстовое поле, какое либо сообщение, состоящее из русских и английских слов, а также допустимо применять цифры и символы. Рисунок 4 - Окно программы Для того чтобы программа выполнила шифрование текста необходимо нажать на кнопку «Кодировать», при этом зашифрованное сообщение отобразится в нижнем текстовом поле. Что бы проверить или произвести дешифрование полученного сообщения, нужно нажать на кнопку «ДЕкодировать», в третьем текстовом окне отобразится Листинг программы using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace шифр_Цезаря { public partial class Form1 : Form { Cezar Me = new Cezar(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { textBox2.Text = Me.Codeс(textBox1.Text, (int)numericUpDown1.Value); } private void button2_Click(object sender, EventArgs e) { textBox3.Text = Me.Codeс(textBox2.Text, - (int)numericUpDown1.Value); } private void label4_Click(object sender, EventArgs e) { } private void groupBox1_Enter(object sender, EventArgs e) { } } } Код класса Cezar class Cezar : System.Collections.Generic.List { public Cezar() { //в конструкторе формирую коллекцию лент this.Add(new Class1("abcdefghijklmnopqrstuvwxyz")); this.Add(new Class1("ABCDEFGHIJKLMNOPQRSTUVWXYZ")); this.Add(new Class1("абвгдеёжзийклмнопрстуфхцчшщъыьэюя")); this.Add(new Class1("АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ")); this.Add(new Class1("0123456789")); this.Add(new Class1("!\"#$%^&*()+=-_'?.,|/`№:;@[]{}")); } public string Codeс(string m, int key) //кодирование и декодирование в зависимости от знака ключа { string res = "", tmp = ""; for (int i = 0; i < m.Length; i++) { foreach (Class1 v in this) { tmp = v.Repl(m.Substring(i, 1), key); if (tmp != "") //нужная лента найдена, замена символу определена { res += tmp; break; // прерывается foreach (перебор лент) } } if (tmp == "") res += m.Substring(i, 1); //незнакомый символ оставляю без изменений } return res; } } class Class1 { string le; Код класса Class1 public Class1(string m) { le = m; } public string Repl(string m, int key) //замена символа m на символ со смещением { int pos = le.IndexOf(m); if (pos == -1) return ""; //символ в этой ленте не найден pos = (pos + key) % le.Length; //если смещение больше одного круга if (pos < 0) pos += le.Length; |
Отдельным объектом при таком подходе во многих случаях можно считать пользователя программы. Обмен между объектами происходит посредством сообщений.
5. Задание
Задание 1. Написать программу, которая позволяет зашифровывать и расшифровывать с помощью «шифра Цезаря» сообщение, написанное на русском языке и английском языках. Этот шифр реализует следующее преобразование текста: каждая буква исходного текста заменяется по установленному ключу после нее буквой в алфавите, который считается написанным по кругу.
6. Порядок выполнения работы
1.
Изучить теоретический материал.
2.
Создать приложение «Шифр Цезаря» согласно приложения к лабораторной работе.
Проект программного обеспечения
Приложение «Шифр Цезаря» написано для ОС Windows. Его интерфейс соответствует требованиям, которые предъявляются к графическому интерфейсу пользователя.
После запуска приложения «Шифр Цезаря» открывается окно, внешний вид которого интуитивно понятен пользователю состоит из трех текстовых полей.
В поле ввода необходимо набрать текст, который требуется зашифровать, рисунок 1. После чего нажать кнопку «Кодировать».
Рисунок 1- Поле ввода текста
Результатом работы программы будет зашифрованный текст, изображенный на рисунке 6 в приложении 1 к работе. Знаки препинания не кодируются, а остаются в первоначальном виде.
Закодированный текст можно расшифровать. Для этого необходимо нажать кнопку «Декодировать», расположенную в верхней части окна на панели инструментов.
Программой предусмотрено шифрование не только букв русского алфавита, но и английского алфавита, а также числа и знаки препинания. Разработанное программу можно представить в виде блок-схемы (рисунок 1).
Завершить работу с программой, можно нажав кнопку "Закрыть", расположенную в верхнем правом углу программы, рисунок 5.
Рисунок 5 - Кнопка "Закрыть"
6 Описание контрольного примера
- Назначение:
Проверка корректной работы программы.
- исходные данные: текстовые поля пусты.
- результаты:
Результат выполнения введенного текстового сообщения и его шифрование представлен на рисунке 6.
Рисунок 6 - Результат ввода и кодирования данных
Нажав на кнопку "Декодировать" осуществляется обратный процесс кодирования текстового сообщения по установленному ключу, результат изображен на рисунке 7.
Рисунок 7 - Результат декодирования данных
}
}