Система "Посредник"

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

те цену за единицу товара : "),readreal(Price1),

write(" Введите сроки поставки : "),readInt(Srok1),nl,

 

X1=X,

retract(покупатель(X,Firm,Tov,Proizv,Part,Price,Srok)),

assertz(покупатель(X1,Firm1,Tov1,Proizv1,Part1,Price1,Srok1)),

ins_sup(Proizv1),

!,

assert(flag(1)),

removewindow.

 

 

correct(3):-

makewindow(9,26,48,"Добавление данных о поставщиках",0,0,25,80),

repeat,

nl,

write(" Введите порядковый номер поставщика : "),readint(K),nl,

write(" Введите название фирмы : "),readln(F),

write(" Введите название товара : "),readln(T),

write(" Введите производителя : "),readln(P),

write(" Введите минимальную партию : "),readInt(M),

write(" Введите колличество на складе : "),readInt(Kl),

write(" Введите цену за единицу товара : "),readreal(Pr),

write(" Введите сроки поставки : "),readInt(S),nl,

N1=K,

Firm=F,Tov=T,Proizv=P,

Min=M,Kol=Kl,

Price=Pr,Srok=S,

assertz(поставщик(N1,Firm,Tov,Proizv,Min,Kol,Price,Srok)),

ins_sup(Proizv),

ask,!,

assert(flag(1)),

removewindow.

 

correct(4):-

makewindow(9,26,48,"Добавление данных о покупателях",0,0,25,80),

repeat,

nl,

write(" Введите порядковый номер покупателя : "),readint(K),nl,

write(" Введите название фирмы : "),readln(F),

write(" Введите название товара : "),readln(T),

write(" Введите производителя : "),readln(P),

write(" Введите необходимую партию : "),readInt(M),

write(" Введите цену за единицу товара : "),readreal(Pr),

write(" Введите сроки поставки : "),readInt(S),nl,

N1=K,

Firm=F,Tov=T,Proizv=P,

Part=M,

Price=Pr,Srok=S,

assertz(покупатель(N1,Firm,Tov,Proizv,Part,Price,Srok)),

ins_sup(Proizv),

ask,!,

assert(flag(1)),

removewindow.

 

correct(_).

 

/* Вспомагательные процедуры удаления данных */

 

del(1):-

makewindow(5,48,107,"Удаление данных о поставщках",0,0,25,80),

nl,

write(" Введите порядковый номер поставщика : "),readint(X),nl,

поставщик(X,Firm,Tov,Proizv,Min,Kol,Price,Srok),

retract(поставщик(X,Firm,Tov,Proizv,Min,Kol,Price,Srok)),

assert(flag(1)),

ok,

!,

removewindow.

 

del(1):-

error,

removewindow,!.

 

del(2):-

makewindow(5,48,107,"Удаление данных о покупателях",0,0,25,80),

nl,

write(" Введите порядковый номер покупателя : "),readint(X),nl,

покупатель(X,Firm,Tov,Proizv,Part,Price,Srok),

retract(покупатель(X,Firm,Tov,Proizv,Part,Price,Srok)),

assert(flag(1)),

ok,

!,

removewindow.

 

del(2):-

error,

removewindow,!.

 

del(3):- makewindow(5,48,107,"Удаление из классифицирующей сети",0,0,25,80),

nl,

write(" Введите удаляемого производителя/регеон : "),readln(S),nl,

del_sup(S),

assert(flag(1)),

ok,

!,

removewindow.

del(3):-

error,

removewindow,!.

 

del(_).

 

 

/* Процедура запроса на окончание ввода в correct(3) и correct(3) */

 

ask:-

makewindow(10,43,120,"Вопрос",6,18,8,40),nl,nl,

write(" Продолжить процесс ввода данных? "),nl,nl,

write(" [Д]а/[Н]ет"),

readchar(Ch),

removewindow,

clearwindow,

