Разработка информационно-справочной системы
Задание № 11
на курсовое проектирование
по дисциплине Логическое программирование
студенту Пакостиной Александре Викторовне.
Группа ИР-1-95.
1. Тема исследования: Разработка информационно - справочной системы.
2. Исходные данные: База данных BD, включающая записи вида:
Характеристика детали |
|
|
|
|
|
|
|
|
||||||||||
№ |
Место хранения |
Название |
Цена | Дата поступления |
|
|
||||||||||||
ртикула |
№ цеха |
№склада |
детали |
руб |
коп |
год |
месяц |
число |
||||||||||
|
|
|
|
|
|
|
|
|
||||||||||
Язык программирования: Пролог.
3. Перечень вопросов, подлежащих разработке:
3.1. Разработать меню, обеспечивающее взаимодействие пользователя с системой, в соответствии с заданием, предусмотрев режимы:
3.2. Разработать процедуры:
уничтожения записей по признакам;
загрузки;
сохранения;
просмотра;
уничтожения;
3.3. Предусмотреть создание из базы BD новых баз данных B1, B2, характеризуемых признаками, задаваемыми пользователем.
4.
Перечень графических материалов:
4.1. Структурная схема меню:
4.2. Структурная схема программы:
5. Календарный план работы над курсовой работой:
5.1. Получение задания: 4.10.96.
5.2. Анализ задания, постановка задачи, подбор и изучение литературы: 18.10.96.
5.3. Разработка меню и структуры программы: 25.10.96.
5.4. Разработка процедур информационно-справочной системы: 15.11.96.
5.5. Отладка программы: 29.11.96.
5.6. Оформление пояснительной записки и сдача работы на правку: 13.12.96.
5.7. Защита курсовой работы: 20.12.96.
Руководитель: Холкин И.И. нн
Студент: Пакостина А.В.
Описание
1.
Понятие об информационно-справочных системах и их программная реализация.
Информационно-справочные системы предназначены для правления различными информационными и справочными массивами, в число которых входят и базы данных. Эти системы организовывают определенный интерфейс пользователя с функциями обработки информации самой системы.
Набор возможностей таких систем обычно включает в себя коррекцию структуры используемого объекта (инкапсулирующего информацию), работ с его составляющими
- дополнение, редактирование, даление (в случае, когда роль такого объекта выполняет база данных, это - записи), простой просмотр, поиск элементов. Также необходимо обеспечить для такой системы и функции постоянного надежного хранения - в простейшем случае, это - запись базы из памяти в файл на диске и считывание оного с диска в память.
Программная реализация мало отличается от подобной концепции, но конкретизирует абстрактные операции в конкретные процедуры и функции (или же объекты) и зависит полностью от возможностей языка, поставленной задачи и искусства программиста.
2.
Базы данных и способы их представления. 3.
Разработка системного меню. жа Выберите вариант работы с базами данных:а ж ж ж ж
1 :-а Загрузить ж ж
2 :-а Сохранить ж ж
3 :-а Просмотреть ж ж
4 :-а Скорректировать ж ж
5 :-а далить запись по признакам ж ж
6 :-а Создать по признакам ж ж
7 :-а Добавить ж ж
8 :-а Выход в ДОС ж ж ж жа
<------------------| |------------------
ж +--------------------------------------------+ 4.
Разработка структуры программы. 5.
Разработка процедур: 5.1. Загрузка базы данных (Open). ж Куда загрузить ? ж ж ж ж
1 :-а В bd ж ж
2 :-а В b1 ж ж
3 :-а В b2 ж ж
4 :-а Меню ж ж ж ж
<------| |------ ж +----------------------------+ 5.2. Сохранение
(Store). +--------- Сохранить --------+ ж Что сохранить ? ж ж ж ж
1 :-а ж
2 :-а ж
3 :-а ж
4 :-а Меню ж ж ж ж
<------| |------ ж +----------------------------+ 5.3. Просмотр (See). +-------- Просмотреть -------+ ж Что просмотреть ? ж ж ж ж 1 :-а ж 2 :-а ж 3 :-а ж 4 :-а Меню ж ж ж ж <------| |------ ж +----------------------------+ 5.4. Добавление
(Adding). 5.5. Корректировка
(Correct). 5.6. Создания базы по признакам (Indication). 5.7. даление записи по признакам (Del). 6. Листинг. % <% %а Пакостина Александра.
<% % ИР-1-95.
<% %а Задание 11.
<% %
<% <%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% domains rubley, kopeek = integer
datedom = date(year, month, day) database
- bd database
- b1 database
- b2 predicates do(char) del(char) goal clauses
readchar(X), do(X). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% do('1') : removewindow, go, !. do('2') : removewindow, go, !. do('3') : removewindow, go, !. do('4') : removewindow, go, !. do('5') : write(" Введите признак:"), nl, removewindow, go, !. do('6') : write(" Какую базу создать ?"), nl, removewindow, go, !. do('7') : removewindow, go, !. do('8') :-
X='y', exit; removewindow, go, !. do(_) :-
removewindow, go. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Общая концепция теории простых баз данных подразумевает наличие некоторого множества таблиц и являющихся, собственно, базой данных, имеющей определенный идентификатор (имя). Каждая таблица состоит из
В языке программирования Пролог база данных описывается в отдельном разделе,
именуемом database. Таких разделов может быть несколько в одной программе и каждый из них, если они действительно представляют собой разные БД, должны иметь разные имена. В случае отсутствия имени у базы данных, ей дается имя по молчанию - dbasedom.
Работу с загружаемыми базами данных в Прологе реализуют следующие стандартные предикаты:
Системное меню объединяет в себе доступ ко всем процедурам информационно - справочной системы. Разработка меню отталкивается от имеющихся функций системы (предикатов). Поскольку объявлен предикат do (char), служащий буфером между системным меню и существующими процедурами, он имеет в себе либо подменю с выбором режимов работы имеющихся предикатов, либо их вызов с последующим возвратом в системное меню:
<+-------------- Системное меню
--------------+
Системное меню вызывает только предикаты do (<режим>), определенные для каждой из необходимых задач (номер режим полностью совпадает с нумерацией в главном меню). Каждая из реализаций этого предиката выводит меню, либо сразу вызывает соответствующие процедуры:
В do(СТ) имеется меню:
<+--------- Загрузить --------+
процедура Open имеет четыре реализации, для каждого из вариантов работы. Для любого случая перед загрузкой базы данных проверяется существование файла с введенным именем
(предикат exists).
Для загрузки базы данных используется стандартный предикат
В do(СТ) ìåíþ:
Существуют предикаты для записи главной базы и двух временных. Используется стандартный предикат
В do(СТ) меню:
Предложения See(СТ) и See(СТ) создают новые окна и выводят в них найденные записи. После каждой выведенной записи запрашивается нажатие клавиши, затем повторяется поиск с помошью стандартного предиката Fail или происходит выход из предиката в системное меню.
Данный предикат был добавлен в программу по причине облегчения работы с ней, хоть и в задании его не было.
В этой процедуре используется определенная в этой же программе процедура Get,
запрашивающая с клавиатуры значения для новой записи в главной базе данных и стандартная процедура
В данной программе существует два варианта корректировки - редактирование записи, найденной по номеру артикула и найденной по названию детали. В каждой из версий предиката вначале запрашивается номер артикула (или название) изменяемой записи, поиск и вывод на экран, затем происходит ввод новых значений полей, подтверждаются сделанные изменения,
удаляется старый факт (retract) и добавляется вновь сформированный (
Indication(СТ) создает базу
Признаками для даляемой записи могут служить номер артикула, название, также возможно ничтожить из памяти всю базу данных. Во всех вариантах используется процедура даления записи retract.
а<%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%