Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

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

Название: Разработка информационно-справочной системы
Раздел: Рефераты по информатике, программированию
Тип: реферат Добавлен 09:29:46 16 августа 2005 Похожие работы
Просмотров: 1698 Комментариев: 2 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

Задание № 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),

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


  1. Отладка программы.
    Открытие БД.
    +-------------- Системное меню --------------+

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

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

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

    ¦ +--------------Загрузка bd-------------+ ¦

    ¦ ¦ ¦ ¦

    ¦ ¦ Имя файла : data ¦ ¦

    ¦ ¦ ¦ ¦

    ¦ ¦ Загружено ¦ ¦

    +--¦ ¦--+

    +--------------------------------------+
    Сохранение БД.
    +-------------- Системное меню --------------+

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

    ¦ ¦

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

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

    ¦ +-------------Сохранение b2------------+ ¦

    ¦ ¦ ¦ ¦

    ¦ ¦ Имя файла : data2 ¦ ¦

    ¦ ¦ ¦ ¦

    ¦ ¦ Сохранено ¦ ¦

    +--¦ ¦--+

    +--------------------------------------+
    Просмотр.
    +-------------- Системное меню --------------+

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

    ¦ ¦

    ¦ 1 :-+-------- Просмотреть -------+ ¦

    ¦ 2 :-¦ Что просмотреть ? ¦ ¦

    +----------------------- Просмотр bd ----------------------+

    ¦ Артикул : 2 ¦

    ¦ Местоположение (Цех, Склад) : 6, 7 ¦

    ¦ Наименование товара : Vint ¦

    ¦ Стоимость (Рублей:Копеек) : 0:65 ¦

    ¦ Дата поступления (Год-Месяц-День) : 1996-2-45 ¦

    ¦ ¦

    ¦Нажмите ENTER для продолжения... ¦

    +----------------------------------------------------------+
    Корректировка.
    +-------------- Системное меню --------------+

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

    ¦ ¦

    ¦ 1 :-+------- Корректировка ------+ ¦

    ¦ 2 :-¦ Способ нахождения записи: ¦ ¦

    +------- Корректировка записи, найденной по названию ------+

    ¦Старая запись: ¦

    ¦ ¦

    ¦ Артикул : 1 ¦

    ¦ Местоположение (Цех, Склад) : 5, 6 ¦

    ¦ Наименование товара : Gayka ¦

    ¦ Стоимость (Рублей:Копеек) : 0:45 ¦

    ¦ Дата поступления (Год-Месяц-День) : 1996-1-4 ¦

    ¦ ¦

    ¦Введите новый вариант: ¦

    ¦ ¦

    ¦ Артикул : ¦

    +----------------------------------------------------------+
    Удаление.
    +-------------- Системное меню --------------+

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

    ¦ ¦

    ¦ 1 :-+ Удаление записи по признаку+ ¦

    ¦ 2 :-¦ Введите признак: ¦ ¦

    ¦ +-------- Удаление по артикулу --------+ ¦

    ¦ ¦ Номер артикула: 1 ¦ ¦

    ¦ ¦ ¦ ¦

    ¦ ¦ Готово. ¦ ¦

    +--¦ ¦--+

    +--------------------------------------+
    Создание по признакам.
    +-------------- Системное меню --------------+

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

    ¦ ¦

    ¦ 1 :-+- Создать базу по признаку -+ ¦

    ¦ 2 :-¦ Какую базу создать ? ¦ ¦

    ¦ +------ Создание базы B1 по цене ------+ ¦

    ¦ ¦ ¦ ¦

    ¦ ¦ Рублей: 0 ¦ ¦

    ¦ ¦ Копеек: 45 ¦ ¦

    +--¦ ¦--+

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

    +----------------------------+
    Добавление.
    +-------------- Системное меню --------------+

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

    ¦ ¦

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

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

    +------------- Добавить запись к главной базе -------------+

    ¦ Местоположение : ¦

    ¦ Цех : 5 ¦

    ¦ Склад : 6 ¦

    ¦ Наименование товара : Shayba ¦

    ¦ Стоимость : ¦

    ¦ Рублей : 1 ¦

    ¦ Копеек : 2 ¦

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

    ¦ Год : 1996 ¦

    ¦ Месяц : 23 ¦

    ¦ День : 3 ¦

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

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

  2. Заключение.
    Язык программирования Пролог безусловно может быть использован для написания подобных информационно-справочных систем, так как он позволяет легко и быстро создавать логические запросы к базам данных, что безусловно выделяет его среди остальных языков программирования.

  3. Список литературы.
    1. К. Кларк. “Введение в логическое программирование на Micro Prologe”.
    2. К. Хоггер. “Введение в логическое программирование”.

17



ГОСУДАРСТВЕННЫЙ КОМИТЕТ РОССИЙСКОЙ ФЕДЕРАЦИИ

ПО ВЫСШЕМУ ОБРАЗОВАНИЮ


МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ

РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ

( ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ )


Факультет Кибернетики.

Кафедра интеллектуальных

технологий и систем.


Курсовая работа.


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

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


(III семестр)



Задание: 11

Студент: Пакостина Александра

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

Руководитель: доцент кафедры Холкин Игорь Иванович


1996

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений22:11:10 18 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
13:25:16 24 ноября 2015

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

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(151217)
Комментарии (1843)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru