Разработка информационно–справочной системы
Понятие об информационно-справочных системах, программная реализация управления различными информационными и справочными массивами и базами данных. Разработка структуры, интерфейса программы и системного меню. Создание логических запросов к базам данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 17.09.2013 |
Размер файла | 152,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Курсовой проект
по дисциплине "Логическое программирование"
Тема: "Разработка информационно-справочной системы"
Студентка группы ИР-1-95
Пакостина Александра Викторовна
Содержание
Введение
1. Понятие об информационно-справочных системах и их программная реализация
2. Базы данных и способы их представления
3. Разработка системного меню
4. Разработка структуры программы
5. Разработка процедур
6. Листинг
7. Отладка программы
8. Инструкция пользователя и решение контрольных примеров
Заключение
Список литературы
Введение
Исходные данные: База данных BD, включающая записи вида:
Характеристика детали |
|||||||||
№ |
Место хранения |
Название |
Цена |
Дата поступления |
|||||
артикула |
№ цеха |
№склада |
детали |
руб |
коп |
год |
месяц |
число |
|
Язык программирования: Пролог.
Перечень вопросов, подлежащих разработке:
Разработать меню, обеспечивающее взаимодействие пользователя с системой, в соответствии с заданием, предусмотрев режимы:
Разработать процедуры:
уничтожения записей по признакам;
загрузки;
сохранения;
просмотра;
уничтожения;
Предусмотреть создание из базы 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. Разработка процедур
Загрузка базы данных (Open)
В do(`1') имеется меню:
Процедура Open имеет четыре реализации, для каждого из вариантов работы. Для любого случая перед загрузкой базы данных проверяется существование файла с введенным именем (предикат exists). Для загрузки базы данных используется стандартный предикат consult. При вызове Open(`1') загрузка производится в базу bd, при вызове Open(`2') в базу b1, при вызове Open(`3') - в b2.
Сохранение (Store)
В do(`2') меню:
Существуют предикаты для записи главной базы и двух временных. Используется стандартный предикат save, записывающий в текстовый файл факты, связанные с данной БД.
Просмотр (See)
В do(`3') меню:
Предложения See(`1') и See(`2') создают новые окна и выводят в них найденные записи. После каждой выведенной записи запрашивается нажатие клавиши, затем повторяется поиск с помошью стандартного предиката Fail или происходит выход из предиката в системное меню.
Добавление (Adding).
Данный предикат был добавлен в программу по причине облегчения работы с ней, хоть и в задании его не было.
В этой процедуре используется определенная в этой же программе процедура Get, запрашивающая с клавиатуры значения для новой записи в главной базе данных и стандартная процедура assert, добавляющая новый факт в базу данных.
Корректировка (Correct).
В данной программе существует два варианта корректировки - редактирование записи, найденной по номеру артикула и найденной по названию детали. В каждой из версий предиката вначале запрашивается номер артикула (или название) изменяемой записи, поиск и вывод на экран, затем происходит ввод новых значений полей, подтверждаются сделанные изменения, удаляется старый факт (retract) и добавляется вновь сформированный (assert).
Создания базы по признакам (Indication).
Indication(`1') создает базу b1, а Indication(`2') - базу b2. Для каждой базы существует отдельный предикат - IndicationB1 и IndicationB2. Существуют возможности создания таких баз по следующим признакам: по месту хранения, по цене, по дате поступления. В каждом из вариантов производится запрос на несколько параметров сразу и поиск фактов, отвечающих этим требованиям. При успешном поиске, найденный факт добавляется в базу b1 или b2.
Удаление записи по признакам (Del).
Признаками для удаляемой записи могут служить номер артикула, название, а также возможно уничтожить из памяти всю базу данных. Во всех вариантах используется процедура удаления записи 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,
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') :-
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') :-
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),
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),
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 - Да/Нет) - необходимо переключиться на английскую раскладку и нажать соответствующую клавишу в нижнем регистре.
Заключение
Язык программирования Пролог безусловно может быть использован для написания подобных информационно-справочных систем, так как он позволяет легко и быстро создавать логические запросы к базам данных, что безусловно выделяет его среди остальных языков программирования.
Список литературы
1. К. Кларк. "Введение в логическое программирование на Micro Prologe".
2. К. Хоггер. "Введение в логическое программирование".
Размещено на Allbest.ru
...Подобные документы
Теоретические основы проектирования информационно-справочных систем. Значение информационно-справочных компонент в корпоративных информационных системах. Разработка концептуальной и инфологической модели информационно-справочной системы ГОУ НПО ПУ №33.
дипломная работа [645,4 K], добавлен 02.09.2010Построение информационно-логической модели базы данных. Корректировка данных средствами запросов. Проектирование алгоритмов обработки данных. Реализация пользовательского интерфейса средствами форм. Разработка запросов для корректировки и выборки данных.
курсовая работа [680,9 K], добавлен 19.10.2010Проектирование алгоритмов и программных кодов для различных элементов пользовательских форм информационно-аналитической системы. Исследование структуры базы данных. Связь между таблицами. Разработка графического интерфейса программы и справочной системы.
курсовая работа [2,4 M], добавлен 10.01.2015Анализ информационных потоков. Описание информационных задач. Функциональное назначение программы, ее структура, описание логики. Тексты запросов на языке SQL. Назначение и условия применения информационно-справочной системы, описание операций, отчетов.
курсовая работа [3,0 M], добавлен 16.12.2013Описание структуры обучающего блока. Проектирование его алгоритма и лингвистического и информационного обеспечения. Организация его взаимодействия с базой данных. Разработка графического интерфейса. Программная реализация основных функций приложения.
дипломная работа [2,1 M], добавлен 20.12.2015Описание первичных и результатных документов, типа связи информационных объектов. Построение информационно-логической модели базы данных и её реализация в СУБД Access (создание таблиц, запросов, форм, отчётов). Разработка интерфейса пользователя.
курсовая работа [2,1 M], добавлен 14.11.2013История создания языков С и С++. Разработка буквенного меню, посредством которого реализуются функции информационно-поискового справочника "Терморезисторы". Определение структуры данных, защита программы от ввода пользователем некорректных параметров.
курсовая работа [18,3 K], добавлен 16.02.2012Роль информационно-справочных систем в управлении предприятием. Программное обеспечение и инструменты для разработки информационно-справочных систем. Преимущества использования программ Delphi и Access. Описание основных окон работы системы "Клиент".
дипломная работа [828,1 K], добавлен 27.02.2013Реализация информационно-справочной системы на языке программирования C#. ее тестирование и отладка. Назначение, состав и структура программы "Адресная книга", описание операций. Программные и аппаратные требования к системе. Блок-схема и код программы.
курсовая работа [709,5 K], добавлен 11.06.2019Проект поисковой информационно-справочной подсистемы "Абитуриент" по учебным заведениям всех специальностей г. Воронежа. Анализ предметной области, входная и выходная информация. Разработка и реализация программного средства; генерация базы данных.
курсовая работа [1,6 M], добавлен 28.08.2012Теоретические сведения и основные понятия баз данных. Системы управления базами данных: состав, структура, безопасность, режимы работы, объекты. Работа с базами данных в OpenOffice.Org BASE: создание таблиц, связей, запросов с помощью мастера запросов.
курсовая работа [3,2 M], добавлен 28.04.2011Создание единой базы данных об учебных заведениях и последующее внедрение разработанной информационной системы. Модель подсистемы "Оператор", ее программная реализация, обеспечение возможности использования и дальнейшего эффективного функционирования.
курсовая работа [3,5 M], добавлен 28.08.2012Нормализация и схема базы данных, структура меню. Предназначение информационно-справочной системы. Покупка и бронирование билетов пассажирами. Программная реализация информационной системы. Справочники, документы, регистры, журналы, администрирование.
курсовая работа [1,2 M], добавлен 19.11.2010Разработка база данных в виде таблицы, включающей поля: ФИО, адрес, номер телефона, наименование услуги, сумма оплаты, срок выполнения. Процедуры программы и соответствующие им пункты в меню. Описание исходных данных, интерфейса и работы каждой процедуры.
курсовая работа [997,3 K], добавлен 08.06.2014Описание процесса проектирования информационно–справочной системы с помощью среды разработки PascalABC.Net, ее использование для регистрации обращений в медицинское учреждение. Логическая структура программы, алгоритм ее работы, особенности интерфейса.
курсовая работа [628,8 K], добавлен 07.06.2017Предназначение информационно-справочной системы - ведение учета студентов в деканате, переводя их с курса на курс. Основные функции системы: зачисление, отчисление, начисление стипендии. Нормализация (построение структуры). Главное меню пользователя.
курсовая работа [1,7 M], добавлен 09.01.2013Исследование характеристик и функциональных возможностей системы управления базами данных Microsoft Office Access. Определение основных классов объектов. Разработка базы данных "Делопроизводство". Создание таблиц, форм, запросов, отчетов и схем данных.
реферат [1,3 M], добавлен 05.12.2014Разработка базы данных "Аптека" в Microsoft Access, построение ее визуальной части в Delphi. Технологии связывания Microsoft Access со средой программирования Delphi. Создание запросов поисков. Реализация таблиц: продавцы, товары, чеки, поставка, счета.
курсовая работа [3,7 M], добавлен 04.03.2014Создание базы данных "Компьютерные игры": разработка и дизайн интерфейса, наполнение таблиц информацией, формирование идентификаторов. Использование системы управления базами данных Microsoft Access для составления стандартных запросов, форм и отчетов.
курсовая работа [715,7 K], добавлен 29.01.2011Характеристика Microsoft Access как системы управления базами данных. Особенности работы с различными объектами: таблицами, запросами, формами, отчётами, страницами, макросами, модулями. Разработка базы данных "Видеокарты", создание запросов и отчетов.
курсовая работа [4,2 M], добавлен 18.08.2014