畢業(yè)設計-----圖書管理系統(tǒng)_第1頁
已閱讀1頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  畢業(yè)論文(設計)</b></p><p><b>  目錄</b></p><p><b>  第1章 緒論4</b></p><p><b>  1.1軟件概述4</b></p><p><b>  1.2系統(tǒng)

2、介紹4</b></p><p>  1.3開發(fā)工具簡介4</p><p>  第2章 總體設計分析5</p><p><b>  2.1解決方案5</b></p><p>  2.2業(yè)務流程分析6</p><p>  2.3數(shù)據(jù)流程圖分析6</p><p

3、><b>  2.4數(shù)據(jù)字典7</b></p><p><b>  2.5處理描述8</b></p><p>  2.6系統(tǒng)功能結構9</p><p>  2.7數(shù)據(jù)庫的設計9</p><p>  第3章 圖書管理系統(tǒng)詳細設計12</p><p>  3.1主

4、窗體的設計12</p><p>  3.2登陸窗體設計13</p><p>  3.3添加記錄窗體設計13</p><p>  3.3.1讀者數(shù)據(jù)增加14</p><p>  3.3.2讀者類型管理16</p><p>  3.3.3圖書信息增加18</p><p>  3.3.4圖

5、書類型管理20</p><p>  3.3.5圖書借閱歸還窗體21</p><p>  3.4數(shù)據(jù)更新窗體設計27</p><p>  3.4.1圖書數(shù)據(jù)更新27</p><p>  3.4.2讀者數(shù)據(jù)更新29</p><p>  3.5數(shù)據(jù)查詢窗體設計32</p><p>  3.

6、5.1圖書查詢設計32</p><p>  3.5.2讀者信息查詢設計34</p><p>  第4章 結束語37</p><p><b>  參考文獻37</b></p><p><b>  圖書管理系統(tǒng)的設計</b></p><p>  摘 要:圖書管理系統(tǒng)是典

7、型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應用程序功能完備,易使用等特點。 </p><p>  因此本人結合開入式圖書館的要求,對MS SQL Server2000數(shù)據(jù)庫管理系統(tǒng)、SQL語言原理、Delphi應用程序設計,Delphi數(shù)據(jù)庫技術進行了較深入的學習和應用,主要完成對圖書管

8、理系統(tǒng)的需求分析、功能模塊劃分、數(shù)據(jù)庫模式分析,并由此設計了數(shù)據(jù)庫結構和應用程序。系統(tǒng)運行結果證明,本文所設計的圖書管理系統(tǒng)可以滿足借閱者、圖書館工作人員和高級管理員三方面的需要。 實現(xiàn)了數(shù)據(jù)庫表的瀏覽,記錄的添加、刪除和修改,報表的生成,實現(xiàn)了多數(shù)據(jù)庫表的連接操作,實現(xiàn)了多條件查詢和模糊查詢,并靈活實現(xiàn)了對不可更新查詢結果集的更新操作,實現(xiàn)了主從表操作,實現(xiàn)了密碼維護功能,最后,系統(tǒng)還可以導入數(shù)據(jù)庫以對任意同結構的數(shù)據(jù)庫進行操作。 設

9、計充分利用Delphi7.0、數(shù)據(jù)庫技術的強大力量,提高了編程效率和可靠性。 </p><p>  關鍵詞:數(shù)據(jù)庫;Delphi7.0;數(shù)據(jù)庫組件;圖書管理;窗體</p><p><b>  第1章 緒論</b></p><p><b>  1.1軟件概述</b></p><p>  此軟件是運行在

10、Windows下的用與對圖書館圖書信息,以及用戶借閱信息進行記錄的和管理的軟件。利用delphi進行開發(fā),數(shù)據(jù)通過附帶的database desktop工具以表的方式錄入保存,運用sql語句進行查詢</p><p>  該系統(tǒng)擁有漂亮的圖形化界面,操作簡便,能完成添加圖書信息,修改圖書信息,查詢圖書信息,添加讀者類別,修改讀者類別,查詢讀者信息,修改讀者信息等一系列圖書管理功能,開發(fā)本系統(tǒng)的總體任務是實現(xiàn)圖書管理

11、的系統(tǒng)化和自動化,幫助管理人員更好更高效地完成圖書管理工作。</p><p><b>  1.2系統(tǒng)介紹</b></p><p>  隨著圖書館規(guī)模的不斷擴大,圖書數(shù)量也相應的增加,有關圖書的各種信息量也成倍增加,面對這龐大的信息量,傳統(tǒng)的人工方式管理會導致圖書館管理上的混亂,由于是用手工進行抄寫,且數(shù)據(jù)處理工作量大,容易出錯。并且數(shù)據(jù)繁多,容易造成丟失,不易查找。人

12、力與物力過多浪費,圖書館管理費用也會增加,從而使圖書館的負擔過重,影響整個圖書館的運作和控制管理,因此,必須制定一套合理、有效,規(guī)范和實用的圖書管理系統(tǒng),對圖書資料進行集中統(tǒng)一的管理。</p><p><b>  1.3開發(fā)工具簡介</b></p><p>  本系統(tǒng)采用Delphi 7.0作為開發(fā)平臺,它是操作系統(tǒng)中快速應用開發(fā)環(huán)境的最新版本。它也是當前Window

