sql delphi 圖書管理系統(tǒng)實驗報告_第1頁
sql delphi 圖書管理系統(tǒng)實驗報告_第2頁
sql delphi 圖書管理系統(tǒng)實驗報告_第3頁
sql delphi 圖書管理系統(tǒng)實驗報告_第4頁
sql delphi 圖書管理系統(tǒng)實驗報告_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、sql serve數(shù)據(jù)庫 課 程 設(shè) 計設(shè)計選題:圖書管理系統(tǒng)班 級:電氣工程及其自動化1004設(shè) 計 人:劉碩果學(xué) 號:0909102825 輔導(dǎo)教師:董密目錄一、摘要二、需求分析2.1 功能劃分與描述2.2 安全性需求三、系統(tǒng)數(shù)據(jù)結(jié)構(gòu)3.1系統(tǒng)實體er圖四、各子系統(tǒng)功能分析與程序代碼設(shè)計4.1 登陸界面4.2 主界面4.3 新書入庫4.4 借書還書4.5 查詢4,6 辦理會員4.7 解除會員五、實驗體會六、參考文獻(xiàn)一、摘要隨著人類社會的發(fā)展,書籍漸漸地成為人們獲取并增長知識的主要途徑,而圖書館就理所當(dāng)然的在人們的生活中占據(jù)了一定的位置,如何科學(xué)合理的管理圖書館不但關(guān)系到讀者求知的方便程度,

2、也關(guān)系到圖書管的發(fā)展,因此,開發(fā)一套完善的圖書管理系統(tǒng),是必不可少的了。本系統(tǒng)是由delphi 7前臺和sql serve 2005相結(jié)合而完成的。本文主要是介紹圖書管理系統(tǒng)的環(huán)境、功能作用、所用到的語言、設(shè)計的方案等各方面的內(nèi)容。主要是讓使用者了解此系統(tǒng),使他們能更好的運用本系統(tǒng),使此系統(tǒng)發(fā)揮出應(yīng)有的作用。關(guān)鍵字 圖書管理系統(tǒng) delphi 7.0 sql server 2005數(shù)據(jù)庫二、需求分析 隨著學(xué)校規(guī)模的不斷擴大,圖書數(shù)量的急劇增加,有關(guān)圖書的信息量也在不斷成倍增長。面對龐大的信息量,就需要有圖書管理系統(tǒng)來提高圖書管理工作的效率。通過這樣的系統(tǒng),我們可以做到信息的規(guī)范管理和快速查詢,

3、從而減少了管理方面的工作量。 傳統(tǒng)手工的圖書管理,管理過程繁瑣而復(fù)雜,執(zhí)行效率低,并且易于出錯。通過這樣的系統(tǒng),我們可以做到信息的規(guī)范管理和快速查詢,實現(xiàn)了圖書管理的系統(tǒng)化、規(guī)范化和自動化,這樣不僅減少了管理工作量,還提高了管理效率,降低了管理成本。2.1功能劃分與描述圖書管理系統(tǒng)主要實現(xiàn)以下功能:a.圖書入庫 主要整理圖書的數(shù)量、類別和各種相關(guān)的信息等。b.查詢 主要查詢圖書的數(shù)量、類別、借出情況和各種相關(guān)的信息等。c.修改、刪除信息 修改、刪除圖書相關(guān)信息等。d.圖書借還 對讀者借閱 歸還信息進行辦理和查詢。e.系統(tǒng)管理 為系統(tǒng)的使用者進行帳戶和密碼管理以及基礎(chǔ)數(shù)據(jù)維護。f.辦理、解除會員

4、 對讀者信息進行管理和維護。2.4 安全性需求管理員有權(quán)力行使所有的管理功能,。三、系統(tǒng)數(shù)據(jù)結(jié)構(gòu)3.1系統(tǒng)實體e-r圖管理員登陸退出關(guān)于系統(tǒng)解除會員辦理會員新書入庫借書還書查詢3.2數(shù)據(jù)庫設(shè)計3.2.1關(guān)系圖 3.2.2基本表的建立由數(shù)據(jù)模型利用sqlsever2005進行數(shù)據(jù)庫的詳細(xì)設(shè)計,本系統(tǒng)設(shè)計的數(shù)據(jù)庫名為圖書管理系統(tǒng),其基本表的設(shè)計如下:管理員表:圖書信息表:借書情況表:圖書類別表:會員表:四、 各子系統(tǒng)功能分析與程序代碼設(shè)計4.1登錄界面:unit unit8;interfaceuses windows, messages, sysutils, variants, classes,

