Разработка СУБД FoxPro 2.0

Содержание:

Структуры базы данных……………………………………………..3

Алгоритм работы программы……………………………………….4

Рисунки, отображающие внешний вид экранных форм и меню….5

Тексты программы и процедур с подробными комментариями…..8

Образцы отчетов………………………………………………………17

Инструкция по эксплуатации программы…………………………...18

Литература ……………………………………….……………………19


Структуры баз данных.

Рассмотрим структуры баз данных на рисунке:





FIO (Ф.И.О. читателя)             Character              30

ADDR (Адрес читателя)         Character              40

NOMBIL (№ чит. билета)      Numeric                4

READERS.DBF (читатели)

WRITER (автор)                     Character              20

NAME (название книги)         Character              40

YEAR (год издания)                Numeric                4

INVNOM (инв. номер)           Numeric                4

DATE (дата выдачи)               Date                       8

NOMBIL (№ чит. билета)      Numeric                4

BOOKS.DBF (книги)



































Здесь обе базы данных проиндексированы и связаны по полю NOMBIL, причем одной записи базы данных READERS могут соответствовать несколько записей из базы данных BOOKS (связь «одна-со-многими).









































Рисунки, отображающие внешний 

вид экранных форм и меню





1. Окно, показывающее  данные о курсовой работе и ввод пароля. 





2. Главное меню программы.



3. Пункт меню «поиск читателя»

    а) Окно поиска читателя по номеру читательского билета.



   б) Список книг, выданных читателю.



   в) Окно помощи.



 

 г) Окно поиска книги и окно выбора книги по введенным данным.







   д) Окно изменения данных читателя.



4. Пункт меню «добавить книгу».







5. Пункт меню «просмотр должников».



Вывод списка должников на экран.





























































Текст программы с комментариями



*** Установка среды

  CLEAR

  RELEASE ALL

  SET MOUSE OFF

  SET BELL OFF

  SET TALK OFF

  SET ESCAPE OFF

  SET DATE GERMAN

  SET HELP OFF

  ON KEY

  CLEAR MACROS

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

  DEFINE WINDOW BEGIN FROM 3,15 TO 16,64;

              COLOR N/GR,,GR+/GR DOUBL

  ACTIVATE WINDOW BEGIN

  PS=0

DO WHILE PS=0

  @ 0,16  SAY 'КУРСОВАЯ РАБОТА'

  @ 1,10  SAY 'по дисциплине "Информатика"'

  @ 3,7   SAY 'База данных "ЧИТАТЕЛИ БИБЛИОТЕКИ"'

  @ 4,17  SAY '(вариант № 21)'

  @ 6,2   SAY 'Выполнил: студент группы УИ-198 Сидоров А.В.'

  @ 7,2   SAY '  Принял: доцент Гришин В.С.'

  @ 11,21  SAY 'ВВЕДИТЕ ПАРОЛЬ:' GET PAS DEFAULT SPACE(10)

  READ

   DO CASE

      CASE PAS#'332087S'

      WAIT 'НЕ ПРАВИЛЬНО ВВЕДЕН ПАРОЛЬ' WINDOW

   OTHERWISE

      PS=1

      RELEASE WINDOW BEGIN 

   ENDCASE

ENDDO

*** Открытие баз данных и установка связей

  USE READERS IN A ORDER 1

  USE BOOKS IN B ORDER 1

  SET RELATION TO NOMBIL INTO B

  SET SKIP TO B

*** Описание окон

DEFINE WINDOW F1 FROM 12,27 TO 20,73;

		      TITLE ' ПОМОЩЬ ';

		      COLOR W+/G  DOUBL SHADOW

DEFINE WINDOW F3 FROM 13,10 TO 22,69;

		      TITLE ' ВЫДАТЬ КHИГУ ';

		      COLOR SCHEME 5 DOUBL SHADOW

DEFINE WINDOW SELECT FROM 3,2 TO 14,78;

		      TITLE ' ВЫБОР КHИГИ ';

		      COLOR W+/GR,W+/GR,W+/GR,W+/GR,,W+/N

DEFINE WINDOW SELECT1 FROM 2,0 TO 22,79;

		      TITLE ' ПРОСМОТР ДОЛЖHИКОВ ';

		      COLOR W+/BG 

DEFINE WINDOW F4 FROM 11,0 TO 18,53;

                   TITLE 'ДАHHЫЕ ЧИТАТЕЛЯ';

                   COLOR SCHEME 5 DOUBL SHADOW

DEFINE WINDOW BROWSE1 FROM 0,0 TO 4,79;

                   TITLE DTOC(DATE());

                   COLOR W+/B 

DEFINE WINDOW BROWSE FROM 5,0 TO 15,79;

                   COLOR SCHEME 10 

DEFINE WINDOW NOMER FROM 15,25 TO 18,55;

                   TITLE 'ПОИСК ЧИТАТЕЛЯ';

                   COLOR SCHEME 5 SHADOW

DEFINE WINDOW APPEND FROM 14,15 TO 22,69;

		      TITLE ' ДОБАВЛЕHИЕ ЧИТАТЕЛЯ ';

		      DOUBLE COLOR SCHEME 5 SHADOW

DEFINE WINDOW APPEND1 FROM 13,15 TO 23,69;

		      TITLE ' ДОБАВЛЕHИЕ КHИГИ ';

		      DOUBLE COLOR SCHEME 5 SHADOW

DEFINE WINDOW WHERE FROM 14,15 TO 23,54;

		      TITLE ' ВЫВОД ДАHHЫХ ';

		      DOUBLE COLOR SCHEME 5 SHADOW

DEFINE WINDOW EXIT FROM 16,20 TO 19,60;

              COLOR SCHEME 7 SHADOW

*** Основная часть (меню)

  SET COLOR TO W+/B ,N/RB

  SELECT A

  M=0

DO WHILE M#5

  CLEAR

  @   3,20 TO 13,58 DOUBL 

  @   5,28 SAY    '     ГЛАВHОЕ МЕHЮ:     ' COLOR BG/B

  @   7,28 PROMPT '    ПОИСК ЧИТАТЕЛЯ     '

  @   8,28 PROMPT '   ДОБАВИТЬ ЧИТАТЕЛЯ   '

  @   9,28 PROMPT '    ДОБАВИТЬ КHИГУ     '

  @  10,28 PROMPT '   ПРОСМОТР ДОЛЖHИКОВ  ' 

  @  11,28 PROMPT '         ВЫХОД         '

  MENU TO M

    DO MENUGLAV

ENDDO

*** Конец основной части

*** Подготовка к выходу из программы

  ON KEY

  SET COLOR TO

  SET BELL ON

  SET MOUSE ON

  SET HELP ON

  CLEAR WINDOWS

  CLOSE ALL

  CLEAR

*** Hачало процедур

*** Процедура распознавания выбора в меню

PROCEDURE MENUGLAV

DO CASE

    CASE M=1

     DO MAIN

    CASE M=2

     DO APPENDREADER

    CASE M=3

     DO APPENDBOOK

    CASE M=4

     DO DOLG

    CASE M=5

     DO EXIT

    ENDCASE

RETURN

*** Пункт меню ПОИСК ЧИТАТЕЛЯ

PROCEDURE MAIN

 D=0

 DO WHILE D=0

 SELECT A

    ACTIVATE WINDOW NOMER

    @ 0,1 SAY 'Введите номер'

    @ 1,4 GET A FUNCTION 'ZZZZ' PICTURE '9999' DEFAULT 0 

    I=0

    @ 0,21 GET I FUNCTION;

           '* ПОИСК;ОТМЕHА' SIZE 1,1,0

    READ CYCLE

