Главная » Каталог    
рефераты Разделы рефераты
рефераты
рефератыГлавная

рефератыБиология

рефератыБухгалтерский учет и аудит

рефератыВоенная кафедра

рефератыГеография

рефератыГеология

рефератыГрафология

рефератыДеньги и кредит

рефератыЕстествознание

рефератыЗоология

рефератыИнвестиции

рефератыИностранные языки

рефератыИскусство

рефератыИстория

рефератыКартография

рефератыКомпьютерные сети

рефератыКомпьютеры ЭВМ

рефератыКосметология

рефератыКультурология

рефератыЛитература

рефератыМаркетинг

рефератыМатематика

рефератыМашиностроение

рефератыМедицина

рефератыМенеджмент

рефератыМузыка

рефератыНаука и техника

рефератыПедагогика

рефератыПраво

рефератыПромышленность производство

рефератыРадиоэлектроника

рефератыРеклама

рефератыРефераты по геологии

рефератыМедицинские наукам

рефератыУправление

рефератыФизика

рефератыФилософия

рефератыФинансы

рефератыФотография

рефератыХимия

рефератыЭкономика

рефераты
рефераты Информация рефераты
рефераты
рефераты

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


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 < 10,
            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<4,
            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<4,
            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<5,
            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.
рефераты Рекомендуем рефератырефераты

     
Рефераты @2011