Скачиваний:
0
Добавлен:
26.05.2026
Размер:
999.99 Кб
Скачать

1 Программный комплекс «алгоритм кнута–морриса–пратта»

1.1 Описание предметной области

Алгоритм Кнута–Морриса–Пратта (КМП) – классический алгоритм поиска подстроки в строке, основанный на предварительном вычислении префикс-функции для шаблона поиска. В отличие от наивного алгоритма с временной сложностью  , алгоритм КМП обеспечивает линейную сложность  , где   – длина исходной строки, а   – длина искомой подстроки. Это делает его эффективным инструментом для обработки больших текстовых массивов [2].

Разработанная программа «КМП-ПОИСК» предназначена для демонстрации и практического применения алгоритма. Основная целевая аудитория – студенты, преподаватели и исследователи, работающие с алгоритмами обработки строк. Программа функционирует в однопользовательском режиме под управлением операционной системы Windows 10/11 (64-bit) и реализована в виде Windows Forms-приложения на языке C# с использованием платформы .NET 6.0 [3, 4].

Юридически и организационно разработка выполнена в рамках курсовой работы по дисциплине «Проектирование защищённых телекоммуникационных систем» кафедры КИБЭВС ТУСУР, студентом группы 731-2 Гельгинбергом Алексеем Владиславовичем, под руководством преподавателя Деркач Е.А.

Основные функции программы:

  • ввод исходной строки и подстроки через графический интерфейс;

  • выполнение поиска методом КМП с выделением найденной подстроки цветом;

  • вывод позиции первого вхождения или сообщения об отсутствии совпадений;

  • регистрация и авторизация пользователей с хранением учётных данных в БД;

  • очистка полей ввода и завершение сеанса.

1.2 Обоснование выбранных технологий

1.2.1 Выбор языка программирования

Разработка программы осуществлялась на языке C#. C# является строго типизированным объектно-ориентированным языком, что снижает вероятность ошибок в сложном коде и упрощает сопровождение. Также, язык обладает встроенной автоматической сборкой мусора, что исключает утечки памяти, типичные для языков без управляемой памяти [3].

В тоже время богатая стандартная библиотека .NET предоставляет готовые средства для работы со строками, коллекциями, шифрованием и базами данных [4].

1.2.2 Выбор фреймворка и среды разработки

В качестве GUI-фреймворка выбран Windows Forms (.NET 6.0). Windows Forms предоставляет простой и привычный инструментарий для создания настольных приложений под Windows, что соответствует требованиям ТЗ. Платформа .NET 6.0 является кроссплатформенной LTS-версией с длительным сроком поддержки. Существенную роль сыграл имеющийся опыт работы со средой разработки Visual Studio позволил сократить время на освоение инструментов и сосредоточиться на реализации алгоритма [4].

1.2.3 Выбор субд

В качестве встраиваемой системы управления базами данных выбран SQLite. Во-первых, SQLite не требует установки отдельного серверного компонента – база данных хранится в одном файле, что упрощает развёртывание программы. Во-вторых, SQLite полностью интегрируется с .NET через официальный пакет Microsoft.Data.Sqlite. В-третьих, для однопользовательского приложения с небольшим объёмом данных: учётные записи, история поиска SQLite является оптимальным выбором по соотношению простоты и функциональности [5].