Скачать работу в формате MO Word. CODE=12050 /*
************************** * КУРСОВАЯ
РАБОТА * * * * Косарева
Вячеслава * * * ************************** */ domains z,i,n,n1,ko,ob,pl=integer na,j=symbol database
-svod1 svod1(n,j,ko,ob,pl) database
-lolo lolo(n,na,i,ob,pl) database
-kuku kuku(n,na,ko,i,pl) database svod(n,na,ko,ob,pl) 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(" 9
- выход из программы"),nl, write(" =>"), readint(Choice), Choice >= 0, Choice < 10, clearwindow, process(Choice), clearwindow, Choice = 9, retractall(_),
removewindow. /*Процедура поиска и загрузки файла содержащего базу данных*/ load:- existfile("slava.dat"), consult("slava.dat"), cursor(1,2), write("База загружена"). load:- cursor(1,2),
write("Нет базы на диске"). /*Пpоцедуpа ввода новых данных*/
process(7):-
makewindow(1,2,7,"Ввод новых данных",0,0,25,80), nl,
write("Введите порядковый номер
:"),readint(K),nl,
write("Введите название предприятия:"),readln(O),nl,
write("Введите количество рабочих
:"),readint(I),nl,
write("Введите объем продукции
:"),readint(Y),nl,
write("Введите занимаемую площадь
:"),readint(T),nl, N1=K,NA1=O,KO1=I,OB1=Y,PL1=T, assertz(svod(N1,NA1,KO1,OB1,PL1)), removewindow, fail. /*Процедура просмотра-добавления*/
process(8):-
makewindow(1,2,7,"Просмотр-добавление",0,0,25,80), nl,
write("Введите номер записи:"),readint(A),nl,nl, svod(N,NA,KO,OB,PL), A=N, write("Номер записи
:"),write(A),nl, write("Название предприятия:"),write(NA),nl,
write("Количество рабочих
:"),write(KO),nl,
write("Объем продукции
:"),write(OB),nl,
write("Занимаемая площадь
:"),write(PL),nl,nl,nl,
write("Нажмите на любую клавишу"),
readchar(_),
removewindow, !.
process(8):- write("Этого номера записи нет в базе."), write("Повторите введенный номер записи и продолжайте ввод данных"),nl,nl,nl, write("Введите номер:"), readint(A),nl, A=N1,
write("Введите название предприятия:"),readln(F),nl,
write("Введите количество рабочих
:"),readint(Y),nl,
write("Введите объем продукции
:"),readint(J),nl,
write("Введите занимаемую площадь
:"),readint(G),nl, NA1=F,KO1=Y,OB1=J,PL1=G, assertz(svod(N1,NA1,KO1,OB1,PL1)), removewindow, fail. /*Пpоцедуpа вывода данных о пpогpамме*/
process(0):-
makewindow(1,2,7,"О пpогpамме...",0,0,25,80), write(" Инфоpмационно-спpавочная система"),nl,nl, write(" о характеристике предприятия "),nl,nl, write(" Язык-TURBO-PROLOG v.2.0. "),nl,nl, write(" автоp:Косарев В. "),nl,nl, write(" МИРЭА, гp.ИТ-1-94 (с) 1995 г. "),nl,nl,nl,nl, write("Нажмите на любую клавишу"), readchar(_),
removewindow. /*Процедура изменения содержимого записей базы данных*/ process(1):- makewindow(1,2,7,"Коppекция данных",0,0,25,80), nl, select(N), X=N, svod(X,NA,KO,OB,PL), write("Номер записи
:"),write(N),nl, write("Название предприятия:"),write(NA),nl,
write("Количество рабочих
:"),write(KO),nl,
write("Объем продукции
:"),write(OB),nl,
write("Занимаемая площадь
:"),write(PL),nl, nl,
write("Введите название предприятия:"),readln(NA1),nl,
write("Введите количество рабочих
:"),readint(KO1),nl,
write("Введите объем продукции
:"),readint(OB1),nl, write("Введите занимаемую площадь :"),readint(PL1),nl, X1=X, retract(svod(X,NA,KO,OB,PL)), assert(svod(X1,NA1,KO1,OB1,PL1)), !,
removewindow. /*Процедура даления записей из базы данных*/ process(2):- makewindow(1,2,7,"Удаление записей",0,0,25,80), nl, select(N), X=N, svod(X,NA,KO,OB,PL), retract(svod(X,NA,KO,OB,PL)),!, removewindow. /*Процедура просмотра содержимого базы данных*/ process(3):- makewindow(1,2,7,"Просмотp базы",0,0,25,80), nl, write("!"), write(" ХАРАКТЕРИСТИКА ПРЕДПРИЯТИЯ "), nl, write("------------------------------------------------------------------!"), nl, write("!номер!
наименование ! количество
! объем !
занимаемая !"), nl, write("!
! предприятия !
рабочих ! продукции ! площадь
"), nl, write("-------------------------------------------------------------------"), nl, svod(N,NA,KO,OB,PL), cursor(Z,_), cursor(Z,0),write(N), cursor(Z,8),write(NA), cursor(Z,27),write(KO), cursor(Z,42),write(OB), cursor(Z,54),write(PL), cursor(Z,66),write("!"), nl, fail. process(3):- write("-------------------------------------------------------------------"), nl, write("Нажмите на любую клавишу"), readchar(_), removewindow. /*Процедура загрузки в память базы данных*/
process(4):- nl,
makewindow(2,15,4,"Загрузка",5,5,20,70),
write("1 - База будет загружена из казанного файла"),nl,
write("2 - База будет загружена из файла slava.dat"),nl,
write("3 - Выход в основное меню"),nl, write("==>"), readint(C), C>0,C<4, lod(C), !, removewindow. /*Процедура сохранения базы данных*/
process(5):- nl,
makewindow(2,15,4,"Запись",5,5,20,70),
write("1 - База будет записана в казанный файл"),nl,
write("2 - База будет записана в файл slava.dat"),nl,
write("3 - Выход в основное меню"),nl, write("==>"), readint(I), I>0,I<4, sve(I),!,
removewindow. /*Процедура выбора создания новой базы*/
process(6):- nl,
makewindow(3,2,7,"Создание новой базы",0,0,25,80),
write("1 - База будет создана по названию предприятия"),nl,
write("2 - База будет создана по количеству рабочих"),nl,
write("3 - База будет создана по объему продукции"),nl,
write("4 - Выход в основное меню"),nl, write("==>"), readint(O), O>0,O<5, procedure(O),
removewindow.
process(_). /*Процедура создания новой базы данных и ее сохранения*/
procedure(1):-
makewindow(1,2,7,"Создание новой базы по названию предприятия",0,0,25,80), nl, cursor(7,10), retractall(_,svod1), nl, write("Если вы хотите узнать данные о предприятии, то"), nl,
write("Введите название предприятия:"), readln(X), svod(N,NA,KO,OB,PL), S=NA, S=X, N1=N,KO1=KO,OB1=OB,PL1=PL, assert(svod1(N1,S,KO1,OB1,PL1)), fail. procedure(1):- write("База создана"),nl, write("!"), write(" ХАРАКТЕРИСТИКА ПРЕДПРИЯТИЯ "), nl, write("------------------------------------------------------------------!"), nl, write("!номер!
наименование ! количество
! объем !
занимаемая !"), nl, write("!
! предприятия !
рабочих ! продукции ! площадь
"), nl, write("-------------------------------------------------------------------"), nl, svod1(N,S,KO,OB,PL), cursor(Z,_), cursor(Z,0),write(N), cursor(Z,8),write(S), cursor(Z,27),write(KO), cursor(Z,42),write(OB), cursor(Z,54),write(PL), cursor(Z,66),write("!"), nl, fail. procedure(1):- write("-------------------------------------------------------------------"), save("not.dat",svod1), nl,
write("База сохранена в файле not.dat"), nl,
write("Нажмите любую клавишу"), readchar(_), removewindow, !. procedure(1):- write("-------------------------------------------------------------------"), nl, write("Невозможно сохранить созданную базу"), nl,
write("Нажмите любую клавишу"),
readchar(_),
makewindow(1,2,7,"ХАРАКТЕРИСТИКА ПРЕДПРИЯТИЯ",0,0,25,80).
procedure(2):-
makewindow(1,2,7,"Создание новой базы по количеству рабочих",0,0,25,80), nl, cursor(7,10), retractall(_,lolo), nl, write("Если вы хотите знать данные о наибольшем количестве рабочих, то"),nl, write("Введите начальное значение количества рабочих:"), readint(X), svod(N,NA,KO,OB,PL), S=KO, S>=X, N1=N,NA1=NA,OB1=OB,PL1=PL, assert(lolo(N1,NA1,S,OB1,PL1)), fail. procedure(2):- write("База создана"),nl, write("!"), write(" ХАРАКТЕРИСТИКА ПРЕДПРИЯТИЯ "), nl, write("------------------------------------------------------------------!"), nl, write("!номер!
наименование ! количество
! объем !
занимаемая !"), nl, write("!
! предприятия !
рабочих ! продукции ! площадь
"), nl, write("-------------------------------------------------------------------"), nl, lolo(N,NA,S,OB,PL), cursor(Z,_), cursor(Z,0),write(N), cursor(Z,8),write(NA), cursor(Z,27),write(S), cursor(Z,42),write(OB), cursor(Z,54),write(PL), cursor(Z,66),write("!"), nl, fail. procedure(2):- write("-----------------------------------------------------------------------------"), save("not1.dat",lolo), nl,
write("База сохранена в файле not1.dat"), nl,
write("Нажмите любую клавишу"), readchar(_), removewindow, !. procedure(2):- write("-------------------------------------------------------------------"), nl, write("Невозможно сохранить созданную базу"), nl,
write("Нажмите любую клавишу"),
readchar(_),
makewindow(1,2,7,"ХАРАКТЕРИСТИКА ПРЕДПРИЯТИЯ",0,0,25,80).
procedure(3):-
makewindow(1,2,7,"Создание базы данных по объему продукции",0,0,25,80), nl, cursor(7,10), retractall(_,kuku), nl, write("Если вы хотите знать данные о наибольшем объеме продукции, то"), nl,
write("Введите начальный объем :"), readint(X), svod(N,NA,KO,OB,PL), S=OB, S>=X, N1=N,NA1=NA,KO1=KO,PL1=PL, assert(kuku(N1,NA1,KO1,S,PL1)), fail. procedure(3):- write("База создана"),nl, write("!"), write(" ХАРАКТЕРИСТИКА ПРЕДПРИЯТИЯ "), nl, write("------------------------------------------------------------------!"), nl, write("!номер!
наименование ! количество
! объем !
занимаемая !"), nl, write("!
! предприятия !
рабочих ! продукции ! площадь
"), nl, write("-------------------------------------------------------------------"), nl, kuku(N,NA,KO,S,PL), cursor(Z,_), cursor(Z,0),write(N), cursor(Z,8),write(NA), cursor(Z,27),write(KO), cursor(Z,42),write(S), cursor(Z,54),write(PL), cursor(Z,66),write("!"), nl, fail. procedure(3):- write("-------------------------------------------------------------------"), save("not2.dat",kuku), nl, write("База сохранена в файле not.dat"), nl,
write("Нажмите любую клавишу"), readchar(_), removewindow, !. procedure(3):- write("-------------------------------------------------------------------"), nl, write("Невозможно сохранить созданную базу"), nl,
write("Нажмите любую клавишу"),
readchar(_),
makewindow(1,2,7,"ХАРАКТЕРИСТИКА ПРЕДПРИЯТИЯ",0,0,25,80). /*Процедура записи на диск*/ sve(1):-
write("Введите имя файла :"), readln(N), save(N), write("Все в порядке"), beep, !. sve(1):- write("Ошибка обмена,
нажмите любую клавишу"), readchar(_). sve(2):- save("slava.dat"). sve(3). /*Процедура чтения с диска*/ lod(1):- retractall(_), write("Введите имя файла :"), readln(N), existfile(N), consult(N), write("Все в порядке"), beep, !. lod(1):- nl,
write("Данного файла нет на диске"),nl,
write("Нажмите любую клавишу"),
readchar(_). lod(2):- retractall(_), existfile("slava.dat"), consult("slava.dat"), write("Все в порядке"), beep, !. lod(2):- write("Файла slava.dat нет на диске"),nl, write("нажмите любую клавишу"), readchar(_). lod(3). repeat. repeat:- repeat. /*Выбор записи*/ select(N):- nl,
write("1 - известен номер записи"),nl,
write("2 - известно название предприятия"),nl,
write("3 - известно количество рабочих"),nl,
write("4 - известен объем продукции"),nl,
write("5 - известна занимаемая площадь"),nl, write("==>"), readint(X), sel(X,N). sel(1,N):- nl,
write("Введите номер записи :"), readint(N), svod(M,_,_,_,_), M=N. sel(1,N):- N=0. sel(2,N):- nl, write("Введите название предприятия:"), readln(L), svod(Z,L,_,_,_), N=Z. sel(2,N):- N=0. sel(3,N):- nl,
write("Введите количество рабочих: "), readint(F), svod(Z,_,F,_,_), N=Z. sel(3,N):- N=0. sel(4,N):- nl,
write("Введите объем продукции:"), readint(Q), svod(Z,_,_,Q,_), N=Z. sel(4,N):- N=0. sel(5,N):- nl,
write("Введите занимаемую площадь:"), readint(W), svod(Z,_,_,_,W), N=Z.Разработка информационно-справочной системы "Характеристика предприятия" Prolog
Blog
Home - Blog