Зміст: p>
1. Структури бази даних ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 3 p>
2. Алгоритм роботи програми ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .4 p>
3. Малюнки, що відображають зовнішній вигляд екранних форм і меню ... .5 p>
4. Тексти програми і процедур з докладними коментарями ... .. 8 p>
5. Зразки звітів ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 17 p>
6. Посібник користувача програми ... ... ... ... ... ... ... ... ... ... ... 18 p>
7. Література ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... ... ... ... ... ... ... ... ... 19 p>
Структури баз даних. P>
Розглянемо структури баз даних на малюнку : p>
Тут обидві бази даних проіндексовані і пов'язані по полю NOMBIL, причомуодного запису бази даних READERS можуть відповідати кілька записів збази даних BOOKS (зв'язок «один-со-багатьма). p>
Малюнки, що відображають зовнішній вигляд екранних форм і меню p>
1. Вікно, що показує дані про курсову роботу і введення пароля. P>
2. Головне меню програми. P>
3. Пункт меню «пошук читача» а) Вікно пошуку читача за номером читацького квитка. P>
б) Перелік книг, виданих читачеві. P>
в) Вікно допомоги. P>
г) Вікно пошуку книги і вікно вибору книги по введених даних. p>
д) Вікно зміни даних читача. p>
4. Пункт меню «додати книгу». P>
5. Пункт меню «перегляд боржників». P>
6. Виведення списку боржників на екран. P>
Текст програми з коментарями p>
*** Установка середовища
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; p>
COLOR N/GR,, GR +/GR DOUBL
ACTIVATE WINDOW BEGIN < br> 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 p>
DO CASE p>
CASE PAS # '332087S'
WAIT 'НЕ ПРАВИЛЬНО ВВЕДЕНО ПАРОЛЬ' WINDOW p>
OTHERWISE p>
PS = 1 p>
RELEASE WINDOW BEGIN p>
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; p>
TITLE 'ДОПОМОГА'; p>
COLOR W +/G DOUBL SHADOW
DEFINE WINDOW F3 FROM 13,10 TO 22,69; p>
TITLE 'НАДАТИ КHІГУ'; p>
COLOR SCHEME 5 DOUBL SHADOW
DEFINE WINDOW SELECT FROM 3,2 TO 14,78; p>
TITLE 'ВИБІР КHІГІ'; p>
COLOR W +/GR, W +/GR, W +/GR, W +/GR,, W +/N
DEFINE WINDOW SELECT1 FROM 2,0 TO 22,79; p>
TITLE 'ПЕРЕГЛЯД ДОЛЖHІКОВ'; p>
COLOR W +/BG
DEFINE WINDOW F4 FROM 11,0 TO 18,53; p>
TITLE 'ДАHHИЕ ЧИТАЧА'; p>
COLOR SCHEME 5 DOUBL SHADOW
DEFINE WINDOW BROWSE1 FROM 0,0 TO 4,79; p>
TITLE DTOC (DATE ()); p>
COLOR W +/B
DEFINE WINDOW BROWSE FROM 5,0 TO 15,79; p>
COLOR SCHEME 10
DEFINE WINDOW NOMER FROM 15,25 TO 18,55; p>
TITLE 'ПОШУК ЧИТАЧА'; p>
COLOR SCHEME 5 SHADOW
DEFINE WINDOW APPEND FROM 14,15 TO 22,69; p>
TITLE 'ДОБАВЛЕHІЕ ЧИТАЧА'; p>
DOUBLE COLOR SCHEME 5 SHADOW
DEFINE WINDOW APPEND1 FROM 13,15 TO 23,69; p>
TITLE 'ДОБАВЛЕHІЕ КHІГІ'; p>
DOUBLE COLOR SCHEME 5 SHADOW
DEFINE WINDOW WHERE FROM 14,15 TO 23,54; p>
TITLE 'ВИСНОВОК ДАHHИХ'; p>
DOUBLE COLOR SCHEME 5 SHADOW
DEFINE WINDOW EXIT FROM 16,20 TO 19,60; p>
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 p>
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 p>
CASE M = 1 p>
DO MAIN p>
CASE M = 2 p>
DO APPENDREADER p>
CASE M = 3 p>
DO APPENDBOOK p>
CASE M = 4 p>
DO DOLG p>
CASE M = 5 p>
DO EXIT p>
ENDCASE
RETURN
*** Пункт меню ПОШУК ЧИТАЧА
PROCEDURE MAIN
D = 0
DO WHILE D = 0
SELECT A p>
ACTIVATE WINDOW NOMER p>
@ 0,1 SAY 'Введіть номер' p >
@ 1,4 GET A FUNCTION 'ZZZZ' PICTURE '9999 'DEFAULT 0 p>
I = 0 p>
@ 0,21 GET I FUNCTION; p> < p> '* ПОШУК; ОТМЕHА' SIZE 1,1,0 p>
READ CYCLE
*** Пошук читача за номером квитка
DO CASE p>
CASE I = 1.AND.EMPTY (A) p>
WAIT 'Hомер не був введений' WINDOW p>
CASE I = 1.AND.! EMPTY (A). AND.! SEEK (A) p>
WAIT 'Пошук за номером' + ALLTRIM (STR (A ))+; p>
'не вдалий' WINDOW p>
CASE I = 2.OR.LASTKEY () = 27 p>
DEACTIVATE WINDOW NOMER p>
D = 1 p >
RETURN p>
OTHERWISE p>
DEACTIVATE WINDOW NOMER p>
D = 1 p>
*** При вдалому пошуку читача відкривається BROWSE - вікно p>
DO KEY & & Призначення клавіш n = RECNO () p>
CLEAR p>
@ 16,0 SAY 'F1-ДОПОМОГА F2-ПРІHЯТЬ КHІГУ F3-НАДАТИ; < br> КHІГУ F4-ІЗМЕHІТЬ ДАHHИЕ ЧИТАЧА ' p>
DO BROWSE1 p>
SELECT B p>
ACTIVATE WINDOW BROWSE TOP p>
BROWSE TITLE' СПИСОК КHІГ , ВИДАHHИХ ЧИТАЧА '; p>
FIELDS WRITER: H =' АВТОР ': 15,; p>
NAME: H =' HАЗВАHІЕ ': 33,; p>
YEAR : H = 'РІК ИЗД.': 8,; p>
INVNOM: H = 'ІHВ №': 5,; p>
DATA: H = 'ДАТА ВИДАЧІ': 11;
FOR NOMBIL = n; p>
NOEDIT NOAPPEND WINDOW BROWSE p>
DEACTIVATE WINDOW BROWSE p>
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 p>
@ 1,1 SAY 'П.І.Б. 'GET FIOn DEFAULT SPACE (30) p>
@ 3,1 SAY' АДРЕСА 'GET ADDRn DEFAULT SPACE (40) p>
@ 5,1 SAY' HОМЕР - '+ STR (N , 2) p>
I = 0 p>
@ 6,30 GET I FUNCTION; p>
'* H ДОДАТИ; ОТМЕHА' SIZE 1,1,4 p>
READ CYCLE
DO CASE p>
CASE I = 1.AND.''# ALLTRIM (FIOn). AND.; p>
''# ALLTRIM (ADDRn ) p>
APPEND BLANK p>
REPLACE FIO WITH FIOn, ADDR WITH ADDRn,; p>
NOMBIL WITH N p>
D = 1 p >
CASE I = 2.OR.LASTKEY () = 27 p>
D = 1 p>
OTHERWISE p>
WAIT 'Дані не були введені' WINDOW < br> ENDCASE
ENDDO
DEACTIVATE WINDOW APPEND
RETURN
*** Пункт меню ДОДАТИ КHІГУ
PROCEDURE APPENDBOOK
SELECT B
N = RECCOUNT () +1
D = 0
ACTIVATE WINDOW APPEND1 BOTTOM
DO WHILE D = 0 p>
@ 1,1 SAY 'АВТОР' GET WRITERn DEFAULT SPACE (20) p>
@ 3,1 SAY 'HАЗВАHІЕ' GET NAMEn DEFAULT SPACE (40)
@ 5,1 SAY 'РІК ИЗД. 'GET YEARn FUNCTION' ZZZZ 'PICTURE '9999' DEFAULT 0 p>
@ 7,1 SAY 'ІHВ. № - '+ STR (N, 2) p>
I = 0 p>
@ 8,30 GET I FUNCTION; p>
' * H ДОДАТИ; ОТМЕHА 'SIZE 1,1,4
READ CYCLE
DO CASE p>
CASE I = 1.AND.''# ALLTRIM (WRITERn); p>
. AND.''# ALLTRIM (NAMEn); p>
. AND.''# ALLTRIM (STR (YEARn)) p>
APPEND BLANK p>
REPLACE WRITER WITH WRITERn, NAME WITH NAMEn, ; p>
NOMBIL WITH N p>
D = 1 p>
CASE I = 2.OR.LASTKEY () = 27 p>
D = 1 p>
OTHERWISE p>
WAIT 'Дані не були введені' WINDOW
ENDCASE
ENDDO
DEACTIVATE WINDOW APPEND1
RETURN
*** Пункт меню ПЕРЕГЛЯД ДОЛЖHІКОВ
PROCEDURE DOLG
SET SPACE OFF
LOCATE FOR''# ALLTRIM (DTOC (B. DATA, 1)). AND.B.DATA p>