Результаты работы приложения 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Результаты работы приложения



После запуска приложения программа представляется пользователю и предлагает пройти медицинскую консультацию (рис.2).

Рис. 2. Начало работы системы «Медицинская консультация»

Далее пользователь отвечает на вопросы системы, и если набор ответов, данных в течение опроса, совпадает с набором критериев одного из заболеваний, то система выводит его название (рис. 3).

Рис. 3. Вывод заболевания «Менингит»

Если же набора симптомов не существует в системе, то она выдаст ответ «Извините, в моей базе по названным симптомам заболевание не найдено» (рис. 4).

Рис. 4. Вывод информации о том, что заболевание не найдено

4.5. Системные требования

Для работы приложения необходимы:

· операционная система MS Windows XP/Vista/Seven.

· 1 Мб оперативной памяти.

· Среда разработки CLIPS/COOL 6.3.


Руководство пользователя

Для запуска настольного приложения необходимо установить и запустить файл CLIPSWin.exe. После запуска программы выбрать команду «Load» в меню «File» и выбрать файл MED.clp. После этого в командной строке программы ввести команду (reset) и (run). И можно приступать к медицинской диагностике.

 


Заключение

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


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

1. A. П. Частиков “Разработка экспертных систем. Среда Clips” Санкт – Петербург 2003г.

2. ГОСТ 19.106 - 78 ЕСПД. Требования к программным документам, выполненным печатным способом.

3. ГОСТ 19.404 – 79 ЕСПД. Пояснительная записка. Требования к содержанию и оформлению.

 

 


ПРИЛОЖЕНИЕ

Файл MED.clp

(deffunction ask-question (?question $?allowed-values)

(printout t?question)

(bind?answer (read))

(if (lexemep?answer)

then (bind?answer (lowcase?answer)))

(while (not (member?answer?allowed-values)) do

(printout t?question)

(bind?answer (read))

(if (lexemep?answer)

then (bind?answer (lowcase?answer))))

?answer)

 

(deffunction yes-or-no-p (?question)

(bind?response (ask-question?question yes no y n))

(if (or (eq?response yes) (eq?response y))

then TRUE

else FALSE))

;***********************************************************************

(defrule determine-vi-horosho ""

(not(norm?))

(not (repair?))

=>

(if (yes-or-no-p "Вы чувствуете недомогание (y/n)? ")

then

(assert (norm normal))

else

(assert (repair "У Вас нет причин к беспокойству. Вы здоровы"))))

;***********************************************************************

(defrule determine-vi-golova ""

(norm normal)

(not (gol?))

(not (repair?))

=>

(if (yes-or-no-p "Болит ли у Вас голова (y/n)? ")

then

(assert (gol yes))

else

(assert (gol no))))

;***********************************************************************

(defrule determine-vi-temteratura ""

(norm normal)

(gol yes)

(not (temp?))

(not (repair?))

=>

(if (yes-or-no-p "У Вас есть температура (y/n)? ")

then

(assert (temp yes))

else

(assert (temp no))))

;***********************************************************************

(defrule determine-vi-oznob ""

(norm normal)

(gol yes)

(temp yes)

(not (ozn?))

(not (repair?))

=>

(if (yes-or-no-p "Ощущаете ли Вы озноб (y/n)? ")

then

(assert (ozn yes))

else

(assert (ozn no))))

 

;*********************************************************************** (defrule determine-vi-mishci ""

(norm normal)

(gol yes)

(temp yes)

(ozn yes)

(not (mish?))

(not (repair?))

=>

(if (yes-or-no-p "Есть ли у Вас боль в мышцах (y/n)? ")

then

(assert (repair "Грипп"))

else

(assert (mish no))))

;***********************************************************************

(defrule determine-vi-kashel' ""

(norm normal)

(gol no)

(not (kash?))

(not (repair?))

=>

(if (yes-or-no-p "У Вас есть кашель (y/n)? ")

then

(assert (kash yes))

else

(assert (kash no))))

;***********************************************************************

(defrule determine-vi-gorlo ""

(norm normal)

(gol no)

(kash yes)

 

(not (gor?))

(not (repair?))

=>

(if (yes-or-no-p "Ощущаете ли Вы боль или комок в горле (y/n)? ")

then

(assert (gor yes))

else

(assert (gor no))))

;***********************************************************************

(defrule determine-vi-faringit ""

(norm normal)

(gol no)

(kash yes)

(temp no)

(gor yes)

(not (far?))

(not (repair?))

=>

(if (yes-or-no-p "Есть ли ощущение сухости или першения в горле (y/n)? ")

then

(assert (repair "Фарингит"))

else

(assert (far no))))

;***********************************************************************

(defrule determine-vi-bronhit ""

(norm normal)

(gol no)

(kash yes)

(gor no)

(not (mok?))

(not (repair?))

=>

(if (yes-or-no-p "При кашле у Вас отходит мокрота (y/n)? ")

then

(assert (repair "Бронхит"))

else

(assert (mok no))))

