數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計(jì)報(bào)告圖書館管理系統(tǒng)_第1頁
數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計(jì)報(bào)告圖書館管理系統(tǒng)_第2頁
數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計(jì)報(bào)告圖書館管理系統(tǒng)_第3頁
數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計(jì)報(bào)告圖書館管理系統(tǒng)_第4頁
數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計(jì)報(bào)告圖書館管理系統(tǒng)_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、河南理工大學(xué)河南理工大學(xué)萬方科技學(xué)院課程設(shè)計(jì)報(bào)告萬方科技學(xué)院課程設(shè)計(jì)報(bào)告2010 2011 學(xué)年 第 一 學(xué)期課程名稱 數(shù)據(jù)庫系統(tǒng)原理 設(shè)計(jì)題目 圖書館管理系統(tǒng) 學(xué)生姓名 學(xué) 號(hào) 專業(yè)班級(jí) 08 計(jì)算機(jī)一班 指導(dǎo)教師 2011 年 01 月 8 日目目 錄錄摘要1第一章 需求分析.11.11.1 visualfoxprovisualfoxpro 簡介簡介11 1. .2 2 系系統(tǒng)統(tǒng)要要求求.1第二章 概念結(jié)構(gòu)設(shè)計(jì).22.1 圖書管理數(shù)據(jù)流圖圖書管理數(shù)據(jù)流圖22.2 由數(shù)據(jù)流圖抽象出由數(shù)據(jù)流圖抽象出 e-r 圖圖2第三章 邏輯結(jié)構(gòu)設(shè)計(jì).33.13.1 數(shù)據(jù)庫的設(shè)計(jì)數(shù)據(jù)庫的設(shè)計(jì)33.23.2 數(shù)

2、據(jù)庫表的設(shè)計(jì)數(shù)據(jù)庫表的設(shè)計(jì)3第四章 系統(tǒng)功能實(shí)現(xiàn).54.1 身份驗(yàn)證模塊身份驗(yàn)證模塊.64.2 系統(tǒng)界面模塊系統(tǒng)界面模塊.94.3 信息打印模塊信息打印模塊144.4 系統(tǒng)維護(hù)模塊系統(tǒng)維護(hù)模塊..1 進(jìn)入系統(tǒng)維護(hù)功能界面的設(shè)計(jì)進(jìn)入系統(tǒng)維護(hù)功能界面的設(shè)計(jì)154.4.2 典藏圖書管理界面的設(shè)計(jì)典藏圖書管理界面的設(shè)計(jì).164.4.3 讀者信息管理界面的設(shè)計(jì)讀者信息管理界面的設(shè)計(jì).184.4.4 讀者種類管理界面的設(shè)計(jì)讀者種類管理界面的設(shè)計(jì).194.4.5 圖書征訂界面的設(shè)計(jì)圖書征訂界面的設(shè)計(jì).194.4.6 圖書借閱管理界面的設(shè)計(jì)圖書借閱管理界面的設(shè)計(jì).204.5 密碼維護(hù)模塊密

3、碼維護(hù)模塊.294.6 系統(tǒng)信息模塊.304.74.7 編寫主程序編寫主程序314.84.8 系統(tǒng)連編系統(tǒng)連編31第五章 設(shè)計(jì)總結(jié)32參考文獻(xiàn).32摘摘要要系統(tǒng)采用 visual foxpro6.0 進(jìn)行開發(fā),具體功能包括:權(quán)限設(shè)置、身份驗(yàn)證、圖書信息查詢、讀者信息查詢、密碼修改、讀者信息管理、典藏圖書管理、圖書借閱管理、征訂圖書管理、信息打印。論文從需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)功能實(shí)現(xiàn)等方面對(duì)系統(tǒng)的開發(fā)及實(shí)現(xiàn)過程進(jìn)行了詳細(xì)的闡述。第一章第一章 需求分析需求分析1.11.1 visualfoxprovisualfoxpro 簡介簡介visual foxpro 6.0(簡稱 vfp

4、) 是由 microsoft 公司推出的。vfp 可以簡化數(shù)據(jù)管理,而且使應(yīng)用程序的開發(fā)流程更為合理。它使組織數(shù)據(jù)、定義數(shù)據(jù)庫規(guī)則和建立應(yīng)用程序等工作變得簡單易行。利用可視化的設(shè)計(jì)工具和向?qū)?,可以快速?chuàng)建表單、查詢和報(bào)表。在 vfp 中,可以使用數(shù)據(jù)庫組織和建立表和視圖間的關(guān)系,在使用數(shù)據(jù)庫時(shí),你可以在表一級(jí)進(jìn)行功能擴(kuò)展,如創(chuàng)建字段級(jí)規(guī)則、設(shè)置默認(rèn)字段值和觸發(fā)器等。vfp 提供了真正無模式操作,能夠輕松的進(jìn)行對(duì)多個(gè)表單的自動(dòng)協(xié)調(diào),而且很容易的運(yùn)行一個(gè)表單的多個(gè)實(shí)例。還有提供的豐富有事件處理機(jī)制,給用戶提供一個(gè)更豐富的交互環(huán)境。利用表單,可以讓用戶在熟悉的環(huán)境下查看數(shù)據(jù)或?qū)?shù)據(jù)輸入數(shù)據(jù)庫。但表單

