Экспертная система железнодорожных рассписаний

Автор: Пользователь скрыл имя, 24 Октября 2012 в 14:41, курсовая работа

Описание работы

Данная курсовая работа разработана в соответствии с требованиями курсового проектирования.

В данной курсовой работе проведено исследование предметной области, определены цели создания системы и ее назначение, описана программа и разработано руководство оператору.

Содержание

Введение………………………………………………………………………….......4
Исследование предметной области ...............................................................5

1.1. Характеристика железнодорожного транспорта…………………………5

1.2. История железных дорог России.....................................................................6

1.3.Информационно–справочная система по пассажирским железнодорожным перевозкам...................................................................9

1.4. Понятие об информационно-справочных системах и их программная

реализация................................................................................................11

1.5. Базы данных и способы их представления..................................................12

2. Логическое программирование.......................................................................14

2.1. Пролог………………………………………………………………………14

2.2. Базовые понятия и термины Пролога.....................................................15

2.3. Структура программы на ТП...................................................................19

2.4. Пролог-программа ................................................................................23

3. Техническое задание .......................................................................................25

3.1. Общие сведения……………………………………………………………..25

3.2. Назначение и цели создания системы…………………………………….25

3.3. Требование к системе………………………………………………………25

4. Описание программы………… …………….....................................................26

4.1. Общие сведения……………………………………………………………..26

4.2. Функциональное назначение………………………………………………26

4.4. Входные данные…………………………………………………………….26

4.5. Выходные данные…………………………………………………………..26

5. Руководство оператора......................................................................................27

5.1. Назначение программы……………………………………………………27

5.2. Выполнение программы…………………………………………………...27

5.3. Сообщения оператору……………………………………………………..27

5.4. Порядок выполнения вызова программы......................................................30

5.5. Обращение к программе.................................................................................30

5.6. Пример работы программы……………………………………………….30

Заключение...……………………………………………………...........................31

Список литературы……………………………………………….........................32

Приложения

Приложение 1. Листинг программы ………...…………………...........................33

Работа содержит 1 файл

Экспертные (1).doc

— 282.00 Кб (Скачать)

3.3. Требования к системе

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

  1. Вывод справочной информации (номер рейса, пункт отправления, пункт назначения, тип вагона, дни выполнения рейсов, время отправления, время прибытия, цену билета);
  2. Подбор рейсов по времени отправления;
  3. Подбор рейсов по пункту назначения.

 

 

 

 

 

 

 

 

 

 

4. Описание программы

 

 

4.1. Общие сведения

 

  1. Название программы: «Информационно – справочная система железнодорожной компании».
  2. Программа реализована на языке  Пролог в среде  Turbo  Prolog  v 2.0.

4.2. Функциональное назначение

Функциональное назначение данной программы заключается в следующем:

  1. Программа предназначена для выдачи справочной информации пассажирам и диспетчерским службам по распространению билетов;
  2. Программа предназначена для формирования СПРАВКИ по определенным критериям:
  • по номеру рейса;
  • по времени отправления;
  • по месту назначения.

4.4. Входные данные

Входными данными этой программы являются: пункты меню.

4.5. Выходные данные

Выходными данными этой программы является: ответ системы на запрос пользователя. 
5. Руководство оператора

 

5.1. Назначение программы

Программа предназначена для выдачи справочной информации, а также для формирования СПРАВКИ по определенным критериям:

  1. По номеру рейса;
  2. По времени отправления;
  3. По месту назначения.

 

5.2. Выполнение программы

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

Меню данной программы состоит из четырех пунктов:

  1. Номер рейса;
  2. Время отправления;
  3. Пункт назначения;
  4. Выход.

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

5.3. Сообщения оператору

Меню данной программы состоит из четырех пунктов:

  1. Номер рейса;
  2. Время отправления;
  3. Пункт назначения;
  4. Выход.

На рисунке 1 представлено меню данной программы:

Рисунок 1. Меню программы

 

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

Рисунок 2. Справочная информация выдаваемая пользователю, после введения им номера рейса железнодорожного поезда.

На рисунке 3 представлена справочная информация выдаваемая пользователю, после введения им времени отправления железнодорожного поезда:

