Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ККР-2013 (БЗ и ЭС).docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
233.53 Кб
Скачать
    1. Результаты работы приложения

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

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

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

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

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

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

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

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

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

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

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

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

Для запуска настольного приложения необходимо установить и запустить файл 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))

1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]