版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGE17重慶大學(xué)基礎(chǔ)性實踐環(huán)節(jié)(數(shù)據(jù)庫)實踐報告實踐課程名稱數(shù)據(jù)庫原理開課實驗室數(shù)理學(xué)院理科樓201實驗室學(xué)院數(shù)理學(xué)院年級2005級專業(yè)班信息與計算科學(xué)一班學(xué)生姓名董坤學(xué)號20051884開課時間2007至2008學(xué)年第一學(xué)期總成績教師簽名數(shù)理學(xué)院制課程名稱《數(shù)據(jù)庫原理》實踐課時20學(xué)時實踐項目重慶大學(xué)圖書館管理系統(tǒng)實踐時間2007.5.8--2007.5.20實踐目的圖書館管理是任何學(xué)校都要涉及的內(nèi)容,其中包括對讀者基本信息的管理以及圖書管理,這就要求對這些數(shù)據(jù)進行統(tǒng)一管理,制作一個簡便易操作的系統(tǒng)是很有必要的。通過對本系統(tǒng)得設(shè)計,可以增強我們對數(shù)據(jù)庫知識的理解。更好的掌握面向?qū)ο缶幊痰腂orlandDelphi的編程技巧,體現(xiàn)其在數(shù)據(jù)庫設(shè)計方面的優(yōu)越性和簡易性,使得系統(tǒng)變得更為人性化、智能化。下面是對課程設(shè)計的具體實驗?zāi)康模海?)掌握BorlandDelphi中常見的控件的作用并能熟練運用。(2)掌握數(shù)據(jù)庫系統(tǒng)設(shè)計的思路以及基本方法。(3)通過實際例子的制作,體會數(shù)據(jù)庫原理課程的基本概念和基本知識在實例中的運用,最后體會理論知識在實際中的體現(xiàn)。實踐環(huán)境Delphi6.0實踐內(nèi)容(算法、程序、步驟和方法)一、系統(tǒng)功能的分析與設(shè)計本系統(tǒng)將涉及多個窗體的制作,從而實現(xiàn)多個管理的功能,其中涉及圖書信息、系統(tǒng)用戶信息、讀者信息、圖書借閱信息等多種數(shù)據(jù)管理。從管理角度出發(fā)可將圖書管理分為三類:圖書信息管理、系統(tǒng)用戶管理和讀者數(shù)據(jù)管理。圖書信息管理包括圖書征訂、編目、典藏、借還和查詢操作,系統(tǒng)用戶管理包括系統(tǒng)用戶類別和用戶數(shù)據(jù)管理,讀者數(shù)據(jù)管理包括讀者類別管理和讀者個人數(shù)據(jù)的錄入、修改、刪除。重慶大學(xué)圖書管理系統(tǒng)主要具有如下的一些功能:圖書征訂:包括圖書征訂數(shù)據(jù)的錄入、修改、編輯等功能。圖書編目:包括圖書編目信息的錄入、修改等功能。圖書典藏:包括新書分配、庫室調(diào)配等功能。圖書流通:包括圖書借閱、續(xù)借,圖書返還,圖書書目查詢等功能。系統(tǒng)用戶管理:包括系統(tǒng)用戶數(shù)據(jù)的錄入、修改、刪除等功能。讀者數(shù)據(jù)管理:包括讀者類別管理,讀者個人數(shù)據(jù)的錄入、修改、刪除等功能。根據(jù)分析,圖書管理系統(tǒng)主要的功能模塊如下圖所示:通過數(shù)據(jù)庫桌面工具就可以根據(jù)圖書信息表的邏輯結(jié)構(gòu)創(chuàng)建它的物理結(jié)構(gòu),如下圖所示:圖2圖書信息表當表建立完后,可以將其保存在特定路徑的文件夾中,在后面的系統(tǒng)界面制作中將引用,我將其安排的保存位置為:“D:\Delphi”,保存的數(shù)據(jù)表名為“book.db”。2、讀者信息表它包括讀者號、讀者姓名、性別、備注共4項內(nèi)容,將讀者號設(shè)為主鍵,因為讀者號是唯一的,能唯一識別。讀者信息表的邏輯結(jié)構(gòu),如下圖所示:圖3讀者信息表的邏輯結(jié)構(gòu)通過數(shù)據(jù)庫桌面工具就可以根據(jù)客房表的邏輯結(jié)構(gòu)創(chuàng)建它的物理結(jié)構(gòu),如下圖所示:圖4讀者信息表讀者信息表建立好后,保存到“D:\Delphi”里,保存的數(shù)據(jù)表名為“reader.db”。3、借還信息表它包括訂單號、位置、房間號等內(nèi)容,訂單號、位置、房間號都設(shè)置為第二索引,用于和其他表建立關(guān)聯(lián)。它的邏輯結(jié)構(gòu)定義結(jié)構(gòu)如下:圖5借還信息表的邏輯結(jié)構(gòu)通過數(shù)據(jù)庫桌面工具就可以根據(jù)客房表的邏輯結(jié)構(gòu)創(chuàng)建它的物理結(jié)構(gòu),如下圖所示:圖6借還信息表借還信息表建立好后,保存到“D:\Delphi”里,保存的數(shù)據(jù)表名為“owner.db”。4、創(chuàng)建數(shù)據(jù)庫別名以上表格均保存在“D:\Delphi”中,因此在窗體制作或報表中調(diào)用數(shù)據(jù)表名時需要用到新的數(shù)據(jù)庫別名,這里我們創(chuàng)建新的數(shù)據(jù)庫別名為“STANDARD1”,別名連接的路徑為“D:\Delphi”三、創(chuàng)建工程與系統(tǒng)權(quán)限認證界面設(shè)計在系統(tǒng)所需要的一切數(shù)據(jù)表完成后,就可以著手進行系統(tǒng)界面的設(shè)計與創(chuàng)建了,一般進入主控界面前都會有權(quán)限認證界面,因此,我們把系統(tǒng)啟動界面作為Form1,權(quán)限認證界面設(shè)置為Form2。其窗體創(chuàng)建的過程如下:新建一個工程,保存工程和相應(yīng)的單元文件。其中啟動界面如圖7所示:圖7啟動窗體在系統(tǒng)啟動窗體的制作中,對“進入系統(tǒng)”按鈕編寫相關(guān)的過程代碼如下:procedureTForm1.SpeedButton1Click(Sender:TObject);beginForm2.show;end;對“退出系統(tǒng)”編寫代碼為:procedureTForm1.SpeedButton2Click(Sender:TObject);beginclose;end;權(quán)限認證界面如圖7所示:圖8權(quán)限認證窗體在權(quán)限認證窗體的制作中,對“Load”按鈕編寫相關(guān)的過程代碼如下:procedureTForm2.SpeedButton1Click(Sender:TObject);beginif(combobox1.text='管理員')and(edit1.text='dk')and(edit2.text='20051884')thenbeginform3.show;form2.Hide;endelsebeginif(combobox1.text='學(xué)生')and(edit1.text='111111')and(edit2.text='111111')thenbeginform14.show;form2.Hide;endelsebeginshowmessage('你無權(quán)進入該系統(tǒng)');end;end;end;對“Exit”按鈕編寫相關(guān)的過程代碼如下:procedureTForm2.SpeedButton2Click(Sender:TObject);beginclose;end;四、系統(tǒng)主控界面設(shè)計通常一個系統(tǒng)必須存在一個主控界面,主控界面是調(diào)用其他界面的截體,本系統(tǒng)的主控界面和它的基本結(jié)構(gòu)如下圖:圖9系統(tǒng)主控界面在窗體上依次放上控件,各控件描述如表所示:表1控件類型控件名稱描述窗體控件FormForm3圖書館管理程序的主窗體,Caption屬性設(shè)置為“圖書室管理”;FormStyle屬性設(shè)置為fsMDIForm主菜單控件MainMenuMainMenu1用于為應(yīng)用程序提供主菜單,這分別是:查詢、圖書借閱、數(shù)據(jù)維護、安全設(shè)置、幫助、退出系統(tǒng)圖書信息查詢SpeedButton1查詢菜單下的子菜單Caption屬性設(shè)置為“圖書查詢”讀者信息查詢SpeedButton2查詢菜單下的子菜單Caption屬性設(shè)置為“讀者查詢”在庫圖書查詢SpeedButton3查詢菜單下的子菜單Caption屬性設(shè)置為“在庫圖書查詢”出借圖書SpeedButton4借閱菜單下的子菜單Caption屬性設(shè)置為“出借圖書”歸還圖書SpeedButton5借閱菜單下的子菜單Caption屬性設(shè)置為“歸還圖書”圖書登記SpeedButton6數(shù)據(jù)維護下的子菜單Caption屬性設(shè)置為“圖書登記”讀者登記SpeedButton7數(shù)據(jù)維護下的子菜單Caption屬性設(shè)置為“讀者登記”安全設(shè)置SpeedButton8用于安全維護,Caption屬性設(shè)置為“密碼設(shè)置”幫助HelpCaption屬性設(shè)置為“幫助”退出系統(tǒng)ExitMenuCaption屬性設(shè)置為“退出系統(tǒng)”狀態(tài)欄控件StatusBarStatusBar1用于顯示系統(tǒng)狀態(tài)信息在狀態(tài)欄中放入一個Timer1,為狀態(tài)條顯示日期和時間編程,雙擊Timer控件編寫代碼如下:procedureTForm3.Timer1Timer(Sender:TObject);beginstatusbar1.SimpleText:=Datetostr(Date)+''+timetostr(time);end;對SpeedButton控件編寫程序,使得鼠標指向控件時,控件變?yōu)榧t色,鼠標離開時,控件變回黑色,其中代碼如下:procedureTForm3.Label4MouseLeave(Sender:TObject);beginifSenderisTLabelthenTLabel(Sender).Font.Color:=clBlack;end;procedureTForm3.Label8MouseLeave(Sender:TObject);beginifSenderisTLabelthenTLabel(Sender).Font.Color:=clBlack;end;五、其它功能窗體(管理員)的設(shè)計1、圖書信息查詢窗體的設(shè)計該窗體的主要功能是對圖書各相關(guān)信息的查詢,其中窗體的基本設(shè)置結(jié)構(gòu)布局如圖:圖10圖書信息查詢窗體窗體制作主要過程如下:在窗體中放入一個Table1,設(shè)置其屬性DataBaseName為STANDARD1,TableName為“book.db”,Active為True。在窗體中添加一個DataSource1,設(shè)置其DataSet為Table1。在窗體中放入一個DBGird1,設(shè)置其DataSource為DataSource1。放入一個DBNavigator1,設(shè)置DataSource為DataSource1。在窗體插入的控件中,數(shù)據(jù)表控件和數(shù)據(jù)源控件以及數(shù)據(jù)導(dǎo)航控件都是相聯(lián)系的。對“查詢”按鈕編寫相關(guān)的過程代碼如下:procedureTForm4.BitBtn1Click(Sender:TObject);vargjz,gjzsz:string;begingjz:=combobox1.Text;gjzsz:=edit1.Text;if(gjz='')and(gjzsz='')thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('frombook');sql.Add('orderbyCode');prepare;open;endelseif(gjz<>'')and(gjzsz='')thenshowmessage('請輸入"查詢關(guān)鍵字設(shè)置"信息!')elseif(gjz='')and(gjzsz<>'')thenshowmessage('請選擇"查詢關(guān)鍵字選擇"信息!')elsebegingjzsz:=gjzsz+'%';ifgjz='圖書編號'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('frombook');sql.Add('whereCodelike:gjzszname');sql.Add('orderbyCode');parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelsebegingjzsz:=gjzsz+'%';ifgjz='圖書名稱'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('frombook');sql.Add('whereNamelike:gjzszname');sql.Add('orderbyCode');parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelsebegingjzsz:=gjzsz+'%';ifgjz='圖書類別'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('frombook');sql.Add('whereClasslike:gjzszname');sql.Add('orderbyCode');parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelsebegingjzsz:=gjzsz+'%';ifgjz='圖書作者'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('frombook');sql.Add('whereAuthorlike:gjzszname');sql.Add('orderbyCode');parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelsebegingjzsz:=gjzsz+'%';ifgjz='出版社'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('frombook');sql.Add('whereConcernlike:gjzszname');sql.Add('orderbyCode');parambyname('gjzszname').AsString:=gjzsz;prepare;open;end;end;end;end;end;end;end;報表打印與預(yù)覽窗體如下所示:圖11報表打印與預(yù)覽窗體2、讀者信息查詢窗體設(shè)計該窗體的主要功能是對讀者相關(guān)信息的查詢,其中窗體的基本設(shè)置結(jié)構(gòu)布局如圖:圖12讀者信息查詢窗體該窗體的制作同“圖書信息查詢窗體”的制作相同,其“查詢”控件的代碼為:procedureTForm5.BitBtn1Click(Sender:TObject);vargjz,gjzsz:string;begingjz:=combobox1.Text;gjzsz:=edit1.Text;if(gjz='')and(gjzsz='')thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('fromreader');sql.Add('orderbyIdcard');prepare;open;endelseif(gjz<>'')and(gjzsz='')thenshowmessage('請輸入"查詢關(guān)鍵字設(shè)置"信息!')elseif(gjz='')and(gjzsz<>'')thenshowmessage('請選擇"查詢關(guān)鍵字選擇"信息!')elsebegingjzsz:=gjzsz+'%';ifgjz='借書證號'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('fromreader');sql.Add('whereIdcardlike:gjzszname');sql.Add('orderbyIdcard');parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelsebegingjzsz:=gjzsz+'%';ifgjz='讀者姓名'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('fromreader');sql.Add('whereNamelike:gjzszname');sql.Add('orderbyIdcard');parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelsebegingjzsz:=gjzsz+'%';ifgjz='讀者性別'thenwithquery1dobeginclose;sql.Clear;sql.Add('select*');sql.Add('fromreader');sql.Add('whereSexlike:gjzszname');sql.Add('orderbyIdcard');parambyname('gjzszname').AsString:=gjzsz;prepare;open;end;end;end;end;end;報表打印與預(yù)覽窗體如下所示:圖13報表打印與預(yù)覽窗體3、在庫圖書查詢窗體設(shè)計該窗體的主要功能是對在庫圖書信息的查詢,其中窗體的基本設(shè)置結(jié)構(gòu)布局如圖:圖14在庫圖書查詢窗體該窗體的制作同“圖書信息查詢窗體”的制作相同,其“查詢”控件的代碼為:procedureTForm6.BitBtn1Click(Sender:TObject);vargjz,gjzsz,jc:string;begingjz:=combobox1.Text;gjzsz:=edit1.Text;jc:='借出';if(gjz='')and(gjzsz='')thenwithquery1dobeginclose;sql.Clear;sql.Add('selectbook.code,,reader.idcard,,owner.landdate');sql.Add('fromowner,book,reader');sql.Add('where(book.code=owner.code)and(reader.idcard=owner.idcard)and(owner.memo=:jcname)');sql.Add('orderbybook.code');parambyname('jcname').AsString:=jc;prepare;open;endelseif(gjz<>'')and(gjzsz='')thenshowmessage('請輸入"查詢關(guān)鍵字設(shè)置"信息!')elseif(gjz='')and(gjzsz<>'')thenshowmessage('請選擇"查詢關(guān)鍵字選擇"信息!')elsebegingjzsz:=gjzsz+'%';ifgjz='圖書編號'thenwithquery1dobeginclose;sql.Clear;sql.Add('selectbook.code,,reader.idcard,,owner.landdate');sql.Add('fromowner,book,reader');sql.Add('where(book.code=owner.code)and(reader.idcard=owner.idcard)and(owner.memo=:jcname)and(book.codelike:gjzszname)');sql.Add('orderbybook.code');parambyname('jcname').AsString:=jc;parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelseifgjz='圖書名稱'thenwithquery1dobeginclose;sql.Clear;sql.Add('selectbook.code,,reader.idcard,,owner.landdate');sql.Add('fromowner,book,reader');sql.Add('where(book.code=owner.code)and(reader.idcard=owner.idcard)and(owner.memo=:jcname)and(like:gjzszname)');sql.Add('orderbybook.code');parambyname('jcname').AsString:=jc;parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelseifgjz='借書證號'thenwithquery1dobeginclose;sql.Clear;sql.Add('selectbook.code,,reader.idcard,,owner.landdate');sql.Add('fromowner,book,reader');sql.Add('where(book.code=owner.code)and(reader.idcard=owner.idcard)and(owner.memo=:jcname)and(reader.idcardlike:gjzszname)');sql.Add('orderbybook.code');parambyname('jcname').AsString:=jc;parambyname('gjzszname').AsString:=gjzsz;prepare;open;endelseifgjz='讀者姓名'thenwithquery1dobeginclose;sql.Clear;sql.Add('selectbook.code,,reader.idcard,,owner.landdate');sql.Add('fromowner,book,reader');sql.Add('where(book.code=owner.code)and(reader.idcard=owner.idcard)and(owner.memo=:jcname)and(like:gjzszname)');sql.Add('orderbybook.code');parambyname('gjzszname').AsString:=gjzsz;parambyname('jcname').AsString:=jc;prepare;open;end;end;end;4、出借圖書窗體設(shè)計該窗體的主要功能是圖書出借,其中窗體的基本設(shè)置結(jié)構(gòu)布局如圖:圖15出借圖書窗體5、歸還圖書窗體設(shè)計該窗體的主要功能是圖書出借,其中窗體的基本設(shè)置結(jié)構(gòu)布局如圖:圖16歸還圖書窗體6、圖
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年食品安全與衛(wèi)生管理考試題集及答案
- 2026年營銷策略實戰(zhàn)題庫市場定位與消費者行為研究
- 2026年中醫(yī)藥學(xué)基礎(chǔ)理論與應(yīng)用初級試題
- 2026年計算機網(wǎng)絡(luò)安全專業(yè)試題庫認證題庫及答案解析
- 2026年人工智能技術(shù)與應(yīng)用考試政務(wù)云平臺的AI技術(shù)探索
- 2026年軟件測試工程師實操技巧與答案解析
- 2025 小學(xué)二年級道德與法治上冊家庭綠植我按時澆水養(yǎng)護促成長更翠綠課件
- 2026年高頻面試問題專業(yè)答案與解析集
- 2026年化學(xué)實驗技能操作模擬題
- 2026年金融分析師考試技巧投資策略模擬題集
- 四年級上冊數(shù)學(xué)脫式計算大全500題及答案
- 河北審圖合同協(xié)議
- 溴化鋰機組回收合同(2篇)
- 菏澤某中學(xué)歷年自主招生試題
- 醫(yī)院非產(chǎn)科孕情管理和三病檢測工作流程
- 中小學(xué)的德育工作指南課件
- GB/T 3487-2024乘用車輪輞規(guī)格系列
- 物業(yè)保潔保安培訓(xùn)課件
- 人教版初中英語七至九年級單詞匯總表(七年級至九年級全5冊)
- cnc加工中心點檢表
- 計劃決策評審-匯報模板課件
評論
0/150
提交評論