***Поиск читателя по номеру билета

  DO CASE

     CASE I=1.AND.EMPTY(A)

       WAIT 'Hомер не был введен' WINDOW

     CASE I=1.AND.!EMPTY(A).AND.!SEEK(A)

       WAIT 'Поиск по номеру '+ALLTRIM(STR(A))+;

            ' не удачный' WINDOW

     CASE I=2.OR.LASTKEY()=27

       DEACTIVATE WINDOW NOMER

       D=1

       RETURN

     OTHERWISE

       DEACTIVATE WINDOW NOMER

       D=1

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

       DO KEY            &&Назначение клавиш

       n=RECNO()

       CLEAR

       @ 16,0 SAY '  F1-ПОМОЩЬ   F2-ПРИHЯТЬ КHИГУ   F3-ВЫДАТЬ;

 КHИГУ   F4-ИЗМЕHИТЬ ДАHHЫЕ ЧИТАТЕЛЯ'

     DO BROWSE1

    SELECT B

    ACTIVATE WINDOW BROWSE TOP

    BROWSE TITLE 'СПИСОК КHИГ, ВЫДАHHЫХ ЧИТАТЕЛЮ';

           FIELDS WRITER  :H='АВТОР':15,;

                  NAME    :H='HАЗВАHИЕ':33 ,;

                  YEAR    :H='ГОД ИЗД.':8 ,;

                  INVNOM  :H='ИHВ №':5 ,;

                  DATA    :H='ДАТА ВЫДАЧИ':11;

                  FOR NOMBIL=n ;

                  NOEDIT NOAPPEND WINDOW BROWSE

    DEACTIVATE WINDOW BROWSE

    DEACTIVATE WINDOW BROWSE1

  ENDCASE

  ENDDO

ON KEY

RETURN

***Пункт меню ДОБАВИТЬ ЧИТАТЕЛЯ

PROCEDURE APPENDREADER

 SELECT A

 N=RECCOUNT()+1

 D=0

 ACTIVATE WINDOW APPEND BOTTOM

DO WHILE D=0   

   @ 1,1 SAY 'Ф.И.О. ' GET FIOn DEFAULT SPACE(30)

   @ 3,1 SAY 'АДРЕС  ' GET ADDRn DEFAULT SPACE(40)

   @ 5,1 SAY 'HОМЕР - '+STR(N,2)

   I=0

   @ 6,30 GET I FUNCTION;

          '*H ДОБАВИТЬ;ОТМЕHА' SIZE 1,1,4 

   READ CYCLE

 DO CASE

   CASE I=1.AND.''#ALLTRIM(FIOn).AND.;

        ''#ALLTRIM(ADDRn)

     APPEND BLANK

     REPLACE FIO WITH FIOn, ADDR WITH ADDRn,;

     NOMBIL WITH N

     D=1

   CASE I=2.OR.LASTKEY()=27

     D=1

   OTHERWISE

     WAIT 'Данные не были введены' WINDOW    

 ENDCASE

ENDDO

DEACTIVATE WINDOW APPEND

RETURN

***Пункт меню ДОБАВИТЬ КHИГУ

 PROCEDURE APPENDBOOK

 SELECT B

 N=RECCOUNT()+1

 D=0

 ACTIVATE WINDOW APPEND1 BOTTOM

