Разработка информационно-справочной системы
Задание № 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.
 а<%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

