图书管理系(附源码PPT)
圖書(shū)管理系統(tǒng)
- 1 緒 論
- 1.1 研究背景
- 1.2 研究意義
- 1.3 相關(guān)研究現(xiàn)狀
- 1.3.1 高校圖書(shū)管理面臨的問(wèn)題
- 1.3.2 信息化為圖書(shū)管理帶來(lái)新變化
- 2 相關(guān)技術(shù)
- 2.1 JSP 概述
- 2.2 MySQL 數(shù)據(jù)庫(kù)技術(shù)
- 2.3 Spring
- 2.4 SpringMVC
- 2.5 Dbcp
- 2.6 Maven
- 3 系統(tǒng)分析
- 3.1 需求分析
- 3.1.1 系統(tǒng)的功能需求分析
- 3.1.2 系統(tǒng)的非功能需求分析
- 3.2 可行性分析
- 3.2.1 經(jīng)濟(jì)可行性
- 3.2.2 技術(shù)可行性
- 3.2.3 操作可行性
- 4 系統(tǒng)設(shè)計(jì)
- 4.1概要設(shè)計(jì)
- 4.1.1 系統(tǒng)功能描述
- 4.1.2 系統(tǒng)功能模塊
- 4.2模塊設(shè)計(jì)
- 4.2.1 讀者模塊
- 4.2.2 圖書(shū)管理員模塊
- 4.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
- 4.3.1 概念結(jié)構(gòu)設(shè)計(jì)
- 4.3.2 邏輯結(jié)構(gòu)設(shè)計(jì)
- 4.3.3 物理結(jié)構(gòu)設(shè)計(jì)
- 5 系統(tǒng)實(shí)現(xiàn)
- 5.1 詳細(xì)設(shè)計(jì)
- 5.1.1 讀者登錄模塊
- 5.1.2 讀者搜索圖書(shū)模塊
- 5.1.3 讀者個(gè)人信息編輯模塊
- 5.1.4 我的借還日志模塊
- 5.1.5 讀者修改密碼模塊
- 5.1.6 管理員對(duì)圖書(shū)的增刪改查模塊
- 5.1.7 管理員對(duì)讀者信息的增刪改查模塊
- 5.1.8 管理員對(duì)借還日志的操作模塊
- 5.2 實(shí)現(xiàn)結(jié)果
- 5.2.1 登錄模塊
- 5.2.2 讀者模塊
- 5.2.3 管理員模塊
- 6 測(cè)試
- 6.1 系統(tǒng)測(cè)試
- 6.1.1 測(cè)試目的
- 6.1.2 測(cè)試方法
- 6.1.3 測(cè)試的意義
- 6.2 系統(tǒng)功能測(cè)試
- 6.3 系統(tǒng)性能測(cè)試
- 設(shè)計(jì)總結(jié)和心得體會(huì)
- 參考文獻(xiàn)
1 緒 論
1.1 研究背景
??作為專(zhuān)用于特定領(lǐng)域的信息管理系統(tǒng),圖書(shū)管理系統(tǒng)也被稱(chēng)為圖書(shū)館的自動(dòng)化、信息化集成系統(tǒng),圖書(shū)管理系統(tǒng)是現(xiàn)代化信息發(fā)展的必然產(chǎn)物,也是圖書(shū)館發(fā)揮信息服務(wù)功能的基礎(chǔ)設(shè)施[1]。高校是圖書(shū)資源的重要聚集地,伴隨著改革開(kāi)放為高等教育帶來(lái)的大發(fā)展,高校圖書(shū)館建設(shè)也迎來(lái)了快速發(fā)展階段和難得的發(fā)展契機(jī)。國(guó)內(nèi)眾多高校圖書(shū)館搶抓機(jī)遇,進(jìn)一步擴(kuò)充豐富的文獻(xiàn)資源,同時(shí),積極應(yīng)用最前沿的信息技術(shù),提高高校圖書(shū)館的服務(wù)職能。
1.2 研究意義
??自上世紀(jì)八十年代以來(lái),計(jì)算機(jī)技術(shù)、微電子技術(shù)以及網(wǎng)絡(luò)通信技術(shù)的迅猛發(fā)展,對(duì)圖書(shū)館建設(shè)的自動(dòng)化和數(shù)字化起到了不可估量的推動(dòng)作用。而傳媒技術(shù)的發(fā)展,使得高校圖書(shū)館藏資源漸進(jìn)豐富,除了傳統(tǒng)意義上的書(shū)籍之外,光盤(pán)、電子出版物等數(shù)字化產(chǎn)品的出現(xiàn),館藏資源呈現(xiàn)出了印刷型與電子型資源并存的局面,這也推進(jìn)了數(shù)字化圖書(shū)館建設(shè)的步伐[2]。以計(jì)算機(jī)技術(shù)為依托設(shè)計(jì)開(kāi)發(fā)數(shù)字化管理系統(tǒng),是數(shù)字化建設(shè)的基本發(fā)展方向,對(duì)于促進(jìn)圖書(shū)管理信息化、網(wǎng)絡(luò)化、共享化具有重要的研究?jī)r(jià)值和實(shí)際意義。
??健全完善服務(wù)體系,充分開(kāi)展資源共享,使館藏資源作用最大化,這是高校圖書(shū)館面臨的共同課題和難題,而信息化技術(shù)的飛速發(fā)展,無(wú)疑為這一難題提供了有效的解決途徑[3]。依托網(wǎng)絡(luò)環(huán)境建設(shè)網(wǎng)絡(luò)基礎(chǔ)設(shè)施,開(kāi)發(fā)高校圖書(shū)管理系統(tǒng),開(kāi)展包括網(wǎng)上圖書(shū)預(yù)約、催還和續(xù)借服務(wù)、網(wǎng)上館際互借和文獻(xiàn)傳遞服務(wù)、網(wǎng)上信息資源導(dǎo)引服務(wù)等,成為國(guó)內(nèi)眾多高校紛紛采取的措施??梢哉f(shuō),在高等學(xué)校圖書(shū)館信息化建設(shè)的進(jìn)程中,圖書(shū)管理系統(tǒng)發(fā)揮了重要的作用,成為引導(dǎo)讀者便捷、準(zhǔn)確獲取和共享資源的保證。
??目前,圖書(shū)管理系統(tǒng)并不是新鮮事物,但是早期的單機(jī)版系統(tǒng)早已經(jīng)不能夠適應(yīng)網(wǎng)絡(luò)時(shí)代化的新要求,基于C/S模式的系統(tǒng)也隨著Java、Jsp等技術(shù)的興起日漸被摒棄。Jsp、JavaBean、Servlet是電子商務(wù)開(kāi)發(fā)的主流,本文使用Jsp開(kāi)發(fā)高校圖書(shū)管理系統(tǒng),從系統(tǒng)結(jié)構(gòu),功能需求,技術(shù)可行性等考慮,開(kāi)發(fā)具有實(shí)際使用價(jià)值的圖書(shū)管理系統(tǒng)。
1.3 相關(guān)研究現(xiàn)狀
1.3.1 高校圖書(shū)管理面臨的問(wèn)題
1、館藏圖書(shū)面臨嚴(yán)重的"老化"危機(jī)
??目前,國(guó)內(nèi)高校的發(fā)展都對(duì)圖書(shū)館藏資源進(jìn)行了明確要求和規(guī)定,在這種數(shù)量壓力下,圖書(shū)資源的質(zhì)量難以得到有效的保證。削減了圖書(shū)資源的利用效率,也為圖書(shū)管理增加了難度。
2、信息化發(fā)展程度不足
??全球信息化、網(wǎng)絡(luò)一體化的到來(lái),電子資源呈現(xiàn)噴薄之勢(shì),圖書(shū)的概念大為擴(kuò)展,種類(lèi)也日益豐富,不僅包含過(guò)去傳統(tǒng)的紙質(zhì)圖書(shū),更多的是増加了電子媒介。電子化的資源為圖書(shū)管理帶來(lái)了新的難題,信息化的管理方式勢(shì)在必行。
3.共享程度和開(kāi)放程度不高
??信息化不足導(dǎo)致難以提高館藏資源的開(kāi)放度,也就影響了資源的共享利用。圖書(shū)資源作為一種社會(huì)服務(wù),在為高校師生提供服務(wù)的同時(shí),適度對(duì)外提供共享,不僅是高等學(xué)校開(kāi)放發(fā)展的一種方式,也將有利于開(kāi)闊校內(nèi)師生的思維模式。
1.3.2 信息化為圖書(shū)管理帶來(lái)新變化
1.資源內(nèi)涵發(fā)生根本性變化
??從某種程度上來(lái)講,電子資源對(duì)用戶(hù)的重要性更大,因?yàn)槠浯鎯?chǔ)、使用、共享上的便捷性,使其在目前讀者中更為受寵。因此,縱然紙質(zhì)資源目前仍為圖書(shū)主體,但電子資源的發(fā)展速度卻不容小視。
2.圖書(shū)管理有了更為簡(jiǎn)便的方式
??文獻(xiàn)借閱是圖書(shū)館為用戶(hù)提供服務(wù)的集中體現(xiàn),在傳統(tǒng)的方式中,用戶(hù)需要到圖書(shū)館中進(jìn)行文獻(xiàn)的查閱,得到感興趣的書(shū)目之后,填寫(xiě)借閱信息單,辦理相關(guān)的借閱手續(xù),效率極為低下。而信息化的圖書(shū)管理,這一系列操作在客戶(hù)端由讀者自行即可完成,節(jié)約過(guò)程方便、快捷,圖書(shū)館也可以通過(guò)互聯(lián)網(wǎng)提供不間斷的服務(wù),大大提高服務(wù)效率。
3.檢索方式發(fā)生巨大變化
??各種檢索工具的出現(xiàn),為用戶(hù)提供了不同形式、不同類(lèi)型的檢索功能,極大地方便了館藏資源信息的獲取和檢索。交互界面、菜單選項(xiàng)、鼠標(biāo)操作等應(yīng)用,使得信息檢索更為簡(jiǎn)潔和容易,用戶(hù)只需要根據(jù)提示進(jìn)行簡(jiǎn)單的操作,便可以實(shí)現(xiàn)較為復(fù)雜的檢索功能,并且這種檢索速度是手工方式無(wú)法比擬的,消除了手工檢索在效率上和應(yīng)用中的不便。
2 相關(guān)技術(shù)
2.1 JSP 概述
JSP全名為Java Server
??Pages,中文名叫java服務(wù)器頁(yè)面,其根本是一個(gè)簡(jiǎn)化的Servlet設(shè)計(jì),它 是由Sun
Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)[4]。JSP技術(shù)有點(diǎn)類(lèi)似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件,后綴名為(*.jsp)。
用JSP開(kāi)發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。
??JSP技術(shù)使用Java編程語(yǔ)言編寫(xiě)類(lèi)XML的tags和scriptlets,來(lái)封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯[5]。網(wǎng)頁(yè)還能通過(guò)tags和scriptlets訪
問(wèn)存在于服務(wù)端的資源的應(yīng)用邏輯。
??JSP將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)的顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開(kāi)發(fā)變得迅速和容易。JSP(JavaServerPages)是一種動(dòng)態(tài)頁(yè)面技術(shù),它的主要目的是將表示邏輯從Servlet中分離出來(lái)[6]。
2.2 MySQL 數(shù)據(jù)庫(kù)技術(shù)
??MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQLAB 公司開(kāi)發(fā),屬于 Oracle旗下產(chǎn)品。MySQL是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS(Relational Database Management System,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))應(yīng)用軟件之一。
??MySQL是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。
??MySQL所使用的 SQL 語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型和大型網(wǎng)站的開(kāi)發(fā)都選擇MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。
2.3 Spring
??Spring是一個(gè)開(kāi)放源代碼的設(shè)計(jì)層面框架,他解決的是業(yè)務(wù)邏輯層和其他各層的松耦合問(wèn)題,因此它將面向接口的編程思想貫穿整個(gè)系統(tǒng)應(yīng)用[7]。Spring是于2003年興起的一個(gè)輕量級(jí)的Java 開(kāi)發(fā)框架,由RodJohnson創(chuàng)建。簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)分層的JavaSE/EE full-stack(一站式) 輕量級(jí)開(kāi)源框架。
2.4 SpringMVC
??Spring MVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在Spring Web Flow里面。Spring 框架提供了構(gòu)建 Web 應(yīng)用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構(gòu),可以選擇是使用內(nèi)置的 Spring Web 框架還可以是 Struts 這樣的 Web 框架。
??Spring 框架提供了構(gòu)建 Web 應(yīng)用程序的全功能 MVC 模塊。 使用 Spring可插入的 MVC 架構(gòu),可以選擇是使用內(nèi)置的 Spring Web 框架還是 Struts這樣的 Web 框架[8]。通過(guò)策略接口,Spring框架是高度可配置的,而且包含多種視圖技術(shù),例如 JavaServer
Pages(JSP)技術(shù)、Velocity、Tiles、iText 和 POI。Spring MVC框架并不知道使用的視圖,所以不會(huì)強(qiáng)迫您只使用 JSP 技術(shù)。Spring MVC分離了控制器、模型對(duì)象、分派器以及處理程序?qū)ο蟮慕巧?#xff0c;這種分離讓它們更容易進(jìn)行定制。
2.5 Dbcp
??DBCP(DataBase ConnectionPool)數(shù)據(jù)庫(kù)連接池,是Java數(shù)據(jù)庫(kù)連接池的一種,由Apache開(kāi)發(fā),通過(guò)數(shù)據(jù)庫(kù)連接池,可以讓程序自動(dòng)管理數(shù)據(jù)庫(kù)連接的釋放和斷開(kāi)。
??DBCP(DataBase connection pool)數(shù)據(jù)庫(kù)連接池。是 Apache 上的一個(gè) Java連接池項(xiàng)目,也是 tomcat使用的連接池組件。單獨(dú)使用DBCP需要2個(gè)包:commons-dbcp.jar和commons-pool.jar。由于建立數(shù)據(jù)庫(kù)連接是一種非常耗時(shí)、耗資源的行為,所以通過(guò)連接池預(yù)先同數(shù)據(jù)庫(kù)建立一些連接,放在內(nèi)存中,應(yīng)用程序需要建立數(shù)據(jù)庫(kù)連接時(shí)直接到連接池中申請(qǐng)一個(gè)就行,使用完畢后再歸還到連接池中。
2.6 Maven
Maven項(xiàng)目對(duì)象模型(POM),可以通過(guò)一小段描述信息來(lái)管理項(xiàng)目的構(gòu)建,報(bào)告和文檔的項(xiàng)目管理軟件。
??Maven 除了以程序構(gòu)建能力為特色之外,還提供高級(jí)項(xiàng)目管理工具。由于 Maven的缺省構(gòu)建規(guī)則有較高的可重用性,所以常常用兩三行 Maven構(gòu)建腳本就可以構(gòu)建簡(jiǎn)單的項(xiàng)目[9]。由于 Maven 的面向項(xiàng)目的方法,許多Apache Jakarta 項(xiàng)目發(fā)文時(shí)使用 Maven,而且公司目前采用 Maven的比例在持續(xù)增長(zhǎng)。
??Maven這個(gè)單詞來(lái)自于意第緒語(yǔ)(猶太語(yǔ)),意為知識(shí)的積累,最初在JakataTurbine項(xiàng)目中用來(lái)簡(jiǎn)化構(gòu)建過(guò)程。當(dāng)時(shí)有一些項(xiàng)目(有各自Antbuild文件),僅有細(xì)微的差別,而JAR文件都由CVS來(lái)維護(hù)。于是希望有一種標(biāo)準(zhǔn)化的方式構(gòu)建項(xiàng)目,一個(gè)清晰的方式定義項(xiàng)目的組成,一個(gè)容易的方式發(fā)布項(xiàng)目的信息,以及一種簡(jiǎn)單的方式在多個(gè)項(xiàng)目中共享JARs。
3 系統(tǒng)分析
3.1 需求分析
3.1.1 系統(tǒng)的功能需求分析
(1) 圖書(shū)借閱者的功能需求分析
??圖書(shū)借閱者的需求是查詢(xún)圖書(shū)室所存的圖書(shū)、個(gè)人借閱情況及個(gè)人信息的修改。
??圖書(shū)借閱者可直接查看圖書(shū)館圖書(shū)情況,如果圖書(shū)借閱者根據(jù)本人借書(shū)證號(hào)和密碼登錄系統(tǒng),還可以進(jìn)行本人借書(shū)情況的查詢(xún)和維護(hù)部分個(gè)人信息。
??查詢(xún)圖書(shū)館的所有藏書(shū)信息(書(shū)名、作者、出版社、ISBN、價(jià)格、剩余數(shù)量以及詳情) ;查看個(gè)人信息(包括個(gè)人信息情況、查詢(xún)館藏圖書(shū)信息、借閱圖書(shū)信息、借閱圖書(shū)歸還信息、圖書(shū)借還日志) ; 借閱者修改個(gè)人信息。
(2) 圖書(shū)管理員的功能需求分析
??圖書(shū)館管理人員的功能,包括對(duì)圖書(shū)借閱者、圖書(shū)信息進(jìn)行管理和維護(hù),及系統(tǒng)狀態(tài)的查看、維護(hù)等。
??對(duì)現(xiàn)有藏書(shū)的信息操作(包括查詢(xún)圖書(shū)信息、添加圖書(shū)信息修改圖書(shū)信息、刪除圖書(shū)信息) ;對(duì)新進(jìn)藏書(shū)信息的操作(圖書(shū)的編號(hào)、圖書(shū)名稱(chēng)、著作者出版信息) ;藏書(shū)借出與歸還操作;查看借閱者信息操作(借閱者的編號(hào)、借閱者姓名、圖書(shū)名稱(chēng)) ;借閱者身份管理操作(增加借閱者、修改借閱者信息、刪除借閱者信息)。
3.1.2 系統(tǒng)的非功能需求分析
(1)安全性。在當(dāng)今網(wǎng)絡(luò)普及的社會(huì),網(wǎng)絡(luò)安全問(wèn)題一直是人們關(guān)注的問(wèn)題。一個(gè)系統(tǒng)更要考慮安全問(wèn)題。在網(wǎng)絡(luò)安全方面除了物理設(shè)備一些的安全防范外,還可以通過(guò)軟件防止一些非授權(quán)的損害。在程序方面的網(wǎng)絡(luò)安全我們可以從用戶(hù)權(quán)限、動(dòng)態(tài)口令、數(shù)據(jù)庫(kù)字段加密等入手[10]。出于安全角度的考慮,在本系統(tǒng)內(nèi)中使用了用戶(hù)權(quán)限的方法,為用戶(hù)的敏感資料保密。
(2)可靠性??煽烤褪窃谝?guī)定的時(shí)間和條件下,保持軟件的性能水平的穩(wěn)定性??煽啃猿巳蒎e(cuò)性好、恢復(fù)性強(qiáng)外,還與系統(tǒng)的運(yùn)行環(huán)境、平臺(tái)的選擇、代碼的質(zhì)量息息相關(guān)。越可靠的系統(tǒng)其運(yùn)行的速度就會(huì)越慢,運(yùn)行效率和運(yùn)行時(shí)的可靠性是相互制約的一組屬性,所以在選擇的時(shí)候要綜合考慮。
(3)維護(hù)性??删S護(hù)性是指對(duì)特定內(nèi)容修改所要做的努力程度。為了便于系統(tǒng)維護(hù)時(shí)候的分析,可以在系統(tǒng)的某些部分加入日志記錄。為了方便以后系統(tǒng)的升級(jí)維護(hù),在設(shè)計(jì)的時(shí)候本系統(tǒng)是以模塊設(shè)計(jì)的,并盡量減少模塊之間的聯(lián)系,這樣在改動(dòng)其中的一個(gè)模塊的時(shí)候不至于所有的模塊都要改動(dòng),從而減少后期維護(hù)的工作量。
(4)美觀性。要求界面美觀,操作簡(jiǎn)便。
3.2 可行性分析
3.2.1 經(jīng)濟(jì)可行性
??從經(jīng)濟(jì)來(lái)說(shuō),本系統(tǒng)是學(xué)生們?cè)趯W(xué)校利用課設(shè)時(shí)間做出來(lái)的,不需要任何的消費(fèi)和支出,是學(xué)生們用自己所學(xué)的課程和自己的知識(shí)相結(jié)合起來(lái)的成果,唯一需要的就是時(shí)間,因此,該系統(tǒng)在經(jīng)濟(jì)上來(lái)說(shuō)是可行的。
3.2.2 技術(shù)可行性
??基于本學(xué)期我們所學(xué)的JSP課程及相關(guān)技術(shù),開(kāi)發(fā)出圖書(shū)管理系統(tǒng)。在進(jìn)行技術(shù)可行性分析之前,必須要明確系統(tǒng)的目標(biāo),從系統(tǒng)的性能開(kāi)始,考察它的性能,是否具備必要的環(huán)境,是否具備有工作經(jīng)驗(yàn)的系統(tǒng)操作人員,人員的數(shù)量問(wèn)題等等。在技術(shù)的選擇上,該系統(tǒng)運(yùn)用了JSP、Dbcp、SpringMVC,在數(shù)據(jù)的存儲(chǔ)上應(yīng)用的是MYSQL數(shù)據(jù)庫(kù)。該系統(tǒng)的硬件相當(dāng)過(guò)關(guān),具有較大的選擇余地,保障了系統(tǒng)的開(kāi)發(fā)和運(yùn)行,所以在硬件配置方面具有一定的可行性。諸多的研究發(fā)現(xiàn),該系統(tǒng)在技術(shù)上是可行的。
3.2.3 操作可行性
??圖書(shū)管理系統(tǒng)具備友好的用戶(hù)界面,使用方便,易于維護(hù),操作簡(jiǎn)單易于被用戶(hù)接受,用戶(hù)不需要學(xué)習(xí)復(fù)雜的計(jì)算機(jī)專(zhuān)業(yè)知識(shí),用戶(hù)只需熟練操作計(jì)算機(jī),另外此系統(tǒng)也附帶有顯示視頻,和對(duì)此系統(tǒng)使用做簡(jiǎn)單的了解即可方便使用,且操作工具只需要一臺(tái)計(jì)算機(jī)即可,在人員的配備上也能夠滿(mǎn)足系統(tǒng)運(yùn)行的需要。因此從使用操作方面看,此系統(tǒng)的開(kāi)發(fā)是可行的。
4 系統(tǒng)設(shè)計(jì)
4.1概要設(shè)計(jì)
4.1.1 系統(tǒng)功能描述
??圖書(shū)管理系統(tǒng)主要分為讀者模塊和圖書(shū)館管理員模塊。讀者僅可以修改個(gè)人信息、借閱或者查還書(shū)籍和查看自己的借還記錄。圖書(shū)管理員可以修改讀者信息、修改圖書(shū)信息,查看所有的借還日志等。
4.1.2 系統(tǒng)功能模塊
圖書(shū)館管理系統(tǒng)功能模塊圖4.1所示。
圖4.1 圖書(shū)館管理系統(tǒng)功能模塊圖
讀者登錄模塊如圖4.2所示。
圖4.2 讀者登錄模塊
管理員登錄模塊如圖4.3所示。
圖4.3管理員登錄模塊
4.2模塊設(shè)計(jì)
4.2.1 讀者模塊
??讀者需要登錄賬號(hào),登錄成功后,讀者可以進(jìn)行圖書(shū)查詢(xún),個(gè)人信息查詢(xún),修改密碼,查看自己的借閱書(shū)籍記錄等相關(guān)操作。
讀者模塊的控制流程圖如圖4.4所示。
圖4.4 讀者模塊控制流程圖
4.2.2 圖書(shū)管理員模塊
圖書(shū)管理員可以修改讀者信息、修改圖書(shū)信息,查看所有的借還日志等。
圖書(shū)管理員模塊的控制流程圖如圖4.5所示。
圖4.5 管理員模塊流程圖
4.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
4.3.1 概念結(jié)構(gòu)設(shè)計(jì)
圖書(shū)管理系統(tǒng)的E-R圖如圖4.6所示。
圖4.6 圖書(shū)管理系統(tǒng)的E-R圖
4.3.2 邏輯結(jié)構(gòu)設(shè)計(jì)
圖書(shū)關(guān)系模式(標(biāo)準(zhǔn)書(shū)號(hào),書(shū)名,簡(jiǎn)介,出版時(shí)間,數(shù)量,作者,出版社,語(yǔ)言,價(jià)格,分類(lèi))
讀者關(guān)系模式(讀者號(hào),姓名,性別,生日,地址,電話(huà))
管理員關(guān)系模式(id,密碼,用戶(hù)名)
借閱關(guān)系模式(標(biāo)準(zhǔn)書(shū)號(hào),讀者號(hào),借閱日期,歸還日期)
管理關(guān)系模式(標(biāo)準(zhǔn)書(shū)號(hào),讀者號(hào)id,分類(lèi)號(hào),類(lèi)別名)
4.3.3 物理結(jié)構(gòu)設(shè)計(jì)
書(shū)籍信息表如表4.1所示。
表4.1 書(shū)籍信息表
列名 類(lèi)型 長(zhǎng)度 小數(shù)點(diǎn) NULL 用途 鍵
book_id bigint 20 0 否 圖書(shū)號(hào) 主鍵
name varchar 20 0 否 書(shū)名
author varchar 15 0 否 作者
publish varchar 20 0 否 出版社
ISBN varchar 15 0 否 標(biāo)準(zhǔn)書(shū)號(hào)
introduction text 0 0 是 簡(jiǎn)介
ianguage varchar 4 0 否 語(yǔ)言
price dedcimal 10 2 否 價(jià)格
pub_date date 0 0 否 出版時(shí)間
class_id int 11 0 是 分類(lèi)號(hào) 外鍵
class_name varchar 15 0 否 類(lèi)別名
Number int 11 0 是 剩余數(shù)量
數(shù)據(jù)庫(kù)管理員表admin如表4.2所示。
表4.2 數(shù)據(jù)庫(kù)管理員表admin
列名 類(lèi)型 長(zhǎng)度 小數(shù)點(diǎn) NULL 用途 鍵
admin_id bignit 20 0 否 賬號(hào) 主鍵
password varchar 15 0 否 密碼
username varchar 15 0 是 用戶(hù)名
借閱信息表lend_list如表4.3所示。
表4.3借閱信息表lend_list
列名 類(lèi)型 長(zhǎng)度 小數(shù)點(diǎn) NULL 用途 鍵
ser_num bigint 20 0 否 流水號(hào) 主鍵
book_id bigint 20 0 否 圖書(shū)號(hào) 外鍵
reader_id bigint 20 0 否 讀者證號(hào) 外鍵
lend_date date 0 0 是 借出日期
back_date date 0 0 是 歸還日期
讀者信息表reader_info如表4.4所示。
列名 類(lèi)型 長(zhǎng)度 小數(shù)點(diǎn) NULL 用途 鍵
reader_id bigint 20 0 否 讀者證號(hào) 主鍵
name varchar 10 0 否 姓名
sex varchar 2 0 否 性別
birth date 0 0 否 生日
address varchar 50 0 否 地址
phone varchar 15 0 否 電話(huà)
password varchar 15 0 否 密碼
username varchar 15 0 是 用戶(hù)名
表4.4讀者信息表reader_info
5 系統(tǒng)實(shí)現(xiàn)
5.1 詳細(xì)設(shè)計(jì)
系統(tǒng)分為讀者模塊和管理模塊。
讀者模塊,查詢(xún)所有圖書(shū)的信息,如圖書(shū)的名稱(chēng)、剩余數(shù)量、詳情等;個(gè)人信息的編輯完善,修改初始化密碼等。
管理員模塊,圖書(shū)管理、用戶(hù)管理、借還日志管理,如圖書(shū)的增刪改查、用戶(hù)信息的增刪改查等。
5.1.1 讀者登錄模塊
在沒(méi)有登錄系統(tǒng)的情況下,不可以進(jìn)入該系統(tǒng)查詢(xún)和借閱圖書(shū),對(duì)于用戶(hù)的賬號(hào)管理,統(tǒng)一由管理員完成注冊(cè),并通過(guò)負(fù)責(zé)人發(fā)放賬號(hào)。對(duì)于讀者在登錄時(shí),后臺(tái)會(huì)驗(yàn)證該賬戶(hù)是否存在,密碼是否正確。下面是實(shí)現(xiàn)讀者登錄功能的核心代碼塊。
當(dāng)點(diǎn)擊登錄按鈕前端頁(yè)面會(huì)通過(guò)Ajax向后端發(fā)送POST請(qǐng)求,數(shù)據(jù)并以JSON的形式傳遞,請(qǐng)求后端接口"api/loginCheck"。
\$.ajax({type: \"POST\",url: \"api/loginCheck\",data: {id:id ,passwd: passwd},后端接收到請(qǐng)求后,驗(yàn)證賬號(hào)密碼是否正確,通過(guò)身份碼來(lái)確定登錄人員的權(quán)限,并響應(yīng)跳轉(zhuǎn)到相對(duì)應(yīng)的頁(yè)面。\@RequestMapping(value = \"/api/loginCheck\", method = RequestMethod.POST) //接口,請(qǐng)求方式是POSTpublic \@ResponseBody Object loginCheck(HttpServletRequest request) {// \@ResponseBody,數(shù)據(jù)是JSON形式if (isAdmin) {request.getSession().setAttribute(\"admin\", admin);res.put(\"stateCode\", \"1\");//1代表管理員,2代表讀者,0代表失敗res.put(\"msg\", \"管理員登陸成功!\");} else if (isReader) {request.getSession().setAttribute(\"readercard\", readerCard);res.put(\"stateCode\", \"2\");res.put(\"msg\", \"讀者登陸成功!\");} else {res.put(\"stateCode\", \"0\");res.put(\"msg\", \"賬號(hào)或密碼錯(cuò)誤!\");}return res;}5.1.2 讀者搜索圖書(shū)模塊
圖書(shū)查詢(xún)頁(yè)面默認(rèn)展示所有圖書(shū)的信息,當(dāng)有想借閱的圖書(shū)時(shí),可以通過(guò)圖書(shū)的名稱(chēng)進(jìn)行模查詢(xún)。下面是實(shí)現(xiàn)讀者查詢(xún)搜索圖書(shū)功能的核心代碼塊。
全部圖書(shū)的展示。
\<td\>\<c:out value=\"\${book.name}\"\>\</c:out\>\</td\>\<td\>\<c:out value=\"\${book.author}\"\>\</c:out\>\</td\>\<td\>\<c:out value=\"\${book.publish}\"\>\</c:out\>\</td\>\<td\>\<c:out value=\"\${book.isbn}\"\>\</c:out\>\</td\>\<td\>\<c:out value=\"\${book.price}\"\>\</c:out\>\</td\>\<td\>\<c:out value=\"\${book.number}\"\>\</c:out\>\</td\>后端調(diào)用bookService的getAllBooks()方法查詢(xún)所有圖書(shū)。
\@RequestMapping(\"/admin_books.html\")public ModelAndView adminBooks() {ArrayList\<Book\> books = bookService.getAllBooks();ModelAndView modelAndView=new ModelAndView(\"admin_books\");modelAndView.addObject(\"books\", books);return modelAndView;}當(dāng)讀者輸入自己想要借閱的圖書(shū)名字,點(diǎn)擊搜索按鈕時(shí),此時(shí)會(huì)通過(guò)表單的形式把關(guān)鍵字以post形式提交到reader_querybook_do.html,后端會(huì)調(diào)用bookService的queryBook(searchWord)方法來(lái)查詢(xún)符合查詢(xún)條件的所有圖書(shū),沒(méi)有符合的圖書(shū)信息則返回"沒(méi)有匹配的圖書(shū)"。相對(duì)應(yīng)的接口核心代碼如下。
@RequestMapping(\"/reader_querybook_do.html\")public ModelAndView readerQueryBookDo(String searchWord) {if (bookService.matchBook(searchWord)) {ArrayList\<Book\> books = bookService.queryBook(searchWord);ModelAndView modelAndView=newModelAndView(\"reader_books\");modelAndView.addObject(\"books\", books);return modelAndView;} else {return new ModelAndView(\"reader_books\", \"error\", \"沒(méi)有匹配的圖書(shū)\");}}5.1.3 讀者個(gè)人信息編輯模塊
讀者個(gè)人頁(yè)面展示自己的所有信息,當(dāng)點(diǎn)擊編輯時(shí)跳轉(zhuǎn)到reader_info_edit頁(yè)面。下面是實(shí)現(xiàn)讀者個(gè)人信息編輯功能的核心代碼塊。
個(gè)人信息接口核心代碼如下。
@RequestMapping(\"/reader_info.html\")public ModelAndView toReaderInfo(HttpServletRequest request) {ReaderCardreaderCard=(ReaderCard)request.getSession().getAttribute(\"readercard\");ReaderInforeaderInfo=readerInfoService.getReaderInfo(readerCard.getReaderId());ModelAndView modelAndView = new ModelAndView(\"reader_info\");modelAndView.addObject(\"readerinfo\", readerInfo);return modelAndView;}對(duì)應(yīng)的數(shù)據(jù)庫(kù)查詢(xún)代碼如下。
public ReaderInfo findReaderInfoByReaderId(final long reader_id) {returnsqlSessionTemplate.selectOne(NAMESPACE+\"findReaderInfoByReaderId\", reader_id);}當(dāng)填好修改過(guò)后的個(gè)人信息,點(diǎn)擊確定按鈕時(shí),會(huì)把信息提交到reader_edit_do_r.html頁(yè)面,來(lái)請(qǐng)求后端接口。編輯個(gè)人信息接口核心代碼如下。
@RequestMapping(\"reader_edit_do_r.html\")public String readerInfoEditDoReader(HttpServletRequest request,String name, String sex, String birth, String address,String phone, RedirectAttributes redirectAttributes) {ReaderCardreaderCard=(ReaderCard)request.getSession().getAttribute(\"readercard\");ReaderInfo readerInfo = getReaderInfo(readerCard.getReaderId(), name, sex, birth, address, phone);}5.1.4 我的借還日志模塊
讀者借閱圖書(shū)后,記錄會(huì)在我的借還日志頁(yè)面來(lái)顯示,可以看到借還狀態(tài),借還時(shí)間等信息。我的借還日志模塊核心代碼如下。
我的借還日志接口核心代碼如下。
@RequestMapping(\"/mylend.html\")public ModelAndView myLend(HttpServletRequest request) {ReaderCardreaderCard=(ReaderCard)request.getSession().getAttribute(\"readercard\");ModelAndView modelAndView = new ModelAndView(\"reader_lend_list\");modelAndView.addObject(\"list\",lendService.myLendList(readerCard.getReaderId()));return modelAndView;}5.1.5 讀者修改密碼模塊
讀者拿到自己的賬號(hào)后,會(huì)有一個(gè)初始的密碼,為了讀者賬戶(hù)的安全,讀者可以自行修改自己的密碼,用戶(hù)修改密碼模塊核心代碼如下。
讀者在修改密碼時(shí),填寫(xiě)兩次密碼是否一致,完整,通過(guò)前端驗(yàn)證即可來(lái)提示讀者。檢驗(yàn)密碼核心代碼如下。
$(\"\#repasswd\").submit(function () {if(\$(\"\#oldPasswd\").val()==\'\'\|\|\$(\"\#newPasswd\").val()==\'\'\|\| \$(\"\#reNewPasswd\").val() == \'\') {\$(\"\#tishi\").text(\"提示:請(qǐng)?zhí)顚?xiě)完整!\");return false;} else if (\$(\"\#newPasswd\").val() != \$(\"\#reNewPasswd\").val()) {\$(\"\#tishi\").text(\"提示:兩次輸入的新密碼不同,請(qǐng)檢查!\");return false;}})
后端接口核心代碼如下。
@RequestMapping(\"/reader_repasswd_do\")public String reReaderPasswdDo(HttpServletRequestrequest, String oldPasswd, String newPasswd, String reNewPasswd,RedirectAttributes redirectAttributes) {ReaderCardreader=request.getSession().getAttribute(\"readercard\");if (password.equals(oldPasswd)) {if (loginService.readerRePassword(id, newPasswd)) {redirectAttributes.addFlashAttribute(\"succ\", \"密碼修改成功!\");return \"redirect:/reader_repasswd.html\";} else {redirectAttributes.addFlashAttribute(\"error\", \"密碼修改失敗!\");return \"redirect:/reader_repasswd.html\";}} else {redirectAttributes.addFlashAttribute(\"error\", \"舊密碼錯(cuò)誤!\");return \"redirect:/reader_repasswd.html\";}}5.1.6 管理員對(duì)圖書(shū)的增刪改查模塊
管理員登錄系統(tǒng)后可以對(duì)已經(jīng)上架的圖書(shū)進(jìn)行編輯、刪除等操作;還可以上架新的圖書(shū)。管理員對(duì)圖書(shū)的增刪改查模塊詳細(xì)代碼如下。
后端添加圖書(shū)接口核心代碼如下。
@RequestMapping(\"/book_add.html\")public ModelAndView addBook() {return new ModelAndView(\"admin_book_add\");}相應(yīng)的數(shù)據(jù)庫(kù)操作核心代碼如下。
<insert id=\"addBook\" parameterType=\"com.library.bean.Book\"\>insert into book_info values(null, \#{name}, \#{author}, \#{publish}, \#{ISBN},\#{introduction}, \#{language}, \#{price}, \#{pub_date},\#{class_id}, \#{number})\</insert\>編輯、刪除都是通過(guò)圖書(shū)的ID來(lái)進(jìn)行操作。
其后端接口核心代碼如下。
@RequestMapping(\"/book_edit_do.html\")public String bookEditDo(\@RequestParam(value = \"pubstr\")String pubstr, Book book, RedirectAttributes redirectAttributes) {book.setPubdate(getDate(pubstr));if (bookService.editBook(book)) {redirectAttributes.addFlashAttribute(\"succ\", \"圖書(shū)修改成功!\");} else {redirectAttributes.addFlashAttribute(\"error\", \"圖書(shū)修改失敗!\");}return \"redirect:/admin_books.html\";}\@RequestMapping(\"/admin_book_detail.html\")public ModelAndView adminBookDetail(HttpServletRequest request) {long bookId = Long.parseLong(request.getParameter(\"bookId\"));Book book = bookService.getBook(bookId);ModelAndView modelAndView=newModelAndView(\"admin_book_detail\");modelAndView.addObject(\"detail\", book);return modelAndView;}其數(shù)據(jù)庫(kù)操作核心代碼如下。
<update id=\"editBook\" parameterType=\"com.library.bean.Book\"\>update book_info set name=\#{name}, author=\#{author},publish=\#{publish}, ISBN=\#{ISBN}, introduction=\#{introduction},language=\#{language}, price=\#{price}, pub_date=\#{pub_date},class_id=\#{class_id}, number=\#{number} where book_id=\#{book_id}\</update\>\<delete id=\"deleteBook\" parameterType=\"long\"\>delete from book_info where book_id = \#{book_id}\</delete\>5.1.7 管理員對(duì)讀者信息的增刪改查模塊
管理員登錄系統(tǒng)后可以新增讀者賬號(hào),發(fā)放給讀者;對(duì)已經(jīng)存在的讀者賬號(hào)進(jìn)行管理操作。管理員對(duì)讀者信息的增刪改查模塊詳細(xì)代碼如下。
當(dāng)有新讀者需要賬號(hào)時(shí),管理員可以新增讀者賬號(hào),其核心代碼如下。
前端校驗(yàn)信息是否合法完整。
$(\"\#readeredit\").submit(function () {if(\$(\"\#password\").val()==\'\'\|\|\$(\"\#name\").val()==\'\'\|\|\$(\"\#sex\").val()==\'\'\|\|\$(\"\#birth\").val()==\'\'\|\|\$(\"\#address\").val()==\'\'\|\|\$(\"\#phone\").val()==\'\'){alert(\"請(qǐng)?zhí)钊胪暾x者信息!\");return mySubmit(false);}})后端接口核心代碼如下。
@RequestMapping(\"reader_add.html\")public ModelAndView readerInfoAdd() {return new ModelAndView(\"admin_reader_add\");}數(shù)據(jù)庫(kù)操作代碼如下。
<insert id=\"addReaderInfo\" parameterType=\"com.library.bean.ReaderInfo\"\>insert into reader_info values(null, \#{name},\#{sex},\#{birth},\#{address},\#{phone})\</insert\>5.1.8 管理員對(duì)借還日志的操作模塊
管理員登錄系統(tǒng)后可以查看讀者借還信息,是否超時(shí),對(duì)已經(jīng)還的讀者借閱記錄可以刪除,沒(méi)有歸還的圖書(shū)借閱日志則無(wú)法刪除。管理員對(duì)借還日志的操作模塊詳細(xì)代碼如下。
后端接口核心代碼如下。
java@RequestMapping(\"/lendbook.html\")public String bookLend(HttpServletRequest request,RedirectAttributes redirectAttributes) {if (lendService.lendBook(bookId, readerId)) {redirectAttributes.addFlashAttribute(\"succ\", \"圖書(shū)借閱成功!\");} else {redirectAttributes.addFlashAttribute(\"succ\", \"圖書(shū)借閱成功!\");}return \"redirect:/reader_books.html\";}5.2 實(shí)現(xiàn)結(jié)果
5.2.1 登錄模塊
啟動(dòng)項(xiàng)目,會(huì)自動(dòng)跳轉(zhuǎn)到訪問(wèn)"http://localhost:8080/login.html"登錄頁(yè)面,如圖5.1所示。
圖5.1為登錄界面
5.2.2 讀者模塊
讀者通過(guò)讀者賬號(hào)登錄系統(tǒng)后,可以看到圖書(shū)列表、個(gè)人信息、我的借還等導(dǎo)航信息。如圖5.2所示。
圖5.2為讀者主頁(yè)
輸入Java關(guān)鍵字點(diǎn)擊搜索,會(huì)查詢(xún)到所以與Java相關(guān)的圖書(shū),如圖5.3所示。
圖5.3為搜索頁(yè)面
當(dāng)讀者點(diǎn)擊詳情時(shí),會(huì)查看到圖書(shū)的詳細(xì)信息,如圖5.4所示。
圖5.4為圖書(shū)的詳細(xì)信息
讀者個(gè)人信息管理頁(yè)面,可以對(duì)自己的信息進(jìn)行編輯,如圖5.5所示。
圖5.5為個(gè)人信息頁(yè)面
我的借還頁(yè)面,可以讓讀者清晰的看到自己的借還記錄,如圖5.6所示
圖5.6為我的借還頁(yè)面
修改密碼頁(yè)面,用戶(hù)可以對(duì)自己的密碼進(jìn)行修改,如圖5.7所示。
圖5.7為修改密碼頁(yè)面
5.2.3 管理員模塊
管理員通過(guò)管理員賬號(hào)登錄進(jìn)入到管理員系統(tǒng)主頁(yè),可以對(duì)圖書(shū)進(jìn)行增刪改查操作,如圖5.8所示。
圖5.8為管理員系統(tǒng)主頁(yè)
讀者管理模塊。管理員可以對(duì)讀者賬號(hào)進(jìn)行管理,還可以新增讀者賬號(hào),如圖5.9所示。
圖5.9為讀者管理模塊
管理員登錄系統(tǒng)后可以查看讀者借還信息,是否超時(shí),對(duì)已經(jīng)還的讀者借閱記錄可以刪除,沒(méi)有歸還的圖書(shū)借閱日志則無(wú)法刪除,如圖5.10所示。
圖5.10為借還日志模塊
6 測(cè)試
6.1 系統(tǒng)測(cè)試
??測(cè)試是程序的一種執(zhí)行過(guò)程,是軟件生命周期中一項(xiàng)非常重要且非常復(fù)雜的工作,對(duì)軟件可靠性保證具有極其重要的意義。在目前形式化方法和程序正確性證明技術(shù)還無(wú)望成為實(shí)用性方法的情況下,軟件測(cè)試在將來(lái)相當(dāng)一段時(shí)間內(nèi)仍然是軟件可靠性保證的有效方法。
6.1.1 測(cè)試目的
??測(cè)試的目的是盡可能發(fā)現(xiàn)并改正被測(cè)試軟件中的錯(cuò)誤,提高軟件的可靠性,盡可能發(fā)現(xiàn)更多缺陷,提高開(kāi)發(fā)效率,降低開(kāi)發(fā)成本,提高用戶(hù)體驗(yàn)。
6.1.2 測(cè)試方法
??在用例設(shè)計(jì)環(huán)節(jié)中,測(cè)試人員為了盡可能實(shí)現(xiàn)高覆蓋率的測(cè)試,測(cè)試用例設(shè)計(jì)涉及多種方法和技術(shù),以保證更多的覆蓋系統(tǒng)的每一行代碼、每一個(gè)邏輯判斷的運(yùn)行,每一個(gè)可操作的功能分支都得以覆蓋,相當(dāng)于"窮舉測(cè)試"。測(cè)試的最終目的,是盡可能在有限的時(shí)間內(nèi)發(fā)現(xiàn)更多有效的,容易被用戶(hù)認(rèn)知的,復(fù)現(xiàn)幾率較大的缺陷。
6.1.3 測(cè)試的意義
??測(cè)試是很重要的一個(gè)環(huán)節(jié),如果沒(méi)有做好,或許會(huì)對(duì)公司造成損失,影響客戶(hù)體驗(yàn),所以軟件測(cè)試時(shí)必須進(jìn)行的一個(gè)環(huán)節(jié)。軟件測(cè)試主要是要心細(xì),一個(gè)軟件往往大錯(cuò)誤就不多,最多的就是小錯(cuò)誤、小毛病。本系統(tǒng)經(jīng)過(guò)以上部分測(cè)試系統(tǒng)功能基本齊全,實(shí)現(xiàn)了增加、刪除、修改、查詢(xún)等功能,各個(gè)功能未發(fā)現(xiàn)重大錯(cuò)誤,只是有一些小瑕疵,使用的時(shí)候若不能正常運(yùn)行,將網(wǎng)址刷新一下,等待系統(tǒng)運(yùn)行,即可成功運(yùn)行,可投入使用。
6.2 系統(tǒng)功能測(cè)試
??功能測(cè)試就是對(duì)系統(tǒng)中表現(xiàn)層的各項(xiàng)功能進(jìn)行驗(yàn)證,首先需要設(shè)計(jì)各功能測(cè)試用例,然后根據(jù)功能測(cè)試用例進(jìn)行各層功能,實(shí)現(xiàn)逐項(xiàng)測(cè)試,檢查圖書(shū)管理系統(tǒng)是否達(dá)到用戶(hù)要求的功能,檢查系統(tǒng)中的各項(xiàng)功能模塊的是否有效和是否符合規(guī)格說(shuō)明。通常在進(jìn)行系統(tǒng)測(cè)試時(shí),則按照功能需求的規(guī)定對(duì)系統(tǒng)的功能、數(shù)據(jù)、流程、業(yè)務(wù)規(guī)則等進(jìn)行逐一的測(cè)試。包括相關(guān)性檢查、檢查按鈕的功能是否正常、字符串長(zhǎng)度檢查、字符類(lèi)型檢查、檢查系統(tǒng)管理員能否正常登錄、能否正常瀏覽圖書(shū)、能否查看讀者的借還日志、能否正常編輯圖書(shū)信息;用戶(hù)能否正常查閱圖書(shū)、借還圖書(shū)、能否修改自己的密碼。整個(gè)圖書(shū)管理系統(tǒng)的使用流程是否順暢。
圖書(shū)管理系統(tǒng)的測(cè)試用例如表6.1所示。
表6.1 圖書(shū)管理系統(tǒng)的測(cè)試用例
6.3 系統(tǒng)性能測(cè)試
??性能的測(cè)試主要是通過(guò)模擬系統(tǒng)正常運(yùn)行的環(huán)境,測(cè)試系統(tǒng)的性能狀況是否完全符合用戶(hù)的需求。系統(tǒng)性能測(cè)試的重要內(nèi)容和技術(shù)指標(biāo)之一就是:系統(tǒng)正常運(yùn)行的速度、網(wǎng)絡(luò)響應(yīng)的時(shí)間和是否支持網(wǎng)絡(luò)并發(fā)的節(jié)點(diǎn)等參數(shù)。
?(1)保證系統(tǒng)的運(yùn)行速度:技術(shù)人員通過(guò)在不同平臺(tái)計(jì)算機(jī)上的測(cè)試運(yùn)行本產(chǎn)品系統(tǒng),沒(méi)有被人發(fā)現(xiàn)有任何遲滯、停頓等異?,F(xiàn)象。
?(2)用戶(hù)網(wǎng)絡(luò)最大響應(yīng)時(shí)間:網(wǎng)絡(luò)最大響應(yīng)的時(shí)間主要可以包括用戶(hù)網(wǎng)絡(luò)最小響應(yīng)時(shí)間、平均最大響應(yīng)時(shí)間、最大響應(yīng)時(shí)間三個(gè)基本參數(shù)。經(jīng)過(guò)響應(yīng)時(shí)間測(cè)試,在用戶(hù)網(wǎng)絡(luò)正常運(yùn)營(yíng)良好的狀態(tài)下,局域網(wǎng)內(nèi)平均最大響應(yīng)時(shí)間三參數(shù)為:1/2/5s,外網(wǎng)響應(yīng)時(shí)間三參數(shù)為3/7/12s,符合了用戶(hù)的需求,屬于滿(mǎn)足用戶(hù)的心理需求和可承受的范圍。
?(3)系統(tǒng)可以支持多個(gè)并發(fā)管理節(jié)點(diǎn)的服務(wù)個(gè)數(shù):經(jīng)過(guò)多次針對(duì)模擬用戶(hù)網(wǎng)絡(luò)運(yùn)營(yíng)環(huán)境的運(yùn)行測(cè)試,本平臺(tái)系統(tǒng)在模擬網(wǎng)絡(luò)環(huán)境中的支持并發(fā)服務(wù)節(jié)點(diǎn)個(gè)數(shù)達(dá)45個(gè)時(shí),網(wǎng)絡(luò)用戶(hù)運(yùn)營(yíng)的數(shù)據(jù)速度波動(dòng)可能也就會(huì)自動(dòng)隨網(wǎng)絡(luò)時(shí)間推移發(fā)生較大的速度波動(dòng),延遲時(shí)間10秒左右,符合大部分網(wǎng)絡(luò)用戶(hù)的實(shí)際需求。
??總之,圖書(shū)管理系統(tǒng)性能測(cè)試能夠正常實(shí)現(xiàn),該系統(tǒng)能夠投入市場(chǎng)使用。
設(shè)計(jì)總結(jié)和心得體會(huì)
??通過(guò)此次課程設(shè)計(jì),使我們更加扎實(shí)的掌握了所學(xué)的知識(shí),實(shí)踐出真知,通過(guò)親自動(dòng)手制作,使我們掌握的知識(shí)不再是紙上談兵。此次課程設(shè)計(jì)使我們的編程水平提高了一大步,使我們充分的認(rèn)識(shí)到合作的可貴。由于這次設(shè)計(jì)涉及到數(shù)據(jù)庫(kù),我的學(xué)到了不少編程工具與數(shù)據(jù)庫(kù)連接的知識(shí),對(duì)數(shù)據(jù)庫(kù)的操作有了進(jìn)一步的了解。這次設(shè)計(jì)對(duì)我們的綜合能力是一次很好的鍛煉,但是我必須承認(rèn)自己的能力和知識(shí)還很膚淺。所以今后我們的學(xué)習(xí)道路還是很漫長(zhǎng)的。最后,在這里我要衷心的感謝我們的指導(dǎo)老師白文杰,謝謝她的悉心指導(dǎo)和熱心幫助。由于我們的水平有限,加之時(shí)間短暫,故圖書(shū)管理系統(tǒng)中還有許多不足之處,請(qǐng)老師批評(píng)指正,我會(huì)在以后的制作中不斷改進(jìn),不斷完善。
在這次課程設(shè)計(jì)中,我們學(xué)到了很多的知識(shí),同時(shí)學(xué)會(huì)了怎么將學(xué)到的理論知識(shí)用到實(shí)踐中去,改變了過(guò)去的學(xué)習(xí)方法和學(xué)習(xí)態(tài)度,找到了一門(mén)自己很喜歡的學(xué)科。本次課程設(shè)計(jì)是由我們團(tuán)隊(duì)一起完成的,團(tuán)隊(duì)的力量往往比個(gè)人力量之和大上很多,并且在今后的開(kāi)發(fā)中,我們都將是以團(tuán)隊(duì)的形式展開(kāi)工作的,所以我們應(yīng)該在現(xiàn)在學(xué)習(xí)的時(shí)候養(yǎng)成一種良好的團(tuán)隊(duì)精神,以為將來(lái)的開(kāi)發(fā)打下基礎(chǔ)。
參考文獻(xiàn)
[1]陳召久.基于互聯(lián)網(wǎng)的圖書(shū)情報(bào)一體化管理系統(tǒng)設(shè)計(jì)[J].電子技術(shù),2022,51(02):186-187.
[2]林輝.基于Java
Web的渭南市大荔縣圖書(shū)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2021,29(24):155-158+163.
[3]陳新,張楠.圖書(shū)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].硅谷,2011(14):102+100.
[4]鄧鮮艷.基于JSP語(yǔ)言的圖書(shū)管理系統(tǒng)設(shè)計(jì)[J].科技信息,2011(07):488+515.
[5]莊禮金,黃曉云.基于JSP的圖書(shū)在線(xiàn)借閱系統(tǒng)的分析與設(shè)計(jì)[J].信息技術(shù)與信息化,2019(11):36-38.
[6]林卓.基于JSP的圖書(shū)超市管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].山西大同大學(xué)學(xué)報(bào)(自然科學(xué)版),2009,25(05):16-17+20.
[7]林輝.基于Java
Web的渭南市大荔縣圖書(shū)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2021,29(24):155-158+163.
[8]趙澤忠,劉歡.基于MVC模式下的圖書(shū)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].數(shù)碼世界,2019(10):106.
[9]周永宏,肖國(guó)政.基于Servlet的在線(xiàn)圖書(shū)管理系統(tǒng)設(shè)計(jì)[J].科技風(fēng),2019(21):15
[10]徐連霞,傅偉.圖書(shū)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].今日財(cái)富,2019(19):203.
總結(jié)
以上是生活随笔為你收集整理的图书管理系(附源码PPT)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 圆形体体积计算器(20 分)
- 下一篇: 最好用的Wemall开源微商城