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

    Дисциплина: Программирование
    Тип работы: Курсовая
    Тема: Разработка информационно-справочной системы "Овощная база" Prolog

    CODE=12050
    **************************
    КУРСОВАЯ
    РАБОТА
    Котова Владимира
    **************************
    domains
    z,i,n,n1,kol,tkol,tel,faks=integer
    prod,adr,j=symbol
    database -svod1
    svod1(n,j,kol,tkol,adr,tel,faks)
    database -lolo
    lolo(n,prod,kol,i,adr,tel,faks)
    database -kuku
    kuku(n,prod,kol,tkol,j,i,i)
    database-svod
    svod(n,prod,kol,tkol,adr,tel,faks)
    predicates
    start
    patch
    load
    select(i)
    sel(i,i)
    process(i)
    procedure(i)
    sve(i)
    lod(i)
    repeat
    goal
    start.
    clauses
    /*Процедура создания основного меню и загрузки базы данных*/
    start:-
    makewindow(1,2,7,\"ОВОЩНАЯ БАЗА
    \",0,0,25,80),
    clearwindow,
    load,
    patch.
    /*Процедура управления основным меню*/
    patch:-
    repeat,
    cursor(7,0),
    write(\"
    0 - О п
    pог
    pамме
    \"),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,
    write(\"
    9 - выход из программы\"),nl,
    write(\"
    readint(Choice),
    = 0,
    clearwindow,
    process(Choice),
    clearwindow,
    Choice = 9,
    retractall(_),
    removewindow.
    /*Процедура поиска и загрузки файла содержащего базу данных*/
    load:-
    existfile(\"kot.dat\"),
    consult(\"kot.dat\"),
    cursor(1,2),
    write(\"База загружена
    load:-
    cursor(1,2),
    write(\"Нет базы на диске\").
    /*Пpоцедуpа ввода новых данных*/
    process(7):-
    makewindow(1,2,7,\"Ввод новых данных\",0,0,25,80),
    write(\"Введите порядковый номер
    :\"),readint(K),nl,
    write(\"Введите наименование товара
    :\"),readln(O),nl,
    write(\"Введите количество на складе :\"),readint(I),nl,
    write(\"Введите требуемое количество :\"),readint(Y),nl,
    write(\"Введите адрес получателя
    :\"),readln(T),nl,
    write(\"Введите телефон получателя
    :\"),readint(V),nl,
    write(\"Введите факс получателя
    :\"),readint(A),nl,
    N1=K,PROD1=O,KOL1=I,TKOL1=Y,ADR1=T,TEL1=V,FAKS1=A,
    assertz(svod(N1,PROD1,KOL1,TKOL1,ADR1,TEL1,FAKS1)),
    removewindow,
    fail.
    /*Процедура просмотра-добавления*/
    process(8):-
    makewindow(1,2,7,\"Просмотр-добавление\",0,0,25,80),
    write(\"Введите номер записи:\"),readint(A),nl,nl,
    svod(N,PROD,KOL,TKOL,ADR,TEL,FAKS),
    A=N,
    write(\"Номер записи
    :\"),write(A),nl,
    write(\"Наименование товара
    :\"),write(PROD),nl,
    write(\"Количество на складе :\"),write(KOL),nl,
    write(\"Требуемое количество :\"),write(TKOL),nl,
    write(\"Адрес получателя
    :\"),write(ADR),nl,
    write(\"Телефон получателя
    :\"),write(TEL),nl,
    write(\"Факс получателя
    :\"),nl,nl,nl,nl,nl,
    write(\"Нажмите на любую клавишу\"),
    readchar(_),
    removewindow,
    process(8):-
    write(\"Этого номера записи нет в базе.\"),
    write(\"Повторите введенный номер записи и продолжайте ввод данных\"),nl,nl,nl,
    write(\"Введите номер
    :\"),
    readint(A),nl,
    A=N1,
    write(\"Введите наименование товара
    :\"),readln(F),nl,
    write(\"Введите количество на складе
    :\"),readint(Y),nl,
    write(\"Введите требуемое количество
    :\"),readint(J),nl,
    write(\"Введите адрес получателя
    :\"),readln(G),nl,
    write(\"Введите телефон получателя
    :\"),readint(E),nl,
    write(\"Введите факс получателя
    :\"),readint(Z),nl,
    PROD1=F,KOL1=Y,TKOL1=J,ADR1=G,TEL1=E,FAKS1=Z,
    assertz(svod(N1,PROD1,KOL1,TKOL1,ADR1,TEL1,FAKS1)),
    removewindow,
    fail.
    /*Пpоцедуpа вывода данных о пpогpамме*/
    process(0):-
    makewindow(1,2,7,\"О пpогpамме...\",0,0,25,80),
    write(\"
    Инфоpмационно-спpавочная система\"),nl,nl,
    write(\"
    об овощной базе
    \"),nl,nl,
    write(\"
    Язык
    -TURBO-PROLOG v.2.0.
    \"),nl,nl,
    write(\"
    авто
    p:Котов В
    \"),nl,nl,
    write(\"
    МИРЭА
    , г
    p.ИТ
    -1-94
    ) 1995 г
    . \"),nl,nl,nl,nl,
    write(\"Нажмите на любую клавишу\"),
    readchar(_),
    removewindow.
    /*Процедура изменения содержимого записей базы данных*/
    process(1):-
    makewindow(1,2,7,\"Ко
    ppекция данных
    \",0,0,25,80),
    select(N),
    X=N,
    svod(X,PROD,KOL,TKOL,ADR,TEL,FAKS),
    write(\"Номер записи
    :\"),write(N),nl,
    write(\"Наименование товара
    :\"),write(PROD),nl,
    write(\"Количество товара на складе:\"),write(KOL),nl,
    write(\"Требуемое количество
    :\"),write(TKOL),nl,
    write(\"Адрес получателя
    :\"),write(ADR),nl,
    write(\"Телефон получателя
    :\"),write(TEL),nl,
    write(\"Факс получателя
    :\"),write(FAKS),nl,
    write(\"Введите наименование товара
    :\"),readln(PROD1),
    write(\"Введите количество на складе :\"),readint(KOL1),
    write(\"Введите требуемое количество :\"),readint(TKOL1),
    write(\"Введите адрес получателя
    :\"),readln(ADR1),
    write(\"Введите телефон получателя
    :\"),readint(TEL1),
    write(\"Введите факс получателя
    :\"),readint(FAKS1),
    X1=X,
    retract(svod(X,PROD,KOL,TKOL,ADR,TEL,FAKS)),
    assert(svod(X1,PROD1,KOL1,TKOL1,ADR1,TEL1,FAKS1)),
    removewindow.
    /*Процедура удаления записей из базы данных*/
    process(2):-
    makewindow(1,2,7,\"Удаление записей
    \",0,0,25,80),
    select(N),
    X=N,
    svod(X,PROD,KOL,TKOL,ADR,TEL,FAKS),
    retract(svod(X,PROD,KOL,TKOL,ADR,TEL,FAKS)),!,
    removewindow.
    /*Процедура просмотра содержимого базы данных*/
    process(3):-
    makewindow(1,2,7,\"Просмот
    p базы
    \",0,0,25,80),
    write(\"____________________________________________________________________________!\"),
    write(\"
    ОВОЩНАЯ БАЗА
    write(\"----------------------------------------------------------------------------!\"),
    write(\"!номер!название!кол на!треб
    получатель
    !\"),
    write(\"!
    ! тавара !складе!кол-во!
    адрес
    ! телефон
    факс !\"),
    write(\"-----------------------------------------------------------------------------\"),
    svod(N,PROD,KOL,TKOL,ADR,TEL,FAKS),
    cursor(Z,_),
    cursor(Z,0),write(N),
    cursor(Z,7),write(PROD),
    cursor(Z,18),write(KOL),
    cursor(Z,23),write(TKOL),
    cursor(Z,33),write(ADR),
    cursor(Z,55),write(TEL),
    cursor(Z,67),write(FAKS),
    cursor(Z,77),write(\"!\"),
    fail.
    process(3):-
    write(\"-----------------------------------------------------------------------------\"),
    write(\"Нажмите на любую клавишу
    readchar(_),
    removewindow.
    /*Процедура загрузки в память базы данных*/
    process(4):-
    makewindow(2,15,4,\"Загрузка\",5,5,20,70),
    write(\"1 - База будет загружена из указанного файла\"),nl,
    write(\"2 - База будет загружена из файла kot.dat\"),nl,
    write(\"3 - Выход в основное меню\"),nl,
    write(\"==\"),
    readint(C),
    lod(C),
    removewindow.
    /*Процедура сохранения базы данных*/
    process(5):-
    makewindow(2,15,4,\"Запись\",5,5,20,70),
    write(\"1 - База будет записана в указанный файл\"),nl,
    write(\"2 - База будет записана в файл kot.dat\"),nl,
    write(\"3 - Выход в основное меню\"),nl,
    write(\"==\"),
    readint(I),
    sve(I),!,
    removewindow.
    /*Процедура выбора создания новой базы*/
    process(6):-
    makewindow(3,2,7,\"Создание новой базы\",0,0,25,80),
    write(\"1 - База будет создана по заданому наименованию товара\"),nl,
    write(\"2 - База будет создана по требуемому количеству\"),nl,
    write(\"3 - База будет создана по данным получателя\"),nl,
    write(\"4 - Выход в основное меню\"),nl,
    write(\"==\"),
    readint(O),
    procedure(O),
    removewindow.
    process(_).
    /*Процедура создания новой базы данных и ее сохранения*/
    procedure(1):-
    makewindow(1,2,7,\"Создание новой базы по наименованию товара\",0,0,25,80),
    cursor(7,10),
    retractall(_,svod1),
    write(\"Если вы хотите узнать данны...

    Забрать файл

    Похожие материалы:


ПИШЕМ УНИКАЛЬНЫЕ РАБОТЫ
Заказывайте напрямую у исполнителя!


© 2006-2016 Все права защищены