5、提供的遠(yuǎn)不止一個(gè)界面:它還提供豐富的對(duì)象集,這些對(duì)象能響應(yīng)用戶(或系統(tǒng))事件,這樣就能使用戶盡可能方便和直觀的完成信息管理工作。v fp 提供了一個(gè)功能強(qiáng)大的表單設(shè)計(jì)器,使得表單的設(shè)計(jì)變得又快又容易。表單和表單集是擁有自己的屬性、事件和方法程序的對(duì)象,在表單設(shè)計(jì)器中可以設(shè)置這些屬性、事件和方法程序。1 1. .2 2 系系統(tǒng)統(tǒng)要要求求本系統(tǒng)是采用visual foxpro6.0 開發(fā)的,設(shè)計(jì)的是圖書管理系統(tǒng)。系統(tǒng)滿足以下幾點(diǎn)要求:(1)讀者可隨時(shí)查詢書庫中現(xiàn)有書籍的種類、數(shù)量與存放位置以及圖書的信息。(2)讀者可以隨時(shí)查詢讀者信息,修改登錄密碼。以及打印各種表單信息。(3)管理員可隨時(shí)查詢書籍

6、借閱情況。包括借書人單位、姓名、借書證號(hào)、借書日期和還書日期。(4)管理員可以查閱修改讀者信息及資料。(5)管理員可以查閱修改典藏圖書信息。(6)管理員可以管理征訂圖書信息。第二章第二章 概念結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)設(shè)計(jì)2.1 圖書管理數(shù)據(jù)流圖圖書管理數(shù)據(jù)流圖(1)第一層數(shù)據(jù)流圖:借閱信息出版社信息圖書信息讀者信息管理員圖書管理數(shù)據(jù)庫(2)第二層數(shù)據(jù)流圖:借還書查詢結(jié)果信息查詢信息新出版社信息新圖書信息新讀者信息管理員更新讀者信息更新圖書信息更新出版社信息讀者信息表圖書信息表出版社信息表借閱信息表查詢2.2 圖書管理圖書管理 e-r 圖圖由數(shù)據(jù)流圖抽象出圖書管理系統(tǒng)的 e-r 圖如下所示:第三章第三章

7、 邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)3.13.1 數(shù)據(jù)庫的設(shè)計(jì)數(shù)據(jù)庫的設(shè)計(jì)數(shù)據(jù)庫是一種工作環(huán)境,它存儲(chǔ)了一個(gè)“表”的集合,在表之間可以建立關(guān)系,對(duì)數(shù)據(jù)字段可以設(shè)置屬性和觸發(fā)規(guī)則,從而保證表之間數(shù)據(jù)的完整性。本系統(tǒng)要實(shí)現(xiàn)圖書資料和讀者資料的管理 , 所以創(chuàng)建 的圖書管理數(shù)據(jù)庫中應(yīng)包含“讀者信息”表(readerdata.dbf)、“圖書信息 ”表(storebibli.dbf)、“讀者類型”表(readertype.dbf)、“圖書借閱記錄 ”表(lenddata.dbf)和“征訂新書(rebookdata.dbf)”表。3.23.2 數(shù)據(jù)庫表的設(shè)計(jì)數(shù)據(jù)庫表的設(shè)計(jì)本系統(tǒng)中要用到的表的字段的屬性設(shè)置以及輸入

