Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Текст диплома магистра - 12 июня 2014.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.87 Mб
Скачать

6.4 Пример работы модуля

Примеры работа программы даны на основе базы работ студентов по предмету «Защита информации», сданных в ВУЗе. База содержит не все работы прошлых лет, а только некоторые, сохранившиеся у преподавателя, однако это не помешало обнаружить плагиат.

6.4.1 Пример 1 анализа последовательности операторов

Пример 1 анализа последовательности операторов приведен на рисунке 22.

Рисунок 22 Пример 1 анализа последовательности операторов

Отчет программы:

Максимальное совпадение последовательности операторов в файлах обнаружено в 1 файле с 50 по 71 строку, во 2 файле c 59 по 81 строку.

*************** 1 Файл: ***************

if (Static3!=NULL) Static3->Create("Результат",WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(495,5,880,20),this);

Edit3 = new CEdit();

if (Edit3!=NULL) Edit3->Create(WS_CHILD|WS_VISIBLE|WS_BORDER|ES_MULTILINE, CRect(60,530,590,550),this,IDC_EDIT3);

Static1 = new CStatic();

if (Static1!=NULL) Static1->Create("Ключ",WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(10,530,60,550),this);

Button1 = new CButton();

if (Button1!=NULL) Button1->Create("Шифрование",WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(60,560,230,580),this,IDC_BUTTON1);

Button2 = new CButton();

if (Button2!=NULL) Button2->Create("Выход",WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(610,600,780,620),this,IDC_BUTTON2);

Button3 = new CButton();

if (Button3!=NULL) Button3->Create("Таблица Вижинера",WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(610,530,780,550),this,IDC_BUTTON3);

Button4 = new CButton();

if (Button4!=NULL) Button4->Create("Расшифровать ключом",WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(240,560,410,580),this,IDC_BUTTON4);

Button6 = new CButton();

if (Button6!=NULL) Button6->Create("<<",WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(400,250,490,300),this,IDC_BUTTON6);

*************** 2 Файл: ***************

if (Static2!=NULL) Static2->Create("Исходный текст",WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(10,5,395,20),this);

Static3 = new CStatic(); // это заголовок правого окна - "Результат"

if (Static3!=NULL) Static3->Create("Результат",WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(495,5,880,20),this);

Edit3 = new CEdit(); // аналогично Edit1 - это текстовое поле для ключа

if (Edit3!=NULL) Edit3->Create(WS_CHILD|WS_VISIBLE|WS_BORDER|ES_MULTILINE, CRect(60,530,590,550),this,IDC_EDIT3);

Static1 = new CStatic(); // аналогично для Static2 - это поле "Ключ" справа от текстового поля для ключа

if (Static1!=NULL) Static1->Create("Ключ",WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(10,530,60,550),this);

// Кнопка Шифрование - делается аналогично предыдущим элеменат, только создается объекст CButton

Button1 = new CButton(); // создаем объект и рисуем его функцией Create и связываем с константой IDC_BUTTON1

if (Button1!=NULL) Button1->Create("Шифрование",WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(60,560,230,580),this,IDC_BUTTON1);

Button2 = new CButton(); // создаем объект и рисуем его функцией Create и связываем с константой IDC_BUTTON2

if (Button2!=NULL) Button2->Create("Выход",WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(610,600,780,620),this,IDC_BUTTON2);

Button3 = new CButton(); // создаем объект и рисуем его функцией Create и связываем с константой IDC_BUTTON3

if (Button3!=NULL) Button3->Create("Генерация ключа",WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(610,530,780,550),this,IDC_BUTTON3);

Button4 = new CButton(); // создаем объект и рисуем его функцией Create и связываем с константой IDC_BUTTON4

if (Button4!=NULL) Button4->Create("Расшифровать ключом",WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(240,560,410,580),this,IDC_BUTTON4);

+++ Информация о файлах +++

_______________ 1 Файл: _______________

С

Группа: ВВ-5-02

Тема: Крипт2

Автор: Боловинцев

Дополнительная информация:

Путь: C:\Documents and Settings\Владимир\Рабочий стол\BAZA\Лабы\VV-5-02\bolovincev\Crypt2\Crypt.cpp

Размер: 7288 Байт

Изменен: 18.04.2006 13:00:44

_______________ 2 Файл: _______________

С

Группа: ВВ-5-02

Тема: крипт1

Автор: Ахметов

Дополнительная информация:

Путь: C:\Documents and Settings\Владимир\Рабочий стол\BAZA\Лабы\VV-5-02\KomissandAhmetov\мис зки\1Crypt(comment)\Crypt(comment)\Crypt.cpp

Размер: 17448 Байт

Изменен: 24.03.2006 14:53:34

Очевидно, что во втором файле в совпавшем фрагменте добавлены комментарии, и судя по датам последних изменений в файлах, можно предположить, что Боловинцев списал у Ахметова.

6.4.2 Пример 2 автоматического анализа частот появления операторов

Пример 2 автоматического анализа частот появления операторов показан на рисунке 23.

Рисунок 23 Пример 2 автоматического анализа частот появления операторов

  1. Программная реализация модуля PlagiatSearch поиска плагиата методами сравнения произвольных текстов

7.1 Интерфейс модуля PlagiatSearch поиска плагиата методами сравнения произвольных текстов

7.1.1 Главное окно модуля PlagiatSearch поиска плагиата методами сравнения произвольных текстов

Модуль PlagiatSearch поиска плагиата методами сравнения произвольных текстов реализован на языке программирования – Delphi. В верхней части диалогового окна (рисунок 24) находится панель меню (1), ниже панель быстрого доступа к наиболее важным функциям меню (2), в правом верхнем углу после выполнения некоторых действий. Главное окно в средней части – это тексты сравниваемых текстовых файлов с номерами строк (3). В самом низу находятся информация с некоторыми комментариями по выполненным действиям (4). Важным элементом интерфейса является checkbox ‘Текст’ в левой верхней части окна: если флажок установлен, то сравниваемые файлы рассматриваются как произвольные тексты (рисунок 24, a) и тогда их выбор можно осуществлять либо через опцию меню “Файл” или через пиктораммы ‘1’ или ‘2’ на панели быстрого доступа (5).

Меню «Файл» позволяет выполнять основные функции работы с файлами: открыть сравниваемые файлы (6), сравнить по Левенштейну (7) и методом шинглов (8). Для исходных кодов можно также выполнить операцию токенизации (смотрите раздел 4.8). Меню «Просмотр» предлагает удобные средства перемещения по файлу («Перемещается по измененным частям сравниваемых файлов» и на указанные строки в файлах). Меню «Опции и параметры» позволяют задать параметры сравнения файлов по Левенштейну (игнорировать - Регистры и пробелы), задать весовые коэффициенты Дамерау и размер шинглов. Меню «Методы сравнения» задает один из реализованных алгоритмов вычисления дистанции Левенштейна (O(NP) [29] или O(ND) [28]).

Если флажок не установлен (как на рисунке 24, b), то сравниваемые файлы рассматриваются как тексты исходных кодов и тогда выбор возможен только из базы данных исходных кодов (8). При этом можно выбрать язык программирования (9).