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

                        Задание N П-14

P

             Накурсовое проектирование по дисциплине

            «Логическое программирование» студенту

          Липаткину Дмитрию Вячеславовичу гр. ИИ-1-95.

    1. Тема:

      разработка  информационно-справочнойсистемы.

    2. Исходныеданные:

       Разработатьинформационно-справочную систему, обеспечиваю-

       щую работу сбазой данных BT, включающей записи вида:

  ╔═══════════════════════════════════════════════════════════╗

   ║           TEХНИЧЕСКИЙ ПАСПОРТАВТОЛЮБИТЕЛЯ                ║

  ╠═════╦═════╦══════╦═════╦════╦══════╦══════════╦═════╦═════╣

   ║     ║Год ║  Nо  ║ No ║   ║номер.║Паспорт  ║ ФИО ║Район║

  ║Марка║выпу-║ Дви-║шасси║цвет║знак ╠═════╦════╬═╦═╦═╣Учёта║

   ║авт.║ ска ║гателя║    ║    ║      ║Серия║ No║Ф║И║О║     ║

  ╠═════╬═════╬══════╬═════╬════╬══════╬═════╬════╬═╬═╬═╬═════╣

    Меню системыдолжно включать режимы:cохранения, загрузки,

   просмотра-добавления, корректировки, создания из базы ВТ

    новых баз данныхпо задаваемым пользователем признакам.

    Язык  программирования Пролог.

    3. Переченьвопросов, подлежащих разработке:

       3.1Разработка меню, обеспечивающее взаимодействие пользо-

           вателя ссистемой, в соответствии с заданием, предус-

           мотреврежимы:

            — корректировки данных,

            — просмотра-добавления данных,

            — просмотра базы,

            — загрузки базы,

            — сохранения базы,

            — создания новой базы.

       3.2Разработка процедур:

            — корректировки данных,

            — просмотра-добавления данных,

            — просмотра базы,

            — загрузки базы,

            — сохранения базы,

            — создания новой базы.

    4. Переченьграфических материалов:

       4.1структурная схема меню

       4.2структурная схема программы.

    5. Календарныйплан-график работы над курсовой работой:

       1. Получениезадания

                            4.10.96

       2. Анализзадания, постановка задачи,  подбор  и изучение

         литературы

                            18.10.96

       3.Разработка меню и структуры программы

                            25.10.96

       4.Разработка процедур информационно-справочной системы

                            15.11.96

       5. Отладкапрограммы

                            29.11.96

       6.Оформление пояснительной записки и сдача работы на про-

          верку

                            24.12.96

       7. Защитакурсовой работы

                            25.12.96

                              Руководитель          /Холкин И.И./

                              Студент   /Липаткин Д.В., ИИ-1-95/

                          aСодержание

                                                      @стр.

          Введение....................................

          1.Понятие об информационных системах и их

            программной реализации ...................

          2. Базаданных и способы ее представления ...

          3.Разработка системного меню ...............

          4.Разработка структуры программы ...........

          5.Разработка процедур:

             5.1Основной процедуры Start .............

             5.2Вывода главного меню Patch ...........

             5.3Вывода информации о системе

                Process(0) ...........................

             5.4Вывода меню корректировки Process(1) .

             5.5Удаления записей Process(2) ..........

             5.6Вывода меню просмотра Process(3) .....

             5.7 Вывода меню загрузки Process(4) .....

             5.8Вывода меню сохранения Process(5) ...

             5.9Создания новой БД Process(6) ........

             5.10Ввода новых данных Process(7) ......

             5.11Просмотра-добавления Process(8) ....

             5.12Выхода из программы Process(9) .....

             5.13Процедура выбора записи Select(_) ..

             5.14Загрузки БД с диска Lod ............

             5.15Сохранения БД на диске Sve .........

          6.Листинг программы .......................

          7.Отладка программы .......................

          8.Инструкция пользователя и решение

            контрольных примеров: ...................

         Заключение .................................

          Списоклитературы ..........................

   @

                          @Введение

    Данная курсоваянаписана на языке Пролог в среде Turbo Prolog