8、的數(shù)據(jù)分別如下:表3-1 “readerdata.dbf”表3-2“storebibli.dbf”表3-3“readertype.dbf“表3-4“rebookdata.dbf“并利用以上表建立視圖“讀者借閱記錄”和“讀者”如下“第四章第四章 系統(tǒng)功能實(shí)現(xiàn)系統(tǒng)功能實(shí)現(xiàn)系統(tǒng)功能結(jié)構(gòu)圖如下圖所示:系統(tǒng)功能結(jié)構(gòu)圖如下圖所示: 4.1 身份驗(yàn)證模塊身份驗(yàn)證模塊身份驗(yàn)證模塊對(duì)使用者的訪問權(quán)限進(jìn)行檢查,登錄用戶的身份信息被存放在數(shù)據(jù)庫的 readerdata.daf 中,當(dāng)用戶在表單中輸入編號(hào)和密碼時(shí),將和readerdata.dbf 中的信息進(jìn)行比較,只有信息完全吻合的用戶才有權(quán)使用本系統(tǒng)。1.表單界面

9、的設(shè)計(jì)(1)打開項(xiàng)目管理器,選擇文檔選項(xiàng)卡,選擇表單選項(xiàng),然后單擊新建按鈕創(chuàng)建新的表單“身份驗(yàn)證.scx”,在彈出的對(duì)話框中單擊新建按鈕,打開表單設(shè)計(jì)器窗口進(jìn)行表單設(shè)計(jì)。(2)將“readerdata.dbf”數(shù)據(jù)表添加到該表單的數(shù)據(jù)環(huán)境中。在表單中添加 2個(gè)文本框、3 個(gè)標(biāo)簽和 2 個(gè)按鈕、1 個(gè)容器、1 個(gè)計(jì)時(shí)器并對(duì)其屬性進(jìn)行設(shè)置如下:控件表單屬性取值身份驗(yàn)證打印信息查詢修改密碼圖書信息讀者信息圖書信息讀者借閱征訂信息讀者類型系統(tǒng)維護(hù)讀者信息管理圖書管理系統(tǒng)圖書管理借閱信息管理征訂信息管理退出form1captionautocenterborderstyleshowwindowcontro

10、lboxwindowstate身份驗(yàn)證.t._真2-固定對(duì)話框2-作為頂層表單.f.-假1-模式label1caption歡迎使用圖書館管理系統(tǒng)label2caption編號(hào)label3caption密碼command1caption登錄timer1interval100command2caption退出text1nametxtnametext2namepasswordtxtpassword*2.添加響應(yīng)代碼(1)“確定”按鈕控件的 click 事件:set exact onnlogtimes=nlogtimes+1if nlogtimesnmaxlogtimescstr=你已超過允許的最多登

11、錄次數(shù),登錄對(duì)話框?qū)㈥P(guān)閉messagebox(cstr,16,用戶登錄驗(yàn)證)thisform.releaseelsecname=alltrim(thisform.txtname.value)cpassword=alltrim(thisform.txtpassword.value)locate for alltrim(編號(hào))=cnameif not found()messagebox(用戶名輸入錯(cuò)誤!,16,用戶登錄驗(yàn)證)thisform.txtname.selstart=0thisform.txtname.sellength=len(cname)thisform.txtname.setfocu

12、sreturnendifif alltrim(密碼)=cpasswordmessagebox(登錄成功!,64,用戶登錄驗(yàn)證)thisform.releasecapp_currentuser=cnamecapp_currentpwd=cpasswordcapp_currentpop=權(quán)限lapp_logon=.t.elsemessagebox(密碼輸入錯(cuò)誤!,16,用戶登錄驗(yàn)證)thisform.txtpassword.value=thisform.txtpassword.setfocusendifendif(2)退出按鈕的 click 事件:nr=messagebox(你選擇了退出登錄,是否

13、退出?,68,用戶登錄)if nr=6thisform.releaseendif(3)timer1 的 timer 事件: if thisform.label1.left-8thisform.label1.left=thisform.widthelsethisform.label1.left=thisform.label1.left-3endif(4)form1 的 load 事件:public nmaxlogtimesnmaxlogtimes=3public nlogtimesnlogtimes=0(5)form1 的 unload 事件:release nmaxlogtimes,nlogt

