Skip to content

tkhapchaev/student-assignment-analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Анализатор студенческих работ

Обзор основных сущностей

Рабочая директория

Основная директория, содержащая файлы для проверки, имеет следующую структуру:

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

За отслеживание прогресса отвечает сущность 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 %
...

Обзор appsettings.json

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, относящиеся к одному заданию, а также имеющие одиноковое расширение, сравниваются попарно. По умолчанию для сравнения содержимого файлов используется расстояние Левенштейна. Подробнее об алгоритме поиска редакционного расстояния можно почитать, например, здесь.

При использовании нескольких алгоритмов сравнения, итоговый результат, демонстрирующий сходство работ, является средним арифметическим всех результатов используемых алгоритмов.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Languages