Автоматизированная система управления таксомоторного парка

Анализ деятельности таксомоторного парка. Выбор жизненного цикла автоматизированной информационной системы. Построение структуры базы данных системы и разработка понятного интерфейса. Характеристика процессов, протекающих в автоматизированных системах.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 06.06.2013
Размер файла 1,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

final String formattedAddress = location.getString(«formatted_address»);

System.out.println(formattedAddress);// итоговыйадрес

Данные получение методами, описанными выше используются в методе вычисления длины маршрута между точками.

GoogleDirections API - это служба, которая вычисляет маршруты между пунктами с помощью HTTP-запроса. В службе Directions пункты отправления и назначения могут указываться в виде текстовых строк (например, «Чикаго, Иллинойс» или «Дарвин, Новый Южный Уэльс, Австралия») либо как координаты широты и долготы. Служба Directions API может возвращать составные маршруты в виде последовательности путевых точек.

Реализация метода представлена ниже:

finalStringbaseUrl = «http://maps.googleapis.com/maps/api/directions/json»;// путь к Geocoding API по

// HTTP

final Map<String, String>params = Maps.newHashMap();

params.put(«sensor», «false»);// указывает, исходит ли запрос на геокодирование от устройства с датчиком

params.put(«language», «ru»);// язык данные на котором мы хотим получить

params.put(«mode», «walking»);// способперемещения, можетбыть driving, walking, bicycling

params.put(«origin», «Россия, Москва, улица Поклонная, 12»);// адрес или текстовое значение широты и

// отправного пункта маршрута

params.put(«destination», «Россия, Москва, станция метро Парк Победы»);// адрес или текстовое значение широты и// долготы

// долготы конечного пункта маршрута

finalStringurl = baseUrl + '?' + encodeParams(params);// генерируем путь с параметрами

System.out.println(url); // Можем проверить что вернет этот путь в браузере

finalJSONObjectresponse = JsonReader.read(url);// делаем запрос к вебсервису и получаем от него ответ

// как правило наиболее подходящий ответ первый и данные о координатах можно получить по пути

// //results[0]/geometry/location/lngи //results[0]/geometry/location/lat

JSONObject location = response.getJSONArray(«routes»).getJSONObject(0);

location = location.getJSONArray(«legs»).getJSONObject(0);

final String distance = location.getJSONObject(«distance»).getString(«text»);

final String duration = location.getJSONObject(«duration»).getString(«text»);

System.out.println(distance + «\n» + duration);

Данные полученные в результате работы данного метода, также используются для нахождения ближайшего к месту посадки клиента водителя. Текущие координаты водителя передаются при помощи приложения, разработанного для операционной системы Android 2.2. Для работы приложения нужно активное соединение с Интернет. В начале смены водитель включает данное приложение. Приложение каждые 30 секунд связывается с сервером и передает ему свои координаты.

4. Инструкция по работе с приложением

4.1 Инструкция пользователя «Диспетчер»

Для входа в систему необходимо:

-Выберите режим работы «Диспетчер»;

-Введите свой индивидуальный логин и пароль и нажмите «Вход». Окно входа в систему отображено на рисунке 8.

Рисунок 8 - Окно входа в систему

Появиться окно, которое называется «Рабочее место диспетчера», в этом окне предстоит работать. На этом окне расположены кнопки: «Новый заказ», «Заказ выполнен», «Заказ отмен», «Ошибка в статусе» - для работы с заказами. «Фиксировать» и «Удалить» - для регистрации водителей. «Завершить смену» для выхода и печати отчетов. Пример на рисунке 9.

Для начала необходимо добавить водителей прибывших на смену, для этого необходимо:

- В нижней части формы находиться таблица, в которой фиксируются водители на смене. Нажмите кнопку «Фиксировать», появится окно с списком всех водителей работающих в данном таксопарке;

- Выберите водителя и нажмите «Принять»;

- Водитель появиться в той таблице. После этого можно регистрировать заказы.

Рисунок 9 - Рабочее место диспетчера

Чтобы принять заказ нажмите «Новый заказ», появиться карточка заказа, заполните ее и нажмите «Принять». Заказ отобразиться в таблице заказов. Пример добавления нового заказа продемонстрирован на рисунке 10.

Если заказ выполнен, нажмите «Заказ выполнен», статус заказа изменится на «Выполнен», а строка заказа подсветится зеленым цветом.

Если заказ отменен, нажмите «Заказ отменен», статус заказа изменится на «отмене», а строка заказа подсветится красным цветом.

Если вы по ошибке изменили, статус заказа нажмите на «Ошибка в статусе» и статус вернется по умолчанию.

По кнопке «завершить смену» появится диалоговое окно с вопросом «Вы действительно заканчиваете смену?». При нажатии «Да» откроется форма с тремя кнопками.

При нажатии «Отмена» Вы вернетесь на форму «Рабочее место диспетчера».

При нажатии на «Генерировать в Word», отчет за смену отправиться в Word и кнопка «Выход» станет активной, и вы сможете выйти из программы.

Рисунок 10 - Окно добавления нового заказа

В разделе «Помощь» есть пункт «Карта». При нажатии на данную кнопку появится вспомогательная утилита с картой и двумя полями ввода: «Пункт отправления» и «Пункт назначения». Диспетчер вводит данные заказа в поля ввода и утилита просчитает маршрут и выведет примерную стоимость заказа.

4.2 Инструкция пользователя «Администратор»

Для добавления водителя необходимо:

- Выбрать вкладку «Водители»;

- Нажать кнопку «Добавить», появится окно с реквизитами водителя. Пример представлен на рисунке 11.

