Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
90
Добавлен:
04.01.2020
Размер:
178.86 Кб
Скачать

Листинг ис файл (iis_it_function.Clp)

(defglobal ?*name_user* = "")

(deffunction ask (?question $?allowed)

(printout t ?question ?allowed)

(bind ?answer (read))

?answer

)

(deffunction ask-hello (?question ?name)

(printout t ?question ?name crlf)

)

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

(bind ?answer (ask ?question))

(while (not (member ?answer $?allowed) )

do

(printout t "Reenter, please" crlf)

(bind ?answer (ask ?question))

)

?answer

)

(deffunction ask-yes-no (?question)

(bind ?response (ask-allowed ?question da net))

(eq ?response da)

)

(deffunction defecti_user_read (?defect_user)

(switch ?defect_user

(case "blok"

then return 1)

(case "os"

then return 2)

(default return -1)

)

)

(deffunction create-object-user-pc (?name_computer)

(make-instance user_pc of COMPUTER)

(send [user_pc] add-name-computer ?name_computer)

)

(deffunction create-object-user-producer (?name_producer)

(make-instance u_producer of PRODUCER)

(send [u_producer] add-name-producer ?name_producer)

)

(deffunction create-object-user-os (?u_os ?u_os_is_freezes ?u_os_is_work)

(switch ?u_os

(case "linux"

then

(make-instance u_os of LINUX)

(send [u_os] add-name-producer-linux ?u_os_is_freezes ?u_os_is_work)

)

(case "windows"

then

(make-instance u_os of WINDOWS)

(send [u_os] add-name-producer-windows ?u_os_is_freezes ?u_os_is_work)

)

(case "mac"

then

(make-instance u_os of MAC_OS)

(send [u_os] add-name-producer-mac ?u_os_is_freezes ?u_os_is_work)

))

)

Листинг ис файл (iis_it_message_handler.Clp)

(defmessage-handler COMPUTER print-hello ()

(printout t "Dobrii den vam nuzhna diognostica? "crlf)

)

(defmessage-handler COMPUTER add-name-computer(?name_computer)

(bind ?self:name_computer ?name_computer)

)

(defmessage-handler PRODUCER add-name-producer(?name_producer)

(bind ?self:name_producer ?name_producer)

)

(defmessage-handler COMPUTER add-computer-proizvoditel(?proivod)

(bind ?self:name_manufacturer ?proivod)

))

(defmessage-handler COMPUTER print-all-propert ()

(printout t "Vash computer: " crlf)

(printout t ?self:name_computer crlf)

(printout t "Proizvoditel: " crlf)

(printout t ?self:name_manufacturer crlf)

(printout t "Type vashego computera: " crlf)

(printout t ?self:type_computer crlf)

(printout t "Defecti v vashem copmutere: " crlf)

(printout t ?self:defect_pc crlf)

)

(defmessage-handler PRODUCER add-name-proizvoditel(?producer)

(bind ?self:name_producer ?producer)

)

(defmessage-handler PRODUCER print-propert-prodecer ()

(printout t "Proizvoditel vashego computera: " crlf)

(printout t ?self:name_producer crlf)

)

(defmessage-handler LINUX add-name-producer-linux(?u_os_is_freezes ?u_os_is_work)

(bind ?self:is_freezes ?u_os_is_freezes)

(bind ?self:is_work ?u_os_is_work)

)

(defmessage-handler WINDOWS add-name-producer-windows(?u_os_is_freezes ?u_os_is_work)

(bind ?self:is_freezes ?u_os_is_freezes)

(bind ?self:is_work ?u_os_is_work)

)

(defmessage-handler MAC_OS add-name-producer-mac(?u_os_is_freezes ?u_os_is_work)

(bind ?self:is_freezes ?u_os_is_freezes)

(bind ?self:is_work ?u_os_is_work)

)