Экспертная система железнодорожных рассписаний
Курсовая работа, 24 Октября 2012, автор: пользователь скрыл имя
Описание работы
Данная курсовая работа разработана в соответствии с требованиями курсового проектирования.
В данной курсовой работе проведено исследование предметной области, определены цели создания системы и ее назначение, описана программа и разработано руководство оператору.
Содержание
Введение………………………………………………………………………….......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. Требования к системе
Требуется разработать программу, обеспечивающую выполнение следующих функций:
- Вывод справочной информации (номер рейса, пункт отправления, пункт назначения, тип вагона, дни выполнения рейсов, время отправления, время прибытия, цену билета);
- Подбор рейсов по времени отправления;
- Подбор рейсов по пункту назначения.
4. Описание программы
4.1. Общие сведения
- Название программы: «Информационно – справочная система железнодорожной компании».
- Программа реализована на языке Пролог в среде Turbo Prolog v 2.0.
4.2. Функциональное назначение
Функциональное назначение данной программы заключается в следующем:
- Программа предназначена для выдачи справочной информации пассажирам и диспетчерским службам по распространению билетов;
- Программа предназначена для формирования СПРАВКИ по определенным критериям:
- по номеру рейса;
- по времени отправления;
- по месту назначения.
4.4. Входные данные
Входными данными этой программы являются: пункты меню.
4.5. Выходные данные
Выходными данными этой программы
является: ответ системы на запрос пользователя.
5. Руководство оператора
5.1. Назначение программы
Программа предназначена для выдачи справочной информации, а также для формирования СПРАВКИ по определенным критериям:
- По номеру рейса;
- По времени отправления;
- По месту назначения.
5.2. Выполнение программы
Все режимы программы активизируются с помощью меню, которое реализовано процедурой menu.
Меню данной программы состоит из четырех пунктов:
- Номер рейса;
- Время отправления;
- Пункт назначения;
- Выход.
Для активизации какого-либо режима пользователю следует нажать цифровую клавишу, соответствующую выбранному пункту меню. При появлении подменю повторить операцию. При запросе пункта назначения - ввести строку, определяющую пункт назначения. При этом необходимо помнить об языковой раскладке клавиатуры и о состоянии клавиши CAPSLOCK.
5.3. Сообщения оператору
Меню данной программы состоит из четырех пунктов:
- Номер рейса;
- Время отправления;
- Пункт назначения;
- Выход.
На рисунке 1 представлено меню данной программы:
Рисунок 1. Меню программы
На рисунке 2 представлена справочная информация выдаваемая пользователю, после введения им номера рейса железнодорожного поезда:
Рисунок 2. Справочная информация выдаваемая пользователю, после введения им номера рейса железнодорожного поезда.
На рисунке 3 представлена справочная информация выдаваемая пользователю, после введения им времени отправления железнодорожного поезда:
Рисунок 3. Справочная информация выдаваемая пользователю, после введения им времени отправления железнодорожного поезда.
На рисунке 4 представлена справочная информация выдаваемая пользователю, после введения им пункта назначения:
Рисунок 4. Справочная информация выдаваемая пользователю, после введения им пункта назначения
5.4. Порядок выполнения вызова программы
- файл WORK.PRO помещаем папку Turbo Prolog v2.0;
- запуск файла WORK.PRO;
- в главном меню выбираем вкладку File -> Load -> WORK.PRO;
- запускаем программу сочетанием клавиш <Ctrl> + <F9>.
- «Обращение к программе»
Запуск программы осуществляется посредством открытия файла WORK.PRO
- Пример работы программы
- пользователь выбирает пункт меню “Номер рейса”;
- вводит №1;
- нажимает клавишу Enter;
- на экране появляется справка:
Заключение
В данной курсовой работе было проведено исследование предметной области и разработана информационно – справочная система «Справочная система железнодорожной компании».
В процессе работы была создана программа, которая реализована на языке Turbo Prolog v 2.0. Это наиболее распространенный на сегодняшний день язык программирования, поэтому разобраться в программе не составит трудности. Программа устойчиво работает и выполняет поставленную задачу.
Программа является универсальной и может быть усовершенствована любым пользователем, разбирающимся в языке программирования Turbo Prolog v 2.0. так же может быть усовершенствована любым пользователем для написания подобных информационно-справочных систем.
Список литературы
- Адаменко А., Кучуков А. Логическое программирование и Visual Prolog. – СПб.: Питер, 2002. –544с.
- Братко И. Программирование на языке Пролог для искусственного Интеллекта. – СПб.:БХВ –Петербург, 2002. –624с.
- Доорс Дж. Пролог – язык программирования будущего. – М.: Высшая школа, 2000– 500с.
- Кларк К. Введение в логическое программирование на Micro Prolog. – СПб.:Питер, 2004. – 416с.
- Тихонов Ю. Пролог – язык логического программирования. Версия 2.3. – М.:ИНФРА–М, 2001. –640с.
- Хоггер К. Введение в логическое программирование. – М.:Мир, 2000.–563с.
- GeoSite - Российские железные
дороги [Электронный ресурс]. – Электрон,
дан. – М., 2006. – Режим доступа: http://www.geosite.com.ru/
pageid-429-6.html– Загл. с экрана.
Приложение 1. Листинг программы
DOMAINS
number,nspravka,number1,
DATABASE
spravka(number,nspravka)
spravka1(number1,nspravka1)
spravka2(number2,nspravka2)
PREDICATES
nondeterm
name_spravka(number,nspravka)
name_spravka1(number1,
name_spravka2(number2,
m(char)
menu
CLAUSES
spravka("1","Отправление:
spravka("2"," Отправление:
Москва\nНазначение: Грозный\n\Время отправления:
14:37\n\nТип вагона:Платскарт\n\n\Дни выполнения
рейсов:Понедельник-Среда\n\
spravka("3","Отправление:
spravka("4","Отправление:
spravka("5","Отправление:
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\
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\
spravka1("09:35","Номер рейса:
1\n Отправление: Москва \nНазначение:Архангельск\n\
spravka1("14:37"," Номер рейса:
2\n Отправление: Москва \nНазначение:Грозный
\n\nТип вагона: Платскарт \n\n Дни выполнения
рейсов:Понедельник-Среда\n\
spravka1("14:06"," Номер рейса:
3\n Отправление: Москва \nНазначение:Калининград\n\
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\
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\
spravka2("Архангельск"," Номер рейса: 1\Москва-Архангельск \n\nТип вагона: Купе \n\n Дни выполнения рейсов:Суббота\n\nВремя отправления: 09:35\n\nВремя прибытия: 06:24\n\nЦена: 2763").
spravka2("Грозный"," Номер
рейса: 2\ Москва- Грозный \n\nТип вагона:
Платскарт \n\n Дни выполнения рейсов:Понедельник-Среда\n\
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\
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\
00:35\n\nВремя прибытия: 02:33\n\nЦена: 8073").
name_spravka(Number,Spravka):-
name_spravka(_,"НЕТ ИНФОРМАЦИИ").
name_spravka1(Number1,
name_spravka1(_,"НЕТ ИНФОРМАЦИИ ").
name_spravka2(Number2,
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,
write(" SPRAVKA\n",Spravka1),nl,
readchar(_),
menu.
m('3'):-!,
clearwindow,
write("Введите пункт назначения"),nl,
readln(Number2),
name_spravka2(Number2,