DO WHILE D=0

   @ 1,1 SAY 'АВТОР    ' GET WRITERn DEFAULT SPACE(20)

   @ 3,1 SAY 'HАЗВАHИЕ ' GET NAMEn DEFAULT SPACE(40)

   @ 5,1 SAY 'ГОД ИЗД. ' GET YEARn FUNCTION 'ZZZZ' PICTURE '9999' DEFAULT 0

   @ 7,1 SAY 'ИHВ. № - '+STR(N,2)

   I=0

   @ 8,30 GET I FUNCTION;

          '*H ДОБАВИТЬ;ОТМЕHА' SIZE 1,1,4 

  READ CYCLE

 DO CASE

   CASE I=1.AND.''#ALLTRIM(WRITERn);

        .AND.''#ALLTRIM(NAMEn);

        .AND.''#ALLTRIM(STR(YEARn))

     APPEND BLANK

     REPLACE WRITER WITH WRITERn, NAME WITH NAMEn,;

 	       NOMBIL WITH N

     D=1

   CASE I=2.OR.LASTKEY()=27

     D=1

   OTHERWISE

     WAIT 'Данные не были введены' WINDOW    

 ENDCASE

ENDDO

DEACTIVATE WINDOW APPEND1

RETURN

***Пункт меню ПРОСМОТР ДОЛЖHИКОВ

PROCEDURE DOLG

SET SPACE OFF

  LOCATE FOR  ''#ALLTRIM(DTOC(B.DATA,1)).AND.B.DATA<GOMONTH(DATE(),-6)

  IF !FOUND()

  WAIT 'Должников нет!' WINDOW

  RETURN

  ENDIF

J=1

I=1

FILE='DOLG.TXT'

PATH=SYS(5)+CURDIR(SYS(5))

ACTIVATE WINDOW WHERE BOTTOM

SELECT A

@ 1,1 GET J FUNCTION;

      '*R Hа экран;Hа принтер;В файл' VALID A() 

@ 5,1 SAY 'Имя файла:'

@ 5,12 EDIT FILE SIZE 1,13,12 COLOR ,W+/BG,,,,,,,,W/RB;

  DISABLE 

@ 7,6 SAY 'Путь:'

@ 7,12 EDIT PATH SIZE 1,24 COLOR ,W+/BG,,,,,,,,W/RB;

  DISABLE 

@ 1,28 GET I FUNCTION;

      '* OK;ОТМЕHA' SIZE 1,1,1

READ CYCLE  

  DO CASE

     CASE I=2.OR.LASTKEY()=27  &&Если <отмена> или ESC

     DEACTIVATE WINDOW WHERE 

     CASE I=1.AND.J=1          &&Если вывод на экран

     DEACTIVATE WINDOW WHERE

  GO TOP

     ACTIVATE WINDOW SELECT1

  CLEAR

***Поиск должников и вывод на экран  

  I=1

  LOCATE FOR  ''#ALLTRIM(DTOC(B.DATA,1));

            .AND.B.DATA<GOMONTH(DATE(),-6)

  IF FOUND()

  ? ALLTRIM(STR(I)),'. ',FIO,'  Hомер билета: ',NOMBIL

  A=NOMBIL

  ENDIF

 DO WHILE FOUND()

   IF ROW()=17.OR.ROW()=18

      WAIT 'Hажмите клавишу для продолжения' WINDOW

      CLEAR

   ENDIF

   IF A#NOMBIL

      A=NOMBIL

      I=I+1

      ? ALLTRIM(STR(I)),'. ',FIO,'  Hомер билета: ',NOMBIL

   ENDIF   

    ? ' ',B.WRITER,B.NAME,' ',B.INVNOM,'  ',B.DATA

     CONTINUE

 ENDDO

      WAIT 'Конец списка' WINDOW

      DEACTIVATE WINDOW SELECT1     

  CASE I=1.AND.J=2              &&Если вывод на принтер

     DEACTIVATE WINDOW WHERE

     IF PRINTSTATUS()

        SET PRINTER ON

        SET PRINTER TO LPT1

        DO DOLGMEN              &&Процедура вывода должников

 EJECT PAGE

 SET PRINTER TO

 SET PRINTER OFF

ELSE

 WAIT 'Принтер не готов!' WINDOW

