Основная директория, содержащая файлы для проверки, имеет следующую структуру:
Root directory/
- Group name (например - "M3109")
- Author name (например - "Ivan Ivanov")
- Task name (например - "Редактор метаинформации mp3-файла")
- Submission date (формат: yyyyMMddHHmmss, например - "20211027182350")
...
* Файлы с кодом - именно они будут участвовать в проверке *
...
- Submission date
- ...
- Task name
- ...
- Author name
- ...
- Group name
- ...
За отслеживание прогресса отвечает сущность ProgressTracker
. Для изменения шага отслеживания обновите константу step
в классе Executor
. По умолчанию шаг равен 5.
...
Текущий прогресс: 80 %
Текущий прогресс: 85 %
Текущий прогресс: 90 %
Текущий прогресс: 90 %
Текущий прогресс: 95 %
Текущий прогресс: 95 %
Текущий прогресс: 95 %
Текущий прогресс: 100 %
Пример результатов работы программы:
...
Задание "4. INI файл": сравнение Steven Ford (M3238) и Jason Carlson (M3239), файлы Program.cs и Program.cs соответственно. Процент схожести: 25,82 %
Задание "4. INI файл": сравнение Susan Lopez (M3238) и Jason Carlson (M3239), файлы Program.cs и IniFile.cs соответственно. Процент схожести: 41,04 %
Задание "4. INI файл": сравнение Susan Lopez (M3238) и Jason Carlson (M3239), файлы Program.cs и IniSection.cs соответственно. Процент схожести: 8,22 %
Задание "4. INI файл": сравнение Susan Lopez (M3238) и Jason Carlson (M3239), файлы Program.cs и Program.cs соответственно. Процент схожести: 12,05 %
Задание "5. Магазин": сравнение Cheryl Morris (M3238) и Greg Chavez (M3238), файлы Structs.cs и CSVSevice.cs соответственно. Процент схожести: 7,78 %
Задание "5. Магазин": сравнение Cheryl Morris (M3238) и Greg Chavez (M3238), файлы Structs.cs и DbService.cs соответственно. Процент схожести: 56,38 %
Задание "5. Магазин": сравнение Cheryl Morris (M3238) и Greg Chavez (M3238), файлы Structs.cs и IService.cs соответственно. Процент схожести: 30,24 %
Задание "5. Магазин": сравнение Cheryl Morris (M3238) и Greg Chavez (M3238), файлы Structs.cs и Program.cs соответственно. Процент схожести: 29,93 %
Задание "5. Магазин": сравнение Cheryl Morris (M3238) и James Young (M3238), файлы Structs.cs и CartCostPair.cs соответственно. Процент схожести: 33,61 %
Задание "5. Магазин": сравнение Cheryl Morris (M3238) и James Young (M3238), файлы Structs.cs и CsvProvider.cs соответственно. Процент схожести: 11,23 %
Задание "5. Магазин": сравнение Cheryl Morris (M3238) и James Young (M3238), файлы Structs.cs и DbProvider.cs соответственно. Процент схожести: 11,02 %
...
Input directory path
- путь к основной директории.
Comparison algorithms
- список алгоритмов для сравнения схожести файлов.
Report : Type
- тип представления результатов. Доступны: CMD (вывод результатов в консоль), TXT (вывод результатов в текстовый файл), JSON (сериализация результатов в json-файл).
Report : Path
- путь к файлу с результатами.
Report : Name
- имя файла с результатами.
File filters : Extension whitelist
- расширения файлов, которые будут участвовать в проверке. Если список пуст, в сравнении участвуют все файлы, независимо от расширения.
File filters : Directory blacklist
- директории, которые будут игнорироваться при проверке.
Author filters : Whitelist
- "белый список" авторов. В сравнении участвуют только работы авторов, указанных в этом списке. Если список пуст, то в сравнении участвуют все авторы.
Author filters : Blacklist
- "чёрный список" авторов. В сравнении полностью игнорируются авторы, находящиеся в этом списке.
ВНИМАНИЕ: appsettings.json должен находится в каталоге с исполняемыми файлами (...\bin\appsettings.json). Переименование данного конфигурационного файла не допускается.
Все файлы, которые удовлетворяют условиям, описанным в appsettings.json
, относящиеся к одному заданию, а также имеющие одиноковое расширение, сравниваются попарно. По умолчанию для сравнения содержимого файлов используется расстояние Левенштейна. Подробнее об алгоритме поиска редакционного расстояния можно почитать, например, здесь.
При использовании нескольких алгоритмов сравнения, итоговый результат, демонстрирующий сходство работ, является средним арифметическим всех результатов используемых алгоритмов.