版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要在當(dāng)今的信息時(shí)代,隨時(shí)掌握有效的信息對(duì)人們的成敗氣到了關(guān)鍵的作用,另一方面人類對(duì)知識(shí)的需求也飛速增長(zhǎng)。雖然現(xiàn)代的網(wǎng)絡(luò)技術(shù)可以使人們方便快捷的獲得知識(shí),但書本閱讀起來卻更加方便,所以,在這種形勢(shì)下,書籍就漸漸地成為人們獲取并增長(zhǎng)知識(shí)的主要途徑,而圖書館就理所當(dāng)然的在人們的生活中占據(jù)了一定的位置,如何科學(xué)合理的管理圖書館不但關(guān)系到讀者求知的方便程度,也關(guān)系到圖書管的發(fā)展,因此,開發(fā)一套完善的圖書管理系統(tǒng),是必不可少的了。本文主要是介紹圖書管理系統(tǒng)的環(huán)境、功能作用、所用到的語言、設(shè)計(jì)的方案等各方面的內(nèi)容。主要是讓使用者了解此系統(tǒng),使他們能更好的運(yùn)用本系統(tǒng),使此系統(tǒng)發(fā)揮出應(yīng)有的作用。關(guān)鍵字 圖書管
2、理系統(tǒng) delphi 7.0 sql server 2000數(shù)據(jù)庫(kù)目 錄第一章 緒論41.1緒論41.2 軟件設(shè)計(jì)開發(fā)與開發(fā)平臺(tái)41.2.1 數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)41.2.2 數(shù)據(jù)庫(kù)51.2.3 數(shù)據(jù)庫(kù)管理系統(tǒng)5第二章 系統(tǒng)需求分析62.1 可行性分析62.2 需求分析62.3 功能需求62.3.1功能劃分62.3.2功能描述72.4 安全性需求72.5 系統(tǒng)數(shù)據(jù)流程分析72.6 功能模塊圖8第三章 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)103.1 讀者實(shí)體103.2 圖書實(shí)體103.3 借書實(shí)體e-r圖113.4 系統(tǒng)實(shí)體e-r圖113.5 數(shù)據(jù)庫(kù)設(shè)計(jì)11第四章 系統(tǒng)實(shí)現(xiàn)134.1 系統(tǒng)數(shù)據(jù)庫(kù)模型需分析134.2 各
3、子系統(tǒng)功能分析與程序代碼設(shè)計(jì)134.2.1 系統(tǒng)主界面134.2.2 管理員登錄界面154.2.3 系統(tǒng)管理界面164.2.4 修改圖書類型194.2.5 圖書借閱和歸還214.2.6 新書入庫(kù)284.2.7 添加讀者304.2.8 系統(tǒng)密碼修改334.2.9 修改讀者信息354.2.10 讀者服務(wù)374.2.11 書目檢索界面39結(jié)束語41參考文獻(xiàn)42第一章 緒論1.1緒論隨著學(xué)校規(guī)模的不斷擴(kuò)大,圖書數(shù)量的急劇增加,有關(guān)圖書的信息量也在不斷成倍增長(zhǎng)。面對(duì)龐大的信息量,就需要有圖書管理系統(tǒng)來提高圖書管理工作的效率。通過這樣的系統(tǒng),我們可以做到信息的規(guī)范管理和快速查詢,從而減少了管理方面的工作量
4、。傳統(tǒng)手工的圖書管理,管理過程繁瑣而復(fù)雜,執(zhí)行效率低,并且易于出錯(cuò)。通過這樣的系統(tǒng),我們可以做到信息的規(guī)范管理和快速查詢,實(shí)現(xiàn)了圖書管理的系統(tǒng)化、規(guī)范化和自動(dòng)化,這樣不僅減少了管理工作量,還提高了管理效率,降低了管理成本。隨著科技的飛躍進(jìn)步,對(duì)信息的管理也是越來越規(guī)范,越來越精確。不僅讓信息合理規(guī)范的管理,同時(shí)也方便管理者方便的快速查詢,提高了管理的效率。對(duì)圖書信息進(jìn)行圖書入庫(kù)、借閱登記、借閱查詢、過期提示等這些日常業(yè)務(wù)的需要。高效性的通過系統(tǒng)的實(shí)用,能夠改變舊的圖書管理模式,使對(duì)圖書的管理、借閱、查詢更加方便有效。1.2 軟件設(shè)計(jì)開發(fā)與開發(fā)平臺(tái)1.2.1 數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)是針
5、對(duì)某個(gè)特定目標(biāo),建立再數(shù)據(jù)庫(kù)管理系統(tǒng)之上的計(jì)算機(jī)應(yīng)用系統(tǒng). 組成數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的要素:數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)管理系統(tǒng)(dbms),應(yīng)用程序和用戶. 數(shù)據(jù)庫(kù):強(qiáng)調(diào)數(shù)據(jù);數(shù)據(jù)庫(kù)管理系統(tǒng):強(qiáng)調(diào)系統(tǒng)軟件;數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng):強(qiáng)調(diào)數(shù)據(jù)庫(kù)的整個(gè)運(yùn)行系統(tǒng),是以,某個(gè)特定數(shù)據(jù)庫(kù)為基礎(chǔ)的計(jì)算機(jī)應(yīng)用系統(tǒng),其作用就是使用戶不能直接干預(yù)數(shù)據(jù)庫(kù)而又方便訪問數(shù)據(jù)庫(kù)中的資料. 數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)是系統(tǒng)開發(fā)員通過調(diào)用dbms提供的編程接口開發(fā)出來的.應(yīng)用程序要使用數(shù)據(jù)庫(kù)也必須通過此接口 。 在數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)之前,對(duì)開發(fā)數(shù)據(jù)庫(kù)的基本概念應(yīng)當(dāng)先做下了解,對(duì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)、開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序的步驟、開發(fā)體系及方法都應(yīng)當(dāng)有相當(dāng)清晰的了解和認(rèn)識(shí)。這
6、樣,有利于開發(fā)出一個(gè)長(zhǎng)期適應(yīng)于用戶的軟件產(chǎn)品。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)的一般過程:需求分析;系統(tǒng)設(shè)計(jì);系統(tǒng)實(shí)現(xiàn);系統(tǒng)測(cè)試與維護(hù)??偟膩碚f就是理解用戶的需求,然后,把它們轉(zhuǎn)變?yōu)橛行У臄?shù)據(jù)庫(kù)設(shè)計(jì)。把設(shè)計(jì)轉(zhuǎn)變?yōu)閷?shí)際的數(shù)據(jù)庫(kù),并且這些數(shù)據(jù)庫(kù)帶有功能完備、高效能的應(yīng)用。1.2.2 數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)由dbms(數(shù)據(jù)庫(kù)管理系統(tǒng))處理,dbms則由開發(fā)人員和用戶通過應(yīng)用程序直接或間接地使用。它主要包括四個(gè)要素:用戶數(shù)據(jù)、元數(shù)據(jù)、索引和應(yīng)用元數(shù)據(jù)。本系統(tǒng)采用的數(shù)據(jù)庫(kù)是sql server 2000.下面即是sql server2000介紹:sql server2000是microsoft公司最新開發(fā)的大型關(guān)系數(shù)據(jù)庫(kù)管理
7、系統(tǒng),具有強(qiáng)大的關(guān)系數(shù)據(jù)庫(kù)創(chuàng)建、開發(fā)、設(shè)計(jì)及管理功能。1.2.3 數(shù)據(jù)庫(kù)管理系統(tǒng) 數(shù)據(jù)庫(kù)管理系統(tǒng)(dbms):強(qiáng)調(diào)系統(tǒng)軟件,指數(shù)據(jù)庫(kù)系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。dbms是數(shù)據(jù)庫(kù)系統(tǒng)的核心組成部分。對(duì)數(shù)據(jù)庫(kù)的一切操作,包括定義、更新及各種控制,都是通過dbms進(jìn)行的。dbms總是基于某種數(shù)據(jù)模型,可以把dbms看成是某種數(shù)據(jù)模型在計(jì)算機(jī)系統(tǒng)上的具體實(shí)現(xiàn)。根據(jù)數(shù)據(jù)模型的不同,dbms可以分成層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮偷?。其中sql server2000就是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。 數(shù)據(jù)庫(kù)管理系統(tǒng)(database management system)是一種操縱和管理數(shù)據(jù)庫(kù)的大型軟件,是用于
8、建立、使用和維護(hù)數(shù)據(jù)庫(kù),簡(jiǎn)稱dbms。它對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫(kù)的安全性和完整性。用戶通過dbms訪問數(shù)據(jù)庫(kù)中的數(shù)據(jù),數(shù)據(jù)庫(kù)管理員也通過dbms進(jìn)行數(shù)據(jù)庫(kù)的維護(hù)工作。它提供多種功能,可使多個(gè)應(yīng)用程序和用戶用不同的方法在同時(shí)或不同時(shí)刻去建立,修改和詢問數(shù)據(jù)庫(kù)。dbms從其他兩個(gè)組件接受請(qǐng)求,并把它們翻譯成對(duì)操作系統(tǒng)的命令,以便讀寫物理介質(zhì)上的數(shù)據(jù)。dbms還涉及事務(wù)管理、鎖、備份和恢復(fù)。 第二章 系統(tǒng)需求分析2.1 可行性分析 隨著學(xué)校與廣大企事業(yè)單位內(nèi)部網(wǎng)絡(luò)的廣泛建立,在通用信息平臺(tái)上構(gòu)筑高效實(shí)用的協(xié)同工作和自動(dòng)化辦公應(yīng)用系統(tǒng),有效實(shí)現(xiàn)內(nèi)部知識(shí)管理,已成為眾多用戶的共同需求。
9、 圖書管理系統(tǒng),為學(xué)校與廣大企事業(yè)單位自動(dòng)化辦公提供了一個(gè)較好的解決方案。在開發(fā)過程中,采用了sql server 2000網(wǎng)絡(luò)數(shù)據(jù)庫(kù),使得本系統(tǒng)可以方便的和其他子系統(tǒng)進(jìn)行數(shù)據(jù)交換。同時(shí),注意從軟件的圖形應(yīng)用界面上優(yōu)化軟件質(zhì)量,使得本系統(tǒng)具有較強(qiáng)的可操作性。2.2 需求分析 隨著學(xué)校規(guī)模的不斷擴(kuò)大,圖書數(shù)量的急劇增加,有關(guān)圖書的信息量也在不斷成倍增長(zhǎng)。面對(duì)龐大的信息量,就需要有圖書管理系統(tǒng)來提高圖書管理工作的效率。通過這樣的系統(tǒng),我們可以做到信息的規(guī)范管理和快速查詢,從而減少了管理方面的工作量。 傳統(tǒng)手工的圖書管理,管理過程繁瑣而復(fù)雜,執(zhí)行效率低,并且易于出錯(cuò)。通過這樣的系統(tǒng),我們可以做到信息
10、的規(guī)范管理和快速查詢,實(shí)現(xiàn)了圖書管理的系統(tǒng)化、規(guī)范化和自動(dòng)化,這樣不僅減少了管理工作量,還提高了管理效率,降低了管理成本。2.3 功能需求2.3.1功能劃分圖書管理系統(tǒng)主要實(shí)現(xiàn)以下5方面的功能:a.圖書入庫(kù) b.查詢 c.修改信息 d.圖書借還e.系統(tǒng)管理2.3.2功能描述1書籍管理功能:包括書籍類別管理和書籍信息管理兩部分。2讀者管理部分:這一部分包括對(duì)讀者信息進(jìn)行管理的功能。3借閱管理部分:這一部分包括借書信息管理和還書信息管理兩部分。4系統(tǒng)管理:包括修改系統(tǒng)用戶密碼、增加新用戶以及退出系統(tǒng)等。2.4 安全性需求 每位用戶根據(jù)自己的身份不同,進(jìn)入不同的用戶界面。管理員有權(quán)力行使所有的管理功
11、能,普通用戶只能進(jìn)行一般的查詢。2.5 系統(tǒng)數(shù)據(jù)流程分析圖書管理系統(tǒng)數(shù)據(jù)流程圖如圖2-1所示。讀者基本信息錄入錄入圖書基本信息錄入錄入讀者信息管理圖書信息管理借閱信息錄入圖書借閱管理讀者信息庫(kù)圖書信息庫(kù)圖2-1 系統(tǒng)數(shù)據(jù)流程圖2.6 功能模塊圖本系統(tǒng)包括的模塊主要有如下幾個(gè)部分:圖書管理模塊、借閱管理模塊、讀者管理模塊、系統(tǒng)管理模塊、信息查詢模塊、用戶管理模塊 具體的功能描述如下: 圖書管理:其功能是管理書庫(kù)中圖書的記錄信息,對(duì)入庫(kù)圖書信息進(jìn)行管理,并進(jìn)行查詢。借閱管理:其功能是對(duì)讀者借閱信息進(jìn)行查詢。讀者管理:其功能是對(duì)讀者一般信息進(jìn)行查詢以及維護(hù)。系統(tǒng)管理:其功能是為系統(tǒng)的使用
12、者進(jìn)行帳戶和密碼管理以及基礎(chǔ)數(shù)據(jù)維護(hù)。其子系統(tǒng)描述:1.圖書管理包括圖書入庫(kù)功能,主要整理圖書的數(shù)量、類別和各種相關(guān)的信息等。2.圖書借閱,進(jìn)行借書操作(此操作由管理員完成);當(dāng)用戶要查詢自己的借閱情況時(shí),可進(jìn)行借閱查詢。3.讀者管理包括讀者登記,讀者信息管理,添加讀者借書和還書信息??梢杂涗浶录尤氲淖x者的信息,并且可以對(duì)已經(jīng)存在于數(shù)據(jù)庫(kù)中的讀者的信息進(jìn)行修改,同時(shí)可以進(jìn)行讀者借、還書的管理。4.用戶管理包括修改密碼、新增用戶、刪除用戶可執(zhí)行的系統(tǒng)操作等。5.信息查詢包括圖書查詢、讀者查詢和用戶查詢等功能。通過這些功能,可以通過不同的關(guān)鍵字來對(duì)書庫(kù)中的圖書進(jìn)行查詢,同時(shí)也可以查詢讀者的借閱信息
13、。6.系統(tǒng)管理是用來完成本系統(tǒng)的基本操作,如修改密碼、登錄系統(tǒng)、退出登錄,還有系統(tǒng)簡(jiǎn)介等功能。 其功能模塊圖如下所示圖書管理系統(tǒng)讀者管理功能系統(tǒng)管理功能圖書管理功能借閱管理功能新書入庫(kù)功能圖書類別功能讀者信息功能讀者查詢功能增加用戶密碼修改借書管理功能還書管理功能圖2-2 功能模塊圖第三章 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)e-r模型的“聯(lián)系”用于刻畫實(shí)體之間的關(guān)聯(lián)。一種完整的方式是對(duì)局部結(jié)構(gòu)中任意兩個(gè)實(shí)體類型,依據(jù)需求分析的結(jié)果,考察局部結(jié)構(gòu)中任意兩個(gè)實(shí)體類型之間是否存在聯(lián)系。若有聯(lián)系,進(jìn)一步確定是1:n,m:n,還是1:1等。還要考察一個(gè)實(shí)體類型內(nèi)部是否存在聯(lián)系,兩個(gè)實(shí)體類型之間是否存在聯(lián)系,多個(gè)實(shí)體類型之間
14、是否存在聯(lián)系,等等。根據(jù)上面的設(shè)計(jì)可以規(guī)劃出的實(shí)體有:讀者實(shí)體、圖書實(shí)體和借書信息實(shí)體。3.1 讀者實(shí)體讀者實(shí)體學(xué)號(hào)姓名系別借書證號(hào)證號(hào)性別聯(lián)系電話圖3-1讀者實(shí)體3.2 圖書實(shí)體圖書實(shí)體出版日期數(shù)據(jù)庫(kù)配置文件已經(jīng)安裝到 d:oracleproduct10.2.0,同時(shí)其他選定的安裝組件也已經(jīng)安裝到 d:oracleproduct10.2.0db_1。isql*plus url 為:47:5560/isqlplusisql*plus dba url 為:47:5560/isqlplus/dba證號(hào)出版日期數(shù)據(jù)庫(kù)配置文件已經(jīng)安裝
15、到 d:oracleproduct10.2.0,同時(shí)其他選定的安裝組件也已經(jīng)安裝到 d:oracleproduct10.2.0db_1。isql*plus url 為:47:5560/isqlplusisql*plus dba url 為:47:5560/isqlplus/dba證號(hào)圖書編號(hào)出版日期數(shù)據(jù)庫(kù)配置文件已經(jīng)安裝到 d:oracleproduct10.2.0,同時(shí)其他選定的安裝組件也已經(jīng)安裝到 d:oracleproduct10.2.0db_1。isql*plus url 為:47:5
16、560/isqlplusisql*plus dba url 為:47:5560/isqlplus/dba證號(hào)出版日期數(shù)據(jù)庫(kù)配置文件已經(jīng)安裝到 d:oracleproduct10.2.0,同時(shí)其他選定的安裝組件也已經(jīng)安裝到 d:oracleproduct10.2.0db_1。isql*plus url 為:47:5560/isqlplusisql*plus dba url 為:47:5560/isqlplus/dba證號(hào)作者圖書名稱類別編號(hào)圖3-2 圖書實(shí)體3.3 借書實(shí)體e-r圖借書信息實(shí)體圖
17、書編號(hào)借書證號(hào)借出日期還書日期借出狀態(tài)圖3-3借書實(shí)體3.4 系統(tǒng)實(shí)體e-r圖讀者圖書借閱圖3-4實(shí)體e-r圖3.5 數(shù)據(jù)庫(kù)設(shè)計(jì)由數(shù)據(jù)模型利用sqlsever2000進(jìn)行數(shù)據(jù)庫(kù)的詳細(xì)設(shè)計(jì),本系統(tǒng)設(shè)計(jì)的數(shù)據(jù)庫(kù)名為shop,其基本表的設(shè)計(jì)如下:(1) 學(xué)生信息表字段名稱數(shù)據(jù)類型大小學(xué)號(hào)varchar50姓名varchar20性別varchar4系別varchar5聯(lián)系電話varchar50借書證號(hào)varchar50密碼varchar15(2)圖書明細(xì)表字段名稱數(shù)據(jù)類型大小圖書編號(hào)int50圖書名稱varchar20作者varchar4出版社varchar5出版日期varchar50定價(jià)varcha
18、r50類別編號(hào)varchar15狀態(tài)char6(3)圖書類別字段名稱數(shù)據(jù)類型大小類別編號(hào)smallint2圖書類別nvarchar20(4)用戶字段名稱數(shù)據(jù)類型大小姓名varchar20性別varchar4類型varchar50聯(lián)系電話varchar15密碼varchar50(5)借出信息字段名稱數(shù)據(jù)類型大小借出編號(hào)int4圖書編號(hào)int 4借書證號(hào)varchar50借出日期smalldatetime4借出狀態(tài)bit4第四章 系統(tǒng)實(shí)現(xiàn)4.1 系統(tǒng)數(shù)據(jù)庫(kù)模型需分析關(guān)系圖 圖4-1關(guān)系圖4.2 各子系統(tǒng)功能分析與程序代碼設(shè)計(jì)4.2.1 系統(tǒng)主界面程序運(yùn)行程序以后,就可以看到如圖4-2的程序的主界面
19、,從這個(gè)界面中用戶可以根據(jù)不同的身份進(jìn)行不同的操作。圖4-2 系統(tǒng)主界面程序?qū)崿F(xiàn)相關(guān)代碼:procedure tfrmmain.speedbutton1click(sender: tobject);begin frmadm.show;end;procedure tfrmmain.speedbutton2click(sender: tobject);begin frmreaderser.show;end;procedure tfrmmain.speedbutton3click(sender: tobject);begin frmlookbook.show;end;procedure tfrmma
20、in.speedbutton4click(sender: tobject);var str: string;begin str := '圖書管理系統(tǒng)' + #13; str := str + '作者:李麗麗(l3)' + #13; str := str + '這是我的第一次編程,請(qǐng)大家多多指教!' showmessage(str);end;procedure tfrmmain.speedbutton5click(sender: tobject);begin if messagedlg('確定要退出本系統(tǒng)嗎?', mtinforma
21、tion, mbyes, mbno, 0) = mryes then begin showmessage('謝謝你的使用'); / form1.destroywnd; frmmain.close; end;end;procedure tfrmmain.timer1timer(sender: tobject);begin statusbar1.panels2.text := '日期:' + datetostr(date); statusbar1.panels3.text := '時(shí)間:' + timetostr(time);end;procedur
22、e tfrmmain.skindata1formskin(sender: tobject; aname: string; var doskin: boolean);beginskindata1.active:=true;end;end.4.2.2 管理員登錄界面主程序運(yùn)行后,點(diǎn)擊管理員登錄,跳出管理員登錄界面,輸入用戶名和密碼即可進(jìn)入系統(tǒng)管理的后臺(tái)界面。功能:本模塊的主要功能是對(duì)操作用戶身份的驗(yàn)證,只有系統(tǒng)的合法用戶才能進(jìn)入系統(tǒng)。在進(jìn)行系統(tǒng)登錄過程中,登錄模塊將調(diào)用數(shù)據(jù)庫(kù)里的用戶表,并對(duì)用戶名和密碼進(jìn)行驗(yàn)證,只有輸入了正確的用戶名和密碼后,系統(tǒng)登錄才會(huì)成功。否則退出登錄模塊。并在輸入了錯(cuò)誤的或
23、者是不存在的用戶名和密碼時(shí),系統(tǒng)會(huì)給出出錯(cuò)信息提示,指明登錄過程中的錯(cuò)誤輸入或錯(cuò)誤操作,以便用戶進(jìn)行正確的登錄。其窗體如圖4-3所示:管理員登錄窗體:圖4-3 管理員登錄界面登錄按鈕代碼:procedure tfrmadm.button1click(sender: tobject);begin with dm.adoquery1 do begin close; sql.clear; sql.add('select * from 用戶 where 姓名=:username and 密碼=:pass and 類型=:gly'); parameters.parambyname(
24、9;username').value := edit1.text; parameters.parambyname('pass').value := edit2.text; parameters.parambyname('gly').value := '管理員' open; if recordcount < 1 then begin showmessage('用戶名、密碼錯(cuò)誤或您不是管理員,請(qǐng)重新輸入!'); edit2.text := '' exit; end else begin frmadmin.
25、showmodal; end; end;end;4.2.3系統(tǒng)管理界面管理員登錄成功后會(huì)進(jìn)入如圖4-4的系統(tǒng)管理界面,本模塊的主要功能是實(shí)現(xiàn)管理員對(duì)系統(tǒng)的維護(hù)作用,管理員對(duì)讀者進(jìn)行信息查詢、修改和刪除,對(duì)圖書進(jìn)行注銷和借閱歸還管理。管理員輸入學(xué)號(hào)或姓名可以查詢讀者的信息,輸入圖書編號(hào)或作者可以查詢圖書的信息。圖4-4 系統(tǒng)管理界面程序相關(guān)代碼:procedure tfrmadmin.bitbtn3click(sender: tobject);begin frmaddreader.show;end;procedure tfrmadmin.button1click(sender: tobject)
26、;begin frmmodifyreaderinfo.show;end;procedure tfrmadmin.button2click(sender: tobject);begin frmnewbook.show;end;procedure tfrmadmin.button4click(sender: tobject);begin frmlendbook.show;end;procedure tfrmadmin.button5click(sender: tobject);begin frmyy.show;end;procedure tfrmadmin.button6click(sender:
27、 tobject);begin frmmodifypsw.show;end;procedure tfrmadmin.button7click(sender: tobject);begin if messagedlg('確定要退出嗎?', mtinformation, mbyes, mbno, 0) = mryes then close;end;procedure tfrmadmin.button9click(sender: tobject);begin adotable1.close; adotable1.filtered := false; if combobox1.text
28、 = '學(xué)號(hào)' then begin adotable1.filter := '學(xué)號(hào)=''' + edit1.text + '''' adotable1.filtered := true; adotable1.open; end else begin adotable1.filter := '姓名=''' + edit1.text + '''' adotable1.filtered := true; adotable1.open; end;end;pr
29、ocedure tfrmadmin.button8click(sender: tobject);begin frmreturnbook.show;end;procedure tfrmadmin.button10click(sender: tobject);begin begin adotable2.close; adotable2.filtered := false; if combobox2.text = '圖書編號(hào)' then begin adotable2.filter := '圖書編號(hào)=''' + edit2.text + '
30、39;'' adotable2.filtered := true; adotable2.open; end else begin adotable2.filter := '作者=''' + edit2.text + '''' adotable2.filtered := true; adotable2.open; end; end;end;procedure tfrmadmin.bitbtn4click(sender: tobject);begin if application.messagebox('確實(shí)要
31、刪除記錄?該命令不可取消!', '刪除記錄', mb_okcancel) = idok then adotable1.delete else abort;end;procedure tfrmadmin.button3click(sender: tobject);var strbookid: string;begin/更新圖書信息表注銷標(biāo)志 if combobox2.text = '圖書編號(hào)' then begin strbookid := trim(edit2.text); dm.queryreader.close; dm.queryreader.sql
32、.clear; strsql := 'update 圖書明細(xì)表 set 狀態(tài)=''注銷'' where 圖書編號(hào)=' + strbookid; dm.queryreader.sql.text := strsql; dm.queryreader.execsql; dm.queryreader.close; if dm.queryreader.rowsaffected > 0 then showmessage('該書注銷成功!') else showmessage('該書注銷失?。?#39;); end;end;proc
33、edure tfrmadmin.button11click(sender: tobject);begin frmbooktype.show;end;end.4.2.4 修改圖書類型在系統(tǒng)管理界面中點(diǎn)擊修改圖書類型可進(jìn)入如圖4-5的編輯圖書類別的界面,本模塊主要實(shí)現(xiàn)管理員對(duì)圖書類別進(jìn)行刪除和添加的管理功能。圖4-5 修改圖書類型界面確定按鈕代碼:procedure tfrmbooktype.btnsureclick(sender: tobject);begin if edttypeid.text = '' then begin showmessage('類別編號(hào)不能為空!
34、'); edttypeid.setfocus; exit; end; if edtbooktype.text = '' then begin showmessage('類別名稱不能為空!'); edtbooktype.setfocus; exit; end; dm.querybooktype.close; dm.querybooktype.sql.clear; dm.querybooktype.sql.text := 'insert into 圖書類別(類別編號(hào),圖書類別)' + 'values(:id,:name)' d
35、m.querybooktype.parameters.parambyname('id').value:=trim(edttypeid.text); dm.querybooktype.parameters.parambyname('name').value:=trim(edtbooktype.text);dm.querybooktype.sql.text:='update 圖書類別 set (類別編號(hào),圖書類別)'+'values(:id,:name)'dm.querybooktype.parameters.parambyname(
36、'id').value:=trim(edttypeid.text);dm.querybooktype.parameters.parambyname('name').value:=trim(edtbooktype.text); dm.querybooktype.execsql; dm.querybooktype.close; dm.querybooktype.sql.clear; dm.querybooktype.sql.text :='select * from 圖書類別' dm.querybooktype.execsql; dm.querybo
37、oktype.open;end;刪除按鈕代碼:procedure tfrmbooktype.btndeleteclick(sender: tobject);begin if application.messagebox('是否刪除記錄?', '確定', mb_okcancel) = idok then dm.datasourcebooktype.dataset.delete;end;4.2.5 圖書借閱和歸還本模塊主要實(shí)現(xiàn)的功能是讀者對(duì)圖書的借閱和歸還:(1)圖書借閱模塊 輸入圖書編號(hào)按回車圖書信息會(huì)自動(dòng)顯示,再輸入借書證號(hào)按回車會(huì)顯示已借書數(shù),如圖4-6所示:
38、圖4-6 借閱圖書界面借閱按鈕代碼:procedure tfrmlendbook.button1click(sender: tobject);var strbookid: string;begin if editreaderid.text = '' then begin showmessage('借書證號(hào)不能為空!'); editreaderid.setfocus; exit; end; if editbookid.text = '' then begin showmessage('圖書編號(hào)不能為空!'); editbookid.
39、setfocus; exit; end; if getbookcount(editbookid.text) <> 0 then begin showmessage('此書已經(jīng)被借出!'); exit; end else begin strbookid := trim(editbookid.text); dm.queryborrow.close; dm.queryborrow.sql.clear; dm.queryborrow.sql.text := 'update 借出信息 set 借出狀態(tài)=1 where 圖書編號(hào)= '+ strbookid; d
40、m.queryborrow.close; dm.queryborrow.sql.clear; dm.queryborrow.sql.text := 'insert into 借出信息(圖書編號(hào),借書證號(hào),借出日期,借出狀態(tài))values(:bookid,' + ':readerid,:time,1)'dm.queryborrow.parameters.parambyname('bookid').value:=trim(editbookid.text); dm.queryborrow.parameters.parambyname('read
41、erid').value:=trim(editreaderid.text); dm.queryborrow.parameters.parambyname('time').value:=datetimepicker1.time; dm.queryborrow.execsql; dm.queryborrow.close; /更新圖書信息表在庫(kù)標(biāo)志 dm.queryreader.close; dm.queryreader.sql.clear; strsql := 'update 圖書明細(xì)表 set 狀態(tài)=''借出'' where 圖書編
42、號(hào)= ' + strbookid; dm.queryreader.sql.text := strsql; dm.queryreader.execsql; dm.queryreader.close; end; if messagedlg('借閱成功,還有要借的書籍嗎?', mtconfirmation, mbyes, mbno, 0) = mryes then begin editbookid.text := '' editreaderid.text := '' editmax.text := '' dbedit3.text
43、 := '' dbedit4.text := '' dbedit5.text := '' dbedit6.text := '' dbedit7.text := '' editbookid.setfocus; end;end;其他相關(guān)實(shí)現(xiàn)代碼:procedure tfrmlendbook.editbookidkeypress(sender: tobject; var key: char);begin if key = #13 then begin if viewbook(editbookid.text) = fals
44、e then begin showmessage('沒有此書, 請(qǐng)重新選擇!'); exit; end; dm.querybook.filtered := false; dm.querybook.filter := '圖書編號(hào)=''' + editbookid.text + '''' dm.querybook.filtered := true; end;end;function tfrmlendbook.viewbook(bookid: string): boolean;var query: tadoquery;b
45、egin query := tadoquery.create(self); query.connection := dm.adoconnection1; query.sql.add('select * from 圖書明細(xì)表 where 圖書編號(hào)=:id'); query.parameters.parambyname('id').value := bookid; query.open; if query.recordcount = 0 then begin result := false; ; exit; end else result := true;end;f
46、unction tfrmlendbook.viewuser(user: string): boolean;var query1: tadoquery;begin query1 := tadoquery.create(self); query1.connection := dm.adoconnection1; query1.sql.add('select * from 學(xué)生信息表 where 借書證號(hào)=:id'); query1.parameters.parambyname('id').value := user; query1.open; if query1.r
47、ecordcount = 0 then begin result := false; exit; end else result := true;end;procedure tfrmlendbook.editreaderidkeypress(sender: tobject; var key: char);begin if key = #13 then begin editmax.text := inttostr(getowncount(editreaderid.text); if viewuser(editreaderid.text) = false then begin showmessag
48、e('沒有此用戶, 請(qǐng)重新選擇!'); exit; end; end;end;function tfrmlendbook.getowncount(userid: string): integer;var query2: tadoquery;begin try query2 := tadoquery.create(self); query2.connection := dm.adoconnection1; query2.sql.add('select count(借書證號(hào)) from 借出信息 where 借書證號(hào)=:id '); query2.parameter
49、s.parambyname('id').value := userid; query2.open; result := query2.fields0.value; query2.close; query2.free; except result := 0; end;end;function tfrmlendbook.getbookcount(bookid: string): integer;var query2: tadoquery;begin try query2 := tadoquery.create(self); query2.connection := dm.adoco
50、nnection1; query2.sql.add('select count(圖書編號(hào)) from 借出信息 where 圖書編號(hào)=:id and 借出狀態(tài)=1'); query2.parameters.parambyname('id').value := bookid; query2.open; result := query2.fields0.value; query2.close; query2.free; except result := 0; end;end;(2)圖書歸還模塊輸入圖書編號(hào)按回車圖書信息會(huì)自動(dòng)顯示,再輸入借書證號(hào)按回車會(huì)顯示已借出日期
51、和還書日期以及是否超期的信息提示,如圖4-7所示:圖4-7 圖書歸還界面歸還按鈕代碼 :procedure tfrmreturnbook.button2click(sender: tobject);var borrowbookid: string; bookid: string; strsql: string; strbookid: string; strdate:string;begin strdate:=trim(edttoday.text); if editreaderid.text = '' then begin showmessage('借書證號(hào)不能為空!
52、39;); editreaderid.setfocus; exit; end; if editbookid.text = '' then begin showmessage('圖書編號(hào)不能為空!'); editbookid.setfocus; exit; end; borrowbookid := trim(editreaderid.text); bookid := trim(editbookid.text); if (borrowbookid <> '') and (bookid <> '') then b
53、egin querydelete.close; querydelete.sql.clear; strsql := 'update 借出信息 set 借出狀態(tài)=0 ,還書日期=''' + strdate + ''' where 圖書編號(hào) =' + bookid + ' and 借書證號(hào)=''' + borrowbookid + ''' and 借出狀態(tài)=1 ' querydelete.sql.add(strsql); querydelete.execsql; if qu
54、erydelete.rowsaffected > 0 then begin showmessage('還書成功!'); /更新圖書信息表在庫(kù)標(biāo)志 strbookid := trim(editbookid.text); dm.queryreader.close; dm.queryreader.sql.clear; strsql := 'update 圖書明細(xì)表 set 狀態(tài)=''在庫(kù)'' where 圖書編號(hào)=' + strbookid; dm.queryreader.sql.text := strsql; dm.queryreader.execsql; dm.queryreader.close; end else showmessage('此書已還過!'); end;end;其它相關(guān)實(shí)現(xiàn)代碼:procedure tfrmreturnbook.editbookidkeypress(sender: tobject; var key: char);begin if key = #13 then begin if viewbook(editbookid.text) = false then begin showmessage('
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年八年級(jí)物理下冊(cè) 第六章 常見的光學(xué)儀器 三 生活中的透鏡教案 (新版)北師大版
- 高考地理一輪復(fù)習(xí)第十五章城市、產(chǎn)業(yè)與區(qū)域發(fā)展課件
- 宗祠落成典禮活動(dòng)合同(2篇)
- 房屋買賣合同(2篇)
- 趙州橋電子課件
- 語文培訓(xùn) 課件
- 第13課 《唐詩五首》-八年級(jí)語文上冊(cè)同步備課精講(統(tǒng)編版)
- 第10課 《蘇武傳》-高二語文大單元教學(xué)同步備課(統(tǒng)編版選擇性必修中冊(cè))
- 西京學(xué)院《運(yùn)營(yíng)管理》2022-2023學(xué)年第一學(xué)期期末試卷
- 西京學(xué)院《圖形設(shè)計(jì)》2022-2023學(xué)年第一學(xué)期期末試卷
- 一汽-夏利48pin維修手冊(cè)-ver
- 《自然語言處理課程設(shè)計(jì)》課程教學(xué)大綱
- 中國(guó)風(fēng)書香校園宣傳主題班會(huì)PPT
- 妊娠劇吐課件
- 世界足球日介紹主題班會(huì)模板課件
- 電大學(xué)前教育本教育實(shí)習(xí)教學(xué)活動(dòng)設(shè)計(jì)
- 河北省廊坊市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 農(nóng)業(yè)合作社盈余及盈余分配表
- 學(xué)校班級(jí)圖書箱管理制度
- 寫給老婆最催淚挽回感情的信范文(5篇)
- 煤化工企業(yè)設(shè)備設(shè)施風(fēng)險(xiǎn)分級(jí)管控清單參考模板范本
評(píng)論
0/150
提交評(píng)論