Xreferat.com » Рефераты по информатике и программированию » Разработка информационно-справочной системы

Разработка информационно-справочной системы

Задание № 11

на курсовое проектирование

по дисциплине “Логическое программирование”

студенту Пакостиной Александре Викторовне.

Группа ИР-1-95.


  1. Тема исследования: “Разработка информационно - справочной системы”.

  2. Исходные данные: База данных BD, включающая записи вида:


Характеристика детали










Место хранения

Название

Цена

Дата поступления





артикула

№ цеха

№склада

детали

руб

коп

год

месяц

число













Язык программирования: Пролог.

  1. Перечень вопросов, подлежащих разработке:

  2. Разработать меню, обеспечивающее взаимодействие пользователя с системой, в соответствии с заданием, предусмотрев режимы:

  3. Разработать процедуры:

  • уничтожения записей по признакам;

  • загрузки;

  • сохранения;

  • просмотра;

  • уничтожения;

3.3. Предусмотреть создание из базы BD новых баз данных B1, B2, характеризуемых признаками, задаваемыми пользователем.

  1. Перечень графических материалов:
    4.1. Структурная схема меню:

  2. Структурная схема программы:




  1. Календарный план работы над курсовой работой:

  2. Получение задания: 4.10.96.

  3. Анализ задания, постановка задачи, подбор и изучение литературы: 18.10.96.

  4. Разработка меню и структуры программы: 25.10.96.

  5. Разработка процедур информационно-справочной системы: 15.11.96.

  6. Отладка программы: 29.11.96.

  7. Оформление пояснительной записки и сдача работы на правку: 13.12.96.

  8. Защита курсовой работы: 20.12.96.


Руководитель: Холкин И.И. ­­____________


Студент: Пакостина А.В. ____________

