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


Разработка информационно-справочной системы "Картотека ГАИ" Prolog

CODE=9003
/*          **************************
             *   КУРСОВАЯ  РАБОТА    *
             *                        *
             *  Коломенской Ольги    *
             *                        *
             **************************
*/
domains
        z,nz,n,n1,chp,i=integer
        fio,ma,ru,k=symbol
database-svod1
          svod1(n,k,nz,ma,ru,chp)
database-lolo
          lolo(n,fio,i,ma,ru,chp)
database-kuku
          kuku(n,fio,nz,k,ru,chp)
database
         svod(n,fio,nz,ma,ru,chp)
        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("                     =>"),
            readint(Choice),
            Choice >= 0,
            Choice
           clearwindow,
            process(Choice),
            clearwindow,
            Choice = 8,
            retractall(_),
           removewindow.
/*Процедура поиска и загрузки файла содержащего базуданных*/
        load:-
            existfile(«olia.dat»),
            consult(«olia.dat»),
            cursor(1,2),
            write("Базазагружена").
        load:-
            cursor(1,2),
           write(«Нет базы на диске»).
/*Пpоцедуpа ввода новых данных*/
       process(6):-
        makewindow(1,2,7,«Вводновых данных»,0,0,25,80),
            nl,
           write(«Введите порядковый номер     :»),readint(K),nl,
           write(«Введите Фамилию.И.О.         :»),readln(F),nl,
           write(«Введите номерной знак        :»),readint(G),nl,
           write(«Введите марку автомобиля     :»),readln(Y),nl,
           write(«Введите район учета          :»),readln(T),nl,
           write(«Введите число автотранспортных»),nl,
            write("              происшествий   :"),readint(P),nl,
           N1=K,FIO1=F,NZ1=G,MA1=Y,RU1=T,CHP1=P,
           assertz(svod(N1,FIO1,NZ1,MA1,RU1,CHP1)),
            removewindow,
            fail.
/*Процедура просмотра-добавления*/
        process(7):-
        makewindow(1,2,7,«Просмотр-добавление»,0,0,25,80),
         nl,
        write(«Введите номер записи:»),readint(A),nl,nl,
         svod(N,FIO,NZ,MA,RU,CHP),
         A=N,
         write("Номерзаписи         :"),write(A),nl,
         write("Фамилия.И.О.          :"),write(FIO),nl,
         write("Номернойзнак         :"),write(NZ),nl,
         write("Маркаавтомобиля     :"),write(MA),nl,
         write("Районучета           :"),write(RU),nl,
         write("Числоавтотранспортных"),nl,
         write("        происшествий :"),write(CHP),nl,nl,nl,
         write(«Нажмите на любуюклавишу»),
        readchar(_),
        removewindow,
         !.
        process(7):-
write(«Этого номера записи нет в базе.»),
write(«Повторите введенный номер записи ипродолжайте ввод данных»),nl,nl,nl,
write("Введитеномер:"),
         readint(A),nl,
         A=N1,
        write(«Введите Фамилию.И.О.         :»),readln(F),nl,
        write(«Введите номерной знак        :»),readint(Y),nl,
        write(«Введите марку автомабиля     :»),readln(J),nl,
         write(«Введите район учета           :»),readln(G),nl,
        write(«Введите число автотранспортных»),nl,
         write("                  происшествий:"),readint(K),nl,
         FIO1=F,NZ1=Y,MA1=J,RU1=G,CHP1=K,
         assertz(svod(N1,FIO1,NZ1,MA1,RU1,CHP1)),
         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-95  (с) 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,FIO,NZ,MA,RU,CHP),
            write("Номерзаписи         :"),write(N),nl,
            write("Фамилия.И.О.          :"),write(FIO),nl,
            write("Номернойзнак         :"),write(NZ),nl,
            write("Маркаавтомабиля     :"),write(MA),nl,
            write("Районучета           :"),write(RU),nl,
            write("Числоавтотранспортных"),nl,
            write("          происшествий:"),write(CHP),nl,
            nl,
           write(«Введите Фамилию.И.О.         :»),readln(FIO1),nl,
           write(«Введите номерной знак        :»),readint(NZ1),nl,
           write(«Введите марку автомабиля     :»),readln(MA1),nl,
           write(«Введите район учета          :»),readln(RU1),nl,
            write(«Введите числоавтотранспортных»),nl,
            write("                  происшествий:"),readint(CHP1),nl,
            X1=X,
            retract(svod(X,FIO,NZ,MA,RU,CHP)),
           assert(svod(X1,FIO1,NZ1,MA1,RU1,CHP1)),
            !,
           removewindow.
/*Процедура просмотра содержимого базы данных*/
        process(2):-
        makewindow(1,2,7,"Просмотp базы",0,0,25,80),
        nl,
write("--------------------------------------------------------------------"),nl,
write("                КАРТОТЕКАГАИ                                      "),nl,
write("--------------------------------------------------------------------"),nl,
write("! поряд.! фамилия     ! номерной !  марка !  район  ! число авто !"),nl,
write("! номер! И.О.владельца! знак     ! а.машины!  учета ! происшествий!"),nl,
write("--------------------------------------------------------------------"),nl,
          
           svod(N,FIO,NZ,MA,RU,CHP),
            cursor(Z,_),
            cursor(Z,0),write(N),
            cursor(Z,9),write(FIO),
            cursor(Z,24),write(NZ),
            cursor(Z,35),write(MA),
            cursor(Z,45),write(RU),
            cursor(Z,55),write(CHP),
            cursor(Z,68),write("!"),
            nl,
            fail.
        process(2):-