Заполните эту карточку и нажмите «Принять».

Рисунок 11 - Окно добавления нового водителя

Этот водитель сразу отобразиться в таблице на вкладке «Водители».

Для добавления диспетчера необходимо:

- Выбрать вкладку «Диспетчеры»;

- Нажать кнопку «Добавить», появится окно с реквизитами диспетчера. Пример на рисунке 12;

- Заполните эту карточку и нажмите «Принять».

Этот диспетчер сразу отобразиться в таблице на вкладке «Диспетчеры».

Рисунок 12 - Окно добавления нового диспетчера

Для печати отчетов необходимо выполнить следующее.

Для сводного отчета по работе диспетчеров:

- Зайти «Отчеты»- «Отчет по работе диспетчеров», появится окно;

- На форме выберите начало и конец временного промежутка, за который необходимо предоставить сведения;

- Нажмите кнопку «Генерировать в Word»;

- После этого можно распечатать средствами Word. Пример окна составления отчета на рисунке 13.

Рисунок 13 - Форма отчета по диспетчерам

Для сводного отчета по работе водителя:

- Зайти «Отчеты»-«Отчет по работе водителя», появится окно;

- На окне выберите начало и конец временного промежутка, за который необходимо предоставить сведения, а также фамилию водителя;

- Нажмите кнопку «Печать».

После этого можно распечатать отчет средствами Word. Пример отображен на рисунке 14.

Рисунок 14 - Форма отчета по водителю

Для формирования «Чёрного списка»:

- Зайти «Отчеты» - «Черный список», появится форма;

- Нажмите кнопку «Генерировать в Word»;

- После этого можно распечатать средствами Word.

Заключение

Данная программа предназначена для автоматизации рабочего места диспетчера такси, с целью уменьшить долю ручного труда и количества бумажных документов и наглядно демонстрировать занятость водителей.

Программный продукт «Автоматизированная система управления таксомоторного парка» решает следующие задачи:

- Разделение рабочих мест на два режима: «Администратор» и «Диспетчер»;

- Вход по логину и паролю в двух режимах;

- Заполнение карточки водителя и диспетчера, только в режиме администратора;

- Печать сводных отчетов по диспетчерам, по водителю, формирование «черного списка», только в режиме администратора;

- Заполнение карточки заказа, только в режиме диспетчера;

- Изменение статуса заказа, только в режиме диспетчера;

- Регистрация прибывших на смену водителей, только в режиме диспетчера;

- Печать отчета за смену, только в режиме диспетчера;

Диспетчер и администратор должны ответственно относится к заполнению данных: очень большую роль играет человеческий фактор, при халатном ведении базы данных заказов и введение некорректных данных могут забить базу названиями не существующих улиц, некорректными именами водителей и диспетчеров.

Список использованных источников

1 Балуев, Д. Секреты приложений Google / Д. Балуев. - Альпина, 2010. - 287 с.

2 Давыдов, С. IntelliJ IDEA. Профессиональное программирование на Java / С. Давыдов. - BHV, 2005. - 800 с.

3 Лафоре, Р. Структуры данных и алгоритмы в Java / Р. Лафоре. - Питер, 2012. - 704 с.

4 Милк, Б. Программирование под Android / Б. Милк. - СПб.: Санкт-Петербург, 2012. - 496 с.

5 Мезенцев, К. Автоматизированные информационные системы / К. Мезенцев. - Academia, 2010. - 176 с

6 Николаев, А. Автоматизированные системы управления на автомобильном транспорте / А. Николаев. - Academia, 2012. - 288 с.

7 Селько, Д. SQL для профессионалов. Программирование / Д. Селько. - Лори, 2009. - 442 с.

8 Соломон, М. Oracle. Программирование на языке Java / М. Соломон. - Лори, 2010. - 512 с.

9 Флэнаган, Д. Java в примерах. Справочник/ Д. Флэнаган. - Символ, 2004. - 664 с.

10 Флэнаган, Д. Java. Справочник / Д. Флэнаган. - Символ, 2012. - 1040с.

11 Хорстманн, К. Java 2. Том II. Тонкости программирования. Библиотека профессионала / К. Хорстманн. - Вильямс, 2012. - 992 с.

Приложение. Листинг класса JsonReader.java

publicclassJsonReader {

privatestaticStringreadAll(finalReaderrd) throws IOException {

finalStringBuildersb = new StringBuilder();

intcp;

while ((cp = rd.read()) != -1) {

sb.append((char) cp);

}

returnsb.toString();

}

public static JSONObject read(

final String url) throws IOException, JSONException {

finalInputStream is = new URL(url).openStream();

try {

finalBufferedReaderrd =

newBufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));

final String jsonText = readAll(rd);

finalJSONObjectjson = new JSONObject(jsonText);

returnjson;

} finally {

is.close();

}

}

private static String encodeParams(final Map<String, String>params) {

final String paramsUrl = Joiner.on('&').join(// получаемзначениевида key1=value1&key2=value2...

Iterables.transform(params.entrySet(), new Function<Entry<String, String>, String>() {

@Override

public String apply(final Entry<String, String> input) {

try {

finalStringBuffer buffer = new StringBuffer();

buffer.append(input.getKey());

// получаемзначениевидаkey=value

buffer.append('=');

buffer.append(URLEncoder.encode(input.getValue(), "utf-8"));

// кодируем строку в соответствии со стандартом HTML 4.01

returnbuffer.toString();

}

catch (final UnsupportedEncodingException e) {

throw new RuntimeException(e);

}

}

}));

returnparamsUrl;}}

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.