Система Посредник. Заключение договоров на поставку строительных материалов Введение В конце двадцатого века автоматизация вс сильнее завовывает все сферы человеческой деятельности. Применение вычислительной техники в разнообразных отраслях народного хозяйства призвано облегчить труд человека и уменьшить число ошибок, совершаемых при принятии решений. При построении систем, помогающих человеку, используются примы, изучаемые такой областью информатики,
как инженерия знаний. В данном курсовом проекте реализована система Посредник, служащая для заключения договоров между поставщиками и покупателями строительных материалов. Эта система может использоваться сотрудниками посреднических контор, работающих в этой области. Программа реализована на языке Пролог. 1. Виды услуг и режимы работы системы Посредник Основное предназначение системы Посредник оказание услуг по заключение договоров между поставщиками
и покупателями строительных материалов. Заключение договоров может производиться в обычном, либо в интерактивном режиме. В первом случае система заключает контракт на основе имеющейся в базе данных информации о клиентах, во втором случае система запрашивает данные у пользователя, после чего ищет необходимую информацию в базе данных и, найдя подходящие договоры, выводит их, либо при отсутствии на данный момент возможностей для сделки, заносит информацию о клиенте в базу данных.
Кроме всех возможных вариантов договоров система выводит ещ и наиболее предпочтительные для посредника с точки зрения коммерческой выгоды. Кроме того, в системе имеются режимы просмотра и редактирования либо добавления данных по поставщикам и по покупателям, а так же просмотра и редактирования региональной принадлежности фирм-производителей. Если во время работы с программой в базы данных были внесены какие-либо изменения, то при выходе из программы при согласии пользователя будет произведено сохранение изменений.
2. Концептуальная модель знаний, необходимых для оказания услуг Концептуальная модель предметной области представляется множеством классов объектов с заданными на нм отношениями и операциями. Классы объектов характеризуются некоторым набором атрибутов. В данном курсовом проекте классами объектов являются Спрос, Предложение и Договор. Класс, Спрос, имеет следующие атрибуты порядковый номер, название фирмы,
название товара, производитель, желаемой партии товара, цена за единицу товара и срок поставки. У класса Предложение, имеются такие же атрибуты, за исключением того, что вместо желаемой партии товара здесь присутствуют минимальная партия и максимальное количество товара, имеющееся у поставщика. Представим объекты классов Спрос и Предложение в виде таблиц Таблица объектов класса Спрос ФирмаТоварПроизводитель
Кол-воЦена, Срок поставки1ДСК-3Кирпич облицовочныйроссийская62Мосжилст ройКерамзит европейская302283ГераклАрматура стальнаяСНГ1551104МВМАсбест строительныйукраинская702075АТС-50Кабель АВВГроссийская10002186СМУ-35Керамзит российская1202067РЭУ-22Стекло оконноебелорусская5003108АтлантОбои моющиесяVertex10004149SunprideКирпич облицовочныймосковская010Hausbaue rПлитка облицовочнаяитальянская100011711СМУ-28Ва нна чугуннаяевропейская403502012ПротонКабель АВВГмосковская1000214
Таблица объектов класса Предложение ФирмаПродукцияПроизводительМин. партияМакс. партияЦена, Срок поставки1СтройсервисКирпич облицовочный2-й кирпичный 72ОрионКерамзит Электроизолит10502043СалютАрматура стальнаяММЗ1205084СтройсервисКабель АВВГИркутсккабель90090001115БайрамиксАсб ест строительныйСтройперлит301001596Вс для домаКабель АВВГММЗ90090001127СпецстройСтекло оконноеСерп и молот507002108АстраОбои моющиесяVertex100090003119ГлобусАсбест
строительныйДонецкбетон1020015610ОрбитаК ирпич облицовочныйМосбетон200090000.3411Вс для домаПлитка облицовочнаяMarlit1000800010612УнкомтехК абель АВВГИркутсккабель13Электроста льАрматура стальнаяММЗ72065314Interchemall30009000101015WormsВан на стальнаяNord Star35100030018Концептуальная схема предметной области представлена на рис.1. и рис.2. Рис.1. Концептуальная схема предметной области спрос и предложение. Рис.2. Концептуальная схема предметной области договор.
3. Представление данных о клиентах Данные о клиентах в системе Посредник представлены в виде стандартных баз данных database языка Пролог. Поскольку в Прологе имеется довольно мощный механизм работы с такими базами данных, реализовать на нм программу типа системы Посредник намного проще и естественней, чем на алгоритмических языках типа Pascal или C. Общий вид записей в базах данных следующий поставщикN,
F,T,P,M,X,C,D покупательN,F,T,P,K,C,D где N - номер записи, F - фирма-поставщик, T наименование товара, P производитель товара, M минимальная партия, X имеющаяся в наличии партия, С цена за единицу товара, D срок поставки, K нужное покупателю количество товара. N, M, X, K, D целочисленные, F, T, P строковые, С действительная.
База данных по поставщикам записана в файле kurs1.dat, по покупателям в kurs2.dat. 4. Сетевая модель представления знаний и е использование для получения справочной информации и формирования вариантов договора Сетевая модель реализуется с помощью так называемых семантических сетей. В семантической сети имена некоторых объектов, процессов, действий, сущностей и их классов ассоциируются с узлами, а отношения между ними ассоциируются с дугами, соединяющими узлы.
Сетевую модель можно представить в виде следующей конструкции S , где I множество информационных единиц, С1,С2 Сn множество типов связей между информационными единицами, Г отображение, задающее связи из заданного множества типов связей между информационными единицами, входящими в I. Классифицирующие сети использованные в данной курсовой, на ряду с функциональными, являются одним из классов однородных у которых дуги только одного типа сетей.
Классифицирующие сети строятся на основе родовидового отношения sup, заданного на множестве классов объектов. Это отношение интерпретируется следующим образом если Ki sup Kj, то в любой момент времени t каждый объект класса Ki является объектом класса Kj, т.е. Kj является подклассом Ki или Ki является подклассом Kj. Конкретные объекты, как правило, связываются с классами низшего уровня
иерархии отношением принадлежности isa. Запись ki isa K означает, что объект ki является элементом класса K. В данном курсовом проекте классифицирующая сеть используется для определения региональной принадлежности производителя строительных материалов. Благодаря этому при заключении договоров покупателю не обязательно задавать конкретного производителя, а можно задать только регеон расположения тех производителей, продукция
которых покупателю кажется наиболее предпочтительной. В системе Посредник имеется так же возможность получения информации о принадлежности какого-либо производителя региону путм просмотра связей в классифицирующей сети, а так же имеются режимы корректировки и дополнения этой сети. Графическое представление классифицирующей сети показано на рис.3. Програмно классифицирующая сеть реализована в виде стандартных баз данных
Пролога database и выглядит следующим образом supKi,Kj где Ki и Kj класс и его подкласс соответственно. Классифицирующая сеть находится в файле web.dat. 5. Критерии выбора наиболее предпочтительного варианта договора В данном курсовом проекте наиболее предпочтительный договор выбирается в пользу посредника.
Выгода посредника состоит в получении наибольшей прибыли в кратчайшие сроки. Доход посредника обычно составляет некоторый комиссионный процент от заключнной сделки, поэтому наиболее выгодны контракты, в которых произведение количества товара, необходимое покупателю на цену этого товара, назначенную продавцом, будет максимальным. Это и будет первым критерием выбора наиболее предпочтительного договора. Вторым критерием, как было сказано выше, будет являться кратчайший срок поставки.
В начале программа выбирает предпочтительные договоры по первому критерию. Если таких договоров получится несколько, то программа выбирает из них тот, у которого срок поставки меньше т.е. реализуется второй критерий. Например, пусть имеется три возможных договора для фирмы АТС-50, которой требуется партия кабеля АВВГ российского производителя объмом 1000 единиц по цене 2 за единицу в сроки не более 18 дней ФирмаТоварПроизводительМин. партия.
Кол-воЦенаСроки4СтройсервисКабель АВВГИркутсккабель90090001116Вс для домаКабель АВВГММЗ900900011212УнкомтехКабель АВВГИркутсккабель70012000.98 При применении первого критерия выбираются фирмы Стройсервис и Вс для дома, поскольку цена, по которой они предлагают товар, больше, чем у фирмы Уникомтех и следовательно доход посредника будет больше.
На втором этапе из этих двух фирм выбирается Стройсервис, поскольку у не меньше срок поставки. 6. логическая модель представления знаний на языке многосортного исчисления предикатов и на языке Пролог Логическая модель это описание предметной области на каком-либо логическом языке. Одним из таких логических языков является многосортное исчисление предикатов. При представлении логических моделей на этом языке классы сущностей предметной области интерпретируются,
как имена сортов. Для примера введм следующие имена сортов Договор, Поставщик, Покупатель, Продукция, Производитель, Количество, Цена, Срок, ТипПроизв, а так же следующие функции и предикаты постДоговор Поставщик, покупДоговор Покупатель, продДоговор Продукция, произвДоговор Производитель, колДоговор Количество, цена Договор
Цена, срокДоговор Срок типпроизв Производитель ТипПроизв российский ТипПроизв, европейский ТипПроизв Количество Количество T Количество Количество T Выражения 1-4 сотавляют сигнатуру и имеют следующий смысл Задат несколько функций, например прод продукция, которые будучи применимы к объекту е сорта Договор, дают например продукцию проде, участвующую в операции е.
Задат функцию, значениями которой служат типы производителя. Задат константы, принадлежащие сорту ТипПроизв. Задат двухместные предикаты на объектах сорта Количество. Сигнатура это множество функций вида f An , где A1, A2 An аргументы, B значение функции. Множества аргументов и значений функций образуют соответственно сорта A и B. В частном случае, если BT, причм T1,0 особый сорт, то сигнатура имеет вид
P An T, причм P называют предикатом. Сигнатура задает структурные связи между понятиями предметной области, представленными предикатами и функциями. Логические связи между этими понятиями задаются формулами, которые записываются в сигнатуре. Структурные и логические связи выражают некоторое знание о предметной области. Таким образом, сигнатура формально представляет одну часть знания о предметной области, а формулы, записанные в этой сигнатуре, представляют другую часть знания.
Графическое представление сигнатуры показано на рис.4, а модельной структуры на рис.5. Рис.4. Графическое представление сигнатуры Логическая модель в Прологе представляется в виде предикатов и баз данных database. Например database договор догПоставщик, Покупатель Функцию пост поставщик можно реализовать так пост N догПокупатель,
Поставщик, NПоставщик. Функцию можно представить следующим образом Количество1,Количество2 Количество1 Количество2. 7. Организация диалога с пользователем При загрузке система Посредник выводит главное меню, в котором представлены все режимы работы программы. Каждый режим выбирается посредством нажатия цифровой клавиши.
Система меню представлена многоуровневой иерархической структурой, т.е. у многих режимов есть свои подменю. В программе реализованы обычные для такого типа программ режимы просмотра данных, их коррекции и удаления, наряду с обычным имеется интерактивный режим работы. Если в базы данных были внесены какие-либо изменения, то при выходе из программы система выведет запрос о необходимости сохранения изменений, сопровождаемый звуковым сигналом.
Схема организации диалога представлена на рис.6. заключение При написании курсового проекта были использованы разнообразные модели представления знаний, изучаемые инженерией знаний. Система Посредник программно реализована на языке Пролог в среде Turbo Prolog 2.0. Приложение Текст программы посредник Курсовой проект по дисциплине Инженерия знаний Система
Посредник Автор Данченков А.В гр. ИИ-1-95 code8850 domains Фирма,Товар,Произв,Strstring Int,N,Парт,Колво,Срокиinteger Ценаreal Основные и служебные базы данных database - поставщик поставщикinteger,Фирма,Товар,Произв,Парт ,Колво,Цена,Сроки database - покупатель покупательN,Фирма,Товар,Произв,Парт,Цена ,Сроки database - sup supStr,
Str database - contract contractinteger,integer database - best bestinteger,integer,integer,integer database - best2 best2integer,integer,integer,integer database - flag flagInt predicates start viewInt autoload workingInt mainmenu correctInt interactinteger warninginteger formbestinteger,integer,integer,integer formbest2integer fb2integer,integer,integer,integer fb1integer,integer,integer,integer fb2integer,integer,integer,integer delInt delsupstring inssupstring viewsupstring sve savebd ask error ioerror
ok repeat checkcontrinteger allcontract printcontract cmpnamestring,string findwebStr,Str prninteger,string goal start. clauses Основная процедура start- makewindow1,26,94,СИСТЕМА ПОСРЕДНИК,0,0,25,80, clearwindow, autoload, mainmenu. Процедура автоматической загрузки баз данных autoload- retractall,поставщик, existfilekurs1.dat, consultkurs1.dat,поставщик, retractall,покупатель, existfilekurs2.dat, consultkurs2.dat,покупатель, retractall,sup, existfileweb.
dat, consultweb.dat,sup, cursor21,30, writeБазы загружены. autoload- makewindow2,74,79,ОШИБКА,6,18,8,40, cursor2,10, writeНет базы на диске, sound70,294, removewindow Главное меню mainmenu- repeat, cursor7,0, write 0 - О системе ,nl, write 1 - Корректировка данных,nl, write 2 - Уничтожение записей,nl, write 3 - Просмотр баз данных,nl, write 4 -
Заключение договоров,nl, write 5 - Интерактивный режим,nl, write 6 - Выход из программы,nl, write , readintC, clearwindow, workingC, clearwindow, C 6, retractall, removewindow. Вывод данных о создателе программы working0- makewindow3,27,30,О системе 0,0,25,80, nl,nl, write Инфоpмационно-спpавочная система, nl,nl, write Посредник , nl,nl,nl,nl, write Программа составлена в среде , nl, write
TURBO-PROLOG v.2.0 nl,nl,nl, write автоp Данченков А.В nl,nl, write МИРЭА, гp.ИИ-1-95 С 1997 г nl, sound5,220, cursor22,26, writeНажмите на любую клавишу, readchar, removewindow Процедура вывода меню корректировки данных working1- makewindow4,26,48,Коppектировка данных,0,0,25,80, sound5,220, repeat, nl, nl, cursor9,0, write 1 - Изменение данных по поставщикам,nl, write 2 - Изменение данных по покупателям,nl, write 3 -
Добавление данных по поставщикам,nl, write 4 - Добавление данных по покупателям,nl, write 5 - Выход в главное меню ,nl, write , readintX, clearwindow, X 0,X 5, correctX, clearwindow, X5 removewindow. Процедура вывода меню уничтожения данных working2- makewindow5,48,107,Уничтожение записей,0,0,25,80, sound5,220, repeat, cursor7,0, write 1 - Удаление из базы данных поставщиков,nl, write 2 -
Удаление из базы данных покупателей,nl, write 3 - Удаление из классифицирующей сети,nl, write 4 - Выход,nl, write , readintI, clearwindow, I 0,I 4, delI, clearwindow, I4 removewindow. Процедура вывода меню просмотра базы данных working3- makewindow6,30,26,Просмотp баз данных,0,0,25,80, sound5,220, repeat, nl, nl, cursor7,0, write 1 - Просмотр базы данных по поставщикам,nl, write 2 -
Просмотр базы данных по покупателям,nl, write 3 - Просмотр связей в классифицирующей сети,nl, write 4 - Выход в главное меню ,nl, write , readintX, clearwindow, X 0,X 4, viewX, clearwindow, X4 removewindow. Вызов процедуры, выводящей контракты working4- retractall,best, retractall,best2, allcontract Процедура вывода меню интерактивного режима working5- makewindow4,26,48,Заключение договоров в интерактивном режиме,0,0,25,80, sound5,220, repeat, nl, nl, cursor9,0, write 1 -
Поиск поставщика,nl, write 2 - Поиск покупателя,nl, write 3 - Выход,nl, write , readintX, clearwindow, X 0,X 3, interactX, clearwindow, X3 removewindow. Процедура выхода из программы working6-flag1,retractflag1,savebd working6. working- makewindow16,74,79,ОШИБКА ВВОДА,6,18,8,40, nl, write Введите число от 0 до 6 nl, write соответствующее выбранному пункту,nl,nl,nl, write
Нажмите на любую клавишу, sound20,494, sound30,392, readchar, removewindow. Процедуры просмотра баз данных view1- makewindow16,31,26,Просмотp базы данных по поставщикам,0,0,25,80, write,nl, write ПОСТАВЩИКИ ,nl, write,nl, write Мин . ,nl, writeNo Фирма Товар Производитель партия Кол-во ЦенаД,nl, write,nl, поставщикN,Firm,Tov,Proizv,Min,Kol,Price ,Srok, cursorZ cursorZ,1,writeN, cursorZ,3,write,
Firm, cursorZ,16,write,Tov, cursorZ,36,write,Proizv, cursorZ,50,write,Min, cursorZ,59,write,Kol, cursorZ,68,write,Price, cursorZ,73,write,Srok, cursorZ,0,write, cursorZ,76,write, nl, fail. view1- write, nl, cursor22,26, writeНажмите на любую клавишу, readchar, removewindow. view2- makewindow16,31,26,Просмотp базы данных по покупателям,0,0,25,80, write,nl, write ПОКУПАТЕЛИ ,nl, write,nl, write Требуемая ,nl, writeNo
Фирма Товар Производитель партия Цена Д,nl, write,nl, покупательN,Firm,Tov,Proizv,Part,Price,S rok, cursorZ cursorZ,1,writeN, cursorZ,4,write,Firm, cursorZ,20,write,Tov, cursorZ,42,write,Proizv, cursorZ,57,write,Part, cursorZ,67,write,Price, cursorZ,72,write,Srok, cursorZ,0,write, cursorZ,76,write, nl, fail. view2- write, nl, cursor22,26, writeНажмите на любую клавишу, readchar, removewindow. view3- makewindow16,31,26,Просмотp
связей в классифицирующей сети,0,0,25,80, nl,nl, viewsupпроизводитель, cursor21,26, write Просмотр закончен ,nl, cursor22,26, writeНажмите на любую клавишу, readchar, removewindow view. Процедуры коррекции данных в базах данных correct1- makewindow4,26,48,Изменение данных о поставщках,0,0,25,80, nl, write Введите порядковый номер поставщика ,readintX,nl, поставщикX,Firm,Tov,Proizv,Min,Kol,Price ,Srok, clearwindow,nl, write
Порядковый номер поставщика ,writeX,nl, write Фирма ,writeFirm,nl, write Товар ,writeTov,nl, write Производитель ,writeProizv,nl, write Минимальная партия ,writeMin,nl, write Колличество на складе ,writeKol,nl, write Цена за единицу товара ,writePrice,nl, write Сроки поставки ,writeSrok,nl, nl,nl,nl, write Введите название фирмы ,readlnFirm1, write Введите название товара ,readlnTov1, write
Введите производителя ,readlnProizv1, write Введите минимальную партию ,readIntMin1, write Введите колличество на складе ,readIntKol1, write Введите цену за единицу товара ,readrealPrice1, write Введите сроки поставки ,readIntSrok1,nl, X1X, retractпоставщикX,Firm,Tov,Proizv,Min,Ko l,Price,Srok, assertzпоставщикX1,Firm1,Tov1,Proizv1,Mi n1,Kol1,Price1,Srok1 inssupProizv1, assertflag1, removewindow. correct2- makewindow4,26,48,Изменение данных о покупателях,0,0,25,80, nl,
write Введите порядковый номер покупателя ,readintX,nl, покупательX,Firm,Tov,Proizv,Part,Price,S rok, clearwindow,nl, write Порядковый номер покупателя ,writeX,nl, write Фирма ,writeFirm,nl, write Товар ,writeTov,nl, write Производитель ,writeProizv,nl, write Необходимая партия ,writePart,nl, write Цена за единицу товара ,writePrice,nl, write
Сроки поставки ,writeSrok,nl, nl,nl,nl, write Введите название фирмы ,readlnFirm1, write Введите название товара ,readlnTov1, write Введите производителя ,readlnProizv1, write Введите необходимую партию ,readIntPart1, write Введите цену за единицу товара ,readrealPrice1, write Введите сроки поставки ,readIntSrok1,nl, X1X, retractпокупательX,Firm,Tov,Proizv,Part, Price,Srok, assertzпокупательX1,Firm1,Tov1,Proizv1,P art1,Price1,Srok1, inssupProizv1
assertflag1, removewindow. correct3- makewindow9,26,48,Добавление данных о поставщиках,0,0,25,80, repeat, nl, write Введите порядковый номер поставщика ,readintK,nl, write Введите название фирмы ,readlnF, write Введите название товара ,readlnT, write Введите производителя ,readlnP, write Введите минимальную партию ,readIntM, write Введите колличество на складе ,readIntKl, write Введите цену за единицу товара ,readrealPr, write
Введите сроки поставки ,readIntS,nl, N1K, FirmF,TovT,ProizvP, MinM,KolKl, PricePr,SrokS, assertzпоставщикN1,Firm,Tov,Proizv,Min,K ol,Price,Srok, inssupProizv, ask assertflag1, removewindow. correct4- makewindow9,26,48,Добавление данных о покупателях,0,0,25,80, repeat, nl, write Введите порядковый номер покупателя ,readintK,nl, write Введите название фирмы ,readlnF, write Введите название товара ,readlnT, write
Введите производителя ,readlnP, write Введите необходимую партию ,readIntM, write Введите цену за единицу товара ,readrealPr, write Введите сроки поставки ,readIntS,nl, N1K, FirmF,TovT,ProizvP, PartM, PricePr,SrokS, assertzпокупательN1,Firm,Tov,Proizv,Part ,Price,Srok, inssupProizv, ask assertflag1, removewindow. correct. Вспомагательные процедуры удаления данных del1- makewindow5,48,107,Удаление данных о поставщках,0,0,25,80,
nl, write Введите порядковый номер поставщика ,readintX,nl, поставщикX,Firm,Tov,Proizv,Min,Kol,Price ,Srok, retractпоставщикX,Firm,Tov,Proizv,Min,Ko l,Price,Srok, assertflag1, ok removewindow. del1- error, removewindow del2- makewindow5,48,107,Удаление данных о покупателях,0,0,25,80, nl, write Введите порядковый номер покупателя ,readintX,nl, покупательX,Firm,Tov,Proizv,Part,Price,S rok, retractпокупательX,
Firm,Tov,Proizv,Part, Price,Srok, assertflag1, ok removewindow. del2- error, removewindow del3- makewindow5,48,107,Удаление из классифицирующей сети,0,0,25,80, nl, write Введите удаляемого производителярегеон ,readlnS,nl, delsupS, assertflag1, ok removewindow. del3- error, removewindow del. Процедура запроса на окончание ввода в correct3 и correct3 ask- makewindow10,43,120,Вопрос,6,18,8,40,nl, nl, write Продолжить процесс ввода данных ,nl,nl, write
ДаНет, readcharCh, removewindow, clearwindow, ChН Вывод запроса о сохранении изменнных баз данных savebd- makewindow17,74,79,Сохранение изменений,6,18,8,40,nl, write Сохранить произведнные ,nl, write изменения на диске,nl,nl, write ДаНет, sound20,494, sound30,392, readcharCh, removewindow, clearwindow, ChД sve. savebd. Сохранение данных на диске sve-savekurs1.dat,поставщик, savekurs2.dat,покупатель,
saveweb.dat,sup sve-ioerror,removewindow. Процедуры вывода сообщений об ошибках error- makewindow15,74,79,ОШИБКА,6,18,8,40, cursor2,16, writeОШИБКА,nl,nl, write Нажмите на любую клавишу, sound70,294, readchar, removewindow ioerror- makewindow16,74,79,ОШИБКА,6,18,8,40, cursor2,7, writeОшибка вводавывода,nl,nl, write Нажмите на любую клавишу, sound70,294, readchar, removewindow. Процедура вывода сообщения об успешном завершении данной операции ok- makewindow17,27,90,ОК,6,18,8,40,
cursor2,7, write ОПЕРАЦИЯ ВЫПОЛНЕНА,nl,nl, write Нажмите на любую клавишу, readchar, removewindow. Процедура repeat repeat. repeat- repeat. Процедура обнаружения связей по классифицирующей сети cmpnameProizv,Proizv. cmpnameProizv,Proizv1- findwebProizv,Proizv1. findwebX,Y-supX,Y. findwebX,Y-supX,Z,findwebZ,Y. Процедура обнаружения всех возможных контрактов allcontract- покупательN Tov,Proizv,Part,Price,Srok, поставщикN1
Tov,Proizv1,Min1,Kol1,Price1,Srok1, cmpnameProizv,Proizv1, Part Min1,Part Kol1,Price Price1,Srok Srok1, assertzcontractN,N1, assertbestN,0,0,0, assertbest2N,0,0,1000, fail. allcontract-printcontract. Процедуры вывода на экран всех возможных контрактов printcontract- makewindow16,31,26,Все возможные контракты,0,0,25,80, nl,nl, покупательN,Firm checkcontrN, prnN,
Firm, fail. printcontract- retractall,contract, removewindow. prnN,Firm- cursor1,1, writeДля фирмы ,Firm, nl, write,nl, write Мин . ,nl, writeNo Фирма Товар Производитель партия Кол-во ЦенаД,nl, write,nl, contractN,N1, поставщикN1,Firm1,Tov1,Proizv1,Min1,Kol1 ,Price1,Srok1, cursorZ cursorZ,1,writeN1, cursorZ,3,write,
Firm1, cursorZ,16,write,Tov1, cursorZ,36,write,Proizv1, cursorZ,50,write,Min1, cursorZ,59,write,Kol1, cursorZ,68,write,Price1, cursorZ,73,write,Srok1, cursorZ,0,write, cursorZ,76,write, nl, покупательN Part retractcontractN,N1, CsPartPrice1, formbestN,N1,Cs,Srok1, formbest2N, fail. prnN write, nl, best2N,Np поставщикNp,
Firm nl, writeНаиболее предпочтительный,nl, writeконтракт с фирмой ,Firm,nl, cursor22,26, writeНажмите на любую клавишу, readchar, clearwindow Проверяет, есть ли контракты checkcontrN-contractN Процедура формирования наиболее предпочтительного контракта formbestN,Np,S,Srok- NaN, bestNa,Np1,S1,Srok1,SS1, assertzbestNa,
Np,S,Srok formbestN,Np,S,Srok- NaN, bestNa,Np1,S1,Srok1,S S1,fb1Na,Np,S,Srok, assertzbestNa,Np,S,Srok formbest fb1N retractbestN fail. fb1 formbest2N- bestN,Np,S,Srok,fb2N,Np,S,Srok,fail. formbest2. fb2N,Np,S,Srok- NaN, best2Na,Np1 Srok1,Srok1 Srok, fb2Na,Np,S,Srok, assertzbest2Na,Np,S,Srok fb2 fb2N retractbest2N fail. fb2
Процедуры заключения договоров в интерактивном режиме interact1- makewindow9,26,48,Поиск поставщика,0,0,25,80, nl, write Введите название фирмы ,readlnF, write Введите название товара ,readlnT, write Введите производителя ,readlnP, write Введите необходимую партию ,readIntM, write Введите цену за единицу товара ,readrealPr, write Введите сроки поставки ,readIntS,nl, N0, FirmF,TovT,ProizvP, PartM, PricePr,SrokS, assertzпокупательN,
Firm,Tov,Proizv,Part, Price,Srok, removewindow, поставщикN1 Tov,Proizv1,Min1,Kol1,Price1,Srok1, cmpnameProizv,Proizv1, Part Min1,Part Kol1,Price Price1,Srok Srok1, assertflag2, assertzcontractN,N1, assertbestN,0,0,0, fail. interact1-flag2,printcontract, retractпокупатель0,Firm,Tov,Proizv,Part, Price,Srok, retractflag2 interact1- warningN, покупатель0,Firm,
Tov,Proizv,Part,Price,S rok, assertzпокупательN,Firm,Tov,Proizv,Part, Price,Srok, inssupProizv, retractпокупатель0,Firm,Tov,Proizv,Part, Price,Srok, assertflag1 interact1- retractпокупатель0,Firm,Tov,Proizv,Part, Price,Srok interact2- makewindow9,26,48,Поиск покупателя,0,0,25,80, nl, write Введите название фирмы ,readlnF, write Введите название товара ,readlnT, write
Введите производителя ,readlnP, write Введите минимальную партию ,readIntM, write Введите имеющуюся партию ,readIntI, write Введите цену за единицу товара ,readrealPr, write Введите сроки поставки ,readIntS,nl, N0, FirmF,TovT,ProizvP,MinM, KolI, PricePr,SrokS, assertzпоставщикN,Firm,Tov,Proizv,Min,Ko l,Price,Srok, removewindow, покупательN1
Tov,Proizv1,Part1,Price1,Srok1, cmpnameProizv1,Proizv, Part1 Min,Part1 Kol,Price1 Price,Srok1 Srok, assertflag2, assertzcontractN1,N, assertbestN1,0,0,0, fail. interact2-flag2,printcontract, retractпоставщик0,Firm,Tov,Proizv,Min,Ko l,Price,Srok, retractflag2 interact2- warningN, поставщик0,Firm,Tov,Proizv,Min,Kol,Price ,Srok, assertzпоставщикN,Firm,
Tov,Proizv,Min,Ko l,Price,Srok, inssupProizv, retractпоставщик0,Firm,Tov,Proizv,Min,Ko l,Price,Srok, assertflag1 interact2- retractпоставщик0,Firm,Tov,Proizv,Min,Ko l,Price,Srok interact. Вывод предупреждения о невозможности заключения договора warningN-makewindow7,49,113,Предупрежден ие,5,10,12,60, sound5,220,nl,nl, write На данный момент заключение контракта невозможно,nl, write
Поместить данные в базу данных,nl, write для последующей обработки,nl,nl, write ДаНет,nl, readcharCh, removewindow, ChД, write Введите порядковый номер фирмы ,readIntN,nl Удаление элемента из классифицирующей сети В середине цепочки delsupS- supS,X, delsupX,fail. В конце цепочки delsupS- sup,S, retractsup,S,fail. delsup. Определение необходимости добавления и добавление элемента в классифицирующую сеть inssupS-
sup,S inssupS-supпроизводитель,S inssupS- writeВведите региональную принадлежность объекта ,S readlnM,nl, assertzsupM,S,assertflag1,inssupM Вывод на печать связей в классифицирующей сети viewsupS- supS,M,writeS ,M,write , viewsupM,nl,fail. viewsup- readchar.
! |
Как писать рефераты Практические рекомендации по написанию студенческих рефератов. |
! | План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом. |
! | Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач. |
! | Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты. |
! | Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ. |
→ | Виды рефератов Какими бывают рефераты по своему назначению и структуре. |