5、graphics, controls, forms, dialogs, stdctrls, db, adodb, jpeg, extctrls;type tform8 = class(tform) adoconnection1: tadoconnection; adoquery1: tadoquery; datasource1: tdatasource; label1: tlabel; label2: tlabel; label3: tlabel; edit1: tedit; edit2: tedit; button1: tbutton; button2: tbutton; image1: t

6、image; image2: timage; procedure button2click(sender: tobject); procedure button1click(sender: tobject); procedure edit1keydown(sender: tobject; var key: word; shift: tshiftstate); procedure edit2keydown(sender: tobject; var key: word; shift: tshiftstate); private private declarations public public

7、declarations end;var form8: tform8; a:integer=0;implementationuses unit1;$r *.dfmprocedure tform8.button2click(sender: tobject);begin if (edit1.text=)or (edit2.text=) then begin application.messagebox(用戶名稱或密碼不能為空!,提示,0+64); end else begin adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add(selec

8、t * from manager where 登錄賬號=:rno and 密碼=:rpassword); adoquery1.parameters.parambyname(rno).value := trim(edit1.text); adoquery1.parameters.parambyname(rpassword).value := trim(edit2.text); adoquery1.open; if adoquery1.recordcount0 then begin form8.hide; main.show; end else begin application.messageb

9、ox(用戶名或密碼不正確,請重新輸入!,提示,0+64); edit2.clear; a:=a+1; end; if a=3 then begin application.messagebox(對不起,您輸入錯誤次數(shù)已經(jīng)達(dá)到三次,請聯(lián)系管理員!,提示,0+64); application.terminate ; end; end;end;procedure tform8.button1click(sender: tobject);beginif application.messagebox(確定退出登錄嗎?,確認(rèn),mb_iconinformation+mb_okcancel+mb_defbut

10、ton1)=idokthenform8.close;end; procedure tform8.edit1keydown(sender: tobject; var key: word; shift: tshiftstate);begin if key=13 then button2click(sender);end;procedure tform8.edit2keydown(sender: tobject; var key: word; shift: tshiftstate);begin if key=13 then button2click(sender);end;end.4.2主界面:4.

11、3新書入庫:procedure tin_book.button1click(sender: tobject);beginadoquery1.close;adoquery1.sql.clear;adoquery1.sql.add(select * from book where 圖書編號= +edit1.text+);adoquery1.open;if adoquery1.recordcount0then showmessage(已有此號,圖書編號可能出錯,請重新輸入) else begin adoquery1.close; adoquery1.sql.clear; adoquery1.sql.