13、s平臺上第一個全面支持最新Web服務的快速開發(fā)工具。無論是企業(yè)級用戶,還是個人開發(fā)者,都能夠利用Delphi 7.0輕松、快捷地構建新一代電子商務應用。Delphi 7.0 是惟一支持所有新出現(xiàn)的工業(yè)標準的RAD環(huán)境,包括XML(擴展標記語言)/XSL(可擴展樣式語言),SOAP(簡單對象存取協(xié)議)和WSDL(Web服務器描述語言)等。</p><p>  Delphi 7.0 是可視化的快速應用程序開發(fā)語言,它

14、提供了可視化的集成開發(fā)環(huán)境,這一環(huán)境為應用程序設計人員提供了一系列靈活而先進的工具,可以廣泛地用于種類應用程序設計。在Delphi 7.0 的集成開發(fā)環(huán)境中,用戶可以設計程序代碼、運行程序、進行程序錯誤的調試等,可視化的開發(fā)方法降低了應用程序開發(fā)的難度。Delphi 7.0的基礎編程語言是具有面向對象特性的Pascal語言,即Object Pascal 。Object Pascal具有代碼穩(wěn)定、可讀性好、編譯速度快等優(yōu)點,并將面向對象的

15、概念移使用Delph 7.0 ,我們幾乎可以作任何事情,還可以撰寫種各種類型的應用程序,動態(tài)鏈接庫(DLL)、CON、或CORBA對象,CGI/ISAPI程序,Microsoft Back Office應用程序。程序的規(guī)模小到簡單的個人數(shù)據(jù)庫應用,大到復雜的企業(yè)的多層次分布式系統(tǒng),都可以使用Delphi進行開發(fā),其友好的集成開發(fā)界面,可視化的雙向開發(fā)模式,良好的數(shù)據(jù)庫應用支持高效的程序開發(fā)和程序運行,備受廣大程序開發(fā)人員的好評。尤其是D

16、elphi7.0對數(shù)據(jù)庫應用的強大支持,大大提高了數(shù)據(jù)庫應用軟件</p><p>  第2章 總體設計分析</p><p>  此軟件的開發(fā)將根據(jù)用戶的需求,按照用戶的意圖以及應用目標和范圍進行設計。從權限角度考慮,在登陸窗體中,我們就必須設置系統(tǒng)管理員,來賓用戶,一般用戶等選項,并對系統(tǒng)管理員選項要設置口令密碼,才能登陸。框架上來講,一個系統(tǒng)要對圖書進行管理,就必須要有圖書類別,名稱,編

17、號等各項目進行統(tǒng)計,這樣新書上架,圖書的借閱歸還的狀態(tài),我們都能清除的了解到。從讀者角度來考慮,我們必須能添加新的讀者,并對讀者的具體情況,進行管理。解決了這些問題這就給我們以后模塊的設計提供了思路。</p><p><b>  2.1解決方案</b></p><p>  通過對圖書館工作流程的研究和詳細地詢問有關人員,對圖書館的各個方面的工作流程有了具體的了解,經過

18、和圖書館的相關人員協(xié)商后,最終確定在圖書管理系統(tǒng)中要具有以下幾方面的內容:</p><p>  1.具有信息錄入功能</p><p>  ※圖書庫的錄入(入庫功能)包括的內容是圖書編號,分類號,種類號,圖書名稱,圖書作者,出版社,單價,開本,進庫日期。</p><p>  ※ 讀者庫的錄入包括的內容是借書證號,姓名,性別,單位,辦證日期,讀者類型。</p>

19、;<p>  2.具有圖書流通功能</p><p><b>  ※ 讀者借閱圖書。</b></p><p>  ※ 讀者能夠歸還讀書,如果圖書超期,提示超期的天數(shù)和應罰款金額。</p><p>  3.具有信息的存儲功能</p><p>  對系統(tǒng)的所有操作功能能夠存儲。也就是系統(tǒng)可以存諸圖書信息,讀者信息

20、,借書、還書信息等。</p><p><b>  4.具有瀏覽功能</b></p><p>  ※能夠濟覽圖書的詳細信息。</p><p>  ※能夠瀏覽讀者的詳細信息。</p><p>  ※能夠瀏覽圖書的清單,以及圖書流通情況。</p><p><b>  5.具有查詢功能</

21、b></p><p>  ※能夠按照讀者的借書證號查詢讀者的相關信息。</p><p>  ※能夠按照讀者的借書證號查詢讀者的借況情況。</p><p>  ※能夠按照圖書的關鍵字(圖書編號,書名,作者等)查詢相關信息。</p><p><b>  6.具有特殊功能</b></p><p>

22、  ※進入系統(tǒng)時要求提供操作者姓名和密碼。</p><p>  ※可以設置讀者類型的借閱期限和借閱冊數(shù)。</p><p><b>  2.2業(yè)務流程分析</b></p><p><b>  圖1 業(yè)務流程圖</b></p><p>  2.3數(shù)據(jù)流程圖分析</p><p>