write("-------------------------------------------------------------------"),
nl,
write(«Нажмите на любую клавишу»),
          readchar(_),
           removewindow.
/*Процедура загрузки в память базы данных*/
       process(3):-
            nl,
           makewindow(2,15,4,«Загрузка»,5,5,20,70),
           write(«1 — База будет загружена из указанного файла»),nl,
           write(«2 — База будет загружена из файла olia.dat»),nl,
           write(«3 — Выход в основное меню»),nl,
            write("==>"),
            readint(C),
            C>0,C
            lod(C),
            !,
           removewindow.
/*Процедура сохранения базы данных*/
       process(4):-
            nl,
           makewindow(2,15,4,«Запись»,5,5,20,70),
           write(«1 — База будет записана в указанный файл»),nl,
           write(«2 — База будет записана в файл olia.dat»),nl,
           write(«3 — Выход в основное меню»),nl,
            write("==>"),
            readint(I),
            I>0,I
            sve(I),!,
           removewindow.
 /*Процедура выборасоздания новой базы*/
        process(5):-
            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,FIO,NZ,MA,RU,CHP),
            S=FIO,
            S=X,
            N1=N,NZ1=NZ,MA1=MA,RU1=RU,CHP1=CHP,
           assert(svod1(N1,S,NZ1,MA1,RU1,CHP1)),
            fail.
        procedure(1):-
write("-------------------------------------------------------------------"),nl,
write("                       КАРТОТЕКАГАИ                               "),nl,
write("-------------------------------------------------------------------"),nl,
write("! поряд.!    Фамилия    ! номерной!  марка !  район  ! число авто.!"),nl,
write("! номер! И.О. владельца !  знак  !а.машины!  учета  ! происшествий!"),nl,
write("-------------------------------------------------------------------"),nl,
      svod1(N1,S,NZ1,MA1,RU1,CHP1),
     
      cursor(Z,_),
      cursor(Z,0),write(N1),
      cursor(Z,9),write(S),
      cursor(Z,24),write(NZ1),
      cursor(Z,35),write(MA1),
      cursor(Z,45),write(RU1),
      cursor(Z,55),write(CHP1),
      cursor(Z,68),write("!"),
      fail.
     
        procedure(1):-
write("-------------------------------------------------------------------"),
            save(«not.dat»,svod1),
            nl,
           write(«База сохранена в файле not.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,FIO,NZ,MA,RU,CHP),
            S=NZ,
            S=X,
           N1=N,FIO1=FIO,MA1=MA,RU1=RU,CHP1=CHP,
           assert(lolo(N1,FIO1,S,MA1,RU1,CHP1)),
            fail.
        procedure(2):-
write("-------------------------------------------------------------------"),nl,
write("                         КАРТОТЕКАГАИ                            "),nl,
write("-------------------------------------------------------------------"),nl,
write("! поряд.! Фамилия        ! номерной! марка   ! район  ! число авто.!"),nl,
write("! номер! И.О. владельца! знак   ! атомобиля! учета   ! происшествий!"),nl,
write("-------------------------------------------------------------------"),nl,
      lolo(N1,FIO1,S,MA1,RU1,CHP1),
     
      cursor(Z,_),
      cursor(Z,0),write(N1),
      cursor(Z,9),write(FIO1),
      cursor(Z,24),write(S),
      cursor(Z,35),write(MA1),
      cursor(Z,45),write(RU1),
      cursor(Z,55),write(CHP1),
      cursor(Z,68),write("!"),
      fail.
     
            procedure(2):-
write("-----------------------------------------------------------------------------"),
            save(«not1.dat»,lolo),
            nl,
           write(«База сохранена в файле not1.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),
            svod(N,FIO,NZ,MA,RU,CHP),
            S=MA,
            S=X,
            N1=N,FIO1=FIO,NZ1=NZ,RU1=RU,CHP1=CHP,
           assert(kuku(N1,FIO1,NZ1,S,RU1,CHP1)),
            fail.
        procedure(3):-
write("-------------------------------------------------------------------"),nl,
write("                        КАРТОТЕКАГАИ                             "),nl,
write("-------------------------------------------------------------------"),nl,
write("! поряд.! Фамилия        ! намерной! марка    ! район ! число авто.!"),nl,
write("! номер! И.О. владельца! знак   ! автомобиля! учета  ! происшествий!"),nl,
write("-------------------------------------------------------------------"),nl,
      kuku(N1,FIO1,NZ1,S,RU1,CHP1),
     
      cursor(Z,_),
      cursor(Z,0),write(N1),
      cursor(Z,9),write(FIO1),
      cursor(Z,24),write(NZ1),
      cursor(Z,35),write(S),
      cursor(Z,45),write(RU1),
      cursor(Z,55),write(CHP1),
      cursor(Z,68),write("!"),
      fail.
     
        procedure(3):-
write("-------------------------------------------------------------------"),
            save(«not2.dat»,kuku),
            nl,
            write(«Базасохранена в файле not.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(«olia.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(«olia.dat»),
            consult(«olia.dat»),
            write("Всевпорядке"),
            beep,
            !.
        lod(2):-
           write(«Файла olia.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("==>"),
        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(“Введите марку автомабиля:»),
        readln(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(C),
      svod(Z,_,_,_,_,C),
      N=Z.
     
      sel(6,N):-
      N=0.


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

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

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

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