14、imesclear events4.2 系統(tǒng)界面模塊系統(tǒng)界面模塊系統(tǒng)界面模塊是用戶調(diào)用系統(tǒng)各種功能的主界面,是用戶與該系統(tǒng)的一個(gè)接口。1.表單界面的設(shè)計(jì)(1)打開項(xiàng)目管理器,選擇文檔選項(xiàng)卡,選擇表單選項(xiàng),然后單擊新建按鈕創(chuàng)建新的表單“系統(tǒng)界面.scx”,在彈出的對(duì)話框中單擊新建按鈕,打開表單設(shè)計(jì)器窗口進(jìn)行表單設(shè)計(jì)。(2)將“storebibli.dbf”數(shù)據(jù)表、 “讀者借閱記錄”視圖、 “讀者”視圖添加到該表單的數(shù)據(jù)環(huán)境中。在表單中添加 1 個(gè) shockwave flash object、1 個(gè)標(biāo)簽、1 個(gè)圖像、1 個(gè)命令按鈕組、1 個(gè)計(jì)時(shí)器并對(duì)其屬性進(jìn)行設(shè)置如下: 控件屬性取值form1c

15、aption圖書管理系統(tǒng)timer1intervalheightwidth100061229label1用來顯示當(dāng)前系統(tǒng)時(shí)間activexnamevisiblemovie1 用來播放音樂.f.commandgroup1buttoncount6command1captionheightwidth信息查詢6060command2captionheightwidth修改密碼6060command3captionheightwidth打印6060command4captionheightwidth系統(tǒng)維護(hù)6060command5captionheightwidth關(guān)于6060command6capti

16、onheightwidth退出6060image1picturepageframe1pagecountvisible2.f.page1caption圖書查詢label1caption請(qǐng)選擇查詢內(nèi)容combo1rowsourcerowsourcetypestorebibli8-結(jié)構(gòu)command1caption查詢command2caption刷新command3caption退出grid1readonlyrecordmarkrowsource.t.t.storebiblipage2caption讀者查詢label1caption請(qǐng)選擇查詢內(nèi)容combo1rowsourcerowsourcety

17、pe“讀者”視圖8-結(jié)構(gòu)command1caption查詢command2caption刷新command3caption退出grid1readonlyrecordmarkrowsource.t.t.“讀者借閱記錄”視圖2.添加響應(yīng)代碼(1)form1 的 init 事件:set bell onset bell to loopymusic.wav,0?chr(7) &使主表單播放音樂 loopymusic.wav(2)commandgroup1 中:command1 按鈕的 click 事件:thisform.pageframe1.visible=.t.command2 按鈕的 cli

18、ck 事件:do form 修改密碼command3 按鈕的 click 事件:do form 打印表單command4 按鈕的 click 事件:if capp_currentpop=mand4.enabled=.f.elsedo form 系統(tǒng)維護(hù)endifcommand5 按鈕的 click 事件代碼:do form 關(guān)于command6 按鈕的 click 事件代碼:clear eventsthisform.releasequit(3)timer1 控件的 timer 事件:thisform.label1.caption=time()(4)movie1 的 init 事件:this.m

19、ovie=sys(5)+sys(2003)+loopymusic.wavthis.playing=.t.this.loop=.t.(5)在 page1 中(page1 主要用于讀者對(duì)圖書資料的查詢):(a)command1 按鈕的 click 事件:select storebibli do case case thisform.pageframe1.page1.combo1.displayvalue=條碼 set filter to thisform.pageframe1.page1.text1.value=storebibli.條碼 thisform.refresh case thisfor

20、m.pageframe1.page1.combo1.displayvalue=索書號(hào) set filter to thisform.pageframe1.page1.text1.value=storebibli.索書號(hào) thisform.refresh case thisform.pageframe1.page1.combo1.displayvalue=書名 set filter to thisform.pageframe1.page1.text1.value=storebibli.書名 thisform.refresh case thisform.pageframe1.page1.combo

21、1.displayvalue=作者 set filter to thisform.pageframe1.page1.text1.value=storebibli.作者 thisform.refresh case thisform.pageframe1.page1.combo1.displayvalue=出版社 set filter to thisform.pageframe1.page1.text1.value=storebibli.出版社 thisform.refresh endcase(b)command2 按鈕的 click 事件代碼:thisform.pageframe1.page1.

22、refresh(c)command3 按鈕的 click 事件代碼:thisform.pageframe1.visible=.f.(6)在 page2 中(page2 主要用于讀者對(duì)讀者個(gè)人信息的查詢):(a)command1 按鈕的 click 事件代碼:select 讀者借閱記錄do case case bo1.displayvalue=證號(hào)set filter to thisform.pageframe1.page2.text1.value=讀者借閱記錄.證號(hào)thisform.refreshcase bo1.displayvalue=姓名set filter to thisform.pa

23、geframe1.page2.text1.value=讀者借閱記錄.姓名thisform.refreshcase bo1.displayvalue=類號(hào)set filter to thisform.pageframe1.page2.text1.value=讀者借閱記錄.類號(hào)thisform.refreshcase bo1.displayvalue=部門set filter to thisform.pageframe1.page2.text1.value=讀者借閱記錄.部門thisform.refreshcase bo1.displayvalue=時(shí)間set filter to thisform

24、.pageframe1.page2.text1.value=讀者借閱記錄.時(shí)間thisform.refreshendcase(b)command2 按鈕的 click 事件代碼:thisform.pageframe1.page2.refresh(c)command3 按鈕的 click 事件代碼:thisform.pageframe1.visible=.f.4.3 信息打印模塊信息打印模塊信息打印模塊主要用于各種信息資料報(bào)表的查看和打印。1.表單界面的設(shè)計(jì)(1)打開項(xiàng)目管理器,選擇文檔選項(xiàng)卡,選擇表單選項(xiàng),然后單擊新建按鈕創(chuàng)建新的表單“打印表單.scx”,在彈出的對(duì)話框中單擊新建按鈕,打開表單

25、設(shè)計(jì)器窗口進(jìn)行表單設(shè)計(jì)。(2)在表單中添加 5 個(gè)命令按鈕并對(duì)其屬性進(jìn)行設(shè)置如下:控件表單屬性取值formcaption打印信息command1caption典藏圖書信息command2caption讀者借閱信息command3caption讀者類型command4caption新書征訂數(shù)據(jù)command5caption關(guān)閉2.添加響應(yīng)代碼(1)command1 按鈕的 click 事件:report form 典藏圖書信息 preview(2)command2 按鈕的 click 事件:report form 讀者借閱記錄 preview(3)command3 按鈕的 click 事件:re

26、port form 讀者類型 preview(4)command4 按鈕的 click 事件:report form 征訂數(shù)據(jù)報(bào)表 preview(5)command5 按鈕的 click 事件:if messagebox(是否退出打印信息?,36,打印信息)=6thisform.releaseendif4.4 系統(tǒng)維護(hù)模塊系統(tǒng)維護(hù)模塊系統(tǒng)維護(hù)模塊主要功能是管理員對(duì)系統(tǒng)進(jìn)行管理。只有權(quán)限為 0 的管理員才有資格使用該功能,如果非管理員(即權(quán)限為 1)則該功能不可使用。從而維護(hù)了系統(tǒng)的穩(wěn)定和安全。該模塊中管理員可以對(duì)讀者用戶的信息進(jìn)行修改、增加、刪除,以及找回用戶密碼等操作。同時(shí)還可以對(duì)典藏圖書

27、信息進(jìn)行修改,和征訂新圖書。.1 進(jìn)入系統(tǒng)維護(hù)功能界面的設(shè)計(jì)進(jìn)入系統(tǒng)維護(hù)功能界面的設(shè)計(jì)通過該界面管理員可以選擇所要進(jìn)行的操作,并進(jìn)入響應(yīng)功能界面。1.表單界面的設(shè)計(jì)(1)打開項(xiàng)目管理器,選擇文檔選項(xiàng)卡,選擇表單選項(xiàng),然后單擊新建按鈕創(chuàng)建新的表單“系統(tǒng)維護(hù).scx”,在彈出的對(duì)話框中單擊新建按鈕,打開表單設(shè)計(jì)器窗口進(jìn)行表單設(shè)計(jì)。(2)表單中添加 5 個(gè)按鈕并對(duì)其屬性進(jìn)行設(shè)置如下:2.添加響應(yīng)代碼(1)command1 按鈕的 click 事件代碼:do form 讀者信息管理(2)command2 按鈕的 click 事件代碼:do form 圖書借閱管理(3)command3

28、按鈕的 click 事件代碼:do form 典藏圖書管理(4)command4 按鈕的 click 事件代碼:do form 圖書征訂(5)command5 按鈕的 click 事件代碼:if messagebox(是否退出系統(tǒng)管理?,36,系統(tǒng)管理)=6thisform.releaseendif4.4.2 典藏圖書管理界面的設(shè)計(jì)典藏圖書管理界面的設(shè)計(jì)在該界面管理員可以對(duì)典藏圖書信息進(jìn)行修改、增加、刪除操作。1.表單界面的設(shè)計(jì)(1)打開項(xiàng)目管理器,選擇文檔選項(xiàng)卡,選擇表單選項(xiàng),然后單擊新建按鈕創(chuàng)建新的表單“典藏圖書管理.scx”,在彈出的對(duì)話框中單擊表單向?qū)О粹o,打開向?qū)нx取窗口,選擇表單向

29、導(dǎo)來進(jìn)行表單設(shè)計(jì),如圖:(2)在向?qū)У臄?shù)據(jù)庫和表中選擇 storebibli.dbf,讓后在可用字段中選擇所有字段,將它們添加到選定字段欄中,如下圖所示:(3)單擊 finish 按鈕,完成表單的創(chuàng)建,創(chuàng)建的表單如下圖:2.添加響應(yīng)代碼(a)在表單 form 的 init 事件中添加代碼:local formtitle,myvalueformtitle=this.captionthis.caption=sys(2015)+setformattrihwnd=findwindow(0,this.caption)this.caption=formtitlemyvalue=int(rand(secon

30、d()*10)mytime=200do casecase myvalue=1mytype=5case myvalue=2mytype=9case myvalue=3mytype=3case myvalue=4mytype=12case myvalue=5mytype=8case myvalue=6mytype=10case myvalue=7mytype=6case myvalue=7mytype=8case myvalue=8mytype=2otherwisemytype=16endcaseanimatewindow(hwnd,mytime,mytype)clear dlls(b)在 for

31、m 的 load 事件中添加代碼:declare integer findwindow in win32api string lpclassname,string lpwindownamedeclare integer animatewindow in win32api integer hwnd,integer dwtime,integer dwflags(a)和(b)實(shí)現(xiàn)表單的動(dòng)態(tài)閃現(xiàn)效果。4.4.3 讀者信息管理界面的設(shè)計(jì)讀者信息管理界面的設(shè)計(jì)在該界面管理員可以對(duì)讀者信息進(jìn)行修改、增加、刪除、查找等操作。1.表單界面的設(shè)計(jì)同 一樣利用表單向?qū)Вx擇 readerdata.d

32、bf 建立”讀者信息管理.scx”.如下圖所示:4.4.4 讀者種類管理界面的設(shè)計(jì)讀者種類管理界面的設(shè)計(jì)在該界面管理員可以對(duì)讀者種類信息進(jìn)行修改、查閱等操作。1.表單界面的設(shè)計(jì)同 一樣利用表單向?qū)?,選擇 readertype.dbf 建立”讀者種類.scx”.如下圖所示:4.4.5 圖書征訂界面的設(shè)計(jì)圖書征訂界面的設(shè)計(jì)在該界面管理員可以對(duì)征訂圖書的信息進(jìn)行修改、增加、刪除、查找等操作。1.表單界面的設(shè)計(jì)同 一樣利用表單向?qū)?,選擇 rebookdata.dbf 建立”圖書征訂.scx”.如下圖所示:4.4.6 圖書借閱管理界面的設(shè)計(jì)圖書借閱管理界面的設(shè)計(jì)該界面管理

33、員可以對(duì)讀者的借閱信息進(jìn)行修改,可以進(jìn)行借書、還書、續(xù)借等功能。輸入讀者的證號(hào),按 enter 鍵,下面表格中即可顯示該讀者的借閱信息。在表格中點(diǎn)擊某行,相應(yīng)的圖書條碼會(huì)自動(dòng)填充在圖書條碼框中,點(diǎn)擊相應(yīng)的按鈕即可進(jìn)行各種操作。1.表單界面的設(shè)計(jì)(1)打開項(xiàng)目管理器,選擇文檔選項(xiàng)卡,選擇表單選項(xiàng),然后單擊新建按鈕創(chuàng)建新的表單“圖書借閱管理.scx”,在彈出的對(duì)話框中單擊新建按鈕,打開表單設(shè)計(jì)器窗口進(jìn)行表單設(shè)計(jì)。(2)將“readerdata.dbf” 、 “storebibli.dbf” 、 “readertype.dbf” 、 “l(fā)enddata.dbf”數(shù)據(jù)表添加到該表單的數(shù)據(jù)環(huán)境中。在表單