23、  數(shù)據(jù)流程圖(Data Flow DFD)是描述實際業(yè)務管理系統(tǒng)工作流程的一種圖形表示法。它描繪系統(tǒng)的邏輯模型圖,其中沒有任何具體的物理元素,只是描繪信息在系統(tǒng)中流動和處理的情況。因為數(shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示,即使不是專業(yè)的計算機技術人員也容易理解,所以是極好的通信工具。此外,設計數(shù)據(jù)流圖只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮如何具體地實現(xiàn)這些功能,所以它也是軟件設計的很好的出發(fā)點?!秷D書管理系統(tǒng)》主要是為了對圖書、讀

24、者基本信息等進行計算機管理。下面就是對各個步驟的流程分析:(1)登陸窗體,選擇用戶類型;(2)輸入密碼口令;(3)進入系統(tǒng);(4)實現(xiàn)各種操作;(5退出系統(tǒng))。綜合上面的介紹,下面講總體的流程圖分析如圖2:</p><p>  圖2 系統(tǒng)數(shù)據(jù)流程圖</p><p><b>  2.4數(shù)據(jù)字典</b></p><p><b> ?。?

25、)數(shù)據(jù)流字典</b></p><p> ?、?數(shù)據(jù)流名稱:新書入庫單 標識符:TS1</p><p><b>  數(shù)據(jù)結構:</b></p><p><b>  01新書入庫單</b></p><p>  02日期(RQ)

26、 TS1(10)</p><p>  02圖書代碼(CPDM) TS1(12)</p><p>  02圖書名稱(CPMC) TS1(18)</p><p>  02出版社名稱(CBCMC) TS1(15)</p><p>  02單位(DW)

27、 TS1(4)</p><p>  02規(guī)格(GG) TS1(10)</p><p>  02入庫數(shù)量(RKSL) TS1(6)</p><p>  排列方式:按圖書類型,分架子排列</p><p>  流量:最大 5000本/次</p><

28、;p><b>  來源:圖書供應商</b></p><p>  去向:流通,借出給學生,老師,其它人員</p><p> ?、?數(shù)據(jù)流名稱:圖書出庫單 標識符:TS2</p><p><b>  數(shù)據(jù)結構:</b></p><p><b>  01

29、產品出庫單</b></p><p>  02日期(RQ) TS1(10)</p><p>  02圖書代碼(CPDM) TS1(12)</p><p>  02圖書名稱(CPMC) TS1(18)</p><p>  02出版社名稱(CBCMC)

30、 TS1(15)</p><p>  02單位(DW) TS1(4)</p><p>  02規(guī)格(GG) TS1(10)</p><p>  02入庫數(shù)量(RKSL) TS1(6)</p><p>  流量:平均:2000本/次</p>

31、<p>  去向:流通,借出給學生,老師,其它人員</p><p><b>  2.5處理描述</b></p><p> ?、?處理名:錄入入庫圖書 標識符:TS1</p><p><b>  輸入:數(shù)據(jù)流A1</b></p><p><b>  輸出:數(shù)據(jù)流 A2&

32、lt;/b></p><p><b>  處理定義:</b></p><p>  當輸入的圖書編號不為空且不為非法字符,日期代碼都正確,并且新的圖書實物入庫后,立即將這張入庫單上的數(shù)據(jù)登入數(shù)據(jù)庫,并記入賬本。</p><p>  激發(fā)條件:圖書入庫發(fā)生時 </p><p> ?、?處理名:登記借出圖書 標

33、識符:TS2</p><p>  輸入:輸入圖書的條碼編號</p><p>  輸出:掃描記錄圖書的各種信息,并登記記錄</p><p><b>  處理定義:</b></p><p>  當某人借書,且圖書的是已經存在在圖書管的,并做了入庫登記的,借出日期與當日日期相符。把圖書的相關信息登記處理</p>

34、<p>  激發(fā)條件:每日借出處理</p><p><b>  2.6系統(tǒng)功能結構</b></p><p>  概念設計階段主要任務和目標是根據(jù)需求分析的結果,包括一般聯(lián)系實體,畫出對應的結構圖。對于復雜的系統(tǒng),通常首先要對它的各功能模進行分析,模塊化是指解決一個復雜問題時自項向下逐層把軟件系統(tǒng)劃分成若干個模塊的過程。每個模塊完成一個特定的功能,所有的模塊

35、按某種方法組織起來,成為一個整體,完成整個系統(tǒng)所要求的功能。本系統(tǒng)的主界面包括讀者管理,圖書維護,圖書流通,系統(tǒng)設置,幫助,以及狀態(tài)欄等六大部分。</p><p>  結合上面的系統(tǒng)功能模塊分析,下面將本系統(tǒng)的各大功能分別用圖的結構形式分析如下設計新系統(tǒng)功能結構如圖3所示。</p><p>  圖3 系統(tǒng)功能結構圖</p><p><b>  2.7數(shù)據(jù)庫

