Пятница, 03.05.2024, 12:55
Сайт Курсантов и Студентов
Приветствую Вас Гость | RSS
Главная Каталог файлов Регистрация Вход
Друзья Сайта

Меню сайта

Категории раздела
Все для информатики [17]
Программирование [5]

Мини-чат

Наш опрос
А вы даёте взятки преподавателям?
Всего ответов: 427

Статистика
Рейтинг@Mail.ru
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Файлы » Информатика/Программирование » Программирование

Курсовая работа по программированию. Моделирование поведения охотник - жертва. Охота подводных лодок за кораблями.
[ Скачать с сервера (580.1 Kb) ] 21.01.2013, 23:44


______________________________________________________


В скачиваемом архиве присутствуют: Сама программа, пояснительная записка, схема-алгоритм(для DiaDiagramm).

Внимание!!! Для корректной работы программы требуется наличие в системе диска С:\ . Если диска с такой буквой в системе нет, то отредактируйте файл "SourseFilesPaths", так чтобы адреса в этом файле содержали букву любого диска присутствующего в вашей системе.

______________________________________________________


Курсовая работа по дисциплине
«Программирование»

 

Моделирование поведения охотник – жертва.


Содержание

  • Microsoft Visual Basic
  • Задание
  • Интерфейс
  • Логика программs
  • Типовое решение задачи сближения с целью за кратчайшее время.
  • Код программы
  • Список литературы
Microsoft Visual Basic

Microsoft Visual Basic — средство разработки программного обеспечения, разрабатываемое корпорацией Microsoft и включающее язык программирования и среду разработки. Язык Visual Basic унаследовал дух, стиль и отчасти синтаксис своего предка — языка Бейсик, у которого есть немало диалектов. В то же время Visual Basic сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. Среда разработки VB включает инструменты для визуального конструирования пользовательского интерфейса.

Задание

Разработать  на языке высокого уровня Visual Basic программу моделирующую поведение типа: «Охотник - жертва». В качестве логики программы использовать модель поиска подводной лодкой(охотником) кораблей(жертв) для атаки и уничтожения. В программу должен быть включен расчет подводной лодкой наивыгоднейших условий преследования цели и возможности такого преследования, как такового.

Интерфейс

Интерфейс программы представляет собой окно (рис. 1) содержащее в себе: горизонтальное меню, область визуализации модели поведения, панель корабль, панель подводная лодка, статус панель кораблей, статус панель подводных лодок и главную статус панель.
Горизонтальное меню,  в свою очередь. Содержит подменю: «файл, панели, справка». В подменю «файл» (рис. 3) можно выбрать путь для файла содержащего данные о кораблях и подводных лодок, для совершения выбора появится окно для поиска файлов (рис. 2).



В подменю «Панели»(рис. 3) можно настроить видимость панелей программы. Если снять галочку соответствующей панели, то она исчезнет и наоборот. При нажатии на «Справка» появится окно с информацией о прогрмме (Рис 4). В подменю «Панели»(рис. 3) можно настроить видимость панелей программы. Если снять галочку соответствующей панели, то она исчезнет и наоборот. При нажатии на «Справка» появится окно с информацией о прогрмме (Рис 4).



Само окно программы разделено на две области: область визуализации (рис. 5)  и область панелей программы (рис. 6)  . В Области визуализации отображается процесс моделирования поведения кораблей и подводных лодок. Корабли отмечаются синим цветом, подводные лодки красным цветом и дальность обнаружения подводных лодок отмечается зеленым цветом, также отмечаются номера кораблей и подводных лодок.
На панели «Корабль» находятся следующие элементы: кнопки выбора корабля, текстовые поля отображающие номер, курс и скорость корабля, кнопки запуска и остановки процесса моделирования. На панели «Подводная лодка» располагаются: кнопки выбора подводной лодки и поля отображающие информацию о ней. В панелях «Статус корабля» и «Статус Подводной лодки»  отображаются все события  произошедшие с кораблями и подводными лодками соответственно. Главная статус панель же является суммарной для двух предыдущих панелей.

Логика программы

В логику программы включены три процесса (рис.7,8,9). Общий процесс работы программы, логический процесс действий судов, логический процесс действий подводных лодок. Словесно взаимодействие вышеупомянутых логических процессов можно описать так: программа извлекает данные из файлов, содержащих информацию о всех подводных лодках и кораблях из своей корневой папки, либо папки указанной пользователем (также необходимо упомянуть что количество подводных лодок и кораблей не ограниченно, что усложняет программу), пользователь запускает процесс моделирования, подводные лодки уничтожают все корабли, пользователь останавливает процесс моделирования и завершает программу либо запускает другой процесс моделирования или повторяет его.





 Типовое решение задачи сближения с целью за кратчайшее время.

Решением данной задачи будет определение курса и скорости атаки для атакующего объекта, в нашем случае подводная лодка(ПЛ) атакует, а корабль(К) является ее жертвой.

Алгоритм решения:
  1. Нанести точки положения  ПЛ и К.
  2. Начертить вектор скорости корабля (Vк)
  3. Начертить окружность радиусом равным скорости (КМВпл – Круг маневренных возможностей подводной лодки), с которой ПЛ может атаковать так, чтобы ее центром являлся конец вектора Vк.
  4. Из точки ПЛ провести прямую до точки К.
  5. Из точки пересечения окружности и отрезка ПЛ-К провести вектор скорости атаки подводной лодки Vатаки. Направление этого вектора будет являться курсом атаки. Вектор проведенный из точки пересечения окружности с отрезком ПЛ-К в точку К – будет являться вектором относительной скорости.

Данный алгоритм решения задачи был применен в работе  программы. Критерием возможности преследования цели подводной лодкой, при использовании только  максимальной скорости, является пересечение КМВпл с отрезком ПЛ – К. Если такого пересчения нет, то подводная лодка проверяет возможность атаки цели с использованием форсажа (режим движения подводной лодки значительно превышающий по скорости максимальную скорость ПЛ). Для использования форсажа подводная лодка проверяет хватит ли скорости форсажа для того, чтобы догнать цель тем же алгоритмом, который применялся ранее. Но ПЛ не может двигаться с использованием форсажа бесконечно долго, поэтому подводная лодка также проверяет хватит ли ей времени с которым она может следовать в режиме форсажа для того, чтобы догнать цель.

Если ПЛ приняла решение догнать и уничтожить цель, то она проверяет достигла ли она дистанции, на которой возможно её торпедировать. Как только такая дистанция достигнута, то выпускается торпеда, которая имеет значительно большую скорость чем корабль. Торпеда уничтожает корабль, а подводная лодка продолжает патрулирование района в поиске следующей цели.


Категория: Программирование | Добавил: vel-master
Просмотров: 2020 | Загрузок: 464 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Copyright MyCorp © 2024