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

                          Задание N П-

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

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

         Михайлову Александру              гр. ИИ-1-95.

    1. Тема:

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

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

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

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

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

   ║                    ТОВАР НА СКЛАДЕ                         ║

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

   ║   ║         ║        ║          ║  поставщик               ║

   ║   ║название ║ кол-во ║ требуемое╠═════╦════════╦═══════════╣

   ║No ║ товара  ║   на   ║   кол-во ║город║почтовый║  название ║

   ║   ║         ║ складе ║          ║     ║ индекс ║предприятия║

   ╚═══╩═════════╩════════╩══════════╩═════╩════════╩═══════════╝

    Меню системы должно включать режимы корректировки,  уничтоже-

    ния просмотра, загрузки,  сохранения.

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

    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Содержание

                                                       @стр.

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

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

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

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

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

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

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

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

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

             5.3 Автоматической загрузки БД Autoload .. 9

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

                 Working(0) ........................... 9

             5.5 Вывода меню корректировки Working(1) . 9

             5.6 Удаления записей Working(2) .......... 9

             5.7 Вывода меню просмотра Working(3) ..... 9

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

             5.9 Вывода меню сохранения Working(5) ... 10

             5.10 Создания новой БД Working(6) ....... 10

             5.11 Выхода из программы Working(7) ..... 10

             5.12 Обработки ошибки пользователя

                  Working(_) ......................... 10

             5.13 Корректировки данных Correct(1) .... 10

             5.14 Добавления новых записей Correct(2). 11

             5.15 Просмотра БД View .................. 11

             5.16 Вспомагательной Accept ............. 11

             5.17 Вспомагательных Skip и Skip1 ....... 11

             5.18 Загрузки БД с диска Bd_load ........ 12

             5.19 Сохранения БД на диске Bd_save ..... 12

             5.20 Вспомагательной Ask ................ 12

             5.21 Mesage ............................. 12

             5.22 Error и Io_error ................... 12

             5.23 Ok ................................. 12

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

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

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

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

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

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

                            @Введение

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

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

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

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

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

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

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

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

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

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

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

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

    Информационные системы - это  системы,  которые  информируют

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

века. Например: информационная система "Зарплата по НИР", в кото-

рой содержится информация о сотрудниках  разных  кафедр,  которые

ведут научные исследования.

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

обеспечивает  удобное  взаимодействие  пользователя  и   системы.

Пользователь, при помощи оболочки, может получить  любую  интере-

сующую его информацию.

     Язык Пролог предостовляет довольно большие  возможности  для

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

доставляет такие средства как:

     - загрузка базы данных системы с диска  (стандартный  преди-

       кат @consult);

     - запись базы на диск (предикат @save);

     - добавление  в  базу  новых  данных  (предикаты  @asserta  и

       @assertz);

     - удаление данных из базы (предикат @retract) и др.

     Сочитание всего этого позволяет  создавать  довольно  мощные

информационные системы.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

     0 - О пpогpамме...         - вывод данных о системе

     1 - коррекция данных       - режим корректировки данных

     2 - удаление данных        - режим удаления данных

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

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

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

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

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

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

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

 На следующей странице представлена графическая структура меню.

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

          AСтруктура программы  "Товар на складе":

                      ┌───────────────────┐

                      │       start       │

                      ├───────────────────┤

                      │основная  процедура│

                      └─────────┬─────────┘

               ┌────────────────┴───────────────┐

       ┌───────┴─────────┐               ┌──────┴───────┐

       │     load        │               │    patch     │

       ├─────────────────┤               ├──────────────┤

       │ автозагрузка БД │               │ главное меню │

       └─────────────────┘               └──────┬───────┘

                                                │

       ┌───────┬────────┬────────┬───────┬──────┼───────┐

       │       │        │        │       │      │       │

  ┌────┴─────┐ │ ┌──────┴──────┐ │ ┌─────┴────┐ │ ┌─────┴────┐

  │process(0)│ │ │ process(1)  │ │ │process(2)│ │ │process(3)│

  ├──────────┤ │ ├─────────────┤ │ ├──────────┤ │ ├──────────┤

  │Информация│ │ │Корректировка│ │ │ Удаление │ │ │ Просмотр │

  │о програме│ │ │   данных    │ │ │  данных  │ │ │   базы   │

  └──────────┘ │ └──────┬──────┘ │ └─────┬────┘ │ └──────────┘

 ┌─────────────┤       ┌┘        │       └┐     │

 │             │       │         │        │     └─┐

 │       ┌─────┴─────┐ │  ┌──────┴──────┐ │ ┌─────┴────┐

 │       │ process(4)│ │  │  process(5) │ │ │process(6)│

 │       ├───────────┤ │  ├─────────────┤ │ ├──────────┤

 │       │ Процедура │ │  │  Процедура  │ │ │ Создание │

 │       │загрузки БД│ │  │сохранения БД│ │ │ новой БД │

 │       └─────┬─────┘ │  └──────┬──────┘ │ └─────┬────┘

 │             │       │         │        │       │

 │ ┌──────────┐└┐      │         │        │       │

 │ │process(7)│ │      │         │        │       │

 │ ├──────────┤ │ ┌────┴─────┐   │  ┌─────┴─────┐ │

 ├─┤Ввод новых│ │ │  select  │   │  │   select  │ │

 │ │ данных   │ │ ├──────────┤   │  │───────────│ │

 │ └──────────┘ │ │   Выбор  │   │  │   Выбор   │ │

 │ ┌──────────┐ │ │ признака │   │  │  признака │ │

 │ │process(8)│ │ └──────────┘   │  └───────────┘ └──────────┐

 │ ├──────────┤ │                └─────────────────────────┐ │

 └─┤ Просмотр-│ └───────┬───────────────┬───────────┐      │ │

   │добавление│   ┌─────┴──────┐  ┌─────┴────┐  ┌───┴────┐ │ │

   └──────────┘   │   lod(1)   │  │  lod(2)  │  │ lod(3) │ │ │

                  ├────────────┤  ├──────────┤  ├────────┤ │ │

                  │  загрузка  │  │ загрузка │  │ Выход  │ │ │

                  │БД из файла │  │ из файла │  │   в    │ │ │

                  │пользователя│  │ kot.dat  │  │  меню  │ │ │

                  └────────────┘  └──────────┘  └────────┘ 1 2

                                                           1 │

                                                           │ │

             ┌───────────────┬───────────┬─────────────────┘ │

       ┌─────┴──────┐  ┌─────┴────┐  ┌───┴────┐              │

       │   lod(1)   │  │  lod(2)  │  │ lod(3) │              │

       ├────────────┤  ├──────────┤  ├────────┤              │

       │  загрузка  │  │ загрузка │  │ Выход  │              │

       │БД из файла │  │ из файла │  │   в    │              │

       │пользователя│  │ kot.dat  │  │  меню  │              │

       └────────────┘  └──────────┘  └────────┘              │

                                                             │

         ┌──────────────┬─────────────┬──────────────────────┘

  ┌──────┴─────┐ ┌──────┴─────┐ ┌─────┴──────┐

  │procedure(1)│ │procedure(2)│ │procedure(3)│

  ├────────────┤ ├────────────┤ ├────────────┤

  │  Создание  │ │  Создание  │ │  Создание  │

  │   БД  по   │ │   БД  по   │ │   БД  по   │

  │наименованию│ │ требуемому │ │   данным   │

  │   товара   │ │ колличеству│ │ получателя │

  └────────────┘ └────────────┘ └────────────┘

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

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

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

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

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

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

чальной загрузки базы данных Autoload, после чего передает управ-

ление процедуре вывода главного меню Main_menu.

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

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

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

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

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

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

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

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

       @5.3 Процедура автоматической загрузки БД Autoload.

     Процедура Autoload предназначена для автоматической  загруз-

ки основной базы данных при запуске  программы.  Это  значительно

облегчает работу с системой, так как  не  требуется  при  запуске

программы подгружать основную БД из режима "Загрузка".  Процедура

Autoload проверяет существование на диске  файла  bit.dat  с  по-

мощью встроенного предиката existfile и подгружает БД в память  с

помощью предиката consult. В  случае  отсутствия  файла  выдается

сообщение об ошибке.

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

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

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

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

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

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

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

нение данных", "Добавление данных" и "Выход в меню".  Активизация

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

соответствующей цифровой клавиши. Считанное  с  клавиатуры  число

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

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

Correct(1) и Correct(2), описанных ниже, собственно и  реализует-

ся режимы коррекции и добавления. В  процедуре  Working(1)  также

применен предикат Repeat, с помощью которого  реализован  повтор-

ный вывод меню в случае ошибки ввода.

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

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

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

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

данной записи. Эта  возможность  реализуется  процедурой  Accept,

описанной ниже. Процедура Accept возвращает номер выбранной запи-

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

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

пользователем для удаления) выводится  соответствующее  сообщение

(процедура Error).

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

     Процедура Working(3) выводит меню, содержащее пункты: "Прос-

мотр основной базы", "Просмотр базы BSTUD" и "Выход в главное ме-

ню". Собственно просмотр содержимого  БД  осуществляют  процедуры

View(1) и View(2), рассмотренные ниже. Процедура Working(3)  реа-

лизована в стиле процедур Main_menu и  Working(1)  с  применением

процедуры Repeat.

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

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

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

ную базу из файла bit.dat", " Загрузить базу BSTUD из  выбранного

файла"," Загрузить базу BSTUD из  файла  bstud.dat"  и  "Выход  в

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

цедурой Load_bd, аргументом которой служит переменная C,  считан-

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

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

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

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

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

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

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

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

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

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

оценок за экзамены и новая запись с помощью предиката assertz до-

бавляется к базе с меткой "студент". Для того, чтобы были обрабо-

таны все записи, используется fail. После создания новой  БД  вы-

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

пользователь не забыл сохранить вновь созданую БД.

         @5.11 Процедура выхода из программы Working(7).

     Данная процедура состоит  из  отсечения,  которое  запрещает

дальнейший перебор. Процедура оканчивается успехом  и  происходит

возврат в процедуру Main_menu, в которой выполняется условие C=7,

благодаря чему происходит выход из программы.

    @5.12 Процедура обработки ошибки пользователя Working(_).

     Процедура Working(_) выводит сообщение об ошибке ввода  циф-

ры и подсказку о том, что следует ввести число от 0 до  7.  Вывод

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

ной с помощью встроенного предиката sound. После нажатия  клавиши

происходит возврат в главное меню.

         @5.13 Процедура корректировки данных Correct(1).

      Данная процедура  производит  коррекцию  данных  в  записи.

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

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

ляет процедура Accept, описанная ниже, которая  вызывается  после

создания окна "Изменение данных". Процедура Accept  передает  но-

мер выбранной записи в переменную N, после чего содержимое  запи-

си распечатывается на экране. После этого пользователю предостав-

ляется возможность ввести измененные данные; если  нет  необходи-

мости изменять какой-либо элемент, можно нажать клавишу  <Enter>.

Все данные, в том числе и числа, считываются в формате строк. Это

необходимо для осуществления возможности отказа от изменения эле-

мента нажатием клавиши <Enter>. Все считанные  данные  передаются

процедурам Skip (для строковых выходных данных) и Skip1 (для  це-

лочисленных выходных данных). Эти процедуры в зависимости от  то-

го,  была  ли  нажата  клавиша  <Enter>  возвращают  в  процедуру

Correct(1) либо старое значение, либо новое,  при  чем  процедура

Skip1 преобразует с помощь встроенного предиката str_int  строко-

вые данные в целочисленные. Старая запись удаляется из базы  дан-

ных предикатом retract, а новая добавляется  предикатом  assertz.

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

нить вновь введенные данные(процедура Mesage).

       @5.14 Процедура добавления новых записей Correct(2).

      Процедура Correct(2) служит для добавления  записей  к  БД.

Пользователь поочередно вводит каждый элемент записи, отвечая  на

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

БД, после чего вызывается предикат  Ask,  формирующий  запрос  на

продолжение процесса ввода новых записей.  Если  от  пользователя

будет получен утвердительный ответ, то благодаря процедуре Repeat

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

та система выдаст предупреждение о необходимости сохранения вновь

введенных данных (процедура Mesage) и произойдет возврат из  про-

цедуры Correct(2).

            @5.15 Процедура просмотра баз данных View.

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

новной ( View(1) ) и вновь созданной ( View(2) ) баз данных. Каж-

дая из процедур выводит заголовочную таблицу, после чего распеча-

тывает содержимое каждой записи. Для перебора  всей  БД  применен

предикат fail. После вывода всех записей  выводится  просьба  на-

жать любую клавишу для продолжения.

             @5.16 Вспомагательная процедура Accept.

      Данная  процедура  является  вспомагательной  к  процедурам

Correct(1) и Working(2). Она в паре со  вспомагательной  процеду-

рой Acp определяет номер желаемой записи после ввода  пользовате-

лем либо собственно номера этой записи, либо после ввода  фамилии

абитурьента (данные пункты присутствуют в меню, выводимом  проце-

дурой Accept) и возвращает этот номер в вызывавшую процедуру.

          @5.17 Вспомагательные процедуры Skip и Skip1.

      Процедуры Skip и Skip1 являются вспомагательными к процеду-

ре Correct(1). Они  позволяют  определить,  следует  ли  замещать

имеющийся элемент записи на новый или нет (если была нажата  кла-

виша <Enter>). В процедурах проверяется, является ли первый аргу-

мент пустой строкой. Если это так, то третьему аргумент  присваи-

вается второй. Если же первый аргумент не является  пустой  стро-

кой, то он присваивается третьему аргументу (в  Skip1  происходит

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

ную).

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

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

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

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

лем, Bd_load(2) - из файла bit.dat, Bd_load(3) -  базу  BSTUD  из

файла, заданного пользователем и BD_load(4) - базу BSTUD из  фай-

ла bstud.dat. В данных процедурах проверяется  наличие  файла  на

диске с помощью предиката existfile и загрузка БД в память с  по-

мощью предиката consult. В случае отсутствия файла на диске,  вы-

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

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

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

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

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

Bd_save(2) - в файле bit.dat, Bd_save(3) - базу  BSTUD  в  файле,

заданном  пользователем  и  BD_save(4)  -  базу  BSTUD  в   файле

bstud.dat. Сохранение БД  осуществляется  с  помощью  встроенного

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

ние (процедура Error).

               @5.20 Вспомагательная процедура Ask.

      Процедура  Ask  является  вспомагательной    к    процедуре

Correct(2). Она запрашивает пользователя, желает  ли  он  продол-

жить ввод данных.

                     @5.21 Процедура Mesage.

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

сохранения вновь введенных данных.

                @5.22 Процедуры Error и Io_error.

       Эти процедуры выводят сообщения об ошибках.

                       @5.23 Процедура Ok.

       Данная процедура выводит сообщение об успешном  выполнении

операции.

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

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

     Отладка программы происходила следующим образом:  расставля-

лись контрольные точки (с помощью стандартного предиката EXIT)  и

происходил запуск программы. После выполнения программы, до  кон-

трольной точки, происходил выход из программы и можно было на эк-

ране просмотреть результаты работы той или иной процедуры (на на-

чальном этапе программа разрабатывалась без оконного интерфейса).

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

ры и производился повторный запуск  программы.  Некоторые  ошибки

"ловил" сам Пролог в процессе выполнения программы.

     Нескольео раз возникали ошибки  из-за  отсутствия  отсечения

или стандартного предиката fail. Все ошибки были устранены.

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

        Программа "Список абитурьентов" представляет собой инфор-

мационно-справочную систему. В данной программе  имеется  возмож-

ность создания новой базы данных, являющейся списком  зачисленных

студентов. В основной БД присутствуют данные о фамилии,  имени  и

отчестве абитурьента, его поле, номере экзаменационного  листа  и

оценках за три экзамена. В дочерней БД имеются те  же  данные  за

исключением пола и того, что оценки за экзамены заменены их  сум-

мой.

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

                    0 - О системе...

                    1 - Корректировка данных

                    2 - Уничтожение данных

                    3 - Просмотр базы

                    4 - Загрузка базы

                    5 - Сохранение базы

                    6 - Создание новой базы

                    7 - Выход из программы

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

ствующую цифровую клавишу. Вход в каждый пункт сопровождается ко-

ротким звуковым сигналом. При нажатии неверной клавиши  на  экран

выводится окно с сообщением об ошибке и подсказкой, в  каком  ин-

тервале следует вводить число. Ниже приводится  описание  каждого

из пунктов.

                        @8.1 О системе...

        При выборе данного пункта на  экран  выводятся  данные  о

системе и ее авторе. После нажатия на  любую  клавишу  происходит

выход в главное меню.

                    @8.2 Корректировка данных.

        При входе в этот пункт на экран выводится подменю:

                      1 - Изменение данных

                      2 - Добавление данных

                      3 - Выход в главное меню

        Пункт 1 предназначен для изменения данных в записях.  При

входе в него так же появляется подменю:

                      1 - Известен номер абитурьента

                      2 - Известна фамилия

        Если известен номер абитурьента, то следует ввести  цифру

1, если известна фамилия - цифру 2. После этого система  запросит

соответственно номер или фамилию. Фамилию следует вводить  в  том

же виде (сочетание заглавных и строчных букв) в каком она  имеет-

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

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

отредактировать, последовательно распечатывая поля  записи.  Если

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

клавишу <Enter>. После корректировки всех полей система предупре-

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

жатия любой клавиши выйдет в меню "Корректировка данных".

        Пункт 2 меню "Корректировка данных" предназначен для  до-

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

вательно запрашивает данные о  новом  абитурьенте.  По  окончании