36、的設計</b></p><p>  利用delphi 7.0附帶databasedesktop 工具,各種數(shù)據(jù)信息,都以表的形式保存。在上面的實體以及實體之間關系的基礎上,形成數(shù)據(jù)庫中的表格以及各個表格之間的關系。圖書管理信息系統(tǒng)數(shù)據(jù)庫中各個表格的設計結果如下面的幾個表格所示,每個表格表示在數(shù)據(jù)庫中的一個表。</p><p><b>  1.讀者庫</b>

37、</p><p>  作用:存放讀者的基本信息表,如表1所示</p><p><b>  表1 讀者信息表</b></p><p><b>  2.讀者類型庫</b></p><p>  作用:存放讀者類型及相關信息,如表2所示。</p><p>  表2 讀者類型信息表

38、</p><p><b>  借閱記錄</b></p><p>  作用:存放所有的借書信息,如表3所示。</p><p><b>  表3 借閱記錄表</b></p><p><b>  圖書庫</b></p><p>  作用:存放圖書的基本信息,

39、如表4所示。</p><p><b>  表4 圖書信息表</b></p><p><b>  5.圖書類型</b></p><p>  作用:存放圖書的類型信息,如表5所示。</p><p>  表5 圖書類型信息表</p><p><b>  用戶庫<

40、/b></p><p>  作用:存放系統(tǒng)操作員信息,如表6所示。</p><p><b>  表6 用戶信息表</b></p><p>  第3章 圖書管理系統(tǒng)詳細設計</p><p><b>  3.1主窗體的設計</b></p><p>  窗體的制作MDI窗體

41、,一般采用系統(tǒng)自動生成的方法。這種方法簡單但是產生很多用不到的信息。所以在此采用非自動生成的方法。在delphi7中,新建一個Application菜單。這樣系統(tǒng)就有了一個普通窗體。通過修改窗體的”FormStyle”屬性為”fsMDIForm”,這樣就可以把這個窗體改為MDI父窗體了。</p><p>  在這個系統(tǒng)中,進入系統(tǒng)后顯示的是一個主窗體,主窗體的背景圖片是一副圖片,同時在主窗體的任務欄中顯示當前的操

42、作者,用戶角色,當前日期和當前時間,并且日期和時間會隨著系統(tǒng)時間的變化而變化。未了操作上的方便,需要在主窗體中增加工具欄,在這里要實現(xiàn)像辦公軟件中類似的工具欄,為了上述目的,在主窗體中增加了一個Timage組件和一個TcoolBar組件,4個Ttoolbar組件,和8個Ttoolbutton組件,一個Ttimer組件和一個TStatusbar組件。系統(tǒng)主界面如圖4:</p><p><b>  圖4

43、主窗體圖</b></p><p>  事件分析及主要代碼設置完成各個組件的屬性后,就可以測試運行程序了。運行程序時,發(fā)現(xiàn)各個菜單沒有實現(xiàn)任何功能,這是因為沒有給組件編寫事件代碼。</p><p>  1.實現(xiàn)的功能是在任務欄中,顯示當前日期和時間。雙擊界面中的TTimer組件,出現(xiàn)的代碼窗體中輸入下面代碼:</p><p>  statusbar1.Pa

44、nels[3].Text:=datetostr(date);</p><p>  statusbar1.Panels[4].Text:=timetostr(time);</p><p>  2.背景圖片的顯示和隱藏</p><p>  N_xtsz_back.Checked:=not N_xtsz_back.Checked;</p><p>

45、  Image1.Visible:=N_xtsz_back.Checked;</p><p><b>  4.系統(tǒng)退出代碼</b></p><p>  Application.terminate;//結束應用程序</p><p>  3.2 登陸窗體設計</p><p>  為了防止其他人員故意或者非故意修改信息。要求系

46、統(tǒng)有一個用戶登陸界面,這也是系統(tǒng)安全性的一個方面。在該界面中,用戶的名稱在一個下拉列表框中,用戶主要選擇操作員名稱就可以了,然后再輸入密碼,當密碼輸入正確時,單擊確定按鈕即可進入系統(tǒng)否則不讓登陸,密碼三次輸入不正確,系統(tǒng)自動退出。界面如圖4:</p><p><b>  圖4 登陸界面圖</b></p><p><b>  主要代碼分析如下:</b&g

47、t;</p><p>  if not query1.Locate('用戶名;密碼',Vararrayof([combobox_name.Text,</p><p>  password.Text]),[]) then</p><p><b>  begin</b></p><p>  Showmessa

48、ge('密碼不正確,請重新輸入!');</p><p>  Li_Login:=Li_Login+1;</p><p>  password.SetFocus;</p><p>  password.SelectAll;</p><p>  //有3次輸入機會,3次不正確系統(tǒng)退出//</p><p> 

49、 if Li_Login >=3 then</p><p><b>  begin</b></p><p>  Showmessage('你是非法用戶,系統(tǒng)退出');</p><p><b>  Close;</b></p><p>  Application.Terminat

