Реферат по предмету "Программирование, Базы данных"


Разработка информационно-справочной системы "Овощная база" 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),
         Choice >= 0,
         Choice
         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),
          nl,
          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),
         nl,
        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),
         nl,
         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,
          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),
         nl,
         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),
      nl,
         write("____________________________________________________________________________!"),
         write("                       ОВОЩНАЯБАЗА                                             "),
         nl,            
          write("----------------------------------------------------------------------------!"),
          nl,
          write("! номер! название! колна! треб  !          получатель                          !"),
          nl,
          write("!     ! тавара! складе! кол-во!          адрес         ! телефон   !   факс !"),
          nl,
         write("-----------------------------------------------------------------------------"),
          nl,
            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("!"),
         nl,
         fail.
      process(3):-
         write("-----------------------------------------------------------------------------"),
         nl,
         write("Нажмитеналюбуюклавишу"),
         readchar(_),
          removewindow.
                
/*Процедура загрузки в память базы данных*/       
       process(4):-
            nl,
           makewindow(2,15,4,«Загрузка»,5,5,20,70),
           write(«1 — База будет загружена из указанного файла»),nl,
           write(«2 — База будет загружена из файла kot.dat»),nl,
           write(«3 — Выход в основное меню»),nl,
            write("==>"),
            readint(C),
            C>0,C
            lod(C),
            !,
           removewindow.
/*Процедура сохранения базы данных*/           
       process(5):-
            nl,
           makewindow(2,15,4,«Запись»,5,5,20,70),
           write(«1 — База будет записана в указанный файл»),nl,
           write(«2 — База будет записана в файл kot.dat»),nl,
           write(«3 — Выход в основное меню»),nl,
            write("==>"),
            readint(I),
            I>0,I
            sve(I),!,
           removewindow.
 /*Процедура выборасоздания новой базы*/
        process(6):-
            nl,
           makewindow(3,2,7,«Создание новой базы»,0,0,25,80),
           write(«1 — База будет создана по заданому наименованиютовара»),nl,
           write(«2 — База будет создана по требуемому количеству»),nl,
            write(«3 — База будет создана по даннымполучателя»),nl,
           write(«4 — Выход в основное меню»),nl,
            write("==>"),
            readint(O),
            O>0,O
            procedure(O),
           removewindow.
           process(_).
                     