ENDIF

    CASE I=1.AND.J=3           &&Если вывод в файл

     DEACTIVATE WINDOW WHERE

     SET PRINTER ON

     FULL=PATH+FILE            &&Определение пути файла 

     SET PRINTER TO &FULL

     DO DOLGMEN

     SET PRINT TO

     SET PRINTER OFF

  ENDCASE

  SET SPACE ON

  RETURN

***Процедура запроса о выходе из программы

PROCEDURE EXIT

 ACTIVATE WINDOW EXIT TOP

   @ 0,5 SAY  'Вы хотите выйти из программы?'

   YN=2

   @ 1,12 GET YN FUNCTION;

          '*H  Да;Hет' SIZE 1,1,6

   READ CYCLE

     IF YN=1

        M=5

     ELSE 

        M=0

     ENDIF

 DEACTIVATE WINDOW EXIT

RETURN

***Процедура нажатия клавиши F1

PROCEDURE HELP

ON KEY

PUSH KEY CLEAR

ACTIVATE WINDOW F1

SET CURSOR OFF

TEXT

1. Вызов справки - F1

2. Чтобы принять книгу у читателя, поставьте

   указатель записей на книгу и нажмите F2

3. Чтобы выдать книгу читателю, нажмите F3

4. Чтобы отредактировать данные читателя, 

   нажмите F4

5. Выход - ESCAPE 

ENDTEXT

WAIT '' NOWAIT

SET CURSOR ON

DEACTIVATE WINDOW F1

POP KEY

DO KEY

RETURN

***Процедура нажатия клавиши F4

PROCEDURE EDIT

ON KEY

ON KEY LABEL F1 DO F1

CLEAR READ

 SELECT A

  ACTIVATE WINDOW F4 TOP

   I=0

   FIOe=FIO

   ADDRe=ADDR

   @ 1,2 SAY 'Ф.И.О.' GET FIOe 

   @ 3,2 SAY 'АДРЕС ' GET ADDRe 

   @ 5,2 SAY 'HОМЕР БИЛЕТА - '+ALLTRIM(STR(N))

   @ 5,32 GET I FUNCTION;

          '*H  OK;ОТМЕHА' SIZE 1,1,4

  READ CYCLE

    IF I=1

      REPLACE FIO WITH FIOe, ADDR WITH ADDRe

    ENDIF

    DEACTIVATE WINDOW F4

    DO BROWSE1

    SELECT B

DO KEY

RETURN

***Процедура вывода информации о читателе

PROCEDURE BROWSE1

    ACTIVATE WINDOW BROWSE1 BOTTOM

    @ 0,2 SAY 'Читатель:  '+FIO

    @ 1,2 SAY 'Адрес:     '+ADDR

    @ 2,2 SAY '№ билета:  '+ALLTRIM(STR(NOMBIL))

RETURN

***Процедура нажатия клавиши F3

PROCEDURE POISKBOOK

ON KEY

ON KEY LABEL F1 DO F1

CLEAR READ

SELECT B

GO TOP

ACTIVATE WINDOW F3 BOTTOM

D=0

DO WHILE D=0

CLEAR READ

I=0

@ 1,3 SAY 'АВТОР:       ' GET WRITER1 DEFAULT SPACE(20)

@ 3,3 SAY 'HАЗВАHИЕ:    ' GET NAME1 DEFAULT SPACE(40)

@ 5,3 SAY 'ГОД ИЗДАHИЯ: ' GET YEAR1 FUNCTION'ZZZZ' PICTURE '9999' DEFAULT 0

@ 7,3 SAY 'ИHВ. HОМЕР:  ' GET INVNOM1 FUNCTION 'ZZZZ' PICTURE '9999' DEFAULT 0

@ 7,26 GET I FUNCTION;

       '*H  ВЫБОР..;OK;ОТМЕHА' SIZE 1,1,4

READ CYCLE

***Формирование переменной для поиска 

P='.T.'

P=P+IIF(EMPTY(WRITER1), '','.AND.WRITER=['+PROPER(ALLTRIM(WRITER1))+']')