Рисунок 3. Справочная информация выдаваемая пользователю, после введения им времени отправления железнодорожного поезда.

 

На рисунке 4 представлена справочная информация выдаваемая пользователю, после введения им пункта назначения:

Рисунок 4. Справочная информация выдаваемая пользователю, после введения им пункта назначения

 

 

 

5.4.   Порядок выполнения вызова программы

  • файл WORK.PRO помещаем  папку Turbo Prolog v2.0;
  • запуск файла WORK.PRO;
  • в главном меню выбираем вкладку File -> Load -> WORK.PRO;
  • запускаем программу сочетанием клавиш <Ctrl> + <F9>.

 

    1. «Обращение к программе»

Запуск программы осуществляется посредством открытия файла WORK.PRO

 

    1. Пример работы программы
  • пользователь выбирает пункт меню “Номер рейса”;
  • вводит №1;
  • нажимает клавишу Enter;
  • на экране появляется справка:

 

 

Заключение

В данной курсовой работе было проведено исследование предметной области и разработана информационно – справочная система «Справочная система железнодорожной компании».

В процессе работы была создана программа, которая реализована на языке Turbo  Prolog  v 2.0. Это наиболее распространенный на сегодняшний день язык программирования, поэтому разобраться в программе не составит трудности.  Программа устойчиво работает и выполняет поставленную задачу.

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

 

 

Список литературы

  1. Адаменко А., Кучуков А. Логическое программирование и Visual Prolog. – СПб.: Питер, 2002. –544с.
  2. Братко И. Программирование на языке Пролог для искусственного Интеллекта. – СПб.:БХВ –Петербург, 2002. –624с.
  3. Доорс Дж. Пролог – язык программирования будущего. – М.: Высшая школа, 2000– 500с.
  4. Кларк К. Введение в логическое программирование на Micro Prolog. – СПб.:Питер, 2004. – 416с.
  5. Тихонов Ю. Пролог – язык логического программирования. Версия 2.3. – М.:ИНФРА–М, 2001. –640с.
  6. Хоггер  К. Введение в логическое программирование. – М.:Мир, 2000.–563с.
  7. GeoSite - Российские железные дороги [Электронный ресурс]. – Электрон, дан. – М., 2006. – Режим доступа: http://www.geosite.com.ru/pageid-429-6.html– Загл. с экрана.

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение 1. Листинг программы

 

DOMAINS

number,nspravka,number1,nspravka1,number2,nspravka2=String

DATABASE

spravka(number,nspravka)

spravka1(number1,nspravka1)

spravka2(number2,nspravka2)

 

PREDICATES

nondeterm

name_spravka(number,nspravka)

name_spravka1(number1,nspravka1)

name_spravka2(number2,nspravka2)

m(char)

menu

 

CLAUSES

spravka("1","Отправление:Москва\nНазначение:Архангельск\n\nВремя отправления: 09:35\n\nТип вагона:Купе\n\nДни выполнения рейсов:Суббота\n\nВремя прибытия: 06:24\n\nЦена: 2763").

 

spravka("2"," Отправление: Москва\nНазначение: Грозный\n\Время отправления: 14:37\n\nТип вагона:Платскарт\n\n\Дни выполнения рейсов:Понедельник-Среда\n\nВремя прибытия: 09:05\n\nЦена: 2953").   

                           

spravka("3","Отправление:Москва\nНазначение:Калининград\n\nВремя отправления:14:06\n\nТип вагона:Купе\n\nДни выполнения рейсов:Вторник\n\nВремя прибытия: 12:06\n\nЦена: 3222").

 

spravka("4","Отправление:Москва\nНазначение:Киев\n\Время отправления: 16:46\n\nТип вагона: Платскарт \n\ Дни выполнения рейсов:Воскресенье\n\nВремя прибытия: 05:10\n\nЦена: 1349").

                             

spravka("5","Отправление:Москва\nНазначение: Красноярск\n\n Время отправления: 14:50\n\nТип вагона: Купе \n\n Дни выполнения рейсов:Понедельник\n\nВремя прибытия: 05:30\n\nЦена: 9450").

            

