МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Разработка информационно-справочной системы

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

    Задание № 11

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

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

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

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

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

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

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

    |№ |Место |Назван|Цена |Дата поступления | | | | |

    | |хранения |ие | | | | | | |

    |артику|№ цеха|№склад|детали|руб |коп |год |месяц |число |

    |ла | |а | | | | | | |

    | | | | | | | | | |

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

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

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

    системой, в соответствии с заданием, предусмотрев режимы:

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

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

    . загрузки;

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

    . просмотра;

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

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

    характеризуемых признаками, задаваемыми пользователем.

    4. Перечень графических материалов:

    4.1. Структурная схема меню:

    [pic]

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

    [pic]

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

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

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

    18.10.96.

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

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

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

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

    12. Защита курсовой работы: 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),

    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').

    Страницы: 1, 2


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.