




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、圖書館信息管理系統(tǒng)數(shù)據(jù)庫的概念數(shù)據(jù)庫是一種存儲數(shù)據(jù)并對數(shù)據(jù)進(jìn)行操作的工具。數(shù)據(jù)庫的作用在于組織和表達(dá)信息,簡而言之,數(shù)據(jù)庫就是信息的集合。電腦的數(shù)據(jù)庫可以分為兩類:非關(guān)系數(shù)據(jù)庫flat-file和關(guān)系數(shù)據(jù)庫relational。關(guān)系數(shù)據(jù)庫中包含了多個數(shù)據(jù)表的信息,數(shù)據(jù)庫含有各個不同部分的術(shù)語,象記錄、域等。 新建一個數(shù)據(jù)庫創(chuàng)建任何一個數(shù)據(jù)庫的第一步是仔細(xì)的規(guī)劃數(shù)據(jù)庫,設(shè)計必須是靈活的、有邏輯的。創(chuàng)建一個數(shù)據(jù)庫結(jié)構(gòu)的過程被認(rèn)為是數(shù)據(jù)模型設(shè)計。1 標(biāo)識需要的數(shù)據(jù);2 收集被標(biāo)識的字段到表中;3 標(biāo)識主關(guān)鍵字字段;4 繪制一個簡單的數(shù)據(jù)圖表;5 標(biāo)準(zhǔn)數(shù)據(jù);6 標(biāo)識指定字段的信息;7 創(chuàng)建物理表。 創(chuàng)
2、建數(shù)據(jù)庫參照VF自帶的數(shù)據(jù)庫,可以很方便地創(chuàng)建了本系統(tǒng)將要使用的本地數(shù)據(jù)庫。系統(tǒng)的組織結(jié)構(gòu)圖如下:館 長采編組書庫閱覽室工具書室目錄廳借閱室 表的說明如下:Book_recno.dbf 借書登記表Book_table.dbf 圖書資料表B_table.dbf 讀者類別查詢中間表 Group_tabl
3、e.dbf 圖書類別查詢中間表Pass_word.dbf 管理員ID密碼表User_table.dbf 讀者資料表 表結(jié)構(gòu)介紹: Book_recno.dbf 借書登記表字段名稱字段類型字段說明TSBHC(10)圖書編號TXMC(10)條形碼SMC(20)書名BHC(10)編號XMC(10)JSBZC(4)借書標(biāo)志JSSJD(8)借書日期Book_table.d
4、bf 圖書資料表字段名稱字段類型字段說明TSBHC(10)圖書編號TXMC(10)條形碼SMC(20)書名ZZC(20)作者CBSC(40)出版社CBSJD(8)出版時間LBC(20)類別XCSLN(3)現(xiàn)存數(shù)量TSZSN(3)圖書總數(shù)RGSJD(8)入館時間TSJGN(8,2)價格ZCCSN(5)借出次數(shù)JSQXN(2)借書時限B_table.dbf 讀者類別查詢中間表
5、; 字段名稱字段類型字段說明CHINA_LBC(10)中間字段LBC(15)中間字段Group_table.dbf 圖書類別查詢中間表字段名稱字段類型字段說明CHINA_LBC(10)中間字段LBC(15)中間字段 Pass_word.dbf 管理員ID密碼表字段名稱字段類型字段說明GLY_IDC(10)管理員IDMMC(10)管理員密碼GLY_NAMEC(10)管理員 User_table.dbf
6、0; 讀者資料表字段名稱字段類型字段說明BHC(10)編號XMC(10)XBC(2)性別YXMCC(20)院系名稱ZZC(40)住址YJTSN(4)已借天數(shù)BZC(20)備注LBC(10)職業(yè)DJRQD(8)登記日期JSRQD(8)借書日期HSRQD(8)還書日期系統(tǒng)的具體實現(xiàn)程序菜單功能介紹:借書-根據(jù)您提供的圖書條形碼和圖書編號確認(rèn)圖書,再根據(jù)學(xué)生的編號確認(rèn)學(xué)生后把此書借給這位學(xué)生。還書-根據(jù)您提供的圖書條形碼和圖書編號確認(rèn)圖書,再根據(jù)學(xué)生的編號確認(rèn)學(xué)生后把此書歸還。圖書館信息管理-對所有圖書的資料進(jìn)行添加,修改和刪除等操作。讀者管理-對所有讀者的資料進(jìn)行添加,修改和刪除等操作。查詢-所有
7、圖書、不在館圖書,今天借出圖書、今日歸還圖書、今日新進(jìn)圖書和有條件查詢。統(tǒng)計-圖書基礎(chǔ)狀況統(tǒng)計排名。管理員-在這里修改管理員的登錄密碼。系統(tǒng)程序構(gòu)成: 圖書館信息管理系統(tǒng)的所有模塊都包括在一個項目中,這個項目我們命名為Tsgl.pjx,項目由數(shù)據(jù)、文檔、類庫、代碼、其它五部分組成。其中數(shù)據(jù)又分為數(shù)據(jù)庫和自由表;文檔分為表單、報表和標(biāo)簽;代碼分為程序、API、01/10應(yīng)用程序;其它分為菜單文件、文本文件、其它文件。系統(tǒng)構(gòu)成圖表如下列圖:項目的各部分完成系統(tǒng)的不同任務(wù),但從總體上講,可分成兩個方面分析,一個是數(shù)據(jù)源,為程序處理提供原始數(shù)據(jù);一個是程序模塊,是數(shù)據(jù)處理的方法和平臺。把這兩者有機(jī)的結(jié)
8、合起來,就是一個完整的程序應(yīng)用系統(tǒng)。 程序運(yùn)行界面圖說明:系統(tǒng)登錄界面,只有輸入正確的ID和密碼才能進(jìn)行圖書館信息管理系統(tǒng)。 說明:圖書館信息管理系統(tǒng)主界面。 說明:借書子程序操作界面。 說明:還書子程序操作界面。 說明:圖書館信息管理操作界面。提供圖書新增、修改、刪除等功能。 說明:讀者管理操作界面。提供讀者新增、修改、刪除等功能。說明:打印模塊具有打印圖書信息的功能說明:管理員密碼維護(hù)操作界面。系統(tǒng)登陸界面用戶名:1密碼:1如果出現(xiàn)打不開問題 請先 打開FoxPro 程序選擇程序 -運(yùn)行-圖書館信息管理系統(tǒng).exe如遇到路徑不存在 問題 直
9、接點(diǎn)擊忽略我已經(jīng)先設(shè)置了一個借書人 編號12345 王鑫 圖書信息 在任務(wù)窗口 可以選擇查詢附:程序清單程序功能介紹:*-主控程序: main_tsgl.prgclear all 從內(nèi)存中釋放所有的內(nèi)存變量和數(shù)組以及所有用戶自定義菜單欄、菜單和窗口的定義。_screen.visible=.f.主窗口VFP不可見set escape off 禁止運(yùn)行的程序和命令在按 Esc 鍵后被中斷。set talk off 阻止對話結(jié)果傳送到 Visual FoxPro 主窗口、系統(tǒng)信息窗
10、口set excl off 私有數(shù)據(jù)工作期的默認(rèn)方式允許網(wǎng)絡(luò)上的任何用戶共享和修改網(wǎng)絡(luò)上打開的表set safety off 指定在改寫已有文件時不顯示對話框。set dele on 使用范圍子句處理記錄包括在相關(guān)表中的記錄的命令忽略標(biāo)有刪除標(biāo)記的記錄set century on 指定在包含 10 個字符包括日期分隔符的日期格式中,用四位數(shù)字表示年。set date to YMD &
11、#160; 決定日期在日期時間表達(dá)式中的格式: yy/mm/ddpublic M_js,M_hs,mypath,tsgl,demo3 定義變量、數(shù)組為公共變量M_js= .T.為變量賦值M_hs= .T.mypath=left(sys(16),rat("",sys(16)把當(dāng)前路徑賦給一個變量set defa to &mypath指定默認(rèn)的驅(qū)動器、目錄或文件夾*-dimension demo3創(chuàng)建一維內(nèi)存變量數(shù)組 store '.F.' to demo1為
12、數(shù)組賦值 store '.F.' to demo2 store '.F.' to demo3*-傳遞ID、密碼變量-sele 1 激活指定工作區(qū)1 ,以下類似 use book_table
13、; 打開一個表,以下類似sele 2 use group_tablesele 3 use b_tablesele 4 use user_tabledo form login_form 運(yùn)行表單 read events 當(dāng)發(fā)出 READ EVENTS 命令時,Visual FoxPro 啟動事件處理說明: 設(shè)置程序運(yùn)行的環(huán)境參數(shù)、
14、變量等。*- 密碼驗證表單: Login_form.scx *- 控件: command1 *- click事件代碼如下:select gly_id,mm,gly_name from pass_word ;where gly_id=allt(thisform.text1.value) and ;mm=allt(thisform.text2.value) into array demo
15、; if demo1='.F.' = messagebox('登錄ID或密碼錯誤!',0+16+0,'提示') 信息提示窗口 thisform.text1.setfocus 控件text1獲得了焦點(diǎn) * return .T.else thisform.release從內(nèi)存中釋放表單集或表單 do login_app運(yùn)行程序endif 代碼說明:SQL語句從密碼表“Pass_word
16、.dbf中選出gly_id,mm,gly_name三個字段的記錄與所輸入的數(shù)據(jù)進(jìn)行比較,如果相等。則把它們賦值到一個數(shù)組中,然后執(zhí)行下一步程序。否則數(shù)組為最初所賦的值“.F.”,程序返回到數(shù)據(jù)輸入狀態(tài),直到正確輸入或者退出。 *- 控件: command2 *- click事件代碼如下:thisform.releaseclear events 發(fā)出 CLEAR EVENTS 命令停止事件處理代碼說明:釋放當(dāng)前表單,清除當(dāng)前事件。
17、*-聯(lián)接程序: main_tsgl.prgDO FORM tsgl.scx name tsgl &&窗口句柄傳遞DO Menu_tsgl.mpr WITH tsgl,.t.,.t. 運(yùn)行菜單代碼說明:運(yùn)行圖書館信息管理主表單以后,再運(yùn)行菜單組件。*-圖書館信息管理主表單:Tsgl.scx 主要屬性: AlwaysOnTop = .F. 其他窗口可以覆蓋住表單窗口。 AutoC
18、enter = .T.指定表單對象第一次顯示于 Visual FoxPro 主窗口時,自動居中放置 ShowWindows = 2 作為頂層表單 Caption = 岳陽電信-圖書館信息管理系統(tǒng) V1.0 表單標(biāo)題屬性說明:當(dāng)前表單優(yōu)先居前,自動居中,為頂層表單,表單標(biāo)題為“岳陽電信-圖書館信息管理系統(tǒng) V1.0”。 *- Init 事件代碼如下:thisform.pagefram
19、e1.page1 bo1.listindex=1 表單上的頁中的組合框的屬性thisform.pageframe1.page2 bo1.listindex=1代碼說明:控件“Combol”的數(shù)據(jù)源是“Group_Table.dbf”,Listindex1,則當(dāng)前控件“Combol”中所顯示的數(shù)據(jù)為“圖書編號”。 *- Resize 事件代碼如下:thisform mandgroup1.width = this.width-5thisform.pageframe1.width = this.width-5thisform.pageframe1.he
20、ight = this.height-100thisform.pageframe1.page1.grid1.width = thisform.pageframe1.width -22thisform.pageframe1.page1.grid1.height =; thisform.pageframe1.height -82thisform.pageframe1.page2.grid1.width = ;thisform.pageframe1.width -22thisform.pageframe1.page2.grid1.height = ;thisform.pageframe1.
21、height -82thisform.pageframe1.refresh代碼說明:頁框“page1”和“page2”、表格控件“grid1”隨當(dāng)前表單大小的變化而變化。 *- QueryUnload 事件代碼如下:thisform.release從內(nèi)存中刪除內(nèi)存變量和數(shù)組。clear events*-借書子程序:Jies.scx *- 控件: command1 *- click事件代碼如下:sele 1if thisform.optiongroup1.option1.value=0 當(dāng)前單項選擇框的值為0
22、locate for txm=upper(allt(thisform.text2.value) 從表中查找輸入的條形碼 if not found() =messagebox('沒有該圖書的條形碼!',0+64+0,'提示') go top 指針定位到表頭 else
23、 thisform mand3.enabled=.T. 指定對象可以響應(yīng)用戶引發(fā)的事件 endif endif if thisform.optiongroup1.option1.value=1 當(dāng)前單項選擇框的值為1 locate for tsbh=upper(allt(thisform.text1.value) if not found()
24、0; =messagebox('沒有該圖書編號!',0+64+0,'提示') go top else thisform mand3.enabled=.T. endif endif thisform.refresh代碼說明:根據(jù)圖書的條形碼或圖書編號查詢所借書目。只有所借書目存在,才能對讀者信息進(jìn)行操作。
25、; *- 控件: command2 *- click事件代碼如下: thisform.text2.value=' '賦文本框text2的值為空 thisform.text1.value=' ' thisform.text1.setfocus *- 控件: command3 *- click事件代碼如下:sele 4 locate for bh=upper(allt(thisform.text12.value) &
26、#160; if not found() =messagebox('沒有該讀者的編號!',0+64+0,'提示') go top endifthisform mand5.enabled=.T.thisform.refresh代碼說明:對借書讀者的資料進(jìn)行確認(rèn)。 *- 控件: command5 *- click事件代碼如下:nAnswer = MESSAGEBO
27、X('確認(rèn)所借書目的資料無誤嗎?',4+32+0,'重要提示')DO CASE CASE nAnswer = 6 sele 1 If xcsl=0 =messagebox('該圖書已經(jīng)沒有庫存!',0+64+0,'提示') &
28、#160; return .T. Else replace xcsl with xcsl-1 ,zccs with zccs+1 現(xiàn)存數(shù)量減1,借出數(shù)量加1 insert into book_recno (tsbh,txm,sm,bh,xm,jssj,jsbz) ; values(
29、 upper(allt(thisform.text7.value), ; upper(allt(thisform.text4.value), ; upper(allt(thisform.text3.value), ;
30、0; upper(allt(thisform.text13.value),; upper(allt(thisform.text14.value),; datetime(),'借出' )
31、 把當(dāng)前資料插入到表book_recno中 sele 4 replace yjss with yjss+1 讀者資料表中的已借書數(shù)加1 Endif CASE nAnswer = 7
32、0; ENDCASE代碼說明:在確認(rèn)所輸入的圖書和讀者資料無誤后,程序開始對圖書資料表、讀者資料表、借書記錄表這三個表進(jìn)行修改和錄入。MESSAGEBOX( ) 對應(yīng)每個按鈕的返回值。返回值 按鈕1 確定2 取消3 放棄4 重試5
33、 忽略6 是7 否*-還書子程序:Jies.scx *- 控件: command1 *- click事件代碼如下:sele 1if thisform.optiongroup1.option1.value=0 locate for txm=upper(allt(thisform.text2.value)
34、 if not found() =messagebox('沒有該圖書的條形碼!',0+64+0,'提示') go top endif endif if thisform.optiongroup1.option1.value=1 locate for tsbh=upper(allt(thisform.text1.value)
35、160; if not found() =messagebox('沒有該圖書編號!',0+64+0,'提示') go top endif endif thisform mand3.enabled=.T. thisform.refresh*- 控件: command3 *- click事件代碼如下:
36、0; thisform.text13.visible= .T. 顯示當(dāng)前文本框text13sele 4 locate for bh=upper(allt(thisform.text12.value) if not found() =messagebox('輸入的讀者編號有錯吧?',0+32+0,'提示')
37、0; go top else thisform.refresh thisform mand5.enabled=.T. endif*- 控件: command5 *- click事件代碼如下:sele 1 replace xcsl with xcs
38、l+1 現(xiàn)存數(shù)量加1 insert into book_recno (tsbh,txm,sm,bh,xm,jssj,jsbz) ; values( upper(allt(thisform.text7.value), ; upper(allt(thi
39、sform.text4.value), ; upper(allt(thisform.text3.value), ; upper(allt(thisform.text12.value),; &
40、#160; upper(allt(thisform.text13.value),; datetime(),'還回' ) thisform.refresh
41、60; =messagebox('操作完成,該書已經(jīng)歸檔!',0+64+0,'完成') thisform mand5.enabled=.F. 代碼說明:還書程序代碼和借書程序代碼比較相似,請看借書程序代碼說明。*- 控件: command7 *- click事件代碼如下:M_hs= .T.thisform.release*-圖書館信息管理子程序:Tsgl_tsgl.scx *- 控件: command1&
42、#160; *- click事件代碼如下:sele 1if thisform.optiongroup1.option1.value=0 locate for txm=upper(allt(thisform.text2.value) if not found() =messagebox('沒有該圖書的條形碼!',0+64+0,'提示')
43、; go top endif endif if thisform.optiongroup1.option1.value=1 locate for tsbh=upper(allt(thisform.text1.value) if not found() =messagebox('沒有該圖書編號!',0+64+0,'提示')
44、60; go top endif endif thisform.refresh代碼說明:根據(jù)圖書的條形碼或圖書編號查詢圖書。并且可以對當(dāng)前所選定的圖書進(jìn)行修改。*- 控件: command3 *- click事件代碼如下:sele 4if .not.bof() 如果不到表頭 skip -1指針上移一條記錄 thisform mand1.setfocus
45、60; thisform.refresh endif 代碼說明:當(dāng)前所查詢的圖書資料上翻一條。*- 控件: command4 *- click事件代碼如下:sele 4if .not.eof() 如果不到表尾 skip 指針下移一條記錄 thisform mand2.setfocus thisform.refresh endif 代碼說明:當(dāng)前所查詢的圖書資料下翻一條。 *- 控件: comman
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)估價委托合同協(xié)議書
- 車場租賃合同范本
- 企業(yè)勞務(wù)用工合同范例
- 建設(shè)工程施工合同管理研究
- 事業(yè)單位聘用合同協(xié)議
- 林業(yè)木材采購合同
- 中小企業(yè)與員工勞動合同
- 企業(yè)招聘勞動合同樣本
- 定制化租賃倉儲場地合同樣本
- 度教育援助合同書
- 人教部編版九年級下冊歷史第四單元 經(jīng)濟(jì)大危機(jī)和第二次世界大戰(zhàn)單元測試題
- 湖北省尾礦庫基本情況匯總表
- 海洋鉆井(平臺)
- (完整版)電梯的鋼結(jié)構(gòu)施工方案
- 中國近現(xiàn)代史綱要ppt全共64頁課件
- 腰椎間盤突出癥(腰痹病)中醫(yī)臨床路徑
- 教學(xué)團(tuán)隊建設(shè)總結(jié)報告
- 裝飾施工進(jìn)度計劃網(wǎng)絡(luò)圖及橫道圖
- 一年級思維訓(xùn)練(課堂PPT)
- 實木電腦桌書桌安裝圖
- GB_T 27025-2019 檢測和校準(zhǔn)實驗室能力的通用要求(高清版)
評論
0/150
提交評論