;***********************************************************************

(defrule determine-vi-prostuda ""

(norm normal)

(gol no)

(kash yes)

(gor yes)

(far no)

(not (nasm?))

(not (repair?))

=>

(if (yes-or-no-p "У Вас есть насморк (y/n)? ")

then

(assert (repair "Простуда"))

else

(assert (nasm no))))

;***********************************************************************

(defrule determine-vi-glotanie ""

(norm normal)

(gol yes)

(temp yes)

(ozn yes)

(mish no)

(not (glot?))

(not (repair?))

=>

(if (yes-or-no-p "Есть ли у Вас боли в горле при глотании (y/n)? ")

then

(assert (glot yes))

else

(assert (glot no))))

;***********************************************************************

(defrule determine-vi-angina ""

(norm normal)

(gol yes)

(temp yes)

(ozn yes)

(mish no)

(glot yes)

(not (lim?))

(not (repair?))

=>

(if (yes-or-no-p "Увеличены ли Ваши лимфатические узлы (y/n)? ")

then

(assert (repair "Ангина"))

else

(assert (lim no))))

 

;***********************************************************************

(defrule determine-vi-onemenie ""

(norm normal)

(gol yes)

(temp yes)

(ozn no)

(not (onem?))

(not (repair?))

=>

(if (yes-or-no-p "Есть ли ощущение онемения шеи (y/n)? ")

then

(assert (onem yes))

else

(assert (onem no))))

 

;***********************************************************************

(defrule determine-vi-meningit ""

(norm normal)

(gol yes)

(temp yes)

(ozn no)

(onem yes)

(not (men?))

(not (repair?))

=>

(if (yes-or-no-p "Наблюдается ли повышенная чувствительность к свету и звукам (y/n)? ")

then

(assert (repair "Менингит"))

else

(assert (men no))))

 

;***********************************************************************

(defrule determine-vi-encefalit ""

(norm normal)

(gol yes)

(temp yes)

(ozn no)

(onem no)

(not (enc?))

(not (repair?))

=>

(if (yes-or-no-p "У Вас есть рвота, не приносящая облегчения (y/n)? ")

then

(assert (repair "Энцефалит"))

else

(assert (enc no))))

 

;***********************************************************************

(defrule not-glotan ""

(norm normal)

(gol yes)

(temp yes)

(ozn yes)

(mish no)

(glot no)

=>

(assert (repair "Извините, в моей базе знаний по названным симптомам заболевание не найдено")))

 

;***********************************************************************

(defrule not-linph ""

(norm normal)

(gol yes)

(temp yes)

(ozn yes)

(mish no)

(glot yes)

(lim no)

=>

(assert (repair "Извините, в моей базе знаний по названным симптомам заболевание не найдено")))

 

;***********************************************************************

(defrule not-encif ""

(norm normal)

(gol yes)

(temp yes)

(ozn no)

(enc no)

=>

(assert (repair "Извините, в моей базе знаний по названным симптомам заболевание не найдено")))

 

;***********************************************************************

(defrule not-menin ""

(norm normal)

(gol yes)

(temp yes)

(ozn no)

(onem yes)

(men no)

=>

(assert (repair "Извините, в моей базе знаний по названным симптомам заболевание не найдено")))

 

;***********************************************************************

(defrule not-temper ""

(norm normal)

(gol yes)

(temp no)

=>

(assert (repair "Извините, в моей базе знаний по названным симптомам заболевание не найдено")))

 

;***********************************************************************

(defrule not-nasmor ""

(norm normal)

(gol no)

(kash yes)

(gor yes)

(far no)

(nasm no)

=>

(assert (repair "Извините, в моей базе знаний по названным симптомам заболевание не найдено")))

 

;***********************************************************************

(defrule not-mokrot ""

(norm normal)

(gol no)

(kash yes)

(gor no)

(mok no)

=>

(assert (repair "Извините, в моей базе знаний по названным симптомам заболевание не найдено")))

 

;***********************************************************************

(defrule not-nayde ""

(norm normal)

(gol no)

(kash no)

=>

(assert (repair "Извините, в моей базе знаний по названным симптомам заболевание не найдено")))

;***********************************************************************

(defrule system-banner ""

(declare (salience 10))

=>

(printout t crlf crlf)

(printout t "*******************************************************************")

(printout t crlf crlf)

(printout t "* Экспертная система медицинской консультации")

(printout t crlf crlf)

(printout t "Выполнил студент группы 220291 Гусева Светлана Львовна")

(printout t crlf crlf)

(printout t "*******************************************************************")

(printout t crlf crlf))

 

(defrule print-repair ""

(declare (salience 10))

(repair?item)

=>

(printout t crlf crlf)

(printout t "Скорее всего у Вас:")

(printout t crlf crlf)

(format t " %s%n%n%n"?item))



Поделиться:


Последнее изменение этой страницы: 2017-01-24; просмотров: 101; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.140.242.165 (0.027 с.)