spravka("6","Отправление: Москва \nНазначение: Сочи\n\n Время отправления: 19:29\n\nТип вагона: Платскарт \n\ Дни выполнения рейсов:Вторник\n\nВремя прибытия: 04:13\n\nЦена: 2996").

                

spravka("7","Отправление: Москва \nНазначение: Пермь\n\n Время отправления: 19:50\n\nТип вагона: Купе \n\ Дни выполнения рейсов:Вторник-Воскресенье\n\nВремя прибытия: 15:56\n\nЦена: 2236").

spravka("8","Отправление: Москва \nНазначение: Самара\n\n Время отправления: 18:10\n\nТип вагона: Платскарт \n\ Дни выполнения рейсов:Четверг\n\nВремя прибытия:09:00\n\nЦена: 2793").

 

spravka("9","Отправление: Москва \nНазначение: Томск\n\n Время отправления: 22:40\n\nТип вагона: Купе \n\n Дни выполнения рейсов:Среда\n\nВремя прибытия: 05:56\n\nЦена: 8268").

 

spravka("10","Отправление: Москва \n Назначение: Хабаровск\n\n Время отправления: 00:35\n\nТип вагона: Купе \n\n Дни выполнения рейсов:Понедельник-Четверг\n\nВремя прибытия: 02:33\n\nЦена: 8073").

 