Описание


  1. Понятие об информационно-справочных системах и их программная реализация.
    Информационно-справочные системы предназначены для управления различными информационными и справочными массивами, в число которых входят и базы данных. Эти системы организовывают определенный интерфейс пользователя с функциями обработки информации самой системы. Набор возможностей таких систем обычно включает в себя коррекцию структуры используемого объекта (инкапсулирующего информацию), работа с его составляющими - дополнение, редактирование, удаление (в случае, когда роль такого объекта выполняет база данных, это - записи), простой просмотр, поиск элементов. Также необходимо обеспечить для такой системы и функции постоянного надежного хранения - в простейшем случае, это - запись базы из памяти в файл на диске и считывание оного с диска в память.
    Программная реализация мало отличается от подобной концепции, но конкретизирует абстрактные операции в конкретные процедуры и функции (или же объекты) и зависит полностью от возможностей языка, поставленной задачи и искусства программиста.

  2. Базы данных и способы их представления.
    Общая концепция теории простых баз данных подразумевает наличие некоторого множества таблиц и являющихся, собственно, базой данных, имеющей определенный идентификатор (имя). Каждая таблица состоит из n-го количества записей (величина n зависит от возможностей конкретной системы), каждая из которых имеет одну и ту же структуру (в рамках одной таблицы) и может объединять в себе несколько разнородных объектов (их количество также зависит целиком и полностью от возможностей системы).
    Работа с базой данных предполагает в себе возможность работать с записями (либо изменять структуру таблиц).
    В языке программирования Пролог база данных описывается в отдельном разделе, именуемом database. Таких разделов может быть несколько в одной программе и каждый из них, если они действительно представляют собой разные БД, должны иметь разные имена. В случае отсутствия имени у базы данных, ей дается имя по умолчанию - dbasedom.
    Работу с загружаемыми базами данных в Прологе реализуют следующие стандартные предикаты: assert - добавить запись в БД, retract - удалить указанную запись, save - сохранить указанную БД в файле, consult - загрузить БД из файла в память.
    В данной работе объявлена главная база данных bd, имеющая предикат characteristick, и две временные базы b1, b2 с предикатами table1, table2.

  3. Разработка системного меню.
    Системное меню объединяет в себе доступ ко всем процедурам информационно - справочной системы. Разработка меню отталкивается от имеющихся функций системы (предикатов). Поскольку объявлен предикат do (char), служащий буфером между системным меню и существующими процедурами, он имеет в себе либо подменю с выбором режимов работы имеющихся предикатов, либо их вызов с последующим возвратом в системное меню:
    +-------------- Системное меню --------------+

    ¦ Выберите вариант работы с базами данных: ¦

    ¦ ¦

    ¦ 1 :- Загрузить ¦

    ¦ 2 :- Сохранить ¦

    ¦ 3 :- Просмотреть ¦

    ¦ 4 :- Скорректировать ¦

    ¦ 5 :- Удалить запись по признакам ¦

    ¦ 6 :- Создать по признакам ¦

    ¦ 7 :- Добавить ¦

    ¦ 8 :- Выход в ДОС ¦

    ¦ ¦

    ¦ ------------------| |------------------ ¦

    +--------------------------------------------+

  4. Разработка структуры программы.
    Системное меню вызывает только предикаты do (<режим>), определенные для каждой из необходимых задач (номер режим полностью совпадает с нумерацией в главном меню). Каждая из реализаций этого предиката выводит меню, либо сразу вызывает соответствующие процедуры: open, store, adding, correct, see, del, indication. Процедура Indication выводит дополнительное подменю и вызывает либо IndicationB1, либо IndicationB2 в зависимости от выбора пользователя. Do(‘8’) завершает работу с системой.

  5. Разработка процедур:

  6. Загрузка базы данных (Open).
    В do(‘1’) имеется меню:
    +--------- Загрузить --------+

    ¦ Куда загрузить ? ¦

    ¦ ¦

    ¦ 1 :- В bd ¦

    ¦ 2 :- В b1 ¦

    ¦ 3 :- В b2 ¦

    ¦ 4 :- Меню ¦

    ¦ ¦

    ¦ ------| |------ ¦

    +----------------------------+
    процедура Open имеет четыре реализации, для каждого из вариантов работы. Для любого случая перед загрузкой базы данных проверяется существование файла с введенным именем (предикат exists). Для загрузки базы данных используется стандартный предикат consult. При вызове Open(‘1’) загрузка производится в базу bd, при вызове Open(‘2’) в базу b1, при вызове Open(‘3’) - в b2.

  7. Сохранение (Store).
    В do(‘2’) меню:

    +--------- Сохранить --------+

    ¦ Что сохранить ? ¦

    ¦ ¦

    ¦ 1 :- bd ¦

    ¦ 2 :- b1 ¦

    ¦ 3 :- b2 ¦

    ¦ 4 :- Меню ¦

    ¦ ¦

    ¦ ------| |------ ¦

    +----------------------------+
    Существуют предикаты для записи главной базы и двух временных. Используется стандартный предикат save, записывающий в текстовый файл факты, связанные с данной БД.

  8. Просмотр (See).
    В do(‘3’) меню:

    +-------- Просмотреть -------+

    ¦ Что просмотреть ? ¦

    ¦ ¦

    ¦ 1 :- bd ¦

    ¦ 2 :- b1 ¦

    ¦ 3 :- b2 ¦

    ¦ 4 :- Меню ¦

    ¦ ¦

    ¦ ------| |------ ¦

    +----------------------------+
    Предложения See(‘1’) и See(‘2’) создают новые окна и выводят в них найденные записи. После каждой выведенной записи запрашивается нажатие клавиши, затем повторяется поиск с помошью стандартного предиката Fail или происходит выход из предиката в системное меню.

  9. Добавление (Adding).
    Данный предикат был добавлен в программу по причине облегчения работы с ней, хоть и в задании его не было.
    В этой процедуре используется определенная в этой же программе процедура Get, запрашивающая с клавиатуры значения для новой записи в главной базе данных и стандартная процедура assert, добавляющая новый факт в базу данных.

  10. Корректировка (Correct).
    В данной программе существует два варианта корректировки - редактирование записи, найденной по номеру артикула и найденной по названию детали. В каждой из версий предиката вначале запрашивается номер артикула (или название) изменяемой записи, поиск и вывод на экран, затем происходит ввод новых значений полей, подтверждаются сделанные изменения, удаляется старый факт (retract) и добавляется вновь сформированный (assert).

  11. Создания базы по признакам (Indication).
    Indication(‘1’) создает базу b1, а Indication(‘2’) - базу b2. Для каждой базы существует отдельный предикат - IndicationB1 и IndicationB2. Существуют возможности создания таких баз по следующим признакам: по месту хранения, по цене, по дате поступления. В каждом из вариантов производится запрос на несколько параметров сразу и поиск фактов, отвечающих этим требованиям. При успешном поиске, найденный факт добавляется в базу b1 или b2.

  12. Удаление записи по признакам (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),

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту

Похожие рефераты: