Міністерство загальної та професійної освіти
Російської Федерації
Дагестанський державний технічний університет
Кафедра інформаційних систем в економіці
КУРСОВИЙ ПРОЕКТ
З дисципліни БД
На тему: "Облік товарів у фірмі з продажу аудіотехніки"
Тема курсового проекту: ДОВІДНИК "АУДІО-КІОСК"
Дата готовності проекту "" 2003р.
Студент Курбанов Ш.М. групи 3164 /
Керівник проекту / Махулова Е.М.
Захищений "" 2003р. з оцінкою
Махачкала
2003
Вимоги до програми: підібрати поля для БД: назва фільму, тип носій, тривалість, якість, ціна, код постачальника, жанр, головний артист, код фільму. Пошук по 3 полях БД,, фільтрацію по 4 полях БД, виведення списку на пристрій РС.
Короткі теоретичні коментарі до об'єкта дослідження.
Слова "відео", "аудіозал", міцно увійшли в життя сучасної людини з 70-х рр.., Відображаючи поява, на думку мистецтвознавців, нового пласта сучасної культури-відео культури.
Звичайно, поняття і терміни зі словом "відео" використовувалися набагато раніше у телебаченні, наприклад "відеосигнал", "видеоусилитель" та інші, але тоді в "відео" вкладався дещо інший зміст, ніж зараз.
Крім відеозапису (на магнітних стрічках, дисках, на відеопластінках) в техніку входить відеопоказ (на моніторах, за допомогою відеопроекторів, відеопанелей), а також отримання відеосигналу ("натурального" за допомогою відеокамер або синтезованого електронними пристроями), його перетворення і обробка при монтажі , запису та відтворення і для досягнення певних ефектів.
До теперішнього часу в світі спостерігався кількісне зростання відео, хоча дуже важко його оцінити через недостатність даних.
Инфологическая модель.
Для проектування структури БД необхідна початкова інформація про предметну область. Інформація необхідна для проектування БД мало залежить від СУБД.
Опис предметної області виконана без орієнтації на використовувані надалі програмні засоби називаються инфологической моделлю предметної області.
Инфологическая модель предметної області будується першої, після будується датологіческая і фізична моделі БД.
В БД відображається якась частина реального світу, природно, що повнота її буде залежати від цілей створюваної інформаційної системи.
Для того, щоб БД адекватно відображала предметну область, проектувальник повинен добре уявляти собі всі компоненти властиві даній предметній області і вміти відобразити їх у БД, необхідно ретельно вивчити функціонування предметної області для якої будується БД.
Инфологическая модель повинна легко сприйматися різними категоріями користувачів, бажано, щоб інфологічну модель будував фахівець даної області.
Для опису инфологической використовуються мови описового типу і мови, так і графічні засоби в даний час набувають все більшої популярності. Існує ряд засобів автоматизації проектування, для яких вихідні дані представляються у вигляді сукупності графічних схем. Графічне подання є найбільш простим для сприйняття.
При описі предметної області треба відобразити зв'язку між об'єктом і характеризують його свойствомі.
Побудова инфологической моделі.
Розглянемо отримані бази даних.
БД1 "відео" (video. Dbf)
Назва товару (nazvan _ f) - character (40)
Тип носія (tip_nosit) - character (3)
Тривалість (prodol)-character (10)
Назва постачальника (nazv_post) - character (25)
Якість (kachestvo) - character (18)
Ціна (zena) - numeric (3,0)
Код постачальника (kod_post) - numeric (3,0)
Жанр (janr) - character (15)
Головний артист (gl_artist) - character (27)
Код фільму (kod_f) - character (3)
БД2 "Тип носія" (nosit. Dbf)
Тип носія (tip_nosit) - character (3)
Назв - е н осітеля (nom) - character (15)
БД 3 "Код постачальника "(post. dbf)
Код постачальника (kod_post) - numeric (3,0)
Назва Телефон постачальника (telefon _ post) - character (20)
Адреса постачальника (adres_post) - character (15)
ДАТОЛОГІЧЕСКАЯ МОДЕЛЬ БД.
Датологіческая модель є моделлю логічного рівня і являє собою відображення логічних зв'язків між елементами даних безвідносно до їх змісту та середовищі зберігання. Ця модель будується в термінах інформаційних одиниць, допустимих в тій конкретної СУБД, в середовищі якої ми проектуємо базу даних.
Етап створення датологіческой моделі називається датологіческім проектуванням. Опис логічної структури бази даних на мові СУБД називається схемою.
ПРОГРАМИ
SET TALK OFF
SET DATE GERMAN
CLEAR ALL
SET DELETED ON
SET ESCAPE OFF
SET HELP OFF
SET BELL OFF
CLEAR MACROS
ON KEY
* DO Titul
CLOSE DATABASES
DELETE FILE video. idx
DELETE FILE nosit. idx
DELETE FILE post. idx
USE video
INDEX ON tip_nosit TO video COMPACT
USE nosit
INDEX ON tip_nosit TO nosit COMPACT
USE post
INDEX ON kod_post TO post COMPACT
USE video IN A INDEX video
USE nosit IN B INDEX nosit
USE post IN C INDEX post
SELECT A
SET RELATION TO tip_nosit INTO B
SET RELATION TO kod_post INTO C
ON KEY LABEL Ctrl + PgUp GO TOP
ON KEY LABEL Ctrl + PgDn GO BOTTOM
ON KEY LABEL Ctrl + Q DO EndProc WITH 1
DEFINE WINDOW MainWindow FROM 0,0 TO 24,79 IN SCREEN;
TITLE 'Довідник "ВІДЕО КІОСК"';
DOUBLE SHADOW FILL '-' COLOR GR + / N
DEFINE WINDOW ViewWindow FROM 0,0 TO 21,77;
IN WINDOW MainWindow;
DOUBLE CLOSE FLOAT GROW ZOOM
DEFINE WINDOW HintWindow FROM 22,0 TO 22,77 IN WINDOW MainWindow;
NONE COLOR GR + / GR
DEFINE WINDOW HelpWindow FROM 5,17 TO 16,63;
TITLE 'ДОПОМОГА' COLOR W + / G
DEFINE WINDOW PrintWindow FROM 5,8 TO 19,67;
TITLE 'Виведення на пристрій PC';
DOUBLE SHADOW COLOR GR + / GR
DEFINE WINDOW AddWindow FROM 3,13 TO 18,67;
TITLE 'Доповнення бази даних';
FLOAT SHADOW SYSTEM COLOR SCHEME 8
DEFINE WINDOW FindWindow FROM 5,13 TO 19,70;
TITLE 'Інформація про фільмі 'DOUBLE
SET MESSAGE WINDOW MainWindow
DEFINE MENU MainMenu BAR AT LINE 0 IN WINDOW MainWindow;
COLOR SCHEME 10
DEFINE PAD DataMenu OF MainMenu PROMPT 'ДАНІ';
MESSAGE 'Робота з базами даних '
DEFINE PAD SearchMenu OF MainMenu PROMPT 'ПОШУК';
MESSAGE 'Пошук даних по ключу '
DEFINE PAD FiltrMenu OF MainMenu PROMPT 'ФІЛЬТРАЦІЯ';
MESSAGE 'Фільтр перегляду даних '
DEFINE PAD QuitMenu OF MainMenu PROMPT 'ВИХІД';
MESSAGE 'Вихід з програми '
ON SELECTION PAD DataMenu OF MainMenu ACTIVATE POPUP DataPopup
ON SELECTION PAD SearchMenu OF MainMenu ACTIVATE POPUP SearchPopup
ON SELECTION PAD FiltrMenu OF MainMenu ACTIVATE POPUP FiltrPopup
ON SELECTION PAD QuitMenu OF MainMenu ACTIVATE POPUP QuitPopup
DEFINE POPUP DataPopup FROM 1,0 IN WINDOW MainWindow COLOR SCHEME 10
DEFINE BAR 1 OF DataPopup PROMPT 'Перегляд даних ';
MESSAGE 'Перегляд даних без внесення змін'
DEFINE BAR 2 OF DataPopup PROMPT 'Редактор даних ';
MESSAGE 'Перегляд даних з можливістю зміни даних'
ON SELECTION POPUP DataPopup DO BrowseData WITH BAR ()
DEFINE POPUP PrintPopup FROM 8,32;
TITLE 'Висновок даних 'IN SCREEN COLOR SCHEME 10
DEFINE BAR 1 OF PrintPopup PROMPT 'На екран ';
MESSAGE 'Висновок даних на екран '
DEFINE BAR 2 OF PrintPopup PROMPT 'У файл ';
MESSAGE 'Висновок даних в файл '
DEFINE BAR 3 OF PrintPopup PROMPT 'На принтер ';
MESSAGE 'Висновок даних на принтер '
ON SELECTION POPUP PrintPopup DO Print
DEFINE POPUP SearchPopup FROM 1,8 IN WINDOW MainWindow COLOR SCHEME 10
DEFINE BAR 1 OF SearchPopup PROMPT 'по назвою фільму ';
MESSAGE 'Пошук даних за назвою фільму'
DEFINE BAR 2 OF SearchPopup PROMPT 'по типом ';
MESSAGE 'Пошук даних по типом '
DEFINE BAR 3 OF SearchPopup PROMPT 'по коду ';
MESSAGE 'Пошук даних по коду '
ON SELECTION POPUP SearchPopup DO SearchProc
DEFINE POPUP FiltrPopup FROM 1,15 IN WINDOW MainWindow COLOR SCHEME 10
DEFINE BAR 1 OF FiltrPopup PROMPT 'по назвою фільму ';
MESSAGE 'Фільтрація даних по назві фільму'
DEFINE BAR 2 OF FiltrPopup PROMPT 'по типом ';
MESSAGE 'Фільтрація даних по типом '
DEFINE BAR 3 OF FiltrPopup PROMPT 'по коду ';
MESSAGE 'Фільтрація даних за кодом'
DEFINE BAR 4 OF FiltrPopup PROMPT 'за якістю';
MESSAGE 'Фільтрація даних щодо якості'
ON SELECTION POPUP FiltrPopup DO FiltrProc
DEFINE POPUP QuitPopup FROM 1,27 IN WINDOW MainWindow COLOR SCHEME 10
DEFINE BAR 1 OF QuitPopup PROMPT '\ <Вихід в FoxPro '
DEFINE BAR 2 OF QuitPopup PROMPT 'Вихід в Ms-Dos '
ON SELECTION POPUP QuitPopup DO EndProc WITH 2
ACTIVATE WINDOW MainWindow
ACTIVATE MENU MainMenu
DO EndProc WITH 1
PROCEDURE Titul
SET CURSOR OFF
DEFINE WINDOW TitleWindow FROM 0,0 TO 24,79 DOUBLE
ACTIVATE WINDOW TitleWindow
TEXT
ENDTEXT
Key = INKEY (20)
RELEASE WINDOW TitleWindow
RETURN
PROCEDURE PrintRec
? ''
? 'Назва фільму:', A. nazv_f
? 'Тип носія:', A. tip_nosit
? 'Назва носія:', B. nazv_nosit
? 'Тривалість:', A. prodol
? 'Якість:', A. kachestvo
? 'Ціна:', A. zena
? 'Код постачальника:', A. kod_post
? 'Назва постачальника:', C. nazv_post
? 'Адреса постачальника:', C. adres_post
? 'Телефон постачальника:', C. telef_post
? 'Жанр:', A. janr
? 'Головний артист:', A. gl_artist
? 'Код фільму:', A. kod_f
RETURN
PROCEDURE Print
SET CURSOR OFF
y = BAR ()
ACTIVATE WINDOW PrintWindow
DO CASE
CASE y = 1
SCAN
Do PrintRec
WAIT 'Будь-яка клавіша - Продовжити, Esc - ВІДМОВА 'WINDOW
IF LASTKEY () = 27
EXIT
ENDIF
ENDSCAN
CASE y = 2
WAIT 'Дані записуються у файл INFO. DAT Будь-яка клавіша - ЗАПИС, Esc - ВІДМОВА 'WINDOW
IF LASTKEY () # 27
SET PRINTER TO info. dat ADDITIVE
SET PRINTER ON
SCAN
Do PrintRec
ENDSCAN
SET PRINTER OFF
ENDIF
CASE y = 3
SET PRINTER TO LPT1
IF PRINTSTATUS ()
SET PRINTER ON
SCAN
Do PrintRec
ENDSCAN
SET PRINTER OFF
ELSE
WAIT 'Принтер НЕ готовий 'WINDOW NOWAIT
ENDIF
ENDCASE
DEACTIVATE WINDOW PrintWindow
DEACTIVATE POPUP
RETURN
PROCEDURE AddRec
PUSH KEY CLEAR
SET CURSOR ON
ACTIVATE WINDOW AddWindow
@ 1,1 TO 11,51
SCATTER MEMVAR BLANK
@ 2,2 SAY 'НАЗВА ФІЛЬМУ: 'GET m. nazv_f DEFAULT SPACE (20)
@ 3,2 SAY 'ТИП НОСІЯ: 'GET m. tip_nosit PICTURE '999 '
@ 4,2 SAY 'ТРИВАЛІСТЬ:' GET m. prodol DEFAULT SPACE (12)
@ 5,2 SAY 'ЯКІСТЬ:' GET m. kachestvo DEFAULT SPACE (18)
@ 6,2 SAY 'ЦІНА:' GET m. zena
@ 7,2 SAY 'КОД ПОСТАЧАЛЬНИКА: 'GET m. kod_post PICTURE '999 '
@ 8,2 SAY 'ЖАНР:' GET m. janr DEFAULT SPACE (15)
@ 9,2 SAY 'ГОЛОВНИЙ АРТИСТ: 'GET m. gl_artist DEFAULT SPACE (17)
@ 10,2 SAY 'КОД ФІЛЬМУ: 'GET m. kod_f PICTURE '999 '
@ 12,14 GET choice FUNCTION '* th \! Додати; \? Вихід' DEFAULT 2 SIZE 1,10,6
READ CYCLE MODAL
IF choice = 1
APPEND BLANK
GATHER MEMVAR
ENDIF
DEACTIVATE WINDOW AddWindow
ENDIF
POP KEY
RETURN
FUNCTION Refresh
SHOW GETS OFF
RETURN
FUNCTION PopShow
@ 12,3 SAY VideoArray (FocKlub) SIZE 1,36
RETURN
PROCEDURE DelRec
WAIT 'Ви дійсно хочете видалити запис? (ТАК-будь-яка клавіша, НІ-ESC)? ' WINDOW
IF LASTKEY () # 27
POP KEY
DELETE
PACK
DO BrowseData WITH 2
ENDIF
RETURN
PROCEDURE Help
PUSH KEY CLEAR
SET CURSOR OFF
ACTIVATE WINDOW HelpWindow
TEXT
^ N - доповнення бази новим записом
^ D - видалення поточного запису
^ P - виведення / друк всіх записів
--------------------------------------------
^ PgUp - перехід на початок бази
^ PgDn - перехід в кінець бази
--------------------------------------------
^ Q - вихід з вікна редагування
(Внесена інформація зберігається)
Esc - те ж, але інформація не зберігається
ENDTEXT
WAIT''
DEACTIVATE WINDOW HelpWindow
SET CURSOR ON
POP KEY
RETURN
FUNCTION Hlp
SET CURSOR OFF
@ 0,0 FILL TO 0,77 COLOR GR / GR
Hint =''
DO CASE
CASE VARREAD () = 'Nazvan_f'
Hint = 'Назва фільму '
CASE VARREAD () = 'Tip_nosit'
Hint = 'Тип носій '
CASE VARREAD () = 'Prodol'
Hint = 'Тривалість'
CASE VARREAD () = 'Kachestvo'
Hint = 'Якість'
CASE VARREAD () = 'Zena'
Hint = 'Ціна'
CASE VARREAD () = 'Kod_post'
Hint = 'Код постачальника '
CASE VARREAD () = 'Janr'
Hint = 'Жанр'
CASE VARREAD () = 'Gl_artist'
Hint = 'Головний артист '
CASE VARREAD () = 'Kod_f'
Hint = 'Код фільму '
ENDCASE
@ 0, (78-LEN (Hint)) / 2 SAY Hint
RETURN
PROCEDURE BrowseData
PARAMETER y
DO CASE
CASE BAR () = 1. OR. y = 1
TitleStr = 'БАЗА ДАНИХ '
STR1 = 'NOAPPEND NODELETE NOMODIFY'
CASE BAR () = 2. OR. y = 2
PUSH KEY
ON KEY LABEL Ctrl + N DO AddRec
ON KEY LABEL Ctrl + D DO DelRec
ON KEY LABEL Ctrl + P ACTIVATE POPUP PrintPopup
ON KEY LABEL F1 DO Help
TitleStr = 'F1 - Виклик вікна допомоги РЕДАГУВАННЯ'
STR1 =''
ENDCASE
ACTIVATE WINDOW HintWindow
GO TOP
BROWSE TITLE TitleStr;
FIELDS A. nazv_f: H = 'Назва фільму': W = Hlp (),;
A. tip_nosit: H = 'Тип носія': W = Hlp (),;
B. nazv_nosit: H = 'Назва носія': R: W = Hlp (),;
A. prodol: H = 'Тривалість': W = Hlp (),;
A. kachestvo: H = 'Якість': W = Hlp (),;
A. zena: H = 'Ціна': W = Hlp (),;
A. kod_post: H = 'Код постачальника ': W = Hlp (),;
C. nazv_post: H = 'Назва постачальника': R: W = Hlp (),;
C. adres_post: H = 'Адреса постачальника': R: W = Hlp (),;
C. telef_post: H = 'Телефон постачальника': R: W = Hlp (),;
A. janr: H = 'Жанр': W = Hlp (),;
A. gl_artist: H = 'Головний артист': W = Hlp (),;
A. kod_f: H = 'Код фільму': W = Hlp ();
WINDOW ViewWindow & STR1 COLOR GR + / N
DO CASE
CASE BAR () = 1. OR. y = 1
SET FILTER TO
CASE BAR () = 1. OR. y = 2
POP KEY
ENDCASE
DEACTIVATE WINDOW HintWindow
DEACTIVATE POPUP
RETURN
PROCEDURE SearchProc
SET CURSOR ON
y = BAR ()
str = PROMPT ()
DEFINE WINDOW SearchWindow FROM 7,20 TO 12,60;
TITLE 'Пошук' + str
ACTIVATE WINDOW SearchWindow
@ 1,1 SAY 'Вкажіть ключ: '
DO CASE
CASE y = 1
@ 1,15 GET a DEFAULT SPACE (20)
CASE y = 2
@ 1,15 GET a DEFAULT SPACE (3)
CASE y = 3
@ 1,15 GET a PICTURE '999 'DEFAULT 0
ENDCASE
@ 3,11 GET choice FUNCTION '* th \! Пошук; \? Вихід' DEFAULT 2 SIZE 1,7,4
READ CYCLE
RELEASE WINDOW SearchWindow
SET CURSOR OFF
IF choice = 1
ACTIVATE WINDOW FindWindow
IF y = 1. OR. y = 2
a = Zag (ALLTRIM (a),. f)
ENDIF
IsFind =. F.
Find =. F.
SCAN
DO CASE
CASE y = 1
Find = Zag (ALLTRIM (A. nazv_f),. F) = a
CASE y = 2
Find = A. tip_nosit = a
CASE y = 3
Find = A. kod_post = a
ENDCASE
IF Find
IsFind =. T.
? 'Назва фільму:', A. nazv_f
? 'Тип носія:', A. tip_nosit
? 'Назва носія:', B. nazv_nosit
? 'Тривалість:', A. prodol
? 'Якість:', A. kachestvo
? 'Ціна:', A. zena
? 'Код постачальника:', A. kod_post
? 'Назва постачальника:', C. nazv_post
? 'Адреса постачальника:', C. adres_post
? 'Телефон постачальника:', C. telef_post
? 'Жанр:', A. janr
? 'Головний артист:', A. gl_artist
? 'Код фільму:', A. kod_f
WAIT 'Продовжити пошук? (ТАК - будь-яка клавіща, НІ - ESC) 'WINDOW
IF LASTKEY () = 27
EXIT
ENDIF
ENDIF
ENDSCAN
IF! IsFind
WAIT 'ПОШУК НЕ ВДАЛИЙ 'WINDOW
ENDIF
DEACTIVATE WINDOW FindWindow
ENDIF
DEACTIVATE POPUP SearchPopup
RETURN
PROCEDURE FiltrProc
SET CURSOR ON
y = BAR ()
str = PROMPT ()
DEFINE WINDOW FiltrWindow FROM 7,20 TO 12,60;
TITLE 'Фільтрація' + str
ACTIVATE WINDOW FiltrWindow
@ 1,1 SAY 'Вкажіть ключ: '
DO CASE
CASE y = 1
@ 1,15 GET a DEFAULT SPACE (20)
CASE y = 2
@ 1,15 GET a DEFAULT SPACE (3)
CASE y = 3
@ 1,15 GET a PICTURE '999 'DEFAULT 0
CASE y = 4
@ 1,15 GET a DEFAULT SPACE (18)
ENDCASE
@ 3,11 GET choice FUNCTION '* th \! Фільтр; \? Вихід' DEFAULT 2 SIZE 1,6,4
READ CYCLE
DEACTIVATE WINDOW FiltrWindow
SET CURSOR OFF
IF choice = 1
DO CASE
CASE y = 1
SET FILTER TO a. nazv_f = alltrim (a)
CASE y = 2
SET FILTER TO a. tip_nosit = a
CASE y = 3
SET FILTER TO a. kod_post = a
CASE y = 4
SET FILTER TO a. kachestvo = alltrim (a)
ENDCASE
DO BrowseData WITH 1
ENDIF
RETURN
FUNCTION Zag
PARAMETER p, k
PUSH KEY clear
s = 'абвгдежзийклмнопрстуфхцчшщыьъэюя'
z = 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЬЪЭЮЯ'
IF k
REPLACE & p WITH CHRTRAN (& p, s, z)
ELSE
POP KEY
RETURN CHRTRAN (p, s, z)
ENDIF
POP KEY
RETURN
PROCEDURE EndProc
PARAMETER y
DO CASE
CASE BAR () = 1. OR. y = 1
ON KEY
SET HELP ON
SET RELATION TO
SET FILTER TO
DEACTIVATE WINDOW ALL
DEACTIVATE MENU
DEACTIVATE POPUP
CLEAR ALL
CANCEL
CASE BAR () = 2. OR. y = 2
QUIT
ENDCASE
POP KEY
CLOSE DATABASES
RETURN
Список використаної літератури
1. Четвериков В.М, Ревунков Г.І., Самохволов Е.Н. Бази і банки даних.