34、中添加 10 個(gè)標(biāo)簽、9 個(gè)文本框、5 個(gè)按鈕、1 個(gè)表格、2 個(gè)容器并對(duì)其屬性進(jìn)行設(shè)置如下:2.添加響應(yīng)代碼(1)form1 的 init 事件:thisform.cmbroom.additem(電子閱覽室)thisform.cmbroom.additem(工程技術(shù)書庫)thisform.cmbroom.additem(工程技術(shù)閱覽室)thisform.cmbroom.additem(工具書庫)thisform.cmbroom.additem(新書閱覽室)thisform.cmbroom.additem(文理書庫)thisform.cmbroom.additem(文理書閱覽室)thisfor

35、m.cmbroom.listindex=1thisform.grid1.column1.header1.caption=條碼thisform.grid1.column2.header1.caption=書名thisform.grid1.column3.header1.caption=索書號(hào)thisform.grid1.column4.header1.caption=庫室thisform.grid1.column5.header1.caption=借期thisform.grid1.column6.header1.caption=還期thisform.grid1.column1.width=50t

36、hisform.grid1.column2.width=200thisform.grid1.column3.width=150thisform.grid1.column4.width=80thisform.grid1.column5.width=60thisform.grid1.column6.width=60(2)txtnum 的 keypress 事件:lparameters nkeycode, nshiftaltctrlif nkeycode=13ccode=alltrim(this.text)if not empty(ccode)select readerdata.*,借書量,借書期,

37、有效期;from readerdata,readertype;where readerdata.類號(hào)=readertype.類號(hào) and alltrim(證號(hào))=ccode;into cursor tempcursorselect tempcursorif reccount()=0messagebox(借閱證號(hào)輸入錯(cuò)誤,16,圖書借閱管理)returnelsego topthisform.txtname.value=姓名thisform.txtdept.value=部門if 有效期=0thisform.txtoutdate.value=無時(shí)間限制elsenyear=year(時(shí)間)nmonth