spravka1("09:35","Номер рейса:

1\n Отправление: Москва \nНазначение:Архангельск\n\nТип вагона: Купе \n\n Дни выполнения рейсов:Суббота\n\nВремя прибытия: 06:24\n\nЦена: 2763").

 

spravka1("14:37"," Номер рейса: 2\n Отправление: Москва \nНазначение:Грозный \n\nТип вагона: Платскарт \n\n Дни выполнения рейсов:Понедельник-Среда\n\nВремя прибытия: 09:05\n\nЦена: 2953").

 

spravka1("14:06"," Номер рейса: 3\n Отправление: Москва \nНазначение:Калининград\n\nТип вагона: Купе \n\n Дни выполнения рейсов:Вторник\n\nВремя прибытия: 12:06\n\nЦена: 3222").

 

spravka1("16:46"," Номер рейса: 4\n Отправление: Москва \nНазначение:Киевn\nТип вагона: Платскарт \n\n Дни выполнения рейсов:Воскресенье\n\nВремя прибытия: 05:10\n\nЦена: 1349").

 

spravka1("14:50"," Номер рейса: 5\n Отправление: Москва \nНазначение:Красноярск\n\nТип вагона: Купе \n\n Дни выполнения рейсов:Понедельник\n\nВремя прибытия: 05:30\n\nЦена: 9450").

                   

spravka1("19:29"," Номер рейса: 6\n Отправление: Москва \nНазначение:Сочи\n\nTip Тип вагона: Платскарт \n\n Дни выполнения рейсов:Вторник\n\nВремя прибытия: 04:13\n\nЦена: 2996").

 

spravka1("19:50"," Номер рейса: 7\n Отправление: Москва \nНазначение:Пермь\n\nТип вагона: Купе \n\n Дни выполнения рейсов:Вторник-Воскресенье\n\nВремя прибытия: 15:56\n\nЦена: 2236").

 

spravka1("18:10"," Номер рейса: 8\n Отправление: Москва \nНазначение:Самара\n\nТип вагона: Платскарт \n\n Дни выполнения рейсов:Четверг\n\nВремя прибытия: 09:00\n\nЦена: 2793").

 

 

 

spravka1("22:40"," Номер рейса: 9\n Отправление: Москва \nНазначение:Томск\n\nТип вагона: Купе \n\n Дни выполнения рейсов:Среда\n\nВремя прибытия: 05:56\n\nЦена: 8268").

 

spravka1("00:35","Номер рейса: 10\n Отправление: Москва \nНазначение:Хабаровск\n\nТип вагона: Купе \n\n Дни выполнения рейсов:Понедельник-Среда\n\nВремя прибытия: 02:33\n\nЦена: 8073").

 

spravka2("Архангельск"," Номер рейса: 1\Москва-Архангельск \n\nТип вагона: Купе \n\n Дни выполнения рейсов:Суббота\n\nВремя отправления: 09:35\n\nВремя прибытия: 06:24\n\nЦена: 2763").

 

spravka2("Грозный"," Номер рейса: 2\ Москва- Грозный \n\nТип вагона: Платскарт \n\n Дни выполнения рейсов:Понедельник-Среда\n\nВремя отправления: 14:37\n\nВремя прибытия: 09:05\n\nЦена: 2953").

    

spravka2("Калининград"," Номер рейса: 3\Москва- Калининград \n\nТип вагона: Купе \n\n Дни выполнения рейсов:Вторник\n\nВремя отправления: 14:06\n\nВремя прибытия: 12:06\n\nЦена: 3222").

 

spravka2("Киев"," Номер рейса: 4\ Москва-Киев\n\nТип вагона: Платскарт \n\n Дни выполнения рейсов:Воскресенье\n\nВремя отправления: 16:46\n\nВремя прибытия: 05:10\n\nЦена: 1349").

 

spravka2("Красноярск"," Номер рейса: 5\ Москва-Краноярск\n\nТип вагона: Купе \n\n Дни выполнения рейсов:Понедельник\n\nВремя отправления: 14:50\n\nВремя прибытия: 05:30\n\nЦена: 9450").

 

spravka2("Сочи"," Номер рейса: 6\ Москва-Сочи\n\nТип вагона: Платскарт \n\n Дни выполнения рейсов:Вторник\n\nВремя отправления: 19:29\n\nВремя прибытия: 04:13\n\nЦена: 2997").

 

spravka2("Пермь'"," Номер рейса: 7\ Москва -Пермь\n\nТип вагона: Купе \n\n Дни выполнения рейсов:Вторник-Воскресенье\n\nВремя отправления: 19:50\n\nВремя прибытия: 15:56\n\nЦена: 2236").

 

spravka2("Самара"," Номер рейса: 8\ Москва-Самара\n\nТип вагона: Платскарт \n\n Дни выполнения рейсов:Четверг\n\nВремя отправления: 18:10\n\nВремя прибытия: 09:00\n\nЦена: 2793").

 

spravka2("Томск"," Номер рейса: 9\ Москва -Томск\n\nТип вагона: Купе \n\n Дни выполнения рейсов:Среда\n\nВремя отправления: 22:40\n\nВремя прибытия: 05:56\n\nЦена: 8268").

 

 

 

spravka2("Хабаровск"," Номер рейса: 10\ Москва -Хабаровск\n\nТип вагона: Купе \n\n Дни выполнения рейсов:Понедельник-Четверг\n\nВремя отправления:

00:35\n\nВремя прибытия: 02:33\n\nЦена: 8073").

 

name_spravka(Number,Spravka):-spravka(Number,Spravka),!.

name_spravka(_,"НЕТ ИНФОРМАЦИИ").

 

name_spravka1(Number1,Spravka1):-spravka1(Number1,Spravka1),!.

name_spravka1(_,"НЕТ ИНФОРМАЦИИ ").

 

name_spravka2(Number2,Spravka2):-spravka2(Number2,Spravka2),!.

name_spravka2(_,"НЕТ ИНФОРМАЦИИ ").

 

menu:-

clearwindow,

write("1-Номер рейса"),nl,

write("2-Время отправления "),nl,

write("3-Пункт назначения"),nl,

write("0-Выйти"),

readchar(C),

m(C).

 

m('1'):-!,

clearwindow,

write("Введите номер рейса"),nl,

readln(Number),

name_spravka(Number,Spravka),

write("     SPRAVKA\n",Spravka),nl,

readchar(_),!,

menu.

 

m('2'):-!,

clearwindow,

write("Введите номер отправления"),nl,

readln(Number1),

name_spravka1(Number1,Spravka1),

write("     SPRAVKA\n",Spravka1),nl,

readchar(_),

menu.

 

m('3'):-!,

clearwindow,

write("Введите пункт назначения"),nl,

readln(Number2),

name_spravka2(Number2,Spravka2),

Информация о работе Экспертная система железнодорожных рассписаний