v 2.0 (русифицированная версия). В структуре языказаложены  воз-

можности простой и черезвычайно эффективной работы сбазами  дан-

ных, что позволяет на его основе создавать различногорода инфор-

мационно — справочные системы. Структура  языка Пролог  соответ-

ствует структуре реляционных баз  данных. Так  отношению  в  РБД

соответствует предикат в Прологе, элементу — факт,атрибуту отно-

шения — аргумент предиката и т.д. Встроенные в  Пролог предикаты

работы с окнами позволяют создать дружественный интерфейсдля ра-

боты пользователя с информационно — справочной системой.

            @ 1. Понятиеоб информационно-справочных

              @системахи  @их программной реализации

    Информационно-справочные системы - это  программы-оболочки,

служащие для управления массивами и  базами данных.  В  наш  век

всеобщей компьютеризации информационно-справочныесистемы  значи-

тельно облегчают труд человека во всех отрасляхнародного  хозяй-

ства. Значительно упростилась работа московской милициипо  обна-

ружению угнаного транспорта после создания в Москве  компьютерных

баз данных по угнаным автомобилям. Бухгалтерампредприятий и фирм

теперь не нужно перебирать горы бумаг, чтобы получитьвсе  данные

о сотруднике: достаточно загрузитьинформационно-справочную  сис-

тему и она в удобной форме выдаст всю необходимуюинформацию.

     Области примененияинформационно-справочных систем  воистину

безграничны: это ведение статистики удоя скота наферме,  состав-

ление каталогов книг в библиотеках и произведенийискусства в му-

зеях, сбор данных о наличии рабочих вакансий вданном  регеоне  и

многие другие.

     Одним изспособов програмной реализации информационно-спра-

вочной системы является использование для ее созданияязыка логи-

ческого программирования Пролог. В данной реализацииязыка содер-

жится множество встроенных  предикатов, существенно  облегчающих

написание таких систем.

            @2.База данных и способы ее представления

     База данных впростейшем случае  -  упорядоченная структура

данных в виде таблицы, каждая  запись которой  может  объединять

разнотипные данные, причем все записи одной базы  имеют одинако-

вую структуру. Существуют три модели  представления баз  данных:

иерархическая, сетевая и реляционная. В силу  особенностей языка

Пролог, с его помощью  реализуется  реляционная модель.  Каждая

строка в базе данных называется элементом отношения,  каждая ко-

лонка — атрибутом отношения, колличество колонок  - арностью,  а

колличество строк — мощностью. В  языке программирования  Пролог

атрибуту отношения соответствует аргумент  предиката, арности  -

колличество аргументов в предикате, отношению — предикат,элемен-

ту — факт, и мощности — число фактов. Исходя  из вышеперечислен-

ных соответствий Пролог является прекрасным средствомдля  реали-

зации реляционных баз данных.

                  @3.Разработка системного меню

     Все режимыпрограммы активизируются с помощью меню, которое

реализовано с помощью процедуры patch. Для активизациикакого ли-

бо режима пользователю следует нажать цифровуюклавишу,  соответ-

ствующую выбранному пункту меню.

     Меню данной  программы состоит из  девяти пунктов:

     0 — Осистеме...           — вывод данных осистеме

     1 — Корректировка данных   — режимкорректировки данных

     2 — Уничтожение данных     — режим удаленияданных

     3 — Просмотрбазы          — режим просмотра базы

     4 — Загрузкабазы          — режим загрузки базы

     5 — Сохранениебазы        — режим сохранения базы

     6 — Созданиеновой базы    — режим создания новой базы

     7 — Ввод новыхданных      — режим ввода новых данных

     8 — Просмотр-добавления    — режим просмотра-добавления

     9 — Выход изпрограммы     — выход из программы

                   @5. Разработка процедур

     Процедурысоздавались на основе требований, изложенных в за-

дании к курсовой работе.

                 @5.1 Основная процедура Start.

     С помощьюпроцедуры Start в разделе GOAL инициируется нача-

ло выполнения программы. Эта процедура загружает  начальную базу

данных, после чего передает управление процедуревывода  главно-

го меню Patch.

         @ 5.2Процедура вывода главного меню Patch.

     Эта процедуравыводит список пунктов главного меню  и  ожи-

дает от пользователя ввода числа, которое будет занесенов  пере-

менную C. После этого вызывается процедура обработкиосновных ре-

жимов Process, в которую переменная C передается вкачестве аргу-

мента. В процедуре использован предикат Repeat, в  связи с  этим

после возврата из процедуры Process в случае, если Cне  равно 9

происходит повторный вывод пунктов меню и ожидание вводачисла.

          @5.3Процедура вывода информации о системе Process(0).

     Даннаяпроцедура выводит информацию о языке, на котором  на-

писана система и данные о создателе.

     @5.4 Процедуравывода меню коррекции данных Process(1).

     ПроцедураProcess(1) служит для вывода меню режима  коррек-

ции данных, находящихся в БД, и внесения новых записей.После ак-

тивизации процедура выводит меню в котором имеются  режимы, с по-

мощью которых надо выбрать  интересующий вас  объект  изменения.

Активизация режимов происходит аналогично  главному меню  с  по-

мощью нажатия соответствующей цифровой клавиши. Считанноес  кла-

виатуры число заносится в переменную  X, после  чего  вызывается

процедура Select, аргументом которой служит X. С помощьюпроцеду-

ры Select, описанной ниже, собственно и реализуетcя  режим кор-

рекции. В процедуре Process(1) также применен предикатRepeat,  с

помощью которого реализован повторный вывод меню вслучае  ошибки

ввода.

           @5.5 Процедураудаления записей Process(2).

     Даннаяпроцедура предназначена для удаления записей из базы

данных. В программе предусмотрена возможностьзадания  либо  мар-

кой автомобиля, либо годом ее выпуска, либо ее цвету илипо  райо-

ну учё- та для удаления данной записи. Эта возможностьреализует-

ся процедурой Select, описанной ниже. ПроцедураSelect  возвращает

номер выбранной записи и с помощью встроенногопредиката  retract

запись удаляется из базы данных. В случае ошибки(отсутствия  за-

писи, выбранной пользователем для  удаления) выводится  соответ-

ствующее сообщение (процедура Error).

       @5.6Процедура вывода меню просмотра БД Process(3).

     ПроцедураProcess(3) выводит cодержимое базы данных.Для вы-

хода в главное меню надо нажать любую клавишу.

        @5.7Процедура вывода меню загрузки БД Process(4).

     Даннаяпроцедура выводит меню, содержащее следующие пункты:

«Загрузить основную базу из выбранного файла»," Загрузить основ-

ную базу из файла dima.dat", «Выход вглавное  меню».  Собственно

загрузка баз данных осуществляется процедурой Lod,аргументом ко-

торой служит переменная C,  считанная  с клавиатуры  при  вводе

пользователем номера  желаемого  пункта меню.    В    процедуре

Process(4) также применена процедура Repeat.

       @5.8Процедура вывода меню сохранения БД Process(5).

     ПроцедураWorking(5) аналогична process(4). Для  сохранения

баз данных применяется процедура Save, рассмотреннаяниже,  аргу-

ментом которой является переменная I.

          @5.9 Процедурасоздания новой БД Process(6).

     Даннаяпроцедура служит для создания новой базы данных. Про-

цедура работает следующим образом: из базы, все записирассматри-

ваются по заданому вами признаку и записи, имеющиеэтот  признак,

выводятся на экран в виде другой базы  данных и  записываются  в

файл «not.dat».В этой процедуре используетсяпроцедура Procedure,

которая имеет переменную С, которая описана ниже.

@          5.10Процедура ввода новых данных Process(7).

@

     Даннаяпрооцедура служит для ввода новой записи в  БД.После

активизации надо поочерёдно вводить все данные о  автомобиле, пос-

ле чего она их заносит в БД и вы выходите в главное меню.

 @

@          5.11Процедура просмотра-добавления Process(8).

     Даннаяпроцедура cлужитдля просмотра  или  добавления новых

данных. Процедура работает так: надо ввести  марку автомобиля  и

появятся все данные про этот автомобиль и при нажатииклавиши бу-

дет осуществлен выход в главное меню, если вы ввели несуществую-

щую марку то потребуют повторить ввод, но для добавлениязаписи к

БД, после чего будет осуществлен выход в главное меню.

            @5.12Процедура выхода из программы Process(9).

@

@     Данная служитдля выхода из программы. она происходит при на-

жатии клавиши 9.

@            5.13 Процедура выбора записиSelect(_).

     Даннаяпроцедура выводит несколько признаков по  одному  из

которых вы хотите изменить запись. Вы набираете номерпризнака, а

потом и вводите его. Дальше выполняется процедураSel(M,N). C пе-

ременной М (признак, который вы ввели) вы входите вэту  процеду-

ру. Процедура по признаку М находит номер записи N иотсылает об-

ратно в процедуру Select.

              @5.14Процедура загрузки БД с диска Lod.

      Даннаяпроцедура осуществляет загрузку баз данных из  фай-

лов на диске по признакам,  зависящим  от аргумента  процедуры:

lod(1)  загружает    основную    БД   из    файла,    заданного

пользователем,lod(2) — из файла  dima.dat. В  данных  процедурах

проверяется наличие файла на диске с помощьюпредиката  existfile

и загрузка БД в память с помощью предиката consult. Вслучае  от-

сутствия файла на диске, выдается соответствующеесообщение (про-

цедура Io_error).

         @5.15 @Процедурасохранения БД на диске Sve.

      Данная процедураосуществляет сохранение баз данных в фай-

лах на диске по признакам,  зависящим  от аргумента  процедуры:

Sve(1) сохраняет основную БД  в файле,  заданном  пользователем,

Sve(2) — в файле dima.dat. Сохранение  БД осуществляется  с  по-

мощью встроенного предиката save. В случае ошибкивыдается  соот-

ветствующее сообщение (процедура Error).

                     @6. Листинг программы.

/*           **************************

             *  КУРСОВАЯ   РАБОТА    *

             *                        *

             *                        *

             *                        *

             **************************

*/

domains

       b,c,d,m,r,z,i,n,n1,ko,ob,pl=integer

        t,a,f,s,l,p,u,na,j=symbol

database-svod1

          svod1(a,b,c,d,f,m,t,r,s,l,p,u)

database-lolo

          lolo(a,b,c,d,f,m,t,r,s,l,p,u)

database-kuku

          kuku(a,b,c,d,f,m,t,r,s,l,p,u)

database

         svod(a,b,c,d,f,m,t,r,s,l,p,u)

        predicates

        start

        patch

        load

        select(i)

        sel(i,i)

        process(i)

        procedure(i)

        sve(i)

        lod(i)

        repeat

goal

        start.

clauses