38、=month(時(shí)間)nday=day(時(shí)間)thisform.txtoutdate.value=date(nyear+有效期,nmonth,nday)endifif 借書期=0thisform.txtlenddate.value=無限制elsethisform.txtlenddate.value=alltrim(str(借書期)+個(gè)月endifdo casecase 類號(hào)=0thisform.txttype.value=特殊讀者thisform.txtsum.value=50case 類號(hào)=1thisform.txttype.value=館員thisform.txtsum.value=30ca

39、se 類號(hào)=2thisform.txttype.value=教師thisform.txtsum.value=20case 類號(hào)=3thisform.txttype.value=學(xué)生thisform.txtsum.value=15endcaseendifuseselect lenddata.條碼,書名,索書號(hào),庫室,借期,還期 from lenddata,storebibli;where lenddata.條碼=storebibli.條碼 and;alltrim(lenddata.證號(hào))=alltrim(this.text)and;lenddata.庫室=storebibli.庫室名;into

40、cursor tempcursorthisform.txtlended.value=reccount()thisform.grid1.recordsourcetype=1thisform.grid1.recordsource=tempcursorselect tempcursorgo topcmsg=n=0if 還期date() and (not empty(還期)cmsg=cmsg+ +條碼+chr(13)+chr(10)n=n+1endifif val(thisform.txtsum.text)=val(thisform.txtlended.text)thisform.cmdlend.en

41、abled=.f.elsethisform.cmdlend.enabled=.t.endifthisform.cmdreturn.enabled=.t.if n0cmsg=共+alltrim(str(n)+本圖書過期,條形碼如下:+;chr(13)+chr(10)+cmsgmessagebox(cmsg,16,圖書借閱管理)thisform.cmdlend.enabled=.f.thisform.cmdrelend.enabled=.f.elsethisform.cmdlend.enabled=.t.thisform.cmdrelend.enabled=.t.endifendifendif(3

42、)command1 按鈕的 click 事件代碼:if empty(thisform.txtcode.text)messagebox(請(qǐng)輸入書目條碼,16,圖書借閱管理)thisform.txtcode.setfocusreturnendifccode=alltrim(thisform.txtcode.text)croom=thisform.cmbroom.valueselect storebiblilocate for alltrim(條碼)=ccode and alltrim(庫室名)=croomif not found()messagebox(“+croom+”+無條碼圖書,16,圖書借

43、閱管理)thisform.txtcode.setfocusreturnendifselect tempcursorlocate for alltrim(條碼)=ccodeif found()messagebox(讀者已經(jīng)借閱該條碼圖書,16,圖書借閱管理)thisform.txtcode.setfocusreturnendifndate=val(thisform.txtlenddate.text)if ndate=0insert into lenddata(條碼,證號(hào),庫室,借期);values(ccode,alltrim(thisform.txtnum.text),croom,date()e

44、lsenyear=year(date()nmonth=month(date()nday=day(date()nmonth=nmonth+ndateif nmonth12nyear=nyear+1nmonth=nmonth-12endifddate=date(nyear,nmonth,nday)insert into lenddata(條碼,證號(hào),庫室,借期,還期);values(ccode,alltrim(thisform.txtnum.text),croom,date(),ddate)endifcnum=alltrim(thisform.txtnum.text)select lenddata

45、.條碼,書名,索書號(hào),庫室,借期,還期 from lenddata,storebibli;where lenddata.條碼=storebibli.條碼 and alltrim(lenddata.證號(hào))=cnum and ;lenddata.庫室=storebibli.庫室名;into cursor tempcursorthisform.txtlended.value=reccount()thisform.grid1.recordsourcetype=1thisform.grid1.recordsource=tempcursorif thisform.txtsum.value=thisform

46、.txtlended.valuethisform.cmdlend.enabled=.f.elsethisform.cmdlend.enabled=.t.endifupdate storebibli set 可借數(shù)=可借數(shù)-1;where alltrim(條碼)=ccode and alltrim(庫室名)=croom(4)command2 按鈕的 click 事件代碼:if empty(thisform.txtcode.text)messagebox(請(qǐng)輸入圖書條碼,16,圖書借閱管理)thisform.txtcode.setfocusreturnendifccode=alltrim(this

47、form.txtcode.text)select tempcursorlocate for alltrim(條碼)=ccodeif not found()messagebox(讀者沒有借閱條形碼圖書,16,圖書借閱管理)thisform.txtcode.setfocusreturnendifndate=val(thisform.txtlenddate.text)if ndate=0update lenddata set 借期=date();where alltrim(條碼)=ccodeelsenyear=year(date()nmonth=month(date()nday=day(date()

48、nmonth=nmonth+ndateif nmonth12nyear=nyear+1nmonth=nmonth-12endifddate=date(nyear,nmonth,nday)update lenddata set 借期=date(),還期=ddate;where alltrim(條碼)=ccodeendifcnum=alltrim(thisform.txtnum.text)select lenddata.條碼,書名,索書號(hào),庫室,借期,還期 from lenddata,storebibli;where lenddata.條碼=storebibli.條碼 and alltrim(le

49、nddata.證號(hào))=cnum and ;lenddata.庫室=storebibli.庫室名;into cursor tempcursorthisform.txtlended.value=reccount()thisform.grid1.recordsourcetype=1thisform.grid1.recordsource=tempcursorif thisform.txtsum.value=thisform.txtlended.valuethisform.cmdlend.enabled=.f.elsethisform.cmdlend.enabled=.t.endif(5)command

50、3 按鈕的 click 事件代碼:if empty(thisform.txtcode.text)messagebox(請(qǐng)輸入圖書條碼,16,圖書借閱管理)thisform.txtcode.setfocusreturnendifcnum=alltrim(thisform.txtnum.text)ccode=alltrim(thisform.txtcode.text)select tempcursorlocate for alltrim(條碼)=ccodeif not found()messagebox(讀者沒有借閱條形碼圖書,16,圖書借閱管理)thisform.txtcode.setfocus

51、returnendifselect lenddatadelete all for alltrim(條碼)=ccode and alltrim(證號(hào))=cnumpackselect lenddata.條碼,書名,索書號(hào),庫室,借期,還期 from lenddata,storebibli;where lenddata.條碼=storebibli.條碼 and alltrim(lenddata.證號(hào))=cnum and ;lenddata.庫室=storebibli.庫室名;into cursor tempcursorthisform.txtlended.value=reccount()thisfo

52、rm.grid1.recordsourcetype=1thisform.grid1.recordsource=tempcursorthisform.cmdlend.enabled=.t.croom=thisform.cmbroom.valueupdate storebibli set 可借數(shù)=可借數(shù)+1;where alltrim(條碼)=ccode and alltrim(庫室名)=croom(6)command4 按鈕的 click 事件代碼:thisform.txtnum.value=thisform.txtname.value=thisform.txtdept.value=thisform.txtoutdate.value=thisform.txtcode.value=thisform.txtlenddate.value=thisform.txttype.value=thisform.txtsum.value=thisf

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論