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


Разработка информационно-справочной системы "Водительское удостоверение" Prolog

CODE=12050
/*          **************************
             *   КУРСОВАЯ  РАБОТА    *
             *                        *
             *   Федорова  Вадима    *
             *                        *
             **************************
*/
domains
        z,i,n,n1,n,no,dat,datv=integer
        gor,fio,se,j=symbol
database-svod1
          svod1(n,j,dat,gor,se,no,datv)
database-lolo
          lolo(n,fio,dat,gor,j,no,datv)
database-kuku
          kuku(n,fio,dat,gor,se,i,datv)
database-svod
         svod(n,fio,dat,gor,se,no,datv)
        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(«mak.dat»),
            consult(«mak.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(«Введите город рождения:»),readln(Y),nl,
           write(«Введите серию удостоверения:»),readln(T),nl,
           write(«Введите номер удостоверения:»),readint(V),nl,
           write(«Введите дату выдачи(число, месяц, год):»),readint(A),nl,
            N1=K,FIO1=O,DAT1=I,GOR1=Y,SE1=T,NO1=V,DATV1=A,
           assertz(svod(N1,FIO1,DAT1,GOR1,SE1,NO1,DATV1)),
            removewindow,
            fail.
/*Процедура просмотра-добавления*/
        process(8):-
        makewindow(1,2,7,«Просмотр-добавление»,0,0,25,80),
         nl,
        write(«Введите номер записи:»),readint(A),nl,nl,
         svod(N,FIO,DAT,GOR,SE,NO,DATV),
         A=N,
         write("Номерзаписи        :"),write(A),nl,
         write(«Фамилия, имя, отчествовладельца:»),write(FIO),nl,
        write(«Число, месяц, год рождения:»),write(DAT),nl,
         write("Городрождения:"),write(GOR),nl,
         write(«Серию удостоверения:»),write(SE),nl,
        write(«Номер удостоверения:»),write(NO),nl,
        write(«Датувыдачи(число, месяц, год):»),write(DATV),nl,nl,nl,nl,nl,
        write(«Нажмите на любую клавишу»),
        readchar(_),
        removewindow,
         !.
         process(8):-
        write(«Повторите введенный номер записи и продолжайте вводданных»),nl,nl,nl,
        write(«Этого номера записи нет в базе.»),
         write("Введитеномер:"),
     readint(A),nl,
             A=N1,
           write(«Введите фамилию, имя и отчество владельца:»),readln(F),nl,
           write(«Введите число, месяц и год рождения:»),readint(Y),nl,
           write(«Введите город рождения:»),readln(J),nl,
           write(«Введите серию удостоверения:»),readln(G),nl,
            write(«Введите номерудостоверения:»),readint(E),nl,
           write(«Введите дату выдачи(число, месяц, год):»),readint(Z),nl,
         FIO1=F,DAT1=Y,GOR1=J,SE1=G,NO1=E,DATV1=Z,
        assertz(svod(N1,FIO1,DAT1,GOR1,SE1,NO1,DATV1)),
         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:ФедoровВ.         "),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,FIO,DAT,GOR,SE,NO,DATV),
            write("Номерзаписи              :"),write(N),nl,
            write(«Фамилия, имя, отчествовладельца:»),write(FIO),nl,
           write(«Число, месяц, год рождения:»),write(DAT),nl,
            write("Городрождения:"),write(GOR),nl,
            write(«Сериюудостоверения:»),write(SE),nl,
           write(«Номер удостоверения:»),write(NO),nl,
           write(«Дату выдачи(число, месяц, год):»),write(DATV),nl,nl,nl,nl,nl,
            nl,
           write(«Введите фамилию, имя и отчество владельца:»),readln(FIO1),nl,
           write(«Введите число, месяц и год рождения:»),readint(DAT1),nl,
           write(«Введите город рождения:»),readln(GOR1),nl,
            write(«Введите сериюудостоверения:»),readln(SE1),nl,
           write(«Введите номер удостоверения:»),readint(NO1),nl,
           write(«Введите датувыдачи(число, месяц, год):»),readint(DATV1),nl,
            X1=X,
            retract(svod(X,FIO,DAT,GOR,SE,NO,DATV)),
           assert(svod(X1,FIO1,DAT1,GOR1,SE1,NO1,DATV1)),
            !,
           removewindow.
/*Процедура удаления записей из базы данных*/
        process(2):-
            makewindow(1,2,7,"Удалениезаписей",0,0,25,80),
            nl,
            select(N),
            X=N,
            svod(X,FIO,DAT,GOR,SE,NO,DATV),
           retract(svod(X,FIO,DAT,GOR,SE,NO,DATV)),!,
            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,FIO,DAT,GOR,SE,NO,DATV),
            cursor(Z,_),
            cursor(Z,0),write(N),
            cursor(Z,7),write(FIO),
            cursor(Z,25),write(DAT),
            cursor(Z,41),write(GOR),
            cursor(Z,49),write(SE),
            cursor(Z,55),write(NO),
            cursor(Z,61),write(DATV),
            cursor(Z,76),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 — База будет загружена из файла mak.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 — База будет записана в файл mak.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,FIO,DAT,GOR,SE,NO,DATV),
            S=FIO,
            S=X,
           N1=N,DAT1=DAT,GOR1=GOR,SE1=SE,NO1=NO,DATV1=DATV,
           assert(svod1(N1,S,DAT1,GOR1,SE1,NO1,DATV1)),
            fail.
        procedure(1):-
            write("Базасоздана"),nl,
            write("____________________________________________________________________________!"),
           write("                       ВОДИТЕЛЬСКОЕ  УДОСТОВЕРЕНИЕ                          "),
            nl,
           write("----------------------------------------------------------------------------!"),
            nl,
           write("! номер!    ФамилияИ.О. !  Дата, место рождения  !    !     ! Дата выдачи   !"),
            nl,
           write("!     !                 ! число, месяц, год! город! серия! номер! число, месяц, год!"),
            nl,
           write("-----------------------------------------------------------------------------"),
            nl,
            svod(N,S,DAT,GOR,SE,NO,DATV),
            cursor(Z,_),
            cursor(Z,0),write(N),
            cursor(Z,7),write(S),
            cursor(Z,25),write(DAT),
            cursor(Z,41),write(GOR),
            cursor(Z,49),write(SE),
            cursor(Z,55),write(NO),
            cursor(Z,61),write(DATV),
            cursor(Z,76),write("!"),
            nl,
            fail.
        procedure(1):-
           write("-----------------------------------------------------------------------------"),
            save(«nov.dat»,svod1),
            nl,
           write(«База сохранена в файле nov.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(«Введитесерию удостоверения:»),
           readln(X),
            svod(N,FIO,DAT,GOR,SE,NO,DATV),
            S=SE,
            S=X,
           N1=N,FIO1=FIO,DAT1=DAT,GOR1=GOR,NO1=NO,DATV1=DATV,
           assert(lolo(N1,FIO1,DAT1,GOR1,S,NO1,DATV1)),
            fail.
        procedure(2):-
            write("Базасоздана"),nl,
            write("____________________________________________________________________________!"),
           write("                       ВОДИТЕЛЬСКОЕ  УДОСТОВЕРЕНИЕ                          "),
            nl,
           write("----------------------------------------------------------------------------!"),
            nl,
           write("! номер!    ФамилияИ.О. !  Дата, место рождения  !    !     ! Дата выдачи   !"),
            nl,
           write("!     !                 ! число, месяц, год! город! серия! номер! число, месяц, год!"),
            nl,
           write("-----------------------------------------------------------------------------"),
            nl,
            svod(N,FIO,DAT,GOR,S,NO,DATV),
            cursor(Z,_),
            cursor(Z,0),write(N),
            cursor(Z,7),write(FIO),
            cursor(Z,25),write(DAT),
            cursor(Z,41),write(GOR),
            cursor(Z,49),write(S),
            cursor(Z,55),write(NO),
            cursor(Z,61),write(DATV),
            cursor(Z,76),write("!"),
            nl,
            fail.
        procedure(2):-
           write("-----------------------------------------------------------------------------"),
            save(«nov1.dat»,lolo),
            nl,
           write(«База сохранена в файле nov1.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(«Введите номер удостоверения:»),
            readint(X),
            svod(N,FIO,DAT,GOR,SE,NO,DATV),
            S=NO,
            S=X,
           N1=N,FIO1=FIO,DAT1=DAT,GOR1=GOR,SE1=SE,DATV1=DATV,
           assert(kuku(N1,FIO1,DAT1,GOR1,SE1,S,DATV1)),
            fail.
        procedure(3):-
            write("Базасоздана"),nl,
            write("____________________________________________________________________________!"),
           write("                       ВОДИТЕЛЬСКОЕ  УДОСТОВЕРЕНИЕ                          "),
            nl,
           write("----------------------------------------------------------------------------!"),
            nl,
           write("! номер!    ФамилияИ.О. !  Дата, место рождения  !    !     ! Дата выдачи   !"),
            nl,
           write("!     !                 ! число, месяц, год! город! серия! номер! число, месяц, год!"),
            nl,
           write("-----------------------------------------------------------------------------"),
            nl,
            svod(N,FIO,DAT,GOR,SE,S,DATV),
            cursor(Z,_),
            cursor(Z,0),write(N),
            cursor(Z,7),write(FIO),
            cursor(Z,25),write(DAT),
            cursor(Z,41),write(GOR),
            cursor(Z,49),write(SE),
            cursor(Z,55),write(S),
            cursor(Z,61),write(DATV),
            cursor(Z,76),write("!"),
            nl,
            fail.
        procedure(3):-
           write("-----------------------------------------------------------------------------"),
            save(«nov2.dat»,kuku),
            nl,
           write(«База сохранена в файле nov2.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(«mak.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(«mak.dat»),
            consult(«mak.dat»),
            write("Всевпорядке"),
            beep,
            !.
        lod(2):-
           write(«Файла mak.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(“Введите город рождения:»),
        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(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 мильонов к студенческой карме :

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

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