/*Процедура создания основного меню и загрузки базыданных, стр.  */

     start:-

     makewindow(1,10,0,«ТЕХНИЧЕСКИЙ ПАСПОРТАВТОЛЮБИТЕЛЯ»,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(«dima.dat»),

            consult(«dima.dat»),

            cursor(1,2),

            write("Базазагружена").

        load:-

           cursor(1,2),

           write(«Нет базы на диске»).

/*Пpоцедуpа ввода новых данных, стр.  */

        process(7):-

        makewindow(1,2,7,"Вводновыхданных",0,0,25,80),

            nl,

           write(«Введите марку автомобиля   :»),readln(K),nl,

           write(«Введите год выпуска        :»),readint(O),nl,

           write(«Введите номер двигателя    :»),readint(I),nl,

           write(«Введите номер шасси        :»),readint(Y),nl,

            write("Введитецвет               :"),readln(T),nl,

            write(«Введите номернойзнак       :»),readint(FF),nl,

           write(«Введите серию паспорта     :»),readln(OO),nl,

           write(«Введите номер паспорта     :»),readint(YY),nl,

           write(«Введите фамилию            :»),readln(KK),nl,

           write(«Введите инициалы имени     :»),readln(II),nl,

            write("                 oтчества  :"),readln(TT),nl,

            write("Введитерайонучета         :"),readln(HH),nl,

           N1=K,NA1=O,KO1=I,OB1=Y,PL1=T,FF1=FF,OO1=OO,

            YY1=YY,KK1=KK,II1=II,TT1=TT,HH1=HH,

     assertz(svod(N1,NA1,KO1,OB1,PL1,FF1,OO1,YY1,KK1,II1,TT1,HH1)),

            removewindow,

            fail.

/*Процедура просмотра-добавления, стр.  */

        process(8):-

        makewindow(1,2,7,«Просмотр-добавление»,0,0,25,80),

         nl,

        write(«Введите марку автомобиля:»),readln(A),nl,nl,

        svod(KY,NA,KO,OB,PL,N,OOO,YYY,KKK,III,TTT,HHH),

         A=KY,

         write("Маркаавтомобиля   :"),write(A),nl,

         write("Годвыпуска        :"),write(NA),nl,

         write("Номердвигателя    :"),write(KO),nl,

         write("Номершасси         :"),write(<st1:place w:st=«on»>OB</st1:place>),nl,

         write("Цветавтомобиля    :"),write(PL),nl,

         write("Номернойзнак       :"),write(N),nl,

         write(«Cерияпаспорта     :»),write(OOO),nl,

         write("Номерпаспорта     :"),write(YYY),nl,

         write("Фамилия             :"),write(KKK),nl,

        write("Инициалыимени     :"),write(III),nl,

         write("         отчества  :"),write(TTT),nl,

         write("районучета         :"),write(HHH),nl,nl,nl,

         write(«Нажмите на любуюклавишу»),

        readchar(_),

         removewindow,

         !.

        process(8):-

write(«Этой марки автомобиля нет в базе.»),

write(«Повторите введенную марку автомобиля „),

write(“и продолжайте ввод данных»),nl,nl,nl,

write(«Введите марку автомобиля:»),

        readln(A),nl,

         A=N1,

         write(«Введите год выпуска         :»),readint(F),nl,

        write(«Введите номер двигателя    :»),readint(Y),nl,

        write(«Введите номер шасси        :»),readint(J),nl,

         write("Введитецвет               :"),readln(G),nl,

         write(«Введите номернойзнак       :»),readint(FFFF),nl,

        write(«Введите серию паспорта     :»),readln(OOOO),nl,

        write(«Введите номер паспорта     :»),readint(IIII),nl,

        write(«Введите фамилию            :»),readln(KKKK),nl,

         write(«Введите инициалы имени      :»),readln(TTTT),nl,

         write("                 отчества  :"),readln(MMMM),nl,

         write("Введитерайонучета         :"),readln(GGGG),nl,

        NA1=F,KO1=Y,OB1=J,PL1=G,FF1=FFFF,OO1=OOOO,

         YY1=IIII,KK1=KKKK,II1=TTTT,TT1=MMMM,HH1=GGGG,

     assertz(svod(N1,NA1,KO1,OB1,PL1,FF1,OO1,YY1,KK1,II1,TT1,HH1)),

         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  (с) 1996 г. "),

nl,nl,nl,nl,

write(«Нажмите на любую клавишу»),

        readchar(_),

        removewindow.

/*Процедура изменения содержимого записей базы данных, стр.  */

        process(1):-

        makewindow(1,2,7,"Коppекцияданных",0,0,25,80),

            nl,

            select(N),

            RR=N,

           svod(KY,NA,KO,OB,PL,RR,OOO,YYY,KKK,III,TTT,HHH),

            write(«Маркаавтомобиля       :»),write(KY),nl,

            write("Годвыпуска           :"),write(NA),nl,

            write("Номердвигателя       :"),write(KO),nl,

            write("Номершасси            :"),write(<st1:place w:st=«on»>OB</st1:place>),nl,

            write("Цветавтомобиля       :"),write(PL),nl,

            write("Номернойзнак          :"),write(RR),nl,

            write("Серияпаспорта        :"),write(OOO),nl,

            write("Номерпаспорта        :"),write(YYY),nl,

            write("Фамилия                :"),write(KKK),nl,

            write("Инициалыимени         :"),write(III),nl,

            write("         oтчества     :"),write(TTT),nl,

            write("Районучета           :"),write(HHH),nl,

                        nl,

           write(«Введите марку автомобиля   :»),readln(N1),nl,

           write(«Введите год выпуска        :»),readint(NA1),nl,

           write(«Введите номер двигателя    :»),readint(KO1),nl,

           write(«Введите номер шасси        :»),readint(OB1),nl,

            write("Введитецвет                :"),readln(PL1),nl,

            write(«Введите номернойзнак       :»),readint(RR1),nl,

           write(«Введите серию паспорта     :»),readln(OO1),nl,

           write(«Введите номер паспорта     :»),readint(YY1),nl,

           write(«Введите фамилию             :»),readln(KK1),nl,

           write(«Введите инициалы имени     :»),readln(II1),nl,

            write("                 отчества  :"),readln(TT1),nl,

            write("Введитерайонучета         :"),readln(HH1),nl,

          retract(svod(KY,NA,KO,OB,PL,RR,OOO,YYY,KKK,III,TTT,HHH)),

      assert(svod(N1,NA1,KO1,OB1,PL1,RR1,OO1,YY1,KK1,II1,TT1,HH1)),

            !,

           removewindow.

/*Процедура удаления записей из базы данных, стр.  */

        process(2):-

            makewindow(1,2,7,"Удалениезаписей",0,0,25,80),

            nl,

            select(N),

            X=N,

           svod(KY,NA,KO,OB,PL,X,OOO,YYY,KKK,III,TTT,HHH),

           retract(svod(KY,NA,KO,OB,PL,X,OOO,YYY,KKK,III,TTT,HHH)),!,

            removewindow.

/*Процедура просмотра содержимого базы данных, стр.  */

        process(3):-

        makewindow(1,2,7,"Просмотp базы",0,0,25,80),

        nl,

write("╔═════════════════════════════════════════════════════════╗"),

write("║             ТЕХНИЧЕСКИЙПАСПОРТАВТОЛЮБИТЕЛЯ            ║"),

write("╠═════╦═════╦══════╦═════╦════╦══════╦════════╦═════╦═════╣"),

write("║марка║ год║ No  ║ No  ║    ║номер-║паспорт║ ФИО║    ║"),

write("║авт. ║выпу-║двига-║шасси║цвет║ ной ║═════╦══╬═╦═╦═╣район║"),

write("║     ║ска  ║теля║     ║   ║ знак║серия║No║Ф║И║О║    ║"),

write("╠═════╬═════╬══════╬═════╬════╬══════╬═════╬══╬═╬═╬═╬═════╣"),

          svod(KY,NA,KO,OB,PL,N,OOO,YYY,KKK,III,TTT,HHH),

            cursor(Z,_),

            cursor(Z,0),write(KY),

            cursor(Z,8),write(NA),

            cursor(Z,16),write(KO),

            cursor(Z,26),write(<st1:place w:st=«on»>OB</st1:place>),

            cursor(Z,32),write(PL),

            cursor(Z,39),write(N),

            cursor(Z,46),write(OOO),

            cursor(Z,52),write(YYY),

            cursor(Z,58),write(KKK),

            cursor(Z,66),write(III),

            cursor(Z,68),write(TTT),

            cursor(Z,70),write(HHH),

            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 — База будет загружена из файла dima.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 — База будет записана в файл dima.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(«Если вы хотитеузнать данные о автомобилe, то»),

            nl,

           write(«Введите марку автомобиля:»),

           readln(X),

           svod(KY,NA,KO,OB,PL,N,OOO,YYY,KKK,III,TTT,HHH),

            S=KY,

            S=X,

            NA1=NA,KO1=KO,OB1=<st1:place w:st=«on»>OB</st1:place>,PL1=PL,FF1=N,OO1=OOO,YY1=YYY,

            KK1=KKK,II1=III,TT1=TTT,HH1=HHH,

<spa

еще рефераты
Еще работы по программированию, базе данных