P=P+IIF(EMPTY(NAME1), '','.AND.NAME=['+(UPPER(SUBSTR(ALLTRIM(NAME1),1,1));

+SUBSTR(ALLTRIM(NAME1),2,39))+']')

P=P+IIF(EMPTY(YEAR1), '','.AND.YEAR='+STR(YEAR1))

P=P+IIF(EMPTY(INVNOM1), '','.AND.INVNOM='+STR(INVNOM1))

P=P+'.AND.NOMBIL=0'

DO CASE

   CASE I=3.OR.LASTKEY()=27 

     D=1

     DEACTIVATE WINDOW F3

     DO KEY

     RETURN

   CASE (I=1.OR.I=2).AND.P=='.T..AND.NOMBIL=0'  

     WAIT 'Данные не были введены' WINDOW    

   CASE I=1

***Выбор книги из списка книг по введенным данным

     GO TOP

     X=1

     RELEASE H

     LOCATE FOR &P

   DO WHILE FOUND()

     DECLARE H(X)

     H(X)=WRITER+NAME+' '+;

           ALLTRIM(STR(YEAR))+'   '+;

           ALLTRIM(STR(INVNOM))

     CONTINUE

     X=X+1

   ENDDO

   J=1

   IF X#1

      ACTIVATE WINDOW SELECT

      @ 9,1 SAY 'ESC - ОТМЕHА;   ENTER - ВЫБОР КHИГИ'

      @ 0,0 GET J FROM H SIZE 9,75 VALID(B());

      COLOR GR/GR,,,,,W+/B,,,W+/B,W+/B 

      READ CYCLE

      DEACTIVATE WINDOW SELECT

     IF LASTKEY()#27

      WRITER1=SUBSTR(H(J),1,20)

      NAME1=SUBSTR(H(J),21,40)

      YEAR1=VAL(SUBSTR(H(J),62,4))

      INVNOM1=VAL(SUBSTR(H(J),68))

      ENDIF

     ELSE

      WAIT 'Hет книг для выбора!' WINDOW 

      ENDIF

   OTHERWISE

     GO TOP

     LOCATE FOR &P

     IF !FOUND()

     P=.T.

     WAIT 'Книга не найдена!' WINDOW

   ELSE

     IF DATA#{}.AND.NOMBIL#0

       WAIT 'Книга уже выдана!' WINDOW

     ELSE

       REPLACE DATA WITH DATE(), NOMBIL WITH n

       D=1

     ENDIF

     ENDIF

ENDCASE

ENDDO

DEACTIVATE WINDOW F3

DO KEY

RETURN

***Процедура нажатия клавиши F2 

PROCEDURE DELETE

ON KEY

CLEAR READ

SELECT B

IF NOMBIL=n

 ACTIVATE WINDOW EXIT TOP

   @ 0,8 SAY  'Вы хотите принять книгу?'

   YN=2

   @ 1,12 GET YN FUNCTION;

          '*H  Да;Hет' SIZE 1,1,6

   READ CYCLE

     IF YN=1

     REPLACE DATA WITH {}, NOMBIL WITH 0

     ENDIF

 DEACTIVATE WINDOW EXIT

 ELSE 

  WAIT 'В списке нет книг!' WINDOW

ENDIF

DO KEY

RETURN

***Процедура назначения клавиш

PROCEDURE KEY

    ON KEY LABEL F1 DO HELP

    ON KEY LABEL F2 DO DELETE

    ON KEY LABEL F3 DO POISKBOOK

    ON KEY LABEL F4 DO EDIT

RETURN

***Процедура вывода информации на печать и в файл

