Здрасть, вот такая вот проблема. Поставили задание написать ЕС, кое как вспомнив азы С++ написал(с трудом)эту систему.В эинете нашел похожую тему только написано все на Лиспе.Сижу пол часа уже запустить никак не могу(помогите настроить програмульку или обьясните что икак мне сделать.Заранее спасибо. Ниже текст самой программы Полный текст программы на языке micro-LISP (файл «FUN.LSP):
(define mainw(make-window „ДОКТОР“ #!true)) (define mmenuw(make-window „МЕНЮ“ #!true)) (define menufw(make-window »__ФАЙЛЫ" #!true)) (define menudbw(make-window «БазаДанных» #!true)) (define menucw(make-window «_____________________________ДИАГНОСТИКА» #!true)) (define vieww(make-window «____________ПРОСМОТР» #!true)) (define addiw(make-window «____________ДОБАВЛЕНИЕ БОЛЕЗНИ» #!true)) (define addsw(make-window «__________ДОБАВЛЕНИЕ СИМПТОМОВ» #!true)) (define rediw(make-window «________РЕДАКТИРОВАНИЕ БОЛЕЗНИ» #!true)) (define redsw(make-window «_______РЕДАКТИРОВАНИЕ СИМПТОМА» #!true)) (define deliw(make-window «______________УДАЛЕНИЕ БОЛЕЗНИ» #!true)) (define delsw(make-window «_____________УДАЛЕНИЕ СИМПТОМА» #!true)) (define submenuw(make-window «___Работа с:» #!true)) (define menulw(make-window «Введите ИМЯ ФАЙЛА :» #!true))
(define f) (define *symptom*) (define *it_is*) (define *yes* '()) (define *no* '())
(define (start) (window-set-position! mainw 1 1) (window-set-size! mainw 23 78) (window-clear mainw) (mainmenu))
; Главное меню
(define (mainmenu) (define ch) (Window-Set-Position! mmenuw 3 15) (Window-Set-Size! mmenuw 1 47)
(Window-Clear mmenuw) (display " 1.Files 2.DataBase 3.Diagnosticka 4.Quit" mmenuw) (do ((i 0 (+ i 0))) ((> i 5)i) (Window-Set-Cursor! mainw 22 30) (display «Ваш выбор :» mainw) (set! ch (read-char mainw)) (Window-Set-Cursor! mainw 22 30) (display " " mainw) (cond ((eq? ch #\1) (menufiles)) ((eq? ch #\2) (menudb)) ((eq? ch #\3) (menucons)) ((eq? ch #\4) (exit)) )))
; Меню Файлов
(define (menufiles) (define ch) (Window-Set-Position! menufw 5 16) (Window-Set-Size! menufw 4 8) (Window-Clear menufw) (Window-Set-Cursor! menufw 1 1) (display «1.LOAD» menufw) (Window-Set-Cursor! menufw 2 1) (display «2.SAVE» menufw) (do ((i 0 (+ i 0))) ((> i 5)i) (Window-Set-Cursor! mainw 22 30) (display «ВАШ ВЫБОР :» mainw) (set! ch (read-char mainw)) (Window-Set-Cursor! mainw 22 30) (display " " mainw) (cond ((eq? ch #\1) (loading)) ((eq? ch #\2) (saving)) ((eq? ch #\ESCAPE) (Window-Delete menufw) (mainmenu)) )))
; Меню БазыДанных
(define (menudb) (define ch) (Window-Set-Position! menudbw 5 26) (Window-Set-Size! menudbw 6 10) (Window-Clear menudbw) (Window-Set-Cursor! menudbw 1 1) (display «1.ADD » menudbw) (Window-Set-Cursor! menudbw 2 1) (display «2.DELETE» menudbw) (Window-Set-Cursor! menudbw 3 1) (display «3.REDACT» menudbw) (Window-Set-Cursor! menudbw 4 1) (display «4.VIEW» menudbw) (do ((i 0 (+ i 0))) ((> i 5)i) (Window-Set-Cursor! mainw 22 30) (display «ВАШ ВЫБОР :» mainw) (set! ch (read-char mainw)) (Window-Set-Cursor! mainw 22 30) (display " " mainw) (cond ((eq? ch #\1) (adding) (menudb)) ((eq? ch #\2) (deleting) (menudb)) ((eq? ch #\3) (redacting) (menudb)) ((eq? ch #\4) (viewing) (menudb)) ((eq? ch #\ESCAPE) (Window-Delete menudbw) (mainmenu)) )))
; Загрузка файла
(define (loading) (Window-Set-Position! menulw 20 20) (Window-Set-Size! menulw 1 40) (Window-Clear menulw) (Window-Set-Cursor! menulw 1 3) (set! f (read-line menulw)) (Window-Delete menulw)
(with-input-from-file f (lambda () (set! *symptom* (read)) (set! *it_is* (read)) (flush-input) )))
; Запись файла
(define (saving) (Window-Set-Position! menulw 20 20) (Window-Set-Size! menulw 1 40) (Window-Clear menulw) (Window-Set-Cursor! menulw 2 3) (set! f (read-line menulw)) (Window-Delete menulw) (with-output-to-file f (lambda () (write *symptom*) (write *it_is*) )))