Ch=Н,!.

 

 

/* Вывод запроса о сохранении изменённых баз данных */

 

save_bd:-

makewindow(17,74,79,"Сохранение изменений",6,18,8,40),nl,

write(" Сохранить произведённые "),nl,

write(" изменения на диске?"),nl,nl,

write(" [Д]а/[Н]ет"),

sound(20,494),

sound(30,392),

readchar(Ch),

removewindow,

clearwindow,

Ch=Д,!,sve.

 

save_bd.

 

/* Сохранение данных на диске */

 

sve:-save("kurs1.dat",поставщик),

save("kurs2.dat",покупатель),

save("web.dat",sup),!.

 

sve:-io_error,removewindow.

 

 

 

/* Процедуры вывода сообщений об ошибках */

 

error:-

makewindow(15,74,79,"ОШИБКА",6,18,8,40),

cursor(2,16),

write("ОШИБКА"),nl,nl,

write(" Нажмите на любую клавишу"),

sound(70,294),

readchar(_),

removewindow,

!.

 

 

io_error:-

makewindow(16,74,79,"ОШИБКА",6,18,8,40),

cursor(2,7),

write("Ошибка ввода/вывода"),nl,nl,

write(" Нажмите на любую клавишу"),

sound(70,294),

readchar(_),

removewindow.

 

 

/* Процедура вывода сообщения об успешном завершении данной операции */

 

ok:-

makewindow(17,27,90,"ОК",6,18,8,40),

cursor(2,7),

write(" ОПЕРАЦИЯ ВЫПОЛНЕНА"),nl,nl,

write(" Нажмите на любую клавишу"),

readchar(_),

removewindow.

 

 

/* Процедура repeat */

 

repeat.

repeat:- repeat.

 

 

/* Процедура обнаружения связей по классифицирующей сети */

 

cmp_name(Proizv,Proizv).

cmp_name(Proizv,Proizv1):-

find_web(Proizv,Proizv1).

 

find_web(X,Y):-sup(X,Y).

find_web(X,Y):-sup(X,Z),find_web(Z,Y).

 

 

/* Процедура обнаружения всех возможных контрактов */

 

all_contract:-

покупатель(N,_,Tov,Proizv,Part,Price,Srok),

поставщик(N1,_,Tov,Proizv1,Min1,Kol1,Price1,Srok1),

cmp_name(Proizv,Proizv1),

Part>=Min1,Part=Srok1,

 

assertz(contract(N,N1)),

assert(best(N,0,0,0)),

assert(best2(N,0,0,1000)),

fail.

all_contract:-print_contract.

 

/* Процедуры вывода на экран всех возможных контрактов */

 

print_contract:-

makewindow(16,31,26,"Все возможные контракты",0,0,25,80),

nl,nl,

 

покупатель(N,Firm,_,_,_,_,_),

checkcontr(N),

prn(N,Firm),

 

fail.

 

print_contract:-

retractall(_,contract),

removewindow.

 

prn(N,Firm):-

cursor(1,1),

 

write("Для фирмы: ",Firm),

nl,

write("|=================================================================|"),nl,

write("| | | | | Мин . | | | |"),nl,

write("|No| Фирма | Товар |Производитель| партия | Кол-во |Цена|Д|"),nl,

write("|=================================================================|"),nl,

contract(N,N1),

поставщик(N1,Firm1,Tov1,Proizv1,Min1,Kol1,Price1,Srok1),

cursor(Z,_),

cursor(Z,1),write(N1),

cursor(Z,3),write("",Firm1),

cursor(Z,16),write("",Tov1),

cursor(Z,36),write("",Proizv1),

cursor(Z,50),write("",Min1),

cursor(Z,59),write("",Kol1),

cursor(Z,68),write("",Price1),

cursor(Z,73),write("",Srok1),

cursor(Z,0),write(""),

cursor(Z,76),write(""),

nl,

?/p>