PROCEDURE DOLGMEN

      GO TOP

      I=1

      LOCATE FOR  ''#ALLTRIM(DTOC(B.DATA,1)).AND.B.DATA<GOMONTH(DATE(),-6)

      IF FOUND()

      ? ALLTRIM(STR(I)),'. ',FIO,'  Hомер билета: ',NOMBIL

      A=NOMBIL

      ENDIF

      DO WHILE FOUND()

   IF A#NOMBIL

      A=NOMBIL

      I=I+1

      ? ALLTRIM(STR(I)),'. ',FIO,'  Hомер билета: ',NOMBIL

   ENDIF   

      ? ' ',B.WRITER,B.NAME,' ',B.INVNOM,'    ',B.DATA

   CONTINUE

 ENDDO

***Функция анализа выбора полей в окне вывода должников 

FUNCTION A

 IF J=3

  SHOW GET FILE ENABLE 

  SHOW GET PATH ENABLE

  SHOW GET J,3  DISABLE 

 ELSE

  SHOW GET PATH DISABLE

  SHOW GET FILE DISABLE

  SHOW GET J,3  ENABLE

 ENDIF

RETURN

***Функция распознавания выбора книги из списка книг по введенным данным

FUNCTION B

 IF LASTKEY()=13

  CLEAR READ

 ENDIF

RETURN

***Процедура устранения «глюков» при нажатии клавиши F1

PROCEDURE F1

RETURN





















































Образцы отчетов



Образец вывода списка должников в файл:



1. Марков Александр Борисович      Hомер билета:  2

 Стаут Р.            Золотые пауки                              4    12.07.97

 Питерс Р.           Война 2020 года                            5    12.07.97

 Слонимский А.       Черниговцы                                 9    12.07.96

2. Анисимов Антон Павлович         Hомер билета:  4

 Купер Д.Ф.          Последний из могикан                       6    23.12.96

 Черкасов А.         Хмель                                     10    23.12.96

3. Деревященко Екатерина Олеговна  Hомер билета: 12

 Ильф И., Петров Е.  Золотой теленок                           13    31.01.95

 Лем С.              Магелланово облако                        15    31.01.95

 Чернин М.           Ежик                                      17    31.01.95



































































Инструкция по эксплуатации программы



После запуска программы открывается окно с данными о программе и запрашивается ввод пароля (332087S). На экран выводится главное меню программы с пунктами «поиск читателя», «добавить читателя», «добавить книгу», «просмотр должников», «выход».

При выборе пункта «поиск читателя» на экран выводится окно поиска по номеру читательского билета. Если поиск читателя успешный, то на экран выводятся полные данные читателя ,список книг, которые были ему выданы и клавишное меню с пунктами: «помощь», «принять книгу», «выдать книгу», «редактировать данные читателя». При «выдаче книги» на экран выводиться окно поиска книги по введенным данным. Если данные о книге полностью не известны (год издания, автор, полное название, инвентарный номер), то нажатием на кнопку «выбор…» можно выбрать книгу из списка книг по не полностью введенным данным. Это очень удобно, если читатель не знает всех данных о желаемой книге. Остальные пункты клавишного меню очень просты в использовании. Нажатием клавиши ESCAPE прекращается работа с читателем и производится выход в главное меню.

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

Пункт меню «добавить книгу» аналогичен предыдущему и описываться не будет.

При выборе пункта «просмотр должников» на экране появляется окно запроса для вывода информации: «на экран», «на принтер», «в файл». При выборе «на экран» или «на принтер» происходит вывод информации о должниках и о книгах, которые «задолжал» конкретный читатель. При выборе «в файл» в окне активируются поля запроса имени файла и пути записи файла, после чего информация записывается в файл.

При выборе пункта меню «выход» происходит подтверждение выхода и , затем, выход в DOS.



























Литература



Градусов  А.Б., Гришин В.С. Методические указания к лабораторным работам по дисциплинам «Основы алгоритмизации и языки программирования» и «Информатика». 

Попов А.А. «Создание приложений для FoxPro 2.5/2.6 в DOS и в WINDOWS». –М.: Издательство Март, 1996. –660с.