
Листинг ис файл (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)
)