ПРОГРАММНОЕ СРЕДСТВО РЕАЛИЗАЦИИ АЛГОРИТМА «ФЛОЙ-ДА–УОРШЕЛА». Итог курсового проекта. Программное средство реализации алгоритма флойдауоршела
![]()
|
3 Программная реализация3.1 Выбор и обоснование средств и среды разработкиВыбор средств реализации и среды разработки является важной частью разработки. Данный этап предполагает выбор подходящих средств реализации для реализации бизнес-логики. Средства реализации зависят от среды разработки. Среда разработки зависит от требований заказчика. Средства реализации могут варьироваться и заменяться аналогами. Для разработки была выбрана семейство операционных систем Windows, т.к. оно является самым распространенным в пользовательском сегменте [12]. Недостатками данной среды являются требования последних представителей семейства к ресурсам (Windows 10). В качестве среды разработки был выбран продукт компании Microsoft – Microsoft Visual Studio. Данная среда разработки является аналогом Jet Brains Rider для разработки приложений на языке программирования C#. Преимуществами являются возможность разработки Windows Forms предложение, среда содержит множество инструментов, которые очень хорошо работают на C#, наличие бесплатной версии, возможность хранения данных в облаке. Язык программирования C# является объектно-ориентированным и статически типизированным языком программирования. Язык C# может быть использован в различных платформах и для различных целей. C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML. Основные достоинства С#: C# является полностью объектно-ориентированным языком, где даже типы, встроенные в язык, представлены классами; C# является мощным объектным языком с возможностями наследования; C# является наследником языков C/C++, сохраняя лучшие черты этих популярных языков программирования. Общий с этими языками синтаксис, знакомые операторы языка облегчают переход программистов от С++ к C#; сохранив основные черты своего великого родителя, язык стал проще и надежнее. Простота и надежность, главным образом, связаны с тем, что на C# хотя и допускаются, но не поощряются такие опасные свойства С++ как указатели, адресация, разыменование, адресная арифметика; мощная библиотека каркаса поддерживает удобство построения различных типов приложений на C#, позволяя легко строить Web-службы, другие виды компонентов, достаточно просто сохранять и получать информацию из базы данных и других хранилищ данных; реализация, сочетающая построение надежного и эффективного кода, является немаловажным фактором, способствующим успеху C# [13]. Выделение и объединение лучших идей современных языков программирования делает язык C# не просто суммой их достоинств, а языком программирования нового поколения, поэтому я выбрала именно этот язык для написания программы. 3.2 Разработанные модулиПри разработке приложения были созданы следующие модули: – авто сохранение графа при закрытии; – нахождение кратчайшего пути; – создание графа. Диаграмма IDEF0 (рисунки 3.1 – 3.2) [8] ![]() Рисунок 3.1 – Диаграмма (A-0) ![]() Рисунок 3.2 – Диаграмма декомпозиции (A0) В модуль программы входят три основные функции: создание графа, нахождение кратчайшего пути в графе, авто сохранение. Для создания графа функция может использовать два пути: первый функция получает на вход граф который был при закрытии программа, второй – пользователь сам задает граф, выходом этой функции является полностью сформированный граф, который в дальнейшем используется для нахождения кратчайшего пути. В кратчайшем пути используется алгоритм Флойда-Уоршелла для нахождения кратчайшего пути графа, итог такой использовании функции является анимированный граф с кратчайшим путем. 3.3 Описание разработанных классовДанная программа содержит следующую структуру классов: – Form1.cs – класс содержит визуальное представление окна приложения и внутреннюю логику кнопок; – Program.cs – класс, в котором описывается запуск основного окна приложения; – Edge.cs – класс, разработанный для создания вершин и коллекции вершин, а также создания графа; – Vector.cs – класс, разработанный для создания ребер между вершинами; – MovingBall.cs – класс созданный для анимация прохождения по кратчайшему пути. Выше разработанные классы являются наследниками уже разработанных классов и по сути реализации программного средства дополняются необходимыми методами. |