Главная страница
Навигация по странице:

  • 2. Оборудование Персональный компьютер. 3. Пояснения к работе

  • 4. Теоретические сведения

  • 5. Задание Задание 1.

  • 6. Порядок выполнения работы

  • Примечание

  • 2 Спецификация Таблица 3. Спецификация Наименование Примечание Документация

  • 4 Руководство программиста

  • 5 Руководство оператора

  • 6 Описание контрольного примера

  • Лабораторная работа № 9. Лабораторная работа 3 Разработка и отладка модуля шифрования записей текстового файла


    Скачать 486.56 Kb.
    НазваниеЛабораторная работа 3 Разработка и отладка модуля шифрования записей текстового файла
    Дата26.01.2022
    Размер486.56 Kb.
    Формат файлаpdf
    Имя файлаЛабораторная работа № 9.pdf
    ТипЛабораторная работа
    #342410


    Лабораторная работа № 3
    Разработка и отладка модуля шифрования записей текстового файла
    1. Цель работы
    Изучение возможности разработки и отладки модуля шифрования записей текстового файла.
    2. Оборудование
    Персональный компьютер.
    3. Пояснения к работе
    Перед выполнением задания изучить лекционный материал и теоретические сведения.
    При выполнении лабораторной работы обучающийся должен
    Знать:
    - Основные принципы отладки и тестирования программных продуктов
    Уметь:
    - Выполнять отладку и тестирование программы на уровне модуля
    4. Теоретические сведения
    Кодирование - это процесс присвоения экономической информации условных обозначений, подчиненных определенным правилам. Совокупность правил, по которым осуществляется кодирование, называется системой кодирования. Код является обозначением признака объекта в виде знака или группы знаков в соответствии с принятой системой кодирования.
    Шифрование — преобразование информации в целях сокрытия от неавторизованных лиц. Важной особенностью любого алгоритма шифрования является использование ключа, который утверждает выбор конкретного преобразования из совокупности возможных для данного алгоритма.
    Шифр Цезаря — один из древнейших шифров. При шифровании каждый символ заменяется другим, отстоящим от него в алфавите на фиксированное число позиций.
    Шифр Цезаря можно классифицировать как шифр подстановки, при более узкой классификации — шифр простой замены. Шифр назван в честь римского императора
    Гая Юлия Цезаря, использовавшего его для секретной переписки. Цезарь применял следующий алгоритм, для шифрования своих посланий он брал первую букву открытого текста и сдвигал ее на 3 позиции вперед в алфавите, таким образом, получал букву шифр алфавита. Для работы такой системы требуется, чтобы отправитель и получатель согласовали используемый ключ перед началом безопасной передачи сообщения (имели защищенный канал для передачи ключа).
    Объектно-ориентированное программирование (сокращенно ООП) — это совершенно новый подход к построению сложных (и не очень сложных) программ и систем. Этот подход зародился в таких языках программирования, как Ада,
    Smalltalk, С++, Borland Pascal.
    В объектно-ориентированном программировании и проектировании главной, отправной точкой является не процедура, не действие, а объект. Взаимодействие пользователя с компьютерной программой — это взаимодействие двух объектов — программы и человека, которые обмениваются друг с другом определенными сообщениями.
    Прикладная программа построенная по принципам объектной ориентации — это не последовательность каких-то операторов, не некий жесткий алгоритм.
    Объектно-ориентрованная программа — это совокупность объектов и способов их
    взаимодействия.
    Отдельным объектом при таком подходе во многих случаях можно считать пользователя программы. Обмен между объектами происходит посредством сообщений.
    5. Задание
    Задание 1. Написать программу, которая позволяет зашифровывать и расшифровывать с помощью «шифра Цезаря» сообщение, написанное на русском языке и английском языках. Этот шифр реализует следующее преобразование текста: каждая буква исходного текста заменяется по установленному ключу после нее буквой в алфавите, который считается написанным по кругу.
    6. Порядок выполнения работы
    1.
    Изучить теоретический материал.
    2.
    Создать приложение «Шифр Цезаря» согласно приложения к лабораторной работе.
    Проект программного обеспечения
    Приложение «Шифр Цезаря» написано для ОС Windows. Его интерфейс соответствует требованиям, которые предъявляются к графическому интерфейсу пользователя.
    После запуска приложения «Шифр Цезаря» открывается окно, внешний вид которого интуитивно понятен пользователю состоит из трех текстовых полей.
    В поле ввода необходимо набрать текст, который требуется зашифровать, рисунок 1. После чего нажать кнопку «Кодировать».
    Рисунок 1- Поле ввода текста
    Результатом работы программы будет зашифрованный текст, изображенный на рисунке 6 в приложении 1 к работе. Знаки препинания не кодируются, а остаются в первоначальном виде.
    Закодированный текст можно расшифровать. Для этого необходимо нажать кнопку «Декодировать», расположенную в верхней части окна на панели инструментов.
    Программой предусмотрено шифрование не только букв русского алфавита, но и английского алфавита, а также числа и знаки препинания. Разработанное программу можно представить в виде блок-схемы (рисунок 1).

    Описание блоков алгоритма работы программы "Шифр Цезаря", показанном на рисунке 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 - Окно программы
    Для того чтобы программа выполнила шифрование текста необходимо нажать на кнопку «Кодировать», при этом зашифрованное сообщение отобразится в нижнем текстовом поле.
    Что бы проверить или произвести дешифрование полученного сообщения, нужно нажать на кнопку «ДЕкодировать», в третьем текстовом окне отобразится
    расшифрованное сообщение.
    Завершить работу с программой, можно нажав кнопку "Закрыть", расположенную в верхнем правом углу программы, рисунок 5.
    Рисунок 5 - Кнопка "Закрыть"
    6 Описание контрольного примера
    - Назначение:
    Проверка корректной работы программы.
    - исходные данные: текстовые поля пусты.
    - результаты:
    Результат выполнения введенного текстового сообщения и его шифрование представлен на рисунке 6.
    Рисунок 6 - Результат ввода и кодирования данных
    Нажав на кнопку "Декодировать" осуществляется обратный процесс кодирования текстового сообщения по установленному ключу, результат изображен на рисунке 7.
    Рисунок 7 - Результат декодирования данных

    Листинг программы
    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;
    return le.Substring(pos, 1);
    }
    }


    написать администратору сайта