Перечень вопросов, подлежащих разработке
Разработать меню, обеспечивающее взаимодействие пользователя с системой, в соответствии с заданием, предусмотрев режимы:
Разработать процедуры:
- уничтожения записей по признакам;
- загрузки;
- сохранения;
- просмотра;
- уничтожения;
Предусмотреть создание из базы BD новых баз данных B1, B2, характеризуемых признаками, задаваемыми пользователем.
Перечень графических материалов:
Рис. 1 Структурная схема меню
Рис. 2 Структурная схема программы
1. Понятие об информационно-справочных системах и их программная реализация
Информационно-справочные системы предназначены для управления различными информационными и справочными массивами, в число которых входят и базы данных. Эти системы организовывают определенный интерфейс пользователя с функциями обработки информации самой системы. Набор возможностей таких систем обычно включает в себя коррекцию структуры используемого объекта (инкапсулирующего информацию), работа с его составляющими — дополнение, редактирование, удаление (в случае, когда роль такого объекта выполняет база данных, это — записи), простой просмотр, поиск элементов. Также необходимо обеспечить для такой системы и функции постоянного надежного хранения — в простейшем случае, это — запись базы из памяти в файл на диске и считывание оного с диска в память.
Программная реализация мало отличается от подобной концепции, но конкретизирует абстрактные операции в конкретные процедуры и функции (или же объекты) и зависит полностью от возможностей языка, поставленной задачи и искусства программиста.
2. Базы данных и способы их представления
информационный справочный программа интерфейс
Общая концепция теории простых баз данных подразумевает наличие некоторого множества таблиц и являющихся, собственно, базой данных, имеющей определенный идентификатор (имя).
Каждая таблица состоит из n-го количества записей (величина n зависит от возможностей конкретной системы), каждая из которых имеет одну и ту же структуру (в рамках одной таблицы) и может объединять в себе несколько разнородных объектов (их количество также зависит целиком и полностью от возможностей системы).
Автоматизированная информационная система «Библиотека колледжа»
... примере - создание автоматизированной системы для библиотеки колледжа. Объект исследования - автоматизированная информационная система «Библиотека колледжа»., Предмет исследования - повышение автоматизации библиотеки колледжа. Целью выпускной квалифицированной работы является разработка автоматизированной информационной системы «Библиотека колледжа», которой будет ...
Работа с базой данных предполагает в себе возможность работать с записями (либо изменять структуру таблиц).
В языке программирования Пролог база данных описывается в отдельном разделе, именуемом database . Таких разделов может быть несколько в одной программе и каждый из них, если они действительно представляют собой разные БД, должны иметь разные имена. В случае отсутствия имени у базы данных, ей дается имя по умолчанию — dbasedom .
Работу с загружаемыми базами данных в Прологе реализуют следующие стандартные предикаты: assert — добавить запись в БД, retract — удалить указанную запись, save — сохранить указанную БД в файле, consult — загрузить БД из файла в память.
В данной работе объявлена главная база данных bd , имеющая предикат characteristick , и две временные базы b1, b2 с предикатами table1, table2 .
3. Разработка системного меню
do (char)
4. Разработка структуры программы
Системное меню вызывает только предикаты do (<режим>
— , определенные для каждой из необходимых задач (номер режим полностью совпадает с нумерацией в главном меню).
Каждая из реализаций этого предиката выводит меню, либо сразу вызывает соответствующие процедуры: open, store, adding, correct, see, del, indication . Процедура Indication выводит дополнительное подменю и вызывает либо IndicationB1, либо IndicationB2 в зависимости от выбора пользователя. Do(`8′) завершает работу с системой.
5. Разработка процедур
Загрузка базы данных
В do(`1′) имеется меню:
Процедура Open имеет четыре реализации, для каждого из вариантов работы. Для любого случая перед загрузкой базы данных проверяется существование файла с введенным именем (предикат exists ).
Для загрузки базы данных используется стандартный предикат consult . При вызове Open(`1′) загрузка производится в базу bd , при вызове Open(`2′) в базу b1 , при вызове Open(`3′) — в b2 .
Сохранение
В do(`2′) меню:
Существуют предикаты для записи главной базы и двух временных. Используется стандартный предикат save , записывающий в текстовый файл факты, связанные с данной БД.
Просмотр
В do(`3′) меню:
Предложения See(`1′) и See(`2′) создают новые окна и выводят в них найденные записи. После каждой выведенной записи запрашивается нажатие клавиши, затем повторяется поиск с помошью стандартного предиката Fail или происходит выход из предиката в системное меню.
Добавление
Данный предикат был добавлен в программу по причине облегчения работы с ней, хоть и в задании его не было.
В этой процедуре используется определенная в этой же программе процедура Get , запрашивающая с клавиатуры значения для новой записи в главной базе данных и стандартная процедура assert , добавляющая новый факт в базу данных.
Визуализация геофизических данных
... базу данных geo_incr, которая предназначена для визуализации инклинометрии. Таблица хранит данные о карте местности, на которой происходит бурение скважины. 3.1 Структура базы данных, разработанной для визуализации каротажа Состав таблиц базы данных ... адрес строки индекс-таблицы; длина до 4000 байт. CHAR (размер) [BYTE|CHAR] Символьное поле фиксированной длины, определяемой значением размер. ...
Корректировка
В данной программе существует два варианта корректировки — редактирование записи, найденной по номеру артикула и найденной по названию детали. В каждой из версий предиката вначале запрашивается номер артикула (или название) изменяемой записи, поиск и вывод на экран, затем происходит ввод новых значений полей, подтверждаются сделанные изменения, удаляется старый факт ( retract ) и добавляется вновь сформированный (assert ).
Создания базы по признакам
Indication(`1′)
Удаление записи по признакам
Признаками для удаляемой записи могут служить номер артикула, название, а также возможно уничтожить из памяти всю базу данных. Во всех вариантах используется процедура удаления записи retract .
6. Листинг
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Пакостина Александра. %
% ИР-1-95. %
% Задание 11. %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
domains
artikul = integer
cex, sklad = integer
name = string
rubley, kopeek = integer
year, month, day = integer
placedom = place(cex, sklad)
pricedom = price(rubley, kopeek)
datedom = date(year, month, day)
database — bd
characteristick(artikul, placedom, name, pricedom, datedom)
database — b1
table1(artikul, placedom, name, pricedom, datedom)
database — b2
table2(artikul, placedom, name, pricedom, datedom)
predicates
windows
go
do(char)
open(char)
store(char)
adding
correct(char)
indication(char)
indicationB1(char)
indicationB2(char)
see(char)
del(char)
exists(string)
show(artikul, placedom, name, pricedom, datedom)
get(artikul, placedom, name, pricedom, datedom)
goal
windows, go.
clauses
characteristick(1,place(5,6),»Gayka»,price(0,45),date(1996,1,4)).
characteristick(2,place(6,7),»Vint»,price(0,65),date(1996,2,45)).
windows :-
makewindow(1,52,0,»»,24,0,1,80),
write(» Пакостина Александра.»),
makewindow(2,52,0,»»,0,0,1,80),
write(» Система управления базой данных \»Характеристика детали\»»),
makewindow(3,112,1,» Системное меню «,2,17,14,46),
nl, write(» Выберите вариант работы с базами данных:»), nl,
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,
Многофункциональное устройство контроля доступа в помещение на ...
... Обзор существующих решений 2. Разработка схемы устройства 3. Выбор необходимых компонентов 4. Задание алгоритма работы 5. Создание программы работы устройства 6. Изготовление макета ... Исходя из вышесказанного, разработка многофункционального устройства контроля доступа в помещение на микроконтроллерном управлении является актуальной задачей. Целью данной работы является: изготовление действующего ...
nl, write(» ——————| |——————«),
framewindow(126).
go :-
gotowindow(3), cursor(11,21),
readchar(X), do(X).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
do(‘1’) :-
makewindow(4,18,1,» Загрузить «,5,25,10,30),
framewindow(19),
nl, write(» Куда загрузить ?»), nl,
nl, write(» 1 :- В bd»),
nl, write(» 2 :- В b1″),
nl, write(» 3 :- В b2″),
nl, write(» 4 :- Меню»), nl,
nl, write(» ——| |——«),
cursor(7,13), readchar(X), open(X),
removewindow, go, !.
do(‘2’) :-
makewindow(4,18,1,» Сохранить «,5,25,10,30),
framewindow(19),
nl, write(» Что сохранить ?»), nl,
nl, write(» 1 :- bd»),
nl, write(» 2 :- b1″),
nl, write(» 3 :- b2″),
nl, write(» 4 :- Меню»), nl,
nl, write(» ——| |——«),
cursor(7,13), readchar(X), store(X),
removewindow, go, !.
do(‘3’) :-
makewindow(4,18,1,» Просмотреть «,5,25,10,30),
framewindow(19),
write(» Что просмотреть ?»), nl,
nl, write(» 1 :- bd»),
nl, write(» 2 :- b1″),
nl, write(» 3 :- b2″),
nl, write(» 4 :- Меню»), nl,
nl, write(» ——| |——«),
cursor(7,13), readchar(X), see(X),
removewindow, go, !.
do(‘4’) :-
makewindow(4,18,1,» Корректировка «,5,25,9,30),
framewindow(19),
write(» Способ нахождения записи: «), nl,
nl, write(» 1 :- по номеру артикула»),
nl, write(» 2 :- по названию»),
nl, write(» 3 :- Меню»), nl,
nl, write(» ——| |——«),
cursor(6,13), readchar(X), correct(X),
removewindow, go, !.
do(‘5’) :-
makewindow(4,18,1,» Удаление записи по признаку «,5,25,10,30),
framewindow(19),
write(» Введите признак:»), nl,
nl, write(» 1 :- По артикулу»),
nl, write(» 2 :- По названию»),
nl, write(» 3 :- Удалить всю базу»),
nl, write(» 4 :- Меню»), nl,
nl, write(» ——| |——«),
cursor(7,13), readchar(X), del(X),
removewindow, go, !.
do(‘6’) :-
makewindow(4,18,1,» Создать базу по признаку «,5,25,9,30),
framewindow(19),
write(» Какую базу создать ?»), nl,
nl, write(» 1 :- B1″),
nl, write(» 2 :- B2″),
nl, write(» 3 :- Меню»), nl,
nl, write(» ——| |——«),
cursor(6,13), readchar(X), indication(X),
removewindow, go, !.
do(‘7’) :-
Разработка интернет-магазина одежды
... Цель работы - изучить принципы построения интернет-магазина, разработать сайт интернет-магазина одежды "Goodstore". Исходя из поставленной цели, были определены задачи: обоснование необходимости создания интернет-магазина; проведение анализа и выбор интернет-технологий для разработки интернет-магазина; разработка сайта интернет-магазина, ...
makewindow(4,18,1,» Добавить запись к главной базе «,7,10,13,60),
framewindow(19), adding,
removewindow, go, !.
do(‘8’) :-
makewindow(4,95,1,»Запрос»,10,29,5,22), nl,
framewindow(94),
write(» Выйти ? (Yes/No)»), readchar(X),
X=’y’, exit;
- removewindow, go, !.
do(_) :-
makewindow(4,76,1,»Ошибка»,8,29,5,22),
framewindow(75), nl,
write(» Выберите из меню»), readchar(_),
removewindow, go.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
open(‘1’) :-
makewindow(5,95,1,»Загрузка bd»,7,20,10,40),
framewindow(94), nl,
write(» Имя файла: «), readln(FN),
exists(FN), consult(FN, bd),
nl, write(» Загружено»), readchar(_), removewindow, !.
open(‘2’) :-
makewindow(5,95,1,»Загрузка b1″,7,20,10,40),
framewindow(94), nl,
write(» Имя файла: «), readln(FN),
exists(FN), consult(FN, b1),
nl, write(» Загружено»), readchar(_), removewindow, !.
open(‘3’) :-
makewindow(5,95,1,»Загрузка b2″,7,20,10,40),
framewindow(94), nl,
write(» Имя файла: «), readln(FN),
exists(FN), consult(FN, b2),
nl, write(» Загружено»), readchar(_), removewindow, !.
open(‘4’) :-
!.
open(_) :-
makewindow(5,76,1,»Ошибка»,8,29,5,22),
framewindow(75), nl,
write(» Выберите из меню»), readchar(_),
removewindow, removewindow, do(‘1’).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
store(‘1’) :-
makewindow(5,95,1,»Сохранение bd»,7,20,10,40),
framewindow(94), nl,
write(» Имя файла: «), readln(FN), save(FN, bd),
nl, write(» Сохранено»), readchar(_), removewindow, !.
store(‘2’) :-
makewindow(5,95,1,»Сохранение b1″,7,20,10,40),
framewindow(94), nl,
write(» Имя файла: «),
readln(FN), save(FN, b1),
nl, write(» Сохранено»), readchar(_), removewindow, !.
store(‘3’) :-
makewindow(5,95,1,»Сохранение b2″,7,20,10,40),
framewindow(94), nl,
write(» Имя файла: «),
readln(FN), save(FN, b2),
nl, write(» Сохранено»), readchar(_), removewindow, !.
store(‘4’) :-
!.
store(_) :-
makewindow(5,76,1,»Ошибка»,8,29,5,22),
framewindow(75), nl,
write(» Выберите из меню»), readchar(_),
removewindow, removewindow, do(‘2’).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
see(‘1’) :-
makewindow(5,95,1,» Просмотр bd «,7,10,9,60),
framewindow(94), nl,
characteristick(Art,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day)),
show(Art,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day)),
nl,nl,write(«Нажмите ENTER для продолжения…»),
readchar(_), nl, fail.
see(‘1’) :-
Проектирование и разработка базы данных ‘Магазин продажи одежды’
... Задачей курсовой работы является проектирование и разработка базы данных «Магазина продажи одежды». Особенности: Введение данных в БД ... .3 Описание физической БД СУБД mySql server идеально подходит для разработки БД для «Магазин продажи одежды» так как ... id_orderInfo id_razmer count date Таблица 2.5 - «product» id id_cat article name meta_description description date imge price view Таблица ...
removewindow, removewindow, do(‘3’), !.
see(‘2’) :-
makewindow(5,95,1,» Просмотр b1 «,7,10,9,60),
framewindow(94), nl,
table1(Art,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day)),
show(Art,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day)),
nl,nl,write(«Нажмите ENTER для продолжения…»),
readchar(_), nl, fail.
see(‘2’) :-
removewindow, removewindow, do(‘3’), !.
see(‘3’) :-
makewindow(5,95,1,» Просмотр b2 «,7,10,9,60),
framewindow(94), nl,
table2(Art,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day)),
show(Art,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day)),
nl,nl,write(«Нажмите ENTER для продолжения…»),
readchar(_), nl, fail.
see(‘3’) :-
removewindow, removewindow, do(‘3’), !.
see(‘4’) :-
!.
see(_) :-
makewindow(5,76,1,»Ошибка»,8,29,5,22),
framewindow(75), nl,
write(» Выберите из меню»), readchar(_),
removewindow, removewindow, do(‘3’).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
correct(‘1’) :-
makewindow(5,95,1,» Корректировка записи, найденной по артикулу «,7,10,13,60),
framewindow(94),
write(«Номер артикула: «), readint(X),
characteristick(X,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day)),
nl, write(«Старая запись:»), nl, nl,
show(X,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day)), nl, nl,
write(«Введите новый вариант:»), nl, nl,
get(ArtD,place(NCD,NSD),NameD,price(RubD,KopD),date(YearD,MonD,DayD)), nl,
clearwindow,
retract(characteristick(X,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day))),
assert(characteristick(ArtD,place(NCD,NSD),NameD,price(RubD,KopD),date(YearD,MonD,DayD))),
removewindow, removewindow, do(‘4’), !.
correct(‘1’) :-
removewindow, removewindow, do(‘4’), !.
correct(‘2’) :-
makewindow(5,95,1,» Корректировка записи, найденной по названию «,7,10,13,60),
framewindow(94),
write(«Название: «), readln(X),
characteristick(Art,place(NC,NS),X,price(Rub,Kop),date(Year,Mon,Day)),
nl, write(«Старая запись:»), nl, nl,
show(Art,place(NC,NS),X,price(Rub,Kop),date(Year,Mon,Day)), nl, nl,
write(«Введите новый вариант:»), nl, nl,
get(ArtD,place(NCD,NSD),NameD,price(RubD,KopD),date(YearD,MonD,DayD)), nl,
clearwindow,
retract(characteristick(Art,place(NC,NS),X,price(Rub,Kop),date(Year,Mon,Day))),
assert(characteristick(ArtD,place(NCD,NSD),NameD,price(RubD,KopD),date(YearD,MonD,DayD))),
removewindow, removewindow, do(‘4’), !.
correct(‘2’) :-
removewindow, removewindow, do(‘4’), !.
correct(‘3’) :-
!.
correct(_) :-
makewindow(5,76,1,»Ошибка»,8,29,5,22),
Разработка комплекса маркетинга на предприятии
... 1. Теоретические аспекты разработки комплекса маркетинга производственной компании 1.1. Сущность комплекса маркетинга предприятия Данное понятие является одним из основных понятий маркетинга. В комплекс маркетинга входит все ... «4Р» и объединяющую четыре элемента (product, place, price, promotion). Таким образом, концепция маркетинга-микс по Маккарти определялась набором основных маркетинговых ...
framewindow(75), nl,
write(» Выберите из меню»), readchar(_),
removewindow, removewindow, do(‘4’).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
del(‘1’) :-
makewindow(5,95,1,» Удаление по артикулу «,7,20,10,40),
framewindow(94),
write(» Номер артикула: «), readint(X),
retract(characteristick(X,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day))), nl,
write(» Готово.»), readchar(_),
removewindow,removewindow, do(‘5’), !.
del(‘1’) :-
makewindow(6,76,1,»Ошибка»,8,29,5,22),
framewindow(75), nl,
write(» Запись не найдена.»), readchar(_),
removewindow, removewindow, removewindow, do(‘5’).
del(‘2’) :-
makewindow(5,95,1,» Удаление по названию «,7,20,10,40),
framewindow(94),
write(» Название: «), readln(X),
retract(characteristick(Art,place(NC,NS),X,price(Rub,Kop),date(Year,Mon,Day))), nl,
write(» Готово.»), readchar(_),
removewindow,removewindow, do(‘5’), !.
del(‘2’) :-
makewindow(6,76,1,»Ошибка»,8,29,5,22),
framewindow(75), nl,
write(» Запись не найдена.»), readchar(_),
removewindow, removewindow, removewindow, do(‘5’).
del(‘3’) :-
makewindow(5,95,1,» Удаление всей базы «,7,20,10,40),
framewindow(94),
retract(characteristick(_,place(_,_),_,price(_,_),date(_,_,_))),
fail.
del(‘3’) :-
write(» База удалена.»), readchar(_),
removewindow,removewindow, do(‘5’), !.
del(‘4’) :-
!.
del(‘_’) :-
makewindow(5,76,1,»Ошибка»,8,29,5,22),
framewindow(75), nl,
write(» Выберите из меню»), readchar(_),
removewindow, removewindow, do(‘5’).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
indication(‘1’) :-
makewindow(5,18,1,» Создать базу B1 по признаку «,8,25,10,30),
framewindow(19),
write(» Введите признак:»), nl,
nl, write(» 1 :- По месту хранения»),
nl, write(» 2 :- По цене»),
nl, write(» 3 :- По дате поступления»),
nl, write(» 4 :- Меню»), nl,
nl, write(» ——| |——«),
cursor(7,13), readchar(X), indicationB1(X),
removewindow, removewindow, do(‘6’), !.
indication(‘2’) :-
makewindow(5,18,1,» Создать базу B2 по признаку «,8,25,10,30),
framewindow(19),
write(» Введите признак:»), nl,
nl, write(» 1 :- По месту хранения»),
nl, write(» 2 :- По цене»),
nl, write(» 3 :- По дате поступления»),
nl, write(» 4 :- Меню»), nl,
nl, write(» ——| |——«),
cursor(7,13), readchar(X), indicationB2(X),
Разработка информационно-аналитической системы контакт-центра
... покупок (связь, развлечения, служба быта). Целью данной дипломной работы является разработка информационно-аналитической системы контакт центра "СИМПРЕЗА". Для достижения данной цели необходимо решить следующие ... выявляет потребности клиентов, их категорию и направленность. 2. Планирует работу с клиентами, разрабатывает методики общения с ними. 3. Организует предварительные переговоры с клиентами, ...
removewindow, removewindow, do(‘6’), !.
indication(‘3’) :-
!.
indication(_) :-
makewindow(5,76,1,»Ошибка»,8,29,5,22),
framewindow(75), nl,
write(» Выберите из меню»), readchar(_),
removewindow, removewindow, do(‘6’).
indicationB1(‘1’) :-
makewindow(6,95,1,» Создание базы B1 по месту хранения «,7,20,10,40),
framewindow(94), nl,
write(» Номер цеха: «), readint(X),
write(» Номер склада: «), readint(Y),
characteristick(Art,place(X,Y),Name,price(Rub,Kop),date(Year,Mon,Day)),
assert(table1(Art,place(X,Y),Name,price(Rub,Kop),date(Year,Mon,Day))),
fail.
indicationB1(‘1’) :-
removewindow, removewindow, indication(‘1’).
indicationB1(‘2’) :-
makewindow(6,95,1,» Создание базы B1 по цене «,7,20,10,40),
framewindow(94), nl,
write(» Рублей: «), readint(X),
write(» Копеек: «), readint(Y),
characteristick(Art,place(NC,NS),Name,price(X,Y),date(Year,Mon,Day)),
assert(table1(Art,place(NC,NS),Name,price(X,Y),date(Year,Mon,Day))),
fail.
indicationB1(‘2’) :-
removewindow, removewindow, indication(‘1’).
indicationB1(‘3’) :-
makewindow(6,95,1,» Создание базы B1 по дате поступления «,7,20,10,40),
framewindow(94), nl,
write(» Год: «), readint(X),
write(» Месяц: «), readint(Y),
write(» День: «), readint(Z),
characteristick(Art,place(NC,NS),Name,price(Rub,Kop),date(X,Y,Z)),
assert(table1(Art,place(NC,NS),Name,price(Rub,Kop),date(X,Y,Z))),
fail.
indicationB1(‘3’) :-
removewindow, removewindow, indication(‘1’).
indicationB1(‘4’) :-
!.
indicationB1(_) :-
makewindow(6,76,1,»Ошибка»,8,29,5,22),
framewindow(75), nl,
write(» Выберите из меню»), readchar(_),
removewindow, removewindow, indication(‘1’).
indicationB2(‘1’) :-
makewindow(6,95,1,» Создание базы B2 по месту хранения «,7,20,10,40),
framewindow(94), nl,
write(» Номер цеха: «), readint(X),
write(» Номер склада: «), readint(Y),
characteristick(Art,place(X,Y),Name,price(Rub,Kop),date(Year,Mon,Day)),
assert(table2(Art,place(X,Y),Name,price(Rub,Kop),date(Year,Mon,Day))),
fail.
indicationB2(‘1’) :-
removewindow, removewindow, indication(‘2’).
indicationB2(‘2’) :-
makewindow(6,95,1,» Создание базы B2 по цене «,7,20,10,40),
framewindow(94), nl,
write(» Рублей: «), readint(X),
write(» Копеек: «), readint(Y),
characteristick(Art,place(NC,NS),Name,price(X,Y),date(Year,Mon,Day)),
assert(table2(Art,place(NC,NS),Name,price(X,Y),date(Year,Mon,Day))),
Маркетинг в отраслях и сферах деятельности
... осуществляя предложение своих услуг в комплексе различных форм технического, совместного торгового, юридического обслуживания. Характеристика стратегии и тактики маркетинга предполагает осуществление завладением рынком ... т. д. В силу этого, маркетинг подразумевает собой осуществление учета сложившегося уровня спроса на услуги страхования, и его формирование обособленных отраслях страхования, таких, ...
fail.
indicationB2(‘2’) :-
removewindow, removewindow, indication(‘2’).
indicationB2(‘3’) :-
makewindow(6,95,1,» Создание базы B2 по дате поступления «,7,20,10,40),
framewindow(94), nl,
write(» Год: «), readint(X),
write(» Месяц: «), readint(Y),
write(» День: «), readint(Z),
characteristick(Art,place(NC,NS),Name,price(Rub,Kop),date(X,Y,Z)),
assert(table2(Art,place(NC,NS),Name,price(Rub,Kop),date(X,Y,Z))),
fail.
indicationB2(‘3’) :-
removewindow, removewindow, indication(‘2’).
indicationB2(‘4’) :-
!.
indicationB2(_) :-
makewindow(6,76,1,»Ошибка»,8,29,5,22),
framewindow(75), nl,
write(» Выберите из меню»), readchar(_),
removewindow, removewindow, indication(‘2’).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
adding :-
get(Art,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day)),
nl, write(» Вы ввели:»),
nl, show(Art,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day)), nl,
nl, write(» Добавить ? (Yes/No)»), readchar(A),
A=’y’,
assert(characteristick(Art,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day)));
!.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
exists(FN) :-
existfile(FN);
makewindow(6,76,1,»Ошибка»,10,25,5,30), nl,
framewindow(75),
write(» Файл «,FN,» не найден!»),
readchar(_), removewindow,
removewindow, removewindow, do(‘1’).
show(Art,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day)) :-
write(» Артикул: «,Art),
nl, write(» Местоположение (Цех, Склад) : «,NC,», «,NS),
nl, write(» Наименование товара: «,Name),
nl, write(» Стоимость (Рублей: Копеек) : «,Rub,»:»,Kop),
nl, write(» Дата поступления (Год-Месяц-День) : «,Year,»-«,Mon,»-«,Day).
get(Art,place(NC,NS),Name,price(Rub,Kop),date(Year,Mon,Day)) :-
write(» Артикул: «), readint(Art),
write(» Местоположение: «), nl,
write(» Цех: «), readint(NC),
write(» Склад: «), readint(NS),
write(» Наименование товара: «), readln(Name),
write(» Стоимость: «), nl,
write(» Рублей: «), readint(Rub),
write(» Копеек: «), readint(Kop),
write(» Дата поступления: «), nl,
write(» Год: «), readint(Year),
write(» Месяц: «), readint(Mon),
write(» День: «), readint(Day).
7. Отладка программы
Открытие БД
Сохранение БД
Просмотр
Корректировка
Удаление
Создание по признакам
Добавление
8. Инструкция пользователя и решение контрольных примеров
Решение контрольных примеров основывается на том, что было сделано в отладке программы и может быть изучено по вышестоящей части (7.).
Для работы с программой необходимо выбирать из предлагаемых меню пункты путем нажатия на соответствующие цифры. При появлении подменю повторить операцию, при запросе на имя файла — ввести строку, определяющую имя файла, при запросе на символ, нажать соответствующую клавишу на клавиатуре (не забывайте, пожалуйста об языковой раскладке клавиатуры и состоянии клавиши CAPSLOCK).
Также в нескольких процедурах производится подтверждение (Yes/No — Да/Нет) — необходимо переключиться на английскую раскладку и нажать соответствующую клавишу в нижнем регистре.
Заключение
Язык программирования Пролог безусловно может быть использован для написания подобных информационно-справочных систем, так как он позволяет легко и быстро создавать логические запросы к базам данных, что безусловно выделяет его среди остальных языков программирования.
Список литературы
[Электронный ресурс]//URL: https://inzhpro.ru/kursovoy/na-temu-razrabotka-informatsionno-spravochnoy-sistemyi/
1. К. Кларк. «Введение в логическое программирование на Micro Prologe».
2. К. Хоггер. «Введение в логическое программирование».