12、add(exec insert2 +edit1.text+,+edit2.text+,+edit3.text+,+combobox1.text+,+edit5.text+,+edit7.text+,+edit6.text+,+edit8.text+); adoquery1.execsql; close; showmessage(入庫成功);end;end;procedure tin_book.edit6keypress(sender: tobject; var key: char);beginif not (key in 0.9,.,#8) thenbeginkey:=#0;showmessa

13、ge(該項只能寫入數(shù)字);end;end;procedure tin_book.edit8keypress(sender: tobject; var key: char);beginif not (key in 0.9,#8) thenbeginkey:=#0;showmessage(該項只能寫入數(shù)字);end;end;procedure tin_book.edit7keypress(sender: tobject; var key: char);beginif not (key in 0.9,-,#8) thenbeginkey:=#0;showmessage(輸入違反規(guī)則);end;end

14、;cedure tmain.toolbutton4click(sender: tobject);beginsearch.showmodal;end;procedure tmain.toolbutton5click(sender: tobject);beginin_people.showmodal;end;4.4借書還書:procedure tinout_book.button2click(sender: tobject);var sh :string;begin with adostoredproc1 do begin close; parameters.parambyname(

15、pno).value := edit2.text ; parameters.parambyname(bno).value := edit1.text ; parameters.parambyname(num).value := edit3.text ; parameters.parambyname(sh).value := ; execproc; sh := parameters.parambyname(sh).value; showmessage(sh); end;end;procedure tinout_book.button3click(sender: tobject);beginado

16、query2.close;adoquery2.sql.clear;adoquery2.sql.add(exec huanshu1 +edit4.text+);adoquery2.open;if adoquery2.recordcount=0 thenshowmessage(無此人 或是此人沒有要還的書)end;procedure tinout_book.button4click(sender: tobject);var sh :string;beginwith adostoredproc2 do begin close; parameters.parambyname(pno).value :=

17、 edit4.text ; parameters.parambyname(bno).value := dbedit8.text ; parameters.parambyname(num).value := edit6.text ; parameters.parambyname(sh).value := ; execproc; sh := parameters.parambyname(sh).value; showmessage(sh); end;adoquery2.close;adoquery2.sql.clear;adoquery2.sql.add(exec huanshu1 +edit4.

18、text+);adoquery2.open;end;procedure tinout_book.button6click(sender: tobject);beginclose;end;procedure tinout_book.edit3keypress(sender: tobject; var key: char);beginif not (key in 0.9,#8) thenbeginkey:=#0;showmessage(該項只能寫入數(shù)字);end;end;procedure tinout_book.edit6keypress(sender: tobject; var key: ch

19、ar);beginif not (key in 0.9,#8) thenbeginkey:=#0;showmessage(該項只能寫入數(shù)字);end;end;end.4.5查詢:procedure tsearch.button1click(sender: tobject);beginif radiobutton1.checkedthenbeginadoquery2.close;adoquery2.sql.clear;adoquery2.sql.add(select * from book where 圖書編號 like %+edit1.text+%);adoquery2.open; if ad

20、oquery2.recordcount=0 then showmessage(沒有此編號圖書); end; if radiobutton2.checkedthenbeginadoquery2.close;adoquery2.sql.clear;adoquery2.sql.add(select * from book where 書名 like %+edit1.text+%);adoquery2.open; if adoquery2.recordcount=0 then showmessage(沒有此書名圖書); end; if radiobutton3.checkedthenbeginadoq

21、uery2.close;待添加的隱藏文字內(nèi)容1adoquery2.sql.clear;adoquery2.sql.add(select * from book where 作者 like %+edit1.text+%);adoquery2.open; if adoquery2.recordcount=0 then showmessage(沒有該作者的圖書); end; if radiobutton4.checkedthenbeginadoquery2.close;adoquery2.sql.clear;adoquery2.sql.add(select *from book where 類別 l

22、ike %+edit1.text+%);adoquery2.open; if adoquery2.recordcount=0 then showmessage(沒有此沒有此類別圖書); end; if radiobutton5.checkedthenbeginadoquery2.close;adoquery2.sql.clear;adoquery2.sql.add(select * from book where 出版社 like %+edit1.text+%);adoquery2.open; if adoquery2.recordcount=0 then showmessage(沒有此出版社

23、圖書); end;end;procedure tsearch.button2click(sender: tobject);beginif radiobutton8.checkedthenbeginadoquery3.close;adoquery3.sql.clear;adoquery3.sql.add(exec search1 +edit2.text+,0);adoquery3.open;if adoquery3.recordcount=0 then showmessage(沒借書記錄,或是證件號錯);end;if radiobutton9.checkedthenbeginadoquery3.

24、close;adoquery3.sql.clear;adoquery3.sql.add(exec search1 +edit2.text+,1);adoquery3.open;if adoquery3.recordcount=0 then showmessage(此人沒借書,或是證件號錯);end;end;end.4.6辦理會員:procedure tin_people.button1click(sender: tobject);beginadoquery1.close;adoquery1.sql.clear;adoquery1.sql.add(select * from people whe

25、re 借書證號= +edit1.text+);adoquery1.open;if adoquery1.recordcount0then showmessage(已號已有人使用) else beginadoquery1.close;adoquery1.sql.clear;adoquery1.sql.add(exec insert1 +edit1.text+,+edit2.text+,+combobox1.text+,+edit3.text+,+edit4.text+,+edit5.text+,+edit6.text+);adoquery1.execsql;showmessage(辦理成功);en

26、d;end;procedure tin_people.edit6keypress(sender: tobject; var key: char);beginif not (key in 0.9,-,#8) thenbeginkey:=#0;showmessage(該項只能寫入數(shù)字);end;end;procedure tin_people.edit4keypress(sender: tobject; var key: char);begin if not (key in 0.9,x,#8) thenbeginkey:=#0;showmessage(該項只能寫入數(shù)字);end;end;end.4

27、.7解除會員:procedure tdele_people.button1click(sender: tobject);beginadoquery1.close;adoquery1.sql.clear;adoquery1.sql.add(select * from people where 借書證號= +edit1.text+);adoquery1.open;if adoquery1.recordcount=0 thenshowmessage(此人不存在);end;procedure tdele_people.button2click(sender: tobject);beginadoquery1.close;adoquery1.sql.clear;adoquery1.sql.add(delete from people where 借書證號= +edit1.text+);adoquery1.execsql;showmessage(撤離成功);end;end.五、實驗體會通過系統(tǒng)的在校學(xué)習(xí)和對外界的認(rèn)識,我對delphi7 和sql serve2005大致過程有了一些基本的了解,有了一些體會:程序沒有最好,只有更好,程序沒有十全十美,只有更完美;在編程的過程中,會遇到各種各樣的問題,也花了不少時間去解決。深入的體會:

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論