/*Процедура создания новой базы данных и еесохранения*/           
       procedure(1):-
           makewindow(1,2,7,«Создание новой базы по наименованиютовара»,0,0,25,80),
            nl,
            cursor(7,10),
            retractall(_,svod1),
            nl,
            write(«Если вы хотитеузнать данные о наименовании товара на базе, то»),
            nl,
           write(«Введите наименование товара:»),
            readln(X),
            svod(N,PROD,KOL,TKOL,ADR,TEL,FAKS),
            S=PROD,
            S=X,
           N1=N,KOL1=KOL,TKOL1=TKOL,ADR1=ADR,TEL1=TEL,FAKS1=FAKS,
           assert(svod1(N1,S,KOL1,TKOL1,ADR,TEL,FAKS)),
            fail.
           
        procedure(1):-       
            write("Базасоздана"),nl,
          write("----------------------------------------------------------------------------!"),
          nl,
          write("! номер! название! колна! треб  !          получатель                          !"),
          nl,
          write("!     ! тавара! складе! кол-во!          адрес         ! телефон   !   факс !"),
          nl,
         write("-----------------------------------------------------------------------------"),
          nl,
            svod(N,S,KOL,TKOL,ADR,TEL,FAKS),
         N1=N,
         cursor(Z,_),
         cursor(Z,0),write(N1),
         cursor(Z,7),write(S),
         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("!"),
         nl,
         fail.
         
      procedure(1):-
         write("-----------------------------------------------------------------------------"),
         save(«now.dat»,svod1),
          nl,
          write(«База сохранена в файлеnow.dat»),
          nl,
          write(«Нажмите любую клавишу»),
          readchar(_), 
            removewindow,
            !.
           
        procedure(1):-
           write("-----------------------------------------------------------------------------"),
            nl,
            write(«Невозможно сохранитьсозданную базу»),
            nl,
           write(«Нажмите любую клавишу»),
            readchar(_),
            makewindow(1,2,7,"ОВОЩНАЯБАЗА",0,0,25,80).
           
         procedure(2):-
            makewindow(1,2,7,«Созданиеновой базы по требуемому количеству»,0,0,25,80),
            nl,
            cursor(7,10),
            retractall(_,lolo),
            nl,
            write(«Если вы хотитеузнать данные о наибольшем требуемом количестве, то»),nl,
           write(«Введите начальное значение требуемого количества:»),
            readint(X),
            svod(N,PROD,KOL,TKOL,ADR,TEL,FAKS),
            S=TKOL,
            S>=X,
           N1=N,PROD1=PROD,KOL1=KOL,ADR1=ADR,TEL1=TEL,FAKS1=FAKS,
            assert(lolo(N1,PROD1,KOL1,S,ADR1,TEL1,FAKS1)),
            fail.
           
        procedure(2):-
            write("Базасоздана"),nl,
            write("-----------------------------------------------------------------------------"),
          nl,
          write("! номер! название! колна! треб  !          получатель                          !"),
          nl,
          write("!     ! тавара! складе! кол-во!          адрес         ! телефон   !   факс !"),
          nl,
         write("-----------------------------------------------------------------------------"),
          nl,
          lolo(N,PROD,KOL,S,ADR,TEL,FAKS),
          N1=N,
          cursor(Z,_),
          cursor(Z,0),write(N1),
          cursor(Z,7),write(PROD),
          cursor(Z,18),write(KOL),
          cursor(Z,23),write(S),
          cursor(Z,33),write(ADR),
          cursor(Z,55),write(TEL),
          cursor(Z,67),write(FAKS),
          cursor(Z,77),write("!"),
          nl,
          fail.
         
      procedure(2):-
         write("-----------------------------------------------------------------------------"),
          save(«now1.dat»,lolo),
          nl,
          write(«База сохранена в файлеnow1.dat»),
          nl,
          write(«Нажмите любую клавишу»),
          readchar(_), 
           removewindow,
            !.
           
       procedure(2):-
           write("-----------------------------------------------------------------------------"),
            nl,
           write(«Невозможно сохранить созданную базу»),
            nl,
           write(«Нажмите любую клавишу»),
           readchar(_),
           makewindow(1,2,7,«ОВОЩНАЯ БАЗА»,0,0,25,80).
       procedure(3):-
            makewindow(1,2,7,«Созданиебазы данных по данным получателя»,0,0,25,80),
            nl,
           cursor(7,10),
           retractall(_,kuku),
            nl,
           write(«Если вы хотите узнать данные о товаре по данным получателя,то»),
            nl,
           write(«Введите данные получателя:»),
           readln(X),
           readint(Y),
           readint(Z),
           svod(N,PROD,KOL,TKOL,ADR,TEL,FAKS),
            S=ADR,
            D=TEL,
            C=FAKS,
            S=X,
            D=Y,
            C=Z,
           N1=N,PROD1=PROD,KOL1=KOL,TKOL1=TKOL,
           assert(kuku(N1,PROD1,KOL1,TKOL1,S,D,C)),
            fail.
       procedure(3):-
           write(«База создана»),nl,
           write("----------------------------------------------------------------------------!"),
          nl,
          write("! номер! название! колна! треб  !          получатель                          !"),
          nl,
          write("!     ! тавара! складе! кол-во!          адрес         ! телефон   !   факс !"),
          nl,
         write("-----------------------------------------------------------------------------"),
          nl,
          kuku(N,PROD,KOL,TKOL,S,D,C),
          N1=N,
          cursor(Z,_),
          cursor(Z,0),write(N1),
          cursor(Z,7),write(PROD),
          cursor(Z,18),write(KOL),
          cursor(Z,23),write(TKOL),
          cursor(Z,33),write(S),
          cursor(Z,55),write(D),
          cursor(Z,67),write(C),
          cursor(Z,77),write("!"),
          nl,
          fail.
         
      procedure(3):-
         write("-----------------------------------------------------------------------------"),
          save(«now2.dat»,svod1),
          nl,
          write(«База сохранена в файлеnow2.dat»),
          nl,
          write(«Нажмите любую клавишу»),
          readchar(_), 
           removewindow,
            !.
           
        procedure(3):-
           write("-----------------------------------------------------------------------------"),
            nl,
           write(«Невозможно сохранить созданную базу»),
            nl,
           write(«Нажмите любую клавишу»),
            readchar(_),
           makewindow(1,2,7,«ОВОЩНАЯ БАЗА»,0,0,25,80).
