Некоторые особенности поэтапного алгоритма программы для проверки дипломных работ на нормоконтроль
Самойлова Ирина Алексеевна, магистр, старший преподаватель
Карагандинский государственный университет имени Е. А. Букетова
Система программирования Visual Basic for Applications позволила автоматизировать процесс проверки дипломных работ на соответствие требований, предъявляемых к оформлению выпускных работ студентов Карагандинского государственного университета имени академика Е. А. Букетова [1]. Программа «Нормоконтроль» запускается при помощи макроса Start, сохраненного в документе Нормоконтроль.doc, то есть его можно вызывать лишь из этого документа.
Приложениe «Нормоконтроль» обеспечивает выполнение следующих функций: проверка документа Word; занесение сведений в журнал Нормоконтроль (указывается путь к файлу, дата и время проверки, количество ошибок); получение файла с подробным описанием ошибок; получение файла «Нормоконтроль» с проставленными отметками на соответствие (+/-).
Сложность реализации данной работы заключается в том, что предъявляемые требования основываются на чисто визуальных показателях, не учитывая ни среду набора документа, ни ее программную структуру. Разработка программы, универсальной для всех операционных систем и видов текстовых редакторов, является чрезвычайно сложной задачей, поэтому разработанная программа проверяет только документы, созданные в среде MS Word под Windows [2].
Особенности поэтапного алгоритма работы программы.
Перед началом собственно проверки требований, был разработан алгоритм сохранения результатов каждой проверки. Проверять одно из требований и тут же выводить результат куда-либо не очень хорошая идея. Поэтому необходимо формирование минимум трех документов, в которых нужно вывести результат проверки: журнал Нормоконтроль, файл с описанием ошибок для студента, файл «Нормоконтроль» с проставленными отметками.
Занесение результатов параллельно в несколько документов требует их одновременного открытия, постоянного переключения и позиционирования в них. Это, конечно, усложняет программу и снижает как скорость работы, так и читаемость ее кода.
Для упрощения и читабильности программы разработан механизм параллельного логирования результатов проверки. Кроме того, нужно учесть тот факт, что сами требования могут со временем меняться. Так как количество требований не очень велико, то они легко организуются при помощи именованных констант, сведенных в один модуль. Небольшое количество требований и также тот факт, что интерес представляет лишь отклонение от них, позволяют обойтись без подключения специальных баз данных.
Для хранения ошибочных результатов просто создан глобальный двухмерный массив и принято как предположение следующее: наличие огромного числа ошибок в документе связано с повторяемостью одинаковых ошибок. То есть каждая ошибка в отдельности уже не интересна, поэтому при нахождении 100 первых ошибок, проверка документа прекращается, формируется список первых ошибок, а работа студента должна быть исправлена до повторной проверки.
В программе предусмотрено, что проверки могут быть не статичными и меняться со временем. Поэтому все критерии проверок вынесены в отдельный блок констант — модуль Constants. Здесь собраны все требования и глобальные настройки программы в виде констант или глобальных переменных. И при необходимости большинство критериев проверок можно быстро перенастроить, не изменяя кода программы.
Все проверки требований к документу собраны в процедуре СheckStandards. Из нее последовательно вызываются процедуры, отвечающие за проверку отдельных требований. В первую очередь проверяется требование к нумерациии в документе. Оно заключается в следующем: обложка, титульный лист и задание на дипломную работу не нумеруются, но включаются в общую нумерацию страниц; содержание и первый лист введения не нумеруются, но также входят в общую нумерацию страниц; нумерация страниц начинается со второго листа введения с номера 7 и далее по тексту.
Сложность проверки состоит в том, что требования к нумерации дипломной работы не привязаны к стандартным алгоритмам MS Word. Самый простой способ реализации, визуально отвечающий требованию, — это разбивка документа на две секции (раздела). Более сложные варианты с разбивкой на большее количество секции нумерации, а также вариант с набором номеров страниц вручную, программа не рассматривает. В результате проверяющему, необходимо визуально убедиться, что найденная программой ошибка нумерации действительно существует.
Большинство проверок связаны с оглавлением дипломной работы. На основании оглавления определяется количество глав, их размер, а также размеры основных частей документа. Основная проблема работы с оглавлением заключается в способах его построения. При ручном и автоматическом создании оглавления получается различный программный объект. И если автоматическое оглавление гарантирует как минимум наличие раздела в тексте, описанного в оглавлении и совпадение наименований, то для ручного оглавления вынуждены искать раздел по совпадению наименования. На основе обязательных наименований, таких как «Bведение», «Список использованной литературы», «Приложения», оценивается как наличие самого содержания, так и объем работы и алгоритм проверок. Для каждого пункта оглавления ищется соответствующая глава в документе. Совпадение пункта оглавления и наименование раздела должно быть полным. Также проверяется наличие точки в конце наименования части. На основании начала текущего раздела и начала следующего за ним нового раздела вычисляется объем главы. Для каждого раздела также проверяется, что он начинается с новой страницы и после наименования пропущены две строки. Здесь же проверяется наличие в работе приложений и соответствие нормам количества основных глав. Все возможные отклонения от норм логируются как ошибки.
Процедура СheckMarginsDoc() выполняет проверку всех отступов (полей) на страницах в документе согласно заданным условиям. Ошибки по каждому полю сохраняются и выводятся отдельно.
Размер и название шрифта, а также отступ первой строки проверяется по всему документу циклом по всем параграфам в процедуре CheckParagraph(). Из этого цикла исключена проверка приложений, так как шрифт приложений может отличаться от Times New Roman. Проверка по параграфам позволяет не просто обнаружить отклонение от требований, но и указать место (или множество) такой ошибки. Кроме того, проверка по параграфам позволяет избежать ошибки приложения MS Word, когда при выделении всего текста приложение не всегда верно определяет наименование и размер шрифта в пустых строках.
Так как программа написана в виде отдельных процедур, то порядок проверки норм (требований) достаточно быстро можно изменить, исключить какие-то нормы из проверки или дополнить новыми блоками проверок.
Литература:
1. Методические указания по выполнению дипломной работы (проекта) / Сост. С. Т. Каргин, С. В. Гаголина, С. А. Смаилова, К. Ж. Садвокасова, Н. К. Сыздыкова. — Караганда Изд-во КарГУ, 2009. — 25 с.
2. Самойлова И. А. Сложность реализации автоматизированной проверки дипломных работ на соответствие техническим нормам // Молодой ученый. — 2016. — № 15. — С. 149–152.