ввода выводится запрос, хочет ли пользователь продолжить  процесс

ввода новых записей. При утвердительном ответе (нажатии клавиши Д

в верхнем регистре) программа  предоставляет  возможность  ввести

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

При отрицательном ответе (нажатии клавиши Н (рус.) на верхнем ре-

гистре) будет выдано  предупреждение  о  необходимости  сохранить

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

ню "Корректировка данных".

        Пункт 3 служит для выхода в основное меню.

                    @8.3 Уничтожение записей.

        Данный режим служит для удаления записей из базы  данных.

Как и в подпункте "Изменение данных" режима  "Корректировка  дан-

ных" пользователю предоставляется возможность ввести либо  номер,

либо фамилию удаляемого  абитурьента.  После  ввода  этих  данных

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

ждающего выполнение данной операции. В случае невозможности  уда-

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

выдается соответствующее сообщение об ошибке.

                       @8.4 Просмотр базы.

        Данный режим предназначен для просмотра содержимого имею-

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

меню:

                    1 - Просмотр основной базы

                    2 - Просмотр базы BSTUD

                    3 - Выход в главное меню

        Пункт 1 предназначен для просмотра основной базы  данных,

содержимое которой подгружается  автоматически  (при  наличии  на

диске файла bit.dat) при запуске информационно-справочной  систе-

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

ной БД в виде таблицы. Для возвращения в меню следует нажать  лю-

бую клавишу.

        Пункт 2 предназначен для просмотра дочерней  базы  данных

BSTUD. В отличии от основной БД сразу после загрузки она пуста, и

чтобы ее просмотреть следует создать эту БД с  помощью  пункта  6

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

ные дочерней базы представляются также в виде таблицы.

       Пункт  3 служит для выхода в главное меню.

                       @8.5 Загрузка базы.

       Данный режим предназначен для загрузки баз данных из  фай-

лов. При входе в этот пункт выводится меню:

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

          2 - Загрузить основную базу из файла bit.dat

          3 - Загрузить базу BSTUD из выбранного файла

          4 - Загрузить базу BSTUD из файла bstud.dat

          5 - Выход в основное меню

       При выборе пунктов 2 и 4 произойдет загрузка соответствен-

но основной и дочерней  БД  из  стандартных  файлов  bit.dat  или

bstud.dat, в случае удачной загрузки будет  выдано  соответствую-

щее сообщение. После нажатия на любую клавишу произойдет выход  в

главное меню.

       При выборе пунктов 1 и 3 система запросит имя файла, в ко-

тором содержится соответствующая БД. При успешной  загрузке  поя-

вится соответствующее сообщение, при сбое появится  сообщение  об

ошибке.

       Пункт 5 предназначен для  выхода в главное меню.

                      @8.6 Сохранение базы.

       Данный режим предназначен для сохранения баз  данных.  При

входе в данный режим выводится следующее меню:

          1 - Сохранить основную базу в указанном файле

          2 - Сохранить основную базу в файле bit.dat

          3 - Сохранить базу BSTUD в указанном файле

          4 - Сохранить базу BSTUD в файле bstud.dat

          5 - Выход в основное меню

       Работа с его пунктами полностью аналогична работе с подме-

ню режима "Загрузка базы".

                    @8.7 Создание новой базы.

        Данный режим предназначен для создания дочерней базы дан-

ных. При запуске этого режима дочерняя БД создается  автоматичес-

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

необходимости сохранения дочерней БД. После нажатия любой  клави-

ши происходит выход в главное меню.

                     @8.8 Выход из программы.

        Этот пункт меню предназначен для выхода  из  информацион-

но-справочной системы в ДОС.

                @8.9 Решение контрольных примеров.

        В целях конечной отладки программы и  устранения  скрытых

ошибок было решено несколько контрольных  примеров  по  работе  с

системой во всех режимах. Была создана и  отредактирована  основ-

ная база данных. с ее помощью были  опробованы  режимы  удаления,

корректировки, создания новой БД, загрузки и сохранения  БД.  При

решении контрольных примеров ошибок в программе не обнаружено.

                           @Заключение

   В данной курсовой работе были рассмотрены  все  поставленные

задачи и обсуждены общие принципы построения информационных  сис-

тем и их реализации на языке програмирования Пролог.

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

         И.Братко   "Программирование на языке Пролог для

                     искусственного интеллекта"

         Дж.Доорс   "Пролог - язык программирования будущего"

.2


/
E
H
[1]A*.FRM*.MAC
<

Б[1]A*.FRM