50、e;</p><p><b>  end;</b></p><p>  3.3添加記錄窗體設計</p><p>  3.3.1讀者數(shù)據(jù)增加</p><p>  該窗體的作用就是增加讀者信息.讀者信息包括了借書證號、姓名、性別單位、辦證日期、讀者類型。界面如圖5:</p><p>  圖5:讀者信息

51、增加圖</p><p><b>  主要程序代碼如下:</b></p><p>  procedure TForm_dz_input.BitBtn1Click(Sender: TObject);</p><p><b>  var</b></p><p>  S_sql:string;</p&

52、gt;<p><b>  begin</b></p><p>  if dbedit1.Text='' then</p><p><b>  begin</b></p><p>  showmessage('借書證號不能為空');</p><p><

53、;b>  exit;</b></p><p><b>  end ;</b></p><p>  if(length(dbedit1.Text)<>8)then</p><p><b>  begin</b></p><p>  showmessage('你輸入

54、的借書證號格式不對');</p><p><b>  exit;</b></p><p><b>  end;</b></p><p><b>  try</b></p><p>  strtoint(dbedit1.Text);</p><p>

55、;<b>  except</b></p><p>  showmessage('借書證號只能輸入數(shù)字。');</p><p><b>  exit;</b></p><p><b>  end ;</b></p><p>  query3.Close;<

56、/p><p>  query3.SQL.Clear;</p><p>  S_sql:='select *from 讀者庫 where 借書證號='''+dbedit1.Text+'''';</p><p>  query3.SQL.Add(S_sql);</p><p>  que

57、ry3.Open;</p><p>  if query3.RecordCount<>0 then</p><p><b>  begin</b></p><p>  showmessage('該借書證號已經存在。');</p><p><b>  exit;</b>&l

58、t;/p><p><b>  end ;</b></p><p>  if dbedit2.Text='' then</p><p><b>  begin</b></p><p>  showmessage('讀者姓名不能為空。');</p><p&

59、gt;<b>  exit;</b></p><p><b>  end;</b></p><p>  if dbedit4.Text='' then</p><p><b>  begin</b></p><p>  showmessage('讀者單位

60、不能為空。');</p><p><b>  exit;</b></p><p><b>  end;</b></p><p>  query1.ApplyUpdates;</p><p>  showmessage('添加讀者'''+dbedit2.Text

61、+'''成功');</p><p>  query1.Append;</p><p><b>  end;</b></p><p><b>  end.</b></p><p>  3.3.2讀者類型管理</p><p>  該窗體主要是編輻讀

62、者類型的。讀者類型信息包括了類型號(主鍵),類型名稱(在讀者增加窗體中顯示)、借閱期限和借閱的冊數(shù)。要求可以增加,刪除,修改讀者類型就可以了。界面如圖6:</p><p>  圖6:讀者類型管理圖</p><p><b>  主要程序代碼如下:</b></p><p>  procedure Tform_edit_dzlx.BitBtn1Cli

63、ck(Sender: TObject);</p><p><b>  begin</b></p><p>  table1.Append;</p><p><b>  end;</b></p><p>  procedure Tform_edit_dzlx.BitBtn2Click(Sender:

64、TObject);</p><p><b>  begin</b></p><p>  table1.Delete;</p><p><b>  end;</b></p><p>  procedure Tform_edit_dzlx.BitBtn3Click(Sender: TObject);&l

65、t;/p><p><b>  begin</b></p><p>  table1.Append;</p><p><b>  end;</b></p><p>  procedure Tform_edit_dzlx.BitBtn4Click(Sender: TObject);</p>&

66、lt;p><b>  begin</b></p><p><b>  Close;</b></p><p><b>  end;</b></p><p>  procedure Tform_edit_dzlx.FormCreate(Sender: TObject);</p><

67、;p><b>  begin</b></p><p>  table1.CachedUpdates:=true;</p><p><b>  end;</b></p><p><b>  end.</b></p><p>  3.3.3 圖書信息增加</p>

68、<p>  建窗體的作用就是增加圖書信息民。圖書信息包括了圖書編號、圖書類型、圖書名稱、圖書作者、出版社、單價、開本、和進庫日期等信息。圖書類型是通過類型窗估編輯得到的。根據(jù)需要可以在圖書類型編輯窗體中增加和刪除圖書類型。界面如圖7:</p><p>  圖7:圖書信息增加圖</p><p><b>  主要程序代碼如下:</b></p>&

69、lt;p>  procedure Tform_input_book.BitBtn1Click(Sender: TObject);</p><p><b>  var</b></p><p>  S_sql:string;</p><p><b>  begin</b></p><p>  if

70、 dbedit1.Text='' then</p><p><b>  begin</b></p><p>  showmessage('圖書編號不能為空');</p><p><b>  exit;</b></p><p><b>  end;</b

71、></p><p>  if (length(dbedit1.Text)<>13) then</p><p><b>  begin</b></p><p>  showmessage('你輸入的圖書編號格式不對');</p><p><b>  exit;</b>

72、</p><p><b>  end;</b></p><p><b>  Try</b></p><p>  StrToInt64(dbedit1.Text);</p><p><b>  except</b></p><p>  showmessag

73、e('休想蒙混過關!圖書編號只能輸入數(shù)字。');</p><p><b>  exit;</b></p><p><b>  end;</b></p><p>  Query1.Close;</p><p>  query1.SQL.Clear;</p><p&g

74、t;  S_sql:='select *from 圖書信息表 where 圖書編號='+""+dbedit1.Text+"";</p><p>  query1.SQL.Add(S_sql);</p><p>  Query1.Open;</p><p>  if query1.RecordCount<&

75、gt;0 then</p><p><b>  begin</b></p><p>  showmessage('該圖書編號已經存在。');</p><p><b>  exit;</b></p><p><b>  end;</b></p>&l

76、t;p>  if dbedit3.Text='' then</p><p><b>  begin</b></p><p>  showmessage('圖書名不能為空。');</p><p><b>  exit;</b></p><p><b> 

77、 end;</b></p><p>  if dbedit4.Text='' then</p><p><b>  begin</b></p><p>  showmessage('圖書作者不能為空。');</p><p><b>  exit;</b>&

78、lt;/p><p><b>  end;</b></p><p>  if dbedit5.Text='' then</p><p><b>  begin</b></p><p>  showmessage('圖書出版社不能為空。');</p><p

79、><b>  exit;</b></p><p><b>  end;</b></p><p>  if dbedit6.Text='' then</p><p><b>  begin</b></p><p>  showmessage('單價不

80、能為空。');</p><p><b>  exit;</b></p><p><b>  end;</b></p><p>  if dbedit7.Text='' then</p><p><b>  begin</b></p><

81、;p>  showmessage('開本不能為空。');</p><p><b>  exit;</b></p><p><b>  end;</b></p><p>  table1.ApplyUpdates;</p><p>  showmessage('添加圖書&

82、#39;+''''+dbedit3.text+'''''成功');</p><p>  table1.Append;</p><p><b>  end;</b></p><p><b>  end.</b></p><p&

83、gt;  3.3.4 圖書類型管理</p><p>  該窗體用于設置圖書的種類,包括圖類型號(主鍵)和圖書類型的名稱(顯示用)。對于功的要求比較簡單,只要可以增加、刪除、修改即可。界面如圖8:</p><p>  圖8:圖書類型管理圖</p><p><b>  主要程序代碼如下:</b></p><p>  proc

84、edure Tform_edit_booltype.BitBtn1Click(Sender: TObject);</p><p><b>  begin</b></p><p>  table1.Append;</p><p><b>  end;</b></p><p>  procedure T

85、form_edit_booltype.FormCreate(Sender: TObject);</p><p><b>  begin</b></p><p>  table1.CachedUpdates:=true;</p><p><b>  end;</b></p><p>  procedu

86、re Tform_edit_booltype.BitBtn2Click(Sender: TObject);</p><p><b>  begin</b></p><p>  table1.Delete;</p><p><b>  end;</b></p><p>  procedure Tfor

87、m_edit_booltype.BitBtn3Click(Sender: TObject);</p><p><b>  begin</b></p><p>  table1.AApplyUpdates;</p><p><b>  end;</b></p><p>  procedure Tfor

88、m_edit_booltype.BitBtn4Click(Sender: TObject);</p><p><b>  begin</b></p><p><b>  close;</b></p><p><b>  end;</b></p><p><b>  e

89、nd.</b></p><p>  3.3.5圖書借閱歸還窗體</p><p>  該窗體的作用是進行圖書的借閱和歸還操作。在圖書館中每本書都有一個獨立的編號,這個編號是不會重復的。當輸入編號后,系統(tǒng)會自動判斷圖的狀態(tài),是在書庫還是已經外借。界面如圖9:</p><p>  圖9:圖書借閱歸還圖</p><p><b>

90、  主要程序代碼如下:</b></p><p>  procedure Tform_pass_book.FormCreate(Sender: TObject);</p><p><b>  begin</b></p><p>  edit1.MaxLength:=13;</p><p>  edit2.Max

91、Length:=8;</p><p>  edit2.Enabled:=false;</p><p>  bitbtn1.Enabled:=false;</p><p>  bitbtn2.Enabled:=false;</p><p><b>  end;</b></p><p>  proce

92、dure Tform_pass_book.Edit1Change(Sender: TObject);</p><p><b>  var</b></p><p>  S_sql:string;</p><p><b>  begin</b></p><p>  if length(edit1.Tex

93、t)=13 then</p><p><b>  begin</b></p><p>  query1.Close;</p><p>  query1.SQL.Clear;</p><p>  S_sql:='select 圖書信息表.圖書名稱,圖書類型信息表.類型名稱,圖書信息表.圖書編號,圖書信息表.圖書作者

94、,圖書信息表.出版社'+</p><p>  ' from 圖書信息表 inner join 圖書類型信息表 on (圖書信息表.類型號=圖書類型信息表.類型號)'+</p><p>  ' where 圖書編號='+''''+edit1.Text+ "";</p><p&g

95、t;  query1.SQL.Add(S_sql);</p><p>  query1.Open;</p><p>  if query1.RecordCount=1 then</p><p><b>  begin</b></p><p>  query3.Close;</p><p>  qu

96、ery3.SQL.Clear;</p><p>  S_sql:='select * from 借閱記錄信息表 where 圖書編號='+''''+edit1.Text+"";</p><p>  query3.SQL.Add(S_sql);</p><p>  query3.Open;</p

97、><p>  if query3.RecordCount=1 then</p><p><b>  begin</b></p><p>  query2.Close;</p><p>  query2.SQL.Clear;</p><p>  S_sql:= 'select 讀者庫.姓名,讀者

98、類型信息表.類型名稱, 讀者庫.性別,讀者庫.單位,讀者類型信息表.借期'+</p><p>  ' from "讀者庫.DB" 讀者庫 inner join "讀者類型信息表.DB" 讀者類型信息表 on (讀者庫.類型=讀者類型信息表.類型號)'+</p><p>  ' where 借書證號='+'

99、;'''+query3.fieldbyname('借書證號').AsString+"";</p><p>  query2.SQL.Add(S_sql);</p><p>  query2.Open;</p><p>  edit2.Text:=query3.fieldbyname('借書證號

100、9;).AsStringg;</p><p>  bitbtn1.Enabled:=false;</p><p>  bitbtn2.Enabled:=true;</p><p><b>  end</b></p><p><b>  else</b></p><p><

101、;b>  begin</b></p><p>  edit2.Enabled:=true;</p><p>  edit2.SetFocus;</p><p><b>  end</b></p><p><b>  end</b></p><p><b

102、>  end</b></p><p><b>  else</b></p><p><b>  begin</b></p><p>  edit2.Enabled:=false;</p><p>  bitbtn1.Enabled:=false;</p><p&

103、gt;  bitbtn2.Enabled:=false;</p><p>  dbedit1.Text:='';</p><p>  dbedit2.Text:='';</p><p>  dbedit3.Text:'';</p><p>  dbedit4.Text:='';&

104、lt;/p><p>  dbedit5.Text:='';</p><p><b>  end;</b></p><p>  if length(edit1.Text)<13 then</p><p><b>  begin</b></p><p>  

105、edit2.Text:='';</p><p>  dbedit6.Text:='';</p><p>  dbedit7.Text:='';</p><p>  dbedit8.Text:='';</p><p>  dbedit9.Text:='';</

106、p><p><b>  end;</b></p><p><b>  end;</b></p><p>  procedure Tform_pass_book.BitBtn1Click(Sender: TObject);</p><p><b>  var</b></p>

107、;<p>  S_sql:string;</p><p>  D_gh:Tdatetime;</p><p><b>  begin</b></p><p>  if length(edit1.Text)<>13 then</p><p>  showmessage('你輸入的圖書證號不

108、對!');</p><p>  dateseparator:='/';</p><p>  shortdateformat:='m/d/yyyy';</p><p>  query3.Close;</p><p>  query3.SQL.Clear;</p><p>  s_s

109、ql:=' select * from 借閱記錄信息表 where 借書證號='''+Edit2.text+'''and 歸還日期<'''+datetostr(date)+"";</p><p>  query3.SQL.Add(s_sql);</p><p>  query3.Ope

110、n;</p><p>  if query3.RecordCount<>0 then</p><p>  showmessage('該用戶有超期未還的書籍,不能節(jié)約其他書籍。')</p><p><b>  else</b></p><p><b>  begin</b>

111、</p><p>  query4.Close;</p><p>  query4.SQL.Clear;</p><p>  s_sql:='select 讀者類型信息表.借期 from 讀者庫 inner join "讀者類型信息表.DB" 讀者類型信息表 on (讀者庫.類型=讀者類型信息表.類型號) where 借書證號='

112、+''''+edit2.text+"";</p><p>  query4.SQL.Add(s_sql);</p><p>  query4.Open;</p><p>  D_gh:=date+query4.fieldbyname('借期').asinteger;</p><p

113、>  query3.Close;</p><p>  query3.SQL.Clear;</p><p>  S_sql:='insert into 借閱記錄信息表 Values('''+edit2.text+''','''+edit1.text+''',''

114、9;+datetostr(date)+''','''+datetostr(d_gh)+''',0)';</p><p>  query3.SQL.Add(S_sql);</p><p>  query3.ExecSQL;</p><p>  bitbtn1.Enabled:=false;

115、</p><p>  edit1.Text:='';</p><p>  showmessage('借書成功');</p><p><b>  end;</b></p><p><b>  end;</b></p><p>  procedur

116、e Tform_pass_book.BitBtn3Click(Sender: TObject);</p><p><b>  begin</b></p><p><b>  close;</b></p><p><b>  end;</b></p><p>  procedur

117、e Tform_pass_book.BitBtn2Click(Sender: TObject);</p><p><b>  var</b></p><p>  s_tsh,S_sql:string;</p><p>  I_days:Double;</p><p><b>  begin</b>&

118、lt;/p><p>  if query3.FieldByName('歸還日期').AsDateTime>Date then</p><p><b>  begin</b></p><p>  query4.Close;</p><p>  query4.SQL.Clear;</p>&l

119、t;p>  S_sql:='delete from 借閱記錄信息表 where 圖書編號='+''''+edit1.Text+"";</p><p>  query4.SQL.Add(S_sql);</p><p>  query4.ExecSQL;</p><p>  bitbtn2.Ena

120、bled:=false;</p><p>  edit1.Text:='';</p><p>  showmessage('歸還成功');</p><p><b>  end</b></p><p><b>  else</b></p><p>

121、;<b>  begin</b></p><p>  I_days:=date - query3.fieldbyname('歸還日期').AsDateTime;</p><p>  S_tsh:='該書超期'+floattostr(I_days)+'天,確定歸還該書?';</p><p>  if

122、 messagebox(0,pchar(s_tsh),'圖書管理系統(tǒng)',MB_OKCANCEL+MB_ICONQUESTION+MB_DEFBUTTON2)=IDok then</p><p><b>  begin</b></p><p>  query4.Close;</p><p>  query4.SQL.Clear;&

123、lt;/p><p>  S_sql:='delete from 借閱記錄信息表 where 圖書編號='+''''+edit1.Text+"";</p><p>  query4.SQL.Add(s_sql);</p><p>  query4.ExecSQL;</p><p>

124、  bitbtn2.Enabled:=false;</p><p><b>  end</b></p><p><b>  end</b></p><p><b>  end;</b></p><p>  procedure Tform_pass_book.Edit2Chang

125、e(Sender: TObject);</p><p><b>  var</b></p><p>  s_sql:string;</p><p><b>  begin</b></p><p>  if length(edit2.Text)=8 then</p><p>&

126、lt;b>  begin</b></p><p>  query2.Close;</p><p>  query2.SQL.Clear;</p><p>  s_sql:='select 讀者庫.姓名, 讀者類型信息表.類型名稱,讀者庫.性別,讀者庫.單位,讀者類型信息表.借期'+</p><p>  

127、9; from "讀者庫.DB" 讀者庫 inner join "讀者類型信息表.DB" 讀者類型信息表 on (讀者庫.類型=讀者類型信息表.類型號)'+</p><p>  ' where 借書證號='+''''+edit2.Text+"";</p><p>  quer

128、y2.SQL.Add(s_sql);</p><p>  query2.Open;</p><p>  if query2.RecordCount<>0 then</p><p>  bitbtn1.Enabled:=true</p><p><b>  else</b></p><p&g

129、t;  showmessage('你輸入的借書證號有誤!');</p><p><b>  end</b></p><p><b>  else</b></p><p><b>  begin</b></p><p>  dbedit6.Text:='&

130、#39;;</p><p>  dbedit7.Text:='';</p><p>  dbedit8.Text:='';</p><p>  dbedit9.Text:='';</p><p>  bitbtn1.Enabled:=false;</p><p><

131、b>  end;</b></p><p><b>  end;</b></p><p><b>  end.</b></p><p>  3.4數(shù)據(jù)更新窗體設計</p><p>  3.4.1圖書數(shù)據(jù)更新</p><p>  該窗體的作用是修改圖書信息。要修

132、改圖書首先要找到圖書,所以要完成圖書查詢操作。為了方便批量查詢圖書,設置若干個條件(圖書編號、名稱、作者、類型),這幾個條件之間是獨立的,也就是說可以設置這幾個條件中的任何一個或幾個。界面如圖11:</p><p>  圖11:圖書數(shù)據(jù)更新圖</p><p><b>  主要程序代碼如下:</b></p><p>  procedure TFo

133、rm_edit_book.FormCreate(Sender: TObject);</p><p><b>  begin</b></p><p>  query1.CachedUpdates:=true;</p><p>  query1.RequestLive:=true;</p><p>  combobox1.I

134、tems.Add(' ');</p><p>  table1.First;</p><p>  while not table1.Eof do</p><p><b>  begin</b></p><p>  combobox1.Items.Add(table1.fieldbyname('類型

135、名稱').AsString);</p><p>  table1.Next;</p><p><b>  end;</b></p><p>  dbedit8.Enabled:=false;</p><p>  table1.CachedUpdates:=true;</p><p><

136、;b>  end;</b></p><p>  procedure TForm_edit_book.BitBtn1Click(Sender: TObject);</p><p><b>  var</b></p><p>  S_sql:string;</p><p><b>  begin&

137、lt;/b></p><p>  if length(edit1.Text)<>13 then</p><p>  showmessage('你輸入的圖書編號有誤,請輸入13位圖書編號!');</p><p>  query1.Close;</p><p>  query1.SQL.Clear;</p&

138、gt;<p>  s_sql:='select 圖書編號,類型號,圖書名稱,圖書作者,出版社,單價,開本,進庫日期 from 圖書信息表 where 1=1';</p><p>  if not checkbox1.Checked then</p><p><b>  begin</b></p><p>  if

溫馨提示

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

評論

0/150

提交評論