/*Процедура записи на диск*/       
        sve(1):-
           write(«Введите имя файла :»),
           readln(N),
           save(N),
           write(«Все в порядке»),
            beep,
            !.
           
        sve(1):-
           write(«Ошибка обмена, нажмите любую клавишу»),
           readchar(_).
              
        sve(2):-
           save(«kot.dat»).
           
                
       sve(3).     
/*Процедура чтения с диска*/       
       lod(1):-  
           retractall(_),
           write(«Введите имя файла :»),
           readln(N),
           existfile(N),
           consult(N),
           write(«Все в порядке»),
            beep,
            !.
           
       lod(1):-   
            nl,
           write(«Данного файла нет на диске»),nl,
           write(«Нажмите любую клавишу»),
           readchar(_).
 
        lod(2):-
           retractall(_),
           existfile(«kot.dat»),
           consult(«kot.dat»),
           write(«Все в порядке»),
            beep,
            !.
           
        lod(2):-
           write(«Файла kot.dat нет на диске»),nl,
           write(«нажмите любую клавишу»),
           readchar(_).
            
        lod(3).
                   
      repeat.
      repeat:-repeat.
     
/*Выбор записи*/
      select(N):-
      nl,
      write(«1- известен номер записи»),nl,
      write(«2- известно наименование товара»),nl,
      write(«3- известно количество на складе»),nl,
      write(«4 — известно требуемое количество»),nl,
      write(«5- известен адрес получателя»),nl,
      write(«6- известен телефон получателя»),nl,
      write(«7- известен факс получателя»),nl,
      write("==>"),
      readint(X),
      sel(X,N).
     
      sel(1,N):-
      nl,
      write(«Введитеномер записи                :»),
      readint(N),
      svod(M,_,_,_,_,_,_),
      M=N.
     
        sel(1,N):-
        N=0.
       
        sel(2,N):-
        nl,
       write(«Введите наименование предприятия:»),
        readln(L),
       svod(Z,L,_,_,_,_,_),
        N=Z.
        
        sel(2,N):-
        N=0.
       
        sel(3,N):-
        nl,
       write(«Введите количество рабочих: „),
        readint(F),
       svod(Z,_,F,_,_,_,_),
        N=Z.
       
        sel(3,N):-
        N=0.
       
        sel(4,N):-
        nl,
       write(“Введите год выпуска:»),
        readint(Q),
       svod(Z,_,_,Q,_,_,_),
        N=Z.
       
        sel(4,N):-
        N=0.
       
        sel(5,N):-
        nl,
       write(«Введите объем продукции (млн.руб):»),
        readln(W),
       svod(Z,_,_,_,W,_,_),
        N=Z.
       
        sel(5,N):-
        N=0.
       
        sel(6,N):-
        nl,
       write(«Введите занимаемую площадь:»),
        readint(E),
       svod(Z,_,_,_,_,E,_),
        N=Z.
       
        sel(6,N):-
        N=0.
       
        sel(7,N):-
        nl,
       write(«Введите факс получателя:»),
        readint(A),
       svod(Z,_,_,_,_,_,A),
        N=Z.
       
        sel(7,N):-
        N=0.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :