Similar presentations:
Разработка программных средств обеспечения грузоперевозок
1. « Разработка программных средств обеспечения грузоперевозок »
Выполнил: студент группы 241 Токарь В.В.Руководитель проекта: Чугуев М.В.
Консультант от кафедры: доцент кафедры ЭВМ, Костров Б.В.
Целью дипломного проекта является разработка программных средств
обеспечения
эффективности
грузоперевозок.
В
рамках
проектирования
предполагается
разработать
эффективные
механизмы управления логистикой транспортного сообщения и
организацией технически, экономически обоснованных контактов
между хранящимися в базе данных локациями.
Средства разработки: Microsoft Visual Studio 2005, Microsoft SQL
Server 2005, .Net Framework 2.0, язык программирования C#
2. Постановка задачи
Требования к БД:Быстрое восстановление
Защита информации
Интеграция компонентов
.Net Framework
Локации
БД
ние
и
маци новле
б
нфор
и
о
е
а
и
н
в л ен
рос
Обно
Зап
Перевозимые ресурсы
Маршруты перевозок
Данные предметной
области
Запрос:
Локация – источник,
Локация – получатель,
Тип ресурса
Приложение
дружественный интерфейс пользователя
возможность добавление в базу информации о маршрутах
сохранение и просмотр вычисленных маршрутов
возможность обновления локаций через Интернет
Реализация
часть логики должна быть реализована в хранимых процедурах во избежание зацикливаний
должен быть скрипт для создания структуры БД и заполнения ее данными
вычисление маршрута перевозки, оптимального по стоимости
Результат:
Пути маршрута,
Стоимость перевозки
Вз
а
им
од
ей
ст
ви
е,
За
пр
о
сы
Пользователи
3. Объектная модель проекта
Характеризуются свойствами: город,страна, широта, долгота, население...
2
Локация
0..*
0..*
Маршрут
сообщения
1..*
0..*
Ресурс
1..*
Путь
Пути в маршруте – отдельные
наименьшие единицы связи между
локациями. Один маршрут –
упорядоченная последовательность
неповторяющихся путей между
локациями на пути от локации –
отправителя к локации – получателю.
4. Схема данных
5. Архитектура системы
Рассчитываем возможныемаршруты –рекурсивная процедура
determineRoutes(List<RoutePart>
routeParts, List<Route> routes, int
fromLocationId, int toLocationId,
List<RoutePart> currentRouteParts)
resourceType - перевозимый ресурс;
fromLocationId – локация, откуда перевозим;
toLocationId – локация, куда перевозим
Начало
routeParts = retrieveRouteParts(resourceType) получаем список путей, по которым возможна
транспортировка данного вида ресурса resourceType
да
Вспомогательные
таблицы БД
нет
currentRouteParts == null
localParts = new List<RoutePart>
(currentRouteParts)
localParts = new
List<RoutePart>()
j=0
нет
j< routePart.Count
да
RoutePart = routeParts[j]
да
localParts.Add(part)
нет
(part.to != fromLocationId) && нет
(part.from == fromLocationId) &&
(!localParts.Contains(part))
да
part.to ==
toLocationId
i=0
Рекурсивный вызов:
determineRoutes(route
Parts, routes, part.to,
toLocationId,
localParts);
нет
i < localParts.Count - 1
да
да
(localParts[i].from ==
localParts[i + 1].from)
localParts.RemoveAt(i)
нет
i++
routes.Add(new
Route(localParts));
j++
saveRoutes(routes) – сохраняем
маршруты во вспомогательные таблицы
БД: tmpRoutes, tmpRouteParts
calcRoutes(resourceType, amount) - расчет стоимости маршрутов,
хранящихся в БД. Осуществляется хранимой процедурой CalcRoutes.
Запись в БД самого «дешевого» маршрута, как оптимального между
fromLocationId и toLocationId по ресурсу resourceType
Конец
Алгоритм поиска оптимального пути
между локациями
6. Пользовательский интерфейс и результаты эксперимента
Список локаций. Реализация обновленияданных с веб-сервиса
Транспортные пути. Возможно назначение
нескольких типов ресурсов
7. Экономическая часть
Смета затрат на разработкуЗависимость прибыли от
количества проданных копий