Разработка информационно-справочной системы "Картотека ГАИ" Prolog

  • Просмотров 3098
  • Скачиваний 489
  • Размер файла 6
    Кб

CODE=9003 /* ************************** * КУРСОВАЯ РАБОТА * * * * Коломенской Ольги * * * ************************** */ domains z,nz,n,n1,chp,i=integer fio,ma,ru,k=symbol database -svod1 svod1(n,k,nz,ma,ru,chp) database -lolo lolo(n,fio,i,ma,ru,chp) database -kuku kuku(n,fio,nz,k,ru,chp) database svod(n,fio,nz,ma,ru,chp) predicates start patch load select(i) sel(i,i) process(i) procedure(i) sve(i) lod(i) repeat goal start. clauses /*Процедура создания основного меню и загрузки базы данных*/ start:- makewindow(1,2,7,"Картотека ГАИ",0,0,25,80), clearwindow, load, patch. /*Процедура управления основным меню*/ patch:- repeat, cursor(7,0),

write(" 0 - О пpогpамме... "),nl, write(" 1 - коррекция данных"),nl, write(" 2 - просмотр базы"),nl, write(" 3 - загрузка базы"),nl, write(" 4 - сохранение базы"),nl, write(" 5 - создание новой базы"),nl, write(" 6 - ввод новых данных"),nl, write(" 7 - просмотр-добавление"),nl, write(" 8 - выход из программы"),nl, write(" =>"), readint(Choice), Choice >= 0, Choice < 9, clearwindow, process(Choice), clearwindow, Choice = 8, retractall(_), removewindow. /*Процедура поиска и загрузки файла содержащего базу

данных*/ load:- existfile("olia.dat"), consult("olia.dat"), cursor(1,2), write("База загружена"). load:- cursor(1,2), write("Нет базы на диске"). /*Пpоцедуpа ввода новых данных*/ process(6):- makewindow(1,2,7,"Ввод новых данных",0,0,25,80), nl, write("Введите порядковый номер :"),readint(K),nl, write("Введите Фамилию.И.О. :"),readln(F),nl, write("Введите номерной знак :"),readint(G),nl, write("Введите марку автомобиля :"),readln(Y),nl, write("Введите район учета :"),readln(T),nl, write("Введите число

автотранспортных"),nl, write(" происшествий :"),readint(P),nl, N1=K,FIO1=F,NZ1=G,MA1=Y,RU1=T,CHP1=P, assertz(svod(N1,FIO1,NZ1,MA1,RU1,CHP1)), removewindow, fail. /*Процедура просмотра-добавления*/ process(7):- makewindow(1,2,7,"Просмотр-добавление",0,0,25,80), nl, write("Введите номер записи:"),readint(A),nl,nl, svod(N,FIO,NZ,MA,RU,CHP), A=N, write("Номер записи :"),write(A),nl, write("Фамилия.И.О. :"),write(FIO),nl, write("Номерной знак :"),write(NZ),nl, write("Марка автомобиля :"),write(MA),nl, write("Район учета :"),write(RU),nl,

write("Число автотранспортных "),nl, write(" происшествий :"),write(CHP),nl,nl,nl, write("Нажмите на любую клавишу"), readchar(_), removewindow, !. process(7):- write("Этого номера записи нет в базе."), write("Повторите введенный номер записи и продолжайте ввод данных"),nl,nl,nl, write("Введите номер:"), readint(A),nl, A=N1, write("Введите Фамилию.И.О. :"),readln(F),nl, write("Введите номерной знак :"),readint(Y),nl, write("Введите марку автомабиля :"),readln(J),nl, write("Введите