畢業(yè)論文-河北省中小學(xué)省級標(biāo)準(zhǔn)化學(xué)校建設(shè)圖書管理系統(tǒng)軟件_第1頁
畢業(yè)論文-河北省中小學(xué)省級標(biāo)準(zhǔn)化學(xué)校建設(shè)圖書管理系統(tǒng)軟件_第2頁
畢業(yè)論文-河北省中小學(xué)省級標(biāo)準(zhǔn)化學(xué)校建設(shè)圖書管理系統(tǒng)軟件_第3頁
畢業(yè)論文-河北省中小學(xué)省級標(biāo)準(zhǔn)化學(xué)校建設(shè)圖書管理系統(tǒng)軟件_第4頁
畢業(yè)論文-河北省中小學(xué)省級標(biāo)準(zhǔn)化學(xué)校建設(shè)圖書管理系統(tǒng)軟件_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

河北農(nóng)業(yè)大學(xué)本科畢業(yè)論文(設(shè)計(jì))題目: 河北省中小學(xué)省級標(biāo)準(zhǔn)化學(xué)校建設(shè) 圖書管理系統(tǒng)軟件學(xué)院: 信息科學(xué)與技術(shù)學(xué)院專業(yè)班級: 軟件1001班學(xué)號: 學(xué)生姓名: 指導(dǎo)老師姓名:指導(dǎo)教師職稱:教授二O一四年六月五日河北省中小學(xué)省級標(biāo)準(zhǔn)化學(xué)校建設(shè)圖書管理系統(tǒng)軟件摘要隨著日前科技發(fā)展日益迅猛的需要,信息產(chǎn)品的要求也越來越高,人們?nèi)找姘l(fā)現(xiàn)書籍作為知識力量傳播的載體已經(jīng)無法滿足人們的需求,于是出現(xiàn)了電子書籍等高科技產(chǎn)品?,F(xiàn)今的圖書管理系統(tǒng)卻少有能跟進(jìn)時(shí)代需求的較為完善的系統(tǒng)。除此之外,當(dāng)前我國仍存在著一個(gè)嚴(yán)峻的現(xiàn)象:一般的中小學(xué)校雖然設(shè)有圖書館,卻沒有一套完整的管理系統(tǒng),不能對書籍、信息等擁有一套合理的、健全的操作管理。這不僅使得圖書的管理混亂、來源去向無法追蹤,同時(shí)也影響了學(xué)生們對圖書的借閱,更是影響了學(xué)生們的全面發(fā)展、影響了我國人才的培養(yǎng)。為了解決以上問題,特地為河北省中小學(xué)的圖書館設(shè)計(jì)了本系統(tǒng)。本系統(tǒng)主要分為五大功能:圖書管理、讀者管理、借閱管理、條形碼打印、統(tǒng)計(jì)報(bào)表。五大功能各自堅(jiān)守自己的崗位,通過ConnDB類與數(shù)據(jù)庫相連,并相互建立依賴關(guān)系。于此同時(shí),為了避免書籍雜亂無章存放的現(xiàn)象,本系統(tǒng)要求首先需要為圖書館的書架信息進(jìn)行分類存儲,才能添加書籍并要求書籍信息內(nèi)存儲與其相關(guān)的存放位置及書架信息。除此之外,為了融入現(xiàn)代高速發(fā)展的信息科技時(shí)代,本系統(tǒng)在現(xiàn)有的基礎(chǔ)上,還添加了電子圖書的錄入、存儲與閱讀等的功能,保證了圖書不會單一枯燥。針對河北省中小學(xué)人數(shù)不多、圖書館里館藏書籍?dāng)?shù)量不多的特點(diǎn),本系統(tǒng)為圖書管理等的操作均采用了簡單式的能滿足基本功能的方法。為了適應(yīng)高校擁有多個(gè)分校、多個(gè)圖書館分區(qū)的特點(diǎn),本系統(tǒng)采用了C/S模式并提供書架管理以協(xié)助學(xué)校的圖書分區(qū)儲存。為了保護(hù)圖書信息的安全,本系統(tǒng)采用sqlserver2012設(shè)計(jì)了相關(guān)數(shù)據(jù)庫,并能新添了一名可登陸用戶,并允許且只能允許服務(wù)器使用此身份訪問數(shù)據(jù)庫。本文介紹了在.NET平臺下利用C#語言、采用C/S模式實(shí)現(xiàn)河北省中小學(xué)省級標(biāo)準(zhǔn)化學(xué)校建設(shè)圖書管理系統(tǒng)軟件基本功能的全過程。首先從圖書信息管理的實(shí)際情況出發(fā),為系統(tǒng)的開發(fā)背景、需求分析、設(shè)計(jì)原則進(jìn)行了相關(guān)闡述,然后為系統(tǒng)的詳細(xì)設(shè)計(jì)和功能實(shí)現(xiàn)與測試進(jìn)行了相關(guān)敘述,最后為對本系統(tǒng)的總結(jié)與展望。關(guān)鍵詞:圖書管理系統(tǒng);SQLServer2012;C#;.NET;visualstudio2012TheconstructionoftheschoollibrarymanagementsystemsoftwareprovincialstandardsinprimaryandsecondaryschoolsinHebeiProvinceAbstractWiththeincreasinglyrapiddevelopmentofascienceandtechnology,informationproductsareincreasinglyhighrequirements,peopleincreasinglyfindbooksasthecarrierofknowledgepowertransmissionhasbeenunabletomeettheneedsofpeople,sotheemergenceofelectronicbooksandotherhigh-techproducts.Thebooksmanagementsystemmanagementsystemnowhasmoreperfectsystemtofollowtherequirementsofthetimes.Inaddition,thecurrentourcountrystillhasaseriousphenomenon:thegeneralschoolalthoughalibrary,butnotacompletesetofmanagementsystem,notonthebooks,informationhasasetofreasonable,perfectoperationmanagement.Thisnotonlymakesthebookmanagementconfusion,comestoimpossibletotrace,butalsoaffectedthestudentstoborrowbooks,butalsoaffecttheoveralldevelopmentofstudents,trainingofthetalentsinChina.Inordertosolvetheaboveproblem,speciallydesignedthesystemfortheprimaryandmiddleschoolsinHebeiprovincelibrary.Thissystemismainlydividedintofivefunctions:booksmanagement,readermanagement,librarymanagement,barcodeprinting,statisticalreport.Fivemajorfunctionsofeachsticktotheirposts,ConnDBanddatabaseconnectedby,andestablishdependencies.Atthesametime,inordertoavoidbooksbestoredphenomenon,thissystemrequiresfirstneedtobeclassifiedstorageforthelibraryshelvestoaddinformation,booksandbooksinformationstoragerequirementsassociatedwithlocationinformationandbookshelf.Inaddition,inordertofitinwiththerapiddevelopmentofmoderninformationtechnologyera,thesystemontheexistingbasis,addtheelectronicbookentry,storageandreadingandotherfunctions,toensurethebookscannotsingleandboring.CollectionofbooksnotmuchnumberaccordingtothecharacteristicsofprimaryandsecondaryschoolsinHebeiprovincearefewinnumber,thelibrary,thesystemforlibrarymanagementoperationusingthemethodofsimpletypecanmeetthebasicfunction.Inordertomeetthemulticampuslibrary,apluralityofpartition,thesystemusestheC/Smodeandprovidetheshelfmanagementtoassistschoolbookspartitionstorage.Inordertoprotecttheinformationsecurity,thesystemdesignrelateddatabaseusingSQLserver2012,andcanaddaloginuser,andallowsonlyallowstheservertoaccessthedatabaseusingthisidentity.ThispaperdescribestheuseofC#language,usingC/SmodetorealizethewholeprocessofconstructionofschoolbasicfunctionsoflibrarymanagementsystemsoftwareprovincialstandardsinprimaryandsecondaryschoolsinHebeiProvinceunder.NETplatform.First,fromtheactualsituationoflibraryinformationmanagement,systemdevelopmentbackground,needsanalysis,designprinciplesaredescribed,andthenthedescriptionandimplementationoftestfordetaileddesignandfunctionofthesystem,finallythesummaryandProspectofthissystem.Keywords:librarymanagementsystem;SQLServer2012;C#;.NET;visualstudio2012目錄TOC\o"1-3"\h\u139461緒論 1152341.1背景 1280151.2目的 119991.3意義 137532設(shè)計(jì)理論與技術(shù)基礎(chǔ) 312412.1設(shè)計(jì)原則 371672.2管理理論 3234512.2.1MIS理論 3304842.2.2圖書管理 365132.2.3讀者管理 322892.2.4借閱管理 3224922.3人機(jī)交互理論 3284852.3.1人機(jī)交互的特點(diǎn)與要求 4182342.4C#語言的支持 494072.5數(shù)據(jù)庫的支持 4236093需求分析 613103.1確認(rèn)目標(biāo) 677133.1.1功能需求 6212343.1.2性能需求 9174423.1.3環(huán)境需求 9215313.1.4可靠性需求 95783.1.5安全保密要求 99063.1.7資源使用需求 10109213.2面向?qū)ο蟮姆治?1025193.2.1系統(tǒng)分析 10118653.2.2相關(guān)用例圖 12316484系統(tǒng)設(shè)計(jì) 1483404.1數(shù)據(jù)庫設(shè)計(jì) 1450744.1.1數(shù)據(jù)庫分析 14149704.1.2數(shù)據(jù)庫概念設(shè)計(jì) 1444264.1.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì) 1622244.2服務(wù)器與客戶端的設(shè)計(jì) 23231534.2.1服務(wù)器與客戶端之間的聯(lián)系設(shè)計(jì) 23314914.2.2服務(wù)器數(shù)據(jù)建模 23242554.2.3客戶端數(shù)據(jù)建模 2536885設(shè)計(jì)實(shí)現(xiàn)與測試 26115905.1登陸功能 26194065.2主界面 26124755.3系統(tǒng)設(shè)置 27272855.4圖書管理 27175545.5讀者管理 2870835.6借閱管理 28133495.7書架管理 29272885.8條形碼打印 30317525.9統(tǒng)計(jì)報(bào)表 30194695.9.1對書籍的統(tǒng)計(jì) 3099685.9.2對讀者的統(tǒng)計(jì) 31280715.10功能測試 32109646總結(jié)與展望 3414595參考文獻(xiàn) 354159致謝 36PAGE371緒論1.1背景(1)開發(fā)背景傳統(tǒng)的方式首先要把買來的圖書資料登記到資料本上,再給每本書分類貼上標(biāo)簽及制作和標(biāo)簽想對應(yīng)的圖書分類卡票,最后圖書分類卡片按類別分別放置在文件柜里。對于有圖書證的學(xué)生或教師來說,還要對他們的資料做一定的記錄。并且在人們來借書的時(shí)候,首先持證者要去存放圖書分類卡片的文件柜里查找想借的書是否在架,如果卡片存在,再按照圖書分類卡片在相應(yīng)的書架上找到需要的圖書,然后登記持證者的借還書時(shí)間和在書簽條上寫下借還書記錄,等等。無論是對于圖書的管理還是對借閱的管理,都十分復(fù)雜不方便。而在圖書管理系統(tǒng)中采用計(jì)算機(jī)管理圖書是一種計(jì)算機(jī)應(yīng)用技術(shù)的創(chuàng)新,它解決了傳統(tǒng)復(fù)雜的純手工方式,避免了圖書管理與借閱等流程中的繁瑣細(xì)節(jié),并且?guī)砹朔奖懔藢D書與讀者的統(tǒng)計(jì)。(2)圖書管理系統(tǒng)產(chǎn)生的背景圖書管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對于前者要求建立數(shù)據(jù)庫一致性和完整性較強(qiáng)、數(shù)據(jù)安全性較好的庫,后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。經(jīng)過分析發(fā)現(xiàn),采用visualstudio開發(fā)工具可以有效便捷地對數(shù)據(jù)庫進(jìn)行操作,采用sqlserver可以創(chuàng)建一個(gè)較為穩(wěn)定、安全的數(shù)據(jù)庫,且二者可以相互操作,還可以采用visualstudio開發(fā)工具方便快捷地隨意生成、替換所需控件,方便了窗體的設(shè)計(jì)。于是,在此基礎(chǔ)上,首先建立了一套數(shù)據(jù)庫、服務(wù)器、客戶端相互連接的基本體系。再經(jīng)過對初始原型系統(tǒng)的不斷修正和改進(jìn),不斷努力實(shí)現(xiàn)能夠滿足用戶需求的可行的系統(tǒng)軟件。1.2目的為了實(shí)現(xiàn)書籍與其他文獻(xiàn)的集中存儲、分布管理,為了便于資料的便捷查詢和安全控制,為了追蹤書籍的來源、去向、統(tǒng)計(jì)所有館藏書籍信息,為了提高效率、減少人力資源,為了跟進(jìn)時(shí)代的需求、社會的需要,為了廣大莘莘學(xué)子的全面發(fā)展與綜合素質(zhì)的提高,編寫了本系統(tǒng)。1.3意義(1)提高了圖書管理效率友好、健全的圖書管理系統(tǒng)不僅具有一種人性化的設(shè)計(jì),還可以在不同情況下跟進(jìn)用戶需求進(jìn)行不斷的改進(jìn)。在這種強(qiáng)大的支持下不僅可以不斷減少管理員操作管理所耗費(fèi)的精力,還可以避免管理人員操作的錯(cuò)誤率,提高服務(wù)質(zhì)量。(2)帶動了學(xué)生看書的積極性存在著不少中小學(xué)生認(rèn)為自己一看書就犯困,然而上網(wǎng)時(shí)卻來勁兒。而本系統(tǒng)嵌入了電子書籍的查看與閱讀,緊密跟進(jìn)時(shí)代的需求,不僅有效地避免了學(xué)生們的這一弊端,還可以促進(jìn)學(xué)生們的積極性。(3)提供了多元化、綜合化的服務(wù)跟進(jìn)時(shí)代步伐的一套圖書管理系統(tǒng)不僅實(shí)現(xiàn)管理服務(wù)的多元化、綜合化,還有效地提升了網(wǎng)絡(luò)信息資源的利用效率。具備登陸權(quán)限的人員,可以在任意地點(diǎn)下載客戶端登陸進(jìn)行查詢、添加電子書籍、查看電子書籍等操作,打破了傳統(tǒng)的單一服務(wù)形式。(4)提高了圖書管理人員的綜合素質(zhì)圖書管理系統(tǒng)的應(yīng)用為圖書管理人員的工作職能帶來了重大的變革,這要求圖書管理人員應(yīng)當(dāng)具備較高的綜合素質(zhì),在網(wǎng)絡(luò)信息時(shí)代不斷完善自己的知識體系。促使圖書管理人員自覺地提高綜合技能、熟練運(yùn)用計(jì)算機(jī)技術(shù),能夠自主建立各種文獻(xiàn)數(shù)據(jù)庫、解答讀者的問題,并指導(dǎo)讀者如何獲取其所需的資料信息。2設(shè)計(jì)理論與技術(shù)基礎(chǔ)2.1設(shè)計(jì)原則本系統(tǒng)秉承方便管理員操作的原則、即時(shí)保存與管理信息的原則、人機(jī)交互友好的原則、數(shù)據(jù)通訊流暢的原則、為人民服務(wù)的原則,全力為河北省中小學(xué)打造一個(gè)與時(shí)俱進(jìn)的圖書管理系統(tǒng)軟件。力爭完善系統(tǒng)的每一個(gè)重要環(huán)節(jié),避免“蝴蝶效應(yīng)”給系統(tǒng)帶來的重大損失。2.2管理理論為了避免圖書館內(nèi)讀者對書籍頻繁的借閱與歸還帶來的凌亂問題、為了解決書籍隨意存放造成的雜亂無章問題等等,一個(gè)有組織、有效率的管理顯得尤為重要。2.2.1MIS理論MIS(ManagementInformationSystem)即管理信息系統(tǒng),是一個(gè)以人為主導(dǎo)的,利用計(jì)算機(jī)硬件、軟件、網(wǎng)絡(luò)設(shè)備,進(jìn)行信息的收集、傳遞、存儲、加工、整理的系統(tǒng),以提高組織的經(jīng)營效率。管理信息系統(tǒng)是有別于一般的信息系統(tǒng),因?yàn)樗鼈兌际怯脕矸治銎渌畔⑾到y(tǒng)在組織的業(yè)務(wù)活動中的應(yīng)用。學(xué)術(shù)上,管理信息系統(tǒng)通常是用來指那些和決策自動化或支持決策者做決策有關(guān)的信息管理方法(例如決策支持系統(tǒng)、專家系統(tǒng)和主管支持系統(tǒng))的統(tǒng)稱。2.2.2圖書管理圖書管理為專門為圖書而打造一套管理方案。它統(tǒng)計(jì)了圖書的訂購時(shí)間、訂購價(jià)格、入庫時(shí)間、出庫時(shí)間、從屬分類、存放位置等的信息。無論是入庫還是出庫,它都有一套體系記錄其相關(guān)信息,并且需要判斷是否可以進(jìn)行該操作。2.2.3讀者管理只有擁有相應(yīng)權(quán)限的讀者才能進(jìn)行相關(guān)操作。與此同時(shí),管理員需要統(tǒng)計(jì)所有讀者的信息,并且記錄該讀者是否可以借書、續(xù)借等。一套擁有讀者信息的管理系統(tǒng),才能更好的追蹤書籍的去向。2.2.4借閱管理Id號為**的書籍在不在?被誰借出去了?什么時(shí)候借出去的?什么時(shí)候歸還?歸還的時(shí)候有沒有超時(shí)?若不能歸還,需要賠償多少金額?等等問題的提出,無疑需要借閱管理來處理。同時(shí),借閱管理需要統(tǒng)計(jì)出所有書籍或讀者的借閱次數(shù)或數(shù)量。2.3人機(jī)交互理論縱然圖書管理系統(tǒng)中引入了計(jì)算機(jī)等自動化元素,然而仍然需要一定量的人工管理與操作系統(tǒng),以維護(hù)數(shù)據(jù)的準(zhǔn)確性并能及時(shí)發(fā)現(xiàn)問題、解決問題。而系統(tǒng)的客戶端則是本系統(tǒng)與用戶的直接交互。為了從人性化的角度思考、更滿足用戶的需求,人機(jī)交互的思想起到了重大作用。2.3.1人機(jī)交互的特點(diǎn)與要求(1)友好性無論是管理員還是讀者在操作時(shí),界面應(yīng)當(dāng)以簡潔明了、便捷的方式呈現(xiàn)在用戶面前,操作越簡單越能快捷地獲取想要的數(shù)據(jù)便越好。如果能提供給用戶相應(yīng)的快捷方式,或者提供給用戶相關(guān)維護(hù)人員的聯(lián)系方式便更好了。(2)靈活性系統(tǒng)應(yīng)當(dāng)在能夠滿足用戶的需求的情況下,能夠以不同的方式去完成用戶的需求。盡量避免死板、不可改變的情況。(3)功能性系統(tǒng)應(yīng)當(dāng)能完成每一個(gè)用戶所發(fā)出的指令并能滿足用戶的需求。(4)明確性系統(tǒng)應(yīng)當(dāng)清楚、明確的知道用戶發(fā)出了什么指令,并且能夠正確地給出相應(yīng)的輸出。(5)一致性系統(tǒng)的工作方式和處理問題的步驟盡可能和人的思維方式一致,系統(tǒng)在不同工作顯示界面上應(yīng)當(dāng)具有相似的交互顯示格式和相似的人際操作方式。(6)可靠性系統(tǒng)應(yīng)當(dāng)能夠正常無故障地工作,應(yīng)當(dāng)在運(yùn)行過程中不會出現(xiàn)死機(jī)、崩潰等問題;系統(tǒng)運(yùn)算提供的數(shù)據(jù)應(yīng)當(dāng)可靠無誤;系統(tǒng)對數(shù)據(jù)的安全保護(hù)應(yīng)當(dāng)具備一套相對健全的體系。(7)圖形化的使用雖然本系統(tǒng)是個(gè)應(yīng)用軟件,但是對于的使用還是很有必要的。圖形化的使用能使系統(tǒng)表現(xiàn)更直觀形象、更易用戶所接受。2.4C#語言的支持C#是微軟推出的一種基于.NET框架的、面向?qū)ο蟮母呒壘幊陶Z言。C#由C語言和C++派生而來,繼承了其強(qiáng)大的性能,同時(shí)又以.NET框架作為基礎(chǔ),擁有類似visualBasic的快速開發(fā)能力。C#由安德斯·海爾斯伯格主持開發(fā),微軟在2000年發(fā)布了這種語言。C#雖然沒有模板的支持,但是在C#2.0中引入了泛型,并且支持一些C++模板不支持的特性,本系統(tǒng)在接收通訊數(shù)據(jù)時(shí)就使用了這項(xiàng)技術(shù)。C#中的委托技術(shù)也相當(dāng)重要。在.NET環(huán)境中不允許線程直接訪問控件,而在客戶端從線程返回回來數(shù)據(jù)之后,會經(jīng)常性的使用這些數(shù)據(jù)改變窗體中相應(yīng)的顯示的數(shù)據(jù)。而有了委托的這項(xiàng)技術(shù),方便安全地解決了這一大難題。2.5數(shù)據(jù)庫的支持MicrosoftSQLServer是由美國微軟公司所推出的關(guān)系數(shù)據(jù)庫解決方案。數(shù)據(jù)庫的內(nèi)置語言原本是采用美國標(biāo)準(zhǔn)局(ANSI)和國際標(biāo)準(zhǔn)組織(ISO)所定義的SQL語言,但是微軟公司對它進(jìn)行了部分?jǐn)U充而成為Transact-SQL。采用數(shù)據(jù)庫的思想,不僅能夠快捷、清晰明確地存儲所有相關(guān)數(shù)據(jù),而且能夠方便數(shù)據(jù)的查找與統(tǒng)計(jì),更重要的是,數(shù)據(jù)庫的引入為網(wǎng)絡(luò)安全、信息系統(tǒng)的保護(hù)更是增添了一層厚厚保護(hù)膜。本系統(tǒng)對數(shù)據(jù)庫的使用不多,主要是新增了一名可登陸數(shù)據(jù)庫的用戶、創(chuàng)建數(shù)據(jù)庫、查詢/修改與保存數(shù)據(jù)表信息。由于在C#中采用DataAdapter緩存技術(shù)實(shí)現(xiàn)對數(shù)據(jù)庫的操作,所以本系統(tǒng)在數(shù)據(jù)庫中的修改也省去了不少繁瑣事件,同樣不需要編寫復(fù)雜的存儲過程。在安全上,加強(qiáng)了程序的防護(hù)措施;在事件處理上,它們分工更明確,避免了邏輯混亂的不良現(xiàn)象。3需求分析3.1確認(rèn)目標(biāo)3.1.1功能需求需求說明本系統(tǒng)為三大種人群而設(shè)計(jì):Administrator、普通管理員、讀者。Administrator為高級管理員,只由一人負(fù)責(zé),能夠操作后臺的一些高級配置、如更改數(shù)據(jù)庫、數(shù)據(jù)備份與恢復(fù)、對普通管理員的權(quán)限的修改等;普通管理員能夠操作圖書管理系統(tǒng)的一些基礎(chǔ)功能操作,如錄入圖書、查詢圖書資料、修改圖書資料、管理讀者等;而讀者又分為三內(nèi):校內(nèi)的教師與學(xué)生、校外授權(quán)的超級用戶,但他們都只能做對圖書的查詢與查看電子書籍等操作。只有在登錄被驗(yàn)證、獲得權(quán)限之后才能登入系統(tǒng),不同身份的人登錄之后所能看到的界面是不一樣的。每位讀者擁有自己的一份借書證,其中記錄著讀者的ID號、姓名、院系(單位)、與借書還書的相關(guān)信息。讀者可以根據(jù)其所持圖書證進(jìn)行借閱書籍、歸還書籍、進(jìn)入圖書館等操作,還可通過圖書證登陸相關(guān)系統(tǒng)后查詢、閱讀電子書籍。借閱圖書時(shí),由管理員錄入借書卡號,系統(tǒng)首先驗(yàn)證該卡號的有效性,若無效,則提示無效的原因;若有效,則顯示卡號、姓名、借書限額、已借閱數(shù)量、可再借數(shù)量等信息,本次實(shí)際借書的數(shù)量不能超出可再借數(shù)量的值。完成借書操作的同時(shí)要修改相應(yīng)圖書信息的狀態(tài)、讀者信息中的已借數(shù)量、在借閱信息中添加相應(yīng)的記錄。歸還圖書時(shí),由管理員錄入借書卡號和待歸還的圖書編號,顯示借書卡號、讀者姓名、圖書編號、圖書名稱、借書日期、應(yīng)歸還日期等信息,并自動計(jì)算是否超期以及超期的罰款金額,若進(jìn)行續(xù)借則取消超期和罰款等信息;若圖書有損壞,由管理員根據(jù)實(shí)際情況從系統(tǒng)中選擇相應(yīng)的損壞程度,系統(tǒng)自動計(jì)算損壞賠償金額。完成歸還操作的同時(shí),修改相應(yīng)圖書信息的狀態(tài)、修改讀者信息中的已借數(shù)量、在借書信息中對相應(yīng)的借書記錄做標(biāo)記、在還書信息中添加相應(yīng)的記錄。圖書管理員不定期地對圖書信息進(jìn)行添加、修改和刪除等操作,在圖書尚未歸還的情況下對圖書信息進(jìn)行刪除。也可以對讀者信息進(jìn)行添加、修改、刪除等操作,在讀者還有未歸還的圖書的情況下不能進(jìn)行刪除讀者信息。信息查詢。所有錄入數(shù)據(jù)庫的數(shù)據(jù),包括讀者的信息、書籍的信息,圖書管理員不僅擁有可以添加、修改、刪除信息的權(quán)限,還擁有查看的權(quán)限已經(jīng)將所有讀者、圖書的id號打印出條形碼的權(quán)限。尤其是對于讀者的登陸密碼,假若讀者忘記了密碼,可以尋求管理員的幫助。管理員通過一定途徑確定該讀者及所持圖書證的正確關(guān)系,成功辨認(rèn)后方能為其找回密碼。密碼的現(xiàn)實(shí)也不能直接顯示在界面。只有管理員確定當(dāng)前信息查看安全的情況下才能點(diǎn)擊“現(xiàn)實(shí)密碼”,才能查看所有讀者的登陸密碼。于此同時(shí),管理員還擁有統(tǒng)計(jì)報(bào)表的權(quán)限。通過當(dāng)前已有的數(shù)據(jù),管理員可以判斷出當(dāng)前圖書借閱的趨勢并預(yù)計(jì)未來圖書的借閱情況并能根據(jù)此趨勢判斷將來圖書館的發(fā)展趨勢。另外,圖書管理員還可以根據(jù)統(tǒng)計(jì)來判斷是否需要新進(jìn)一些什么類別的書籍以滿足讀者的需要,進(jìn)而更好的管理與完善圖書管理系統(tǒng)等等。如圖3-1所示:圖書管理圖書管理讀者管理借閱管理?xiàng)l形碼打印統(tǒng)計(jì)報(bào)表添加圖書刪除圖書查找圖書添加讀者修改讀者信息讀書刪除讀者借書還書讀者條形碼的打印圖書條形碼的打印圖書總數(shù)量統(tǒng)計(jì)按圖書類別統(tǒng)計(jì)圖書借閱排行讀者借閱排行系統(tǒng)圖書管理圖3-1功能分析圖開始登錄是否合法是是否普通管理員?否是否高級管理員?否結(jié)束否否顯示讀者界面顯示普通管理員界面顯示普通用戶界面是是是等待用戶相關(guān)操作開始登錄是否合法是是否普通管理員?否是否高級管理員?否結(jié)束否否顯示讀者界面顯示普通管理員界面顯示普通用戶界面是是是等待用戶相關(guān)操作是否讀者?圖3-2基本流程圖3.1.2性能需求數(shù)據(jù)庫的容量河北省中小學(xué)的圖書館藏量相對來說比較小,可以萬計(jì)數(shù),數(shù)據(jù)庫中所需記錄的數(shù)據(jù)所占空間并不大,因此對數(shù)據(jù)庫的容量只需較大,無嚴(yán)格限制。服務(wù)器性能與容量服務(wù)器要求必須在有多臺客戶端登陸時(shí)仍然能夠較好地流暢地運(yùn)行,并且能夠返回給客戶端正確的數(shù)據(jù)。于此同時(shí),因?yàn)殡娮訒拇鎯χ荒芤晕谋镜男问酱鎯σ怨?jié)省數(shù)據(jù)庫的資源,所以相對來說,數(shù)據(jù)庫的容量是需要較大的。假若每本書籍所需容量為1M,那么10000本書所需容量為10000M,即9.77G,而隨著電子書籍的普遍,所需容量必然會增加。從長遠(yuǎn)的角度思考,服務(wù)器所需的性能與容量相對來說都是較大的。網(wǎng)絡(luò)環(huán)境本系統(tǒng)所需網(wǎng)絡(luò)要求不嚴(yán),只需要能夠保證數(shù)據(jù)的發(fā)送與接收即可。而每次數(shù)據(jù)的發(fā)送與接收量并不大,所以只需要一套簡簡單單的能夠連上網(wǎng)的環(huán)境即可。3.1.3環(huán)境需求硬件環(huán)境處理器:Intel(R)Pentium(R)CPUP6200@2.13GHz安裝內(nèi)存(RAM):4.00GB(3.86GB可用)系統(tǒng)類型:64位操作系統(tǒng)筆與觸摸:沒有可用于此顯示器的筆或觸控輸入軟件環(huán)境Visualstudio2012、sqlserver20123.1.4可靠性需求本系統(tǒng)要求每位用戶在每次登陸的時(shí)候能夠?yàn)槠溥M(jìn)行正確的判斷,登陸之后能夠安全、可靠地執(zhí)行操作,不出現(xiàn)崩潰、閃退等嚴(yán)重現(xiàn)象。數(shù)據(jù)發(fā)送與接收也需要正確,不出現(xiàn)數(shù)據(jù)遺失、通訊協(xié)議重復(fù)、端口號占用等錯(cuò)誤現(xiàn)象。3.1.5安全保密要求對密碼的保護(hù)本系統(tǒng)嚴(yán)格要求不論是在用戶操作時(shí)還是在數(shù)據(jù)傳送時(shí)都需要對用戶密碼具有很好的保護(hù)措施。在登陸輸入密碼的時(shí)候,需要將其進(jìn)行隱藏;在數(shù)據(jù)傳送時(shí),需要有一定的協(xié)議規(guī)則將其封裝,使其不易被破解;且數(shù)據(jù)庫不會被客戶端所操作,等等。由此加深了對密碼的保護(hù)措施。對書籍信息的保護(hù)只有管理員才擁有權(quán)限對書籍的錄入、修改、刪除操作,而這些操作在數(shù)據(jù)傳送時(shí)因其特有的一套編碼與解碼規(guī)則,使其數(shù)據(jù)的傳送在一定程度上具備相應(yīng)的安全性。3.1.6用戶界面的需求用戶界面需達(dá)到直觀、美觀、便捷、圖形化、易于用戶接受、不花哨、不單調(diào)、界面風(fēng)格相對統(tǒng)一的要求。3.1.7資源使用需求數(shù)據(jù)庫與服務(wù)器由校方所提供,應(yīng)當(dāng)盡可能地節(jié)省數(shù)據(jù)庫與服務(wù)器所需資源,應(yīng)當(dāng)在完成之后為其進(jìn)行優(yōu)化。而客戶端為更多人不定時(shí)不定地點(diǎn)所操作的一部分,需求其下載時(shí)間短、資源占用量少的特點(diǎn),因此不應(yīng)超過15兆。3.2面向?qū)ο蟮姆治龈鶕?jù)本系統(tǒng)在開發(fā)過程中需求變化少、項(xiàng)目風(fēng)險(xiǎn)低、用戶使用環(huán)境比較穩(wěn)定、用戶除提出需求外很少參與開發(fā)工作及開發(fā)人員對學(xué)校圖書管理系統(tǒng)較為熟悉等特點(diǎn),本系統(tǒng)決定采用瀑布模型開發(fā)項(xiàng)目。3.2.1系統(tǒng)分析系統(tǒng)軟件定義本系統(tǒng)為一款易于所有教師、同學(xué)、管理者所接受的圖書管理系統(tǒng)軟件,并將適用人群擴(kuò)大化至河北省所有的中小學(xué),并將其標(biāo)準(zhǔn)化。采用C/S模式,使用C#語言,主要目的是實(shí)現(xiàn)為河北省各大中小學(xué)提供管理各類文獻(xiàn)的標(biāo)準(zhǔn)化系統(tǒng),基本要求為實(shí)現(xiàn)易操作、美觀、強(qiáng)大、滿足大部分教師/學(xué)生的對圖書文獻(xiàn)需求、能跟進(jìn)時(shí)代需要等的管理系統(tǒng)??尚行苑治霰鞠到y(tǒng)主要面向人群分為五類人群:教師、學(xué)生、管理者、超級用戶、高級管理員,他們的權(quán)限不一樣,而高級管理者擁有最高的權(quán)限。無論社會如何發(fā)展、科技如何發(fā)展,文字書籍對人群都仍然是十分必要的,這款軟件的設(shè)計(jì)面向的人群數(shù)量仍是極多的,軟件的功能也在與時(shí)俱進(jìn),因此該項(xiàng)目對于面向人群的設(shè)計(jì)是合理的。本系統(tǒng)的環(huán)境要求不高,只需要一臺裝有visualstudio和sqlserver軟件的筆記本或者臺式機(jī)即可。所需配置不高,配置可行性通過。本系統(tǒng)的測試環(huán)境完全可以采用開發(fā)環(huán)境進(jìn)行配置測試,因此測試環(huán)境可行性通過。本系統(tǒng)所需資源、所需成本較低。開發(fā)者完全擁有開發(fā)本系統(tǒng)所需要的基本硬件資源與軟件資源。因此資源分析可行性通過。最后,鑒于開發(fā)者與學(xué)校關(guān)系密切,了解學(xué)校圖書情況,同時(shí)也可以實(shí)地考察當(dāng)前河北省的各大學(xué)校的圖書館實(shí)際情況,可以獲取大量所需數(shù)據(jù)資料,并且能夠在此基礎(chǔ)上為圖書管理系統(tǒng)融入當(dāng)前時(shí)代的新內(nèi)容,為當(dāng)前社會帶來良好的社會效益。因此,總的來說,本系統(tǒng)完全具備開發(fā)的各項(xiàng)基本條件,可以進(jìn)行開發(fā)。系統(tǒng)組成本系統(tǒng)主要由以下三個(gè)子系統(tǒng)構(gòu)成:讀者子系統(tǒng)、管理員管理子系統(tǒng)、高級管理員管理子系統(tǒng)。具體可參閱3-2基本流程圖介紹。系統(tǒng)功能描述本文檔主要介紹借閱書籍與歸還書籍的功能。讀者首先向圖書管理員進(jìn)行借閱請求,請求通過后圖書管理員會為其首先進(jìn)行可借閱數(shù)量判斷,判斷成功后會為其進(jìn)行借閱處理,然后相關(guān)數(shù)據(jù)會被記錄進(jìn)入數(shù)據(jù)庫。具體可參閱3-1需求說明。系統(tǒng)參與者圖3-3系統(tǒng)參與者UML圖其中,用戶是對所有可執(zhí)行本系統(tǒng)人員的歸納。有且只有一名或者一組高級用戶可對系統(tǒng)做高級操作,包括對普通圖書管理員、讀者、書籍等的添加、修改、刪除等,還賦予其備份數(shù)據(jù)庫、還原數(shù)據(jù)庫的權(quán)限。普通管理員則有多名分別負(fù)責(zé)不同館區(qū),可以對書籍、讀者信息進(jìn)行添加、修改、刪除等操作,可以統(tǒng)計(jì)當(dāng)前所有信息,可以將當(dāng)前所有圖書id、讀者圖書證進(jìn)行打印操作,可以輔助讀者進(jìn)行借書、還書等操作及其管理。讀者除了可以在圖書館借閱、歸還書籍外,只允許對書籍進(jìn)行查看與閱讀電子書籍的操作。3.2.2相關(guān)用例圖(1)讀者用例圖圖3-4讀者用例圖讀者擁有登錄系統(tǒng)、查看書籍、借閱書籍、歸還書籍的權(quán)限。在查看書籍之后,可以通過電子書籍的id號進(jìn)行閱讀書籍的操作。當(dāng)讀者需要借閱書籍的時(shí)候,系統(tǒng)首先會判斷該讀者是否可以借閱,包括判斷該讀者是否有權(quán)限借閱、是否借閱的書籍已經(jīng)超量等信息。而歸還書籍的時(shí)候,還會要求圖書管理員查看該書籍的的狀態(tài),如果該書籍已經(jīng)受到損壞,那么可能會要求該讀者進(jìn)行一定的賠償。具體情況依據(jù)學(xué)校的規(guī)定而定。圖書管理員用例圖圖3-5圖書管理員用例圖圖書管理員所擁有的權(quán)限比較多,也是其職責(zé)所在。首先,圖書管理員擁有對讀者的管理、對圖書的管理、對借閱的管理、條形碼的打印、統(tǒng)計(jì)報(bào)表等主要權(quán)限。當(dāng)學(xué)校讀者相關(guān)信息發(fā)生變化時(shí),需要管理員通過系統(tǒng)的“讀者管理”來進(jìn)行數(shù)據(jù)庫與實(shí)際情況的統(tǒng)一與備份。其中包括添加、刪除、修改、清空、查看讀者信息等操作。同理,當(dāng)學(xué)校書籍相關(guān)信息發(fā)生變化時(shí),也需要管理員通過系統(tǒng)的“圖書管理”來進(jìn)行數(shù)據(jù)庫與實(shí)際圖書信息的統(tǒng)一與備份。同樣的,也包括對圖書的添加、刪除、修改、情況、查看等操作。而借閱管理則包括借出與歸還兩類操作。當(dāng)讀者來借書時(shí),不僅僅管理員賦予其借書的權(quán)限,管理員更是有義務(wù)將其相關(guān)借閱信息存儲;同理,當(dāng)讀者歸還圖書時(shí),管理員不僅僅需要將圖書放回書架相應(yīng)位置,還需要將該讀者歸還了什么書籍等信息記錄入庫。條形碼打印則包括打印圖書條形碼和打印讀者條形碼。為了進(jìn)一步方便管理員對讀者信息的相關(guān)管理,本系統(tǒng)直接將打印讀者條形碼更換成了打印讀者圖書證。統(tǒng)計(jì)報(bào)表則是最后圖書管理系統(tǒng)總會需要到的一項(xiàng)功能。它包括統(tǒng)計(jì)圖書信息與統(tǒng)計(jì)讀者信息,還可以更細(xì)地劃分,這將在本文檔后邊會介紹到。4系統(tǒng)設(shè)計(jì)4.1數(shù)據(jù)庫設(shè)計(jì)4.1.1數(shù)據(jù)庫概念設(shè)計(jì)本系統(tǒng)主要有5個(gè)實(shí)體,分別是圖書證實(shí)體、書籍實(shí)體、書籍信息實(shí)體、書架實(shí)體和借閱實(shí)體。圖書證實(shí)體是關(guān)聯(lián)學(xué)生、教師、超級用戶、管理員和高級管理員的實(shí)體,其referenceId關(guān)聯(lián)著外部數(shù)據(jù)庫實(shí)體的所對應(yīng)的id號。而學(xué)生、教師等在理應(yīng)在入校的時(shí)候就已經(jīng)統(tǒng)計(jì)記錄下來了,所以本系統(tǒng)沒有故意設(shè)置該實(shí)體(只在演示的時(shí)候創(chuàng)造了測試實(shí)體)。圖書證實(shí)體E-R圖如圖4-1所示:LibraryCardNorLibraryCardNorReferenceIddReferenceTypeCanBorrowNumCanKeepTimeTimeowNumPassIdAccountIdIdTimeowNum圖4-1圖書證實(shí)體E-R圖對于圖書館來說,最重要的就是其內(nèi)存儲的書籍,所以需要建立一個(gè)書籍實(shí)體以存儲相關(guān)信息,包括其固有屬性“圖書類別”。如圖4-2所示:CostCostAuthorTimeowNumIdPublishBTypePrintTimemeNameTimeowNumBookClassify圖4-2書籍實(shí)體E-R圖書籍除了其自身的屬性之外,還包括了其他的屬性,如是否被借閱、什么時(shí)候歸還等,于是還需要一個(gè)實(shí)體為其進(jìn)行存儲。兩實(shí)體相互關(guān)聯(lián)并以“是否其自身必有的屬性”區(qū)分。如圖4-3所示:BookStateBookStateStorgeTimeFetchoutTimeIdShelfIdTimeowNumOutTimeLoseTimeBookStateTimeowNum圖4-3書籍信息實(shí)體E-R圖然而,對于書籍,還有一個(gè)很重要的為題:以什么方式存放在哪里?對于書籍的分類管理存儲很重要,否則難以得知圖書的位置,于是本系統(tǒng)提出了對書架的管理。如圖4-4所示:bookshelfbookshelfIdStorgeTypePlace圖4-4書籍實(shí)體E-R圖最后,本系統(tǒng)的重點(diǎn)就是對于借閱書籍與還書的管理了。一個(gè)友好便捷的圖書管理才能更好地處理并及時(shí)獲取圖書的信息,也才能更好地保護(hù)圖書資源。本系統(tǒng)的借閱實(shí)體由圖書Id和借書證Id組成的聯(lián)合主鍵共同識別唯一信息,并且及時(shí)記錄了是否被借閱或歸還。如圖4-5所示:BorrowInfoBorrowInfoBorrowTimeGivebackBookIdTimeowNumBorrowSignignCardIdTimeowNum圖4-5借閱實(shí)體E-R圖4.1.2數(shù)據(jù)庫分析Book(Id,Name,Author,BType,Pulibsh,PrintTime,Cost,Cliasify)BookState(Id,BookState,ShelfId,StorgeTime,FetchoutTime,LoseTime,OutTime)BookShelf(Id,Place,StoreType)LibraryCardNor(Id,ReferenceId,ReferenceType)BorrowInfo(Id,CardId,BookId,BorowTime,Giveback,BorrowSign)SuperUser(Id,Name,IDNUMBER,Department,UserIdentity)Manager(Id,Name,IDNUNBER,Department,BornDate,Sex,Job,IsBlack)Administrator(Id,Name,PassId,IDNUMBER,APassword)強(qiáng)制參照完整性:BookState中的Id的值必須和Book中的Id的值相對應(yīng);BorrowInfo中的CardId的值必須和LibraryCardNor中的Id的值相對應(yīng);BorrowInfo中的BookId的值必須和BookState中的Id的值相對應(yīng);LibraryCardNor的ReferenceId必須與學(xué)生或者教師或者超級用戶的Id值相對應(yīng);各表之間的聯(lián)系圖如圖4-6: 圖4-6各表之間的聯(lián)系圖4.1.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)以上設(shè)計(jì),本系統(tǒng)數(shù)據(jù)庫共做了5個(gè)邏輯表。分別是LibraryCardNor借書證表、BookShelf書架表、Book圖書表、BookState圖書狀態(tài)表、BorrowInfo借書信息表??紤]到學(xué)校在錄取學(xué)生或者教師的時(shí)候會為其錄入數(shù)據(jù)并創(chuàng)建相關(guān)數(shù)據(jù)庫,為了節(jié)省學(xué)??捎觅Y源,本系統(tǒng)希望能夠從該數(shù)據(jù)庫引入學(xué)生和教師信息,于是此處不再為其進(jìn)行數(shù)據(jù)分析,而是做了部分有關(guān)學(xué)生和教師的測試表。另外,本系統(tǒng)還需要一個(gè)超級用戶表、一個(gè)圖書管理員表和一個(gè)高級用戶表。于此,各表如下所示:表4-1SuperUser超級用戶表字段名數(shù)據(jù)類型是否主鍵是否為空描述IdVarchar(20)是NOTNULL超級用戶編號NameVarchar(20)否NOTNULL超級用戶姓名IDNUMBERChar(18)否NOTNULL超級用戶身份證DepartmentVarchar(40)否NULL單位UserIdentityVarchar(20)否NULL對超級用戶的備注信息表4-2Administrator高級管理員表字段名數(shù)據(jù)類型是否主鍵是否為空描述IdVarchar(20)是NOTNULL高級管理員編號NameVarchar(20)否NOTNULL姓名PassIdVarchar(20)否NOTNULL登陸賬號IDNUMBERChar(18)否NOTNULL身份證號APasswordVarchar(20)否NOTNULL登陸密碼表4-3Manager普通管理員表字段名數(shù)據(jù)類型是否主鍵是否為空描述IdVarchar(20)是NOTNULL普通管理員編號NameVarchar(20)否NOTNULL普通管理員姓名IDNUMBERChar(18)否NOTNULL身份證號DepartmentVarchar(20)否NULL單位BornDatedatetime否NULL出生日期SexVarchar(2)否NULL性別(只能為“男”或“女”)JobVarchar(20)否NULL職務(wù)的描述IsBlackint否NULL是否在黑名單之內(nèi)(只能為0或1,默認(rèn)為0),在黑名單之內(nèi)的人,不能再登陸系統(tǒng),也不能再被創(chuàng)建。此操作只允許高級管理員通過數(shù)據(jù)庫設(shè)置表4-4LIbraryCardNor借書證表字段名數(shù)據(jù)類型是否主鍵是否為空描述IdVarchar(20)是NOTNULL借書證編號(對應(yīng)條形碼),也是登陸賬號ReferenceIdVarchar(20)否NOTNULL借書人編號ReferenceTypeChar(2)否NOTNULL借書人類型(只能為1-3,其中1為學(xué)生,2為教師,3為超級用戶)AccountIdVarchar(20)否NOTNULL昵稱PassIdVarchar(20)否NOTNULL登陸密碼CanBorrowNumint否NULL可借閱數(shù)量默認(rèn)為5CanKeepTimeint否NULL可借閱時(shí)間,單位為天,默認(rèn)為30表4-5Book圖書表字段名數(shù)據(jù)類型是否主鍵是否為空描述IdVarchar(20)是NOTNULL圖書編號(對應(yīng)圖書條形碼)NameVarchar(20)否NOTNULL圖書名稱AuthorVarchar(20)否NOTNULL作者BTypeVarchar(10)否NULL材料類型(只能為“紙質(zhì)”或者“電子”,默認(rèn)為“紙質(zhì)”)PublishVarchar(40)否NULL出版社PrintTimedatetime否NULL出版時(shí)間Costdouble否NULL花費(fèi)ClassifyVarchar(40)否NULL圖書類型表4-6BookState圖書狀態(tài)表字段名數(shù)據(jù)類型是否主鍵是否為空描述IdVarchar(20)是NOTNULL圖書編號BookStateVarchar(4)否NULL圖書狀態(tài)(只能為“庫存”或“借出”或“遺失”或“出庫”,默認(rèn)為“庫存”)SheldIdVarchar(20)否NULL對應(yīng)圖書的編號StoreTimedatetime否NULL存儲時(shí)間FetchoutTimedatetime否NULL借出時(shí)間loseTimedatetime否NULL遺失時(shí)間OutTimedatetime否NULL出庫時(shí)間表4-7BorrowInfo借書信息表字段名數(shù)據(jù)類型是否主鍵是否為空描述CardIdVarchar(20)是NOTNULL對應(yīng)圖書證編號BookIdVarchar(20)是NOTNULL對應(yīng)圖書編號BorrowTimedatetime否NULL借書時(shí)間GiveBackdatetime否NULL還書時(shí)間BorrowSignint否NULL是否已經(jīng)歸還(默認(rèn)為0,0表示沒有歸還,非0表示已經(jīng)歸還)表4-8BookShelf書架表字段名數(shù)據(jù)類型是否主鍵是否為空描述IdVarchar(20)是NOTNULL書架編號PlaceVarchar(40)否NOTNULL書架具體存放位置StoreTypeVarchar(20)否NOTNULL書架存放類型4.2服務(wù)器與客戶端的設(shè)計(jì)4.2.1服務(wù)器與客戶端之間的聯(lián)系設(shè)計(jì)服務(wù)器與客戶端之間的對外連接均采用C#提供的Socket進(jìn)行連接。其中服務(wù)器默認(rèn)使用端口號8000并使用多線程不斷監(jiān)聽外部是否有客戶端接入。如果,則再為其建立一個(gè)專用線程,與該客戶端進(jìn)行數(shù)據(jù)通訊。而客戶端默認(rèn)使用一個(gè)線程連接服務(wù)器的8000端口號,并提供一個(gè)可以修改連接目的的ip地址和端口號以防止服務(wù)器更換ip地址或者端口號時(shí)的不統(tǒng)一而導(dǎo)致的無法連接現(xiàn)象。無論是服務(wù)器還是客戶端,均使用C#提供的泛型dictionary及委托相互聯(lián)系而產(chǎn)生的回調(diào)并及時(shí)進(jìn)行客戶端的數(shù)據(jù)更新。服務(wù)器與客戶端相互商量,協(xié)議統(tǒng)一無差錯(cuò),保證了通訊之間的功能唯一性與數(shù)據(jù)準(zhǔn)確性。另外,為了安全,只有服務(wù)器可以訪問數(shù)據(jù)庫,而客戶端不允許之間操作數(shù)據(jù)庫。4.2.2服務(wù)器數(shù)據(jù)建模服務(wù)器主要分成三部分:與數(shù)據(jù)庫建立聯(lián)系、與客戶端建立聯(lián)系、服務(wù)器內(nèi)部的管理、計(jì)算與數(shù)據(jù)保存等。數(shù)據(jù)庫內(nèi)有多個(gè)表,服務(wù)器可能對其進(jìn)行多個(gè)表的操作,并且對每個(gè)表的需求與操作方式可能各有差別,因此,需要建立一個(gè)與數(shù)據(jù)庫聯(lián)系的基類,然后分別建立幾個(gè)繼承該基類的子類對數(shù)據(jù)庫進(jìn)行相互的操作?;惱锎娣胖A(chǔ)的操作,而子類中存放著具備各自特征的操作。本系統(tǒng)為小型的只為中小學(xué)設(shè)計(jì)的系統(tǒng),因此服務(wù)器與客戶端之間的通訊并不需要大量的支持,所以本系統(tǒng)只為服務(wù)器與客戶端的連接設(shè)計(jì)了一個(gè)類進(jìn)行簡單的接收數(shù)據(jù)、處理數(shù)據(jù)、發(fā)送數(shù)據(jù)的操作。而服務(wù)器內(nèi)部的管理、計(jì)算與數(shù)據(jù)保存可能會關(guān)系到各類管理類,具體實(shí)現(xiàn)如下圖4-7所示:圖4-7服務(wù)器數(shù)據(jù)建模圖4.2.3客戶端數(shù)據(jù)建??蛻舳说脑O(shè)計(jì)思路與服務(wù)器類似,不同的是,客戶端不需要那么多的管理類,卻需要大量的窗體類用以為用戶呈現(xiàn)相關(guān)數(shù)據(jù)。具體如下圖4-8所示:圖4-8客戶端數(shù)據(jù)建模圖5設(shè)計(jì)實(shí)現(xiàn)與測試5.1登陸功能用戶登陸時(shí),首先需要輸入賬號和密碼,所以,該功能首先需要一個(gè)帶2個(gè)文本框跟一提交信息按鈕的窗體,當(dāng)用戶輸入密碼后,密碼會被自動轉(zhuǎn)換為字符“*”以達(dá)到保密的作用卻不妨礙對密碼數(shù)據(jù)的讀取。當(dāng)用戶點(diǎn)擊確定后,首先從文本框中讀取出賬號和密碼,然后判斷是否符合規(guī)則(不能為空),然后添加長度數(shù)據(jù)與其對應(yīng)的連接字符,再添加對應(yīng)的登陸協(xié)議號及其連接字符,最后一并發(fā)送給服務(wù)器。服務(wù)器接收到數(shù)據(jù)之后,通過協(xié)議號發(fā)現(xiàn)此數(shù)據(jù)為登陸數(shù)據(jù),然后進(jìn)行解析判斷是否符合規(guī)則,如果符合規(guī)則,則繼續(xù),否則扔棄此數(shù)據(jù)。然后服務(wù)器會去數(shù)據(jù)庫查找是否符合該賬號密碼的用戶,如果存在并且密碼正確,則會發(fā)送給客戶端一“登陸成功”的消息,否則會告訴用戶出什么錯(cuò)了。假如用戶輸入出錯(cuò),在顯示出錯(cuò)信息之后,系統(tǒng)會自動退出以保證數(shù)據(jù)的安全性。登陸功能模塊,主要采用了協(xié)議關(guān)系表、Dictionary與delegate聯(lián)合形成的回調(diào)函數(shù)以及控件的invoke函數(shù)。在登陸界面初始化成功之后,系統(tǒng)會在后臺自動初始化ManageForm主界面,以避免用戶登陸之后因?yàn)榻缑鏇]有初始化完成而產(chǎn)生的短時(shí)間的卡頓。5.2主界面主界面除了背景圖片外,主要分成兩部分:菜單欄部分和快捷鍵部分。如圖5-1所示:圖5-1主界面菜單欄圖當(dāng)用戶點(diǎn)擊菜單欄的按鈕時(shí),每個(gè)菜單按鈕都會彈出自己所有的子菜單,相應(yīng)的,當(dāng)點(diǎn)擊子菜單時(shí),它也會顯示它所有的子菜單,當(dāng)然,如果該菜單鍵沒有子菜單則不顯示,如果該菜單對應(yīng)某些功能,則會顯示輔助功能實(shí)現(xiàn)的界面,并可在后臺為用戶獲取其所希望得到的數(shù)據(jù)。于此同時(shí),本系統(tǒng)還為常用的幾個(gè)按鈕鍵做了快捷方式,如圖5-2:圖5-2主界面快捷鍵圖以上三個(gè)快捷圖片是為方便圖書管理員操作而特意添加的圖片按鈕,它們大概是圖書管理中點(diǎn)擊率最高的按鈕。如此可方便用戶的操作并能達(dá)到節(jié)省時(shí)間的效果。“看書”按鈕,會首先為用戶彈出一個(gè)可輸入圖書id號的文本框,當(dāng)用戶輸入相應(yīng)存在的id號時(shí),服務(wù)器則會為讀者傳送該id號所對應(yīng)的電子圖書內(nèi)容。而假若不存在,同樣的也會返回?cái)?shù)據(jù)提示讀者該圖書并不存在。無論用戶點(diǎn)擊主菜單的哪個(gè)按鈕或者點(diǎn)擊快捷鍵圖片,系統(tǒng)都會為其生成一個(gè)與之對應(yīng)的界面。5.3系統(tǒng)設(shè)置在系統(tǒng)設(shè)置中,為了防止系統(tǒng)服務(wù)器端與其他應(yīng)用發(fā)送占用端口號的沖突事件,本系統(tǒng)特意為管理員添加了“重置IP和端口”按鈕和“重新連接”按鈕。每次系統(tǒng)啟動之后,系統(tǒng)都會從當(dāng)前進(jìn)程所在路徑下查找“info.txt”文件,如果不存在則創(chuàng)建并寫下默認(rèn)ip地址和端口號,否則從中讀取ip地址和端口號信息,然后根據(jù)默認(rèn)的或文本中存儲的ip地址和端口號訪問服務(wù)器。因此,在重置ip地址和端口號之后,本系統(tǒng)會首先修改“info.txt”中的信息,然后再根據(jù)該信息與服務(wù)器進(jìn)行重連操作??紤]到用戶可能保留著其他應(yīng)用程序使用時(shí)的一些習(xí)慣,本系統(tǒng)為了與其他應(yīng)用相統(tǒng)一,增加了“退出”按鈕。如此,本系統(tǒng)希望用戶能夠更易接受本系統(tǒng)并能很好的運(yùn)用。5.4圖書管理圖書管理主要分為四大模塊:錄入/修改圖書信息、刪除圖書信息、清空圖書信息和查看圖書信息。無論是哪種功能的需求實(shí)現(xiàn),本系統(tǒng)都會為其找到其所對應(yīng)的協(xié)議號,并且從界面中獲取所需的相關(guān)信息,然后通過ProtocalMgr打包,再通過ConnectServer發(fā)送給服務(wù)器。因此ConnectServer類在本系統(tǒng)剛啟動的時(shí)候必定就已經(jīng)啟動起來了,而ProtocalMgr在ConnectServer中創(chuàng)建并關(guān)聯(lián)。于是,只要將這些按鈕所需執(zhí)行的功能與其相對應(yīng)的協(xié)議號相對應(yīng),則可從服務(wù)器獲取所希望的數(shù)據(jù)。而服務(wù)器直接跟數(shù)據(jù)庫相連,因此客戶端便可獲取到所有存儲在數(shù)據(jù)庫中的數(shù)據(jù)。然而,其中有一個(gè)很重要的問題:當(dāng)服務(wù)器給客戶端發(fā)送消息的時(shí)候,有時(shí)候會因?yàn)閿?shù)據(jù)過大過長而丟失數(shù)據(jù),但是如果把它們分散發(fā)送給客戶端,又可能會產(chǎn)生端口號占用或者數(shù)據(jù)堵塞的情況而導(dǎo)致客戶端無法接受正確的數(shù)據(jù)或者根本無法接收到數(shù)據(jù)。于是,本系統(tǒng)采用了一個(gè)暫時(shí)認(rèn)為很好的方法:當(dāng)服務(wù)器發(fā)現(xiàn)所發(fā)數(shù)據(jù)可能過大時(shí),便會將它們分成很多個(gè)部分分批次發(fā)送,而究竟分幾批則由數(shù)據(jù)本身所占的大小及ElecPerNum所決定,即:總數(shù)據(jù)大小/ElecPerNum+總數(shù)據(jù)大小%ElecPerNum>0?1:0)=發(fā)送次數(shù)。另外,每將一批數(shù)據(jù)發(fā)送之后,都會有0.2秒或者0.5的延遲,以保證客戶端已經(jīng)成功接收上一批數(shù)據(jù)并且等待接收下一批數(shù)據(jù)。有了此思想之后,客戶端接收數(shù)據(jù)則變得相對穩(wěn)定了。同樣的,有時(shí)候客戶端發(fā)送消息給服務(wù)器時(shí)也遇到過這樣的問題,同樣也是通過此方法解決的。5.5讀者管理讀者管理的思路與圖書管理的思路具有異曲同工之處,同樣擁有添加/修改讀者信息、刪除讀者信息、查看讀者信息、清空讀者信息的操作。并且在界面顯示上也與圖書管理的界面相似,有著同樣的風(fēng)格。5.6借閱管理借閱管理除了跟圖書管理、讀者管理一樣擁有查看借閱信息、清空借閱信息之外,還具有借書、還書的功能。在借書時(shí),當(dāng)管理員輸入讀者的id號,即圖書借閱卡上的條形碼之后,系統(tǒng)會在后臺自動發(fā)送消息給服務(wù)器告訴它“我想要id號為**的一些信息”,然后服務(wù)器便會將該讀者的部分信息發(fā)送過來。當(dāng)客戶端接收到此消息后,首先判斷數(shù)據(jù)是否正確,如果正確則結(jié)合C#提供的委托功能調(diào)用控件的invoke函數(shù)將所有信息輸出到界面;而如果數(shù)據(jù)出錯(cuò)了,客戶端也會根據(jù)服務(wù)器提供的數(shù)據(jù)告訴用戶出現(xiàn)了什么樣的錯(cuò)誤。當(dāng)成功接收該讀者的信息并成功顯示之后,管理員將讀者所需借閱的書籍id號(書籍對應(yīng)的條形碼)輸入系統(tǒng),如果該讀者身份正確并且其所借閱的圖書數(shù)量并未超出規(guī)定值,則發(fā)送給服務(wù)器獲取圖書信息并且根據(jù)同樣的方式將圖書信息輸出到界面。如果該讀者可以繼續(xù)借閱,則還可以第二次輸入圖書信息。最后在提交時(shí)一并將數(shù)據(jù)發(fā)送給服務(wù)器,并將該讀者與圖書直接的借閱關(guān)系數(shù)據(jù)保存在數(shù)據(jù)庫。而當(dāng)讀者還書時(shí),只需要輸入讀者的id號即可獲取到讀者的信息以及與其相對應(yīng)的圖書借閱信息。然后管理員便可以批量告訴服務(wù)器該讀者歸還了什么書籍了。由此,一套基本的借閱管理便結(jié)束了??蓞⒖家幌陆栝喗缑鎴D片了解本系統(tǒng)(見圖5-3和5-4):圖5-3借閱圖書界面圖圖5-4還書界面圖5.7書架管理書架管理跟圖書管理、讀者管理類似,擁有添加/修改書架信息、清空書架信息、刪除書架信息、查看書架信息的功能。但值得說明的一點(diǎn)是,考慮到如果書架沒有首先管理好,圖書入庫后將無法很好地分類,容易導(dǎo)致圖書堆放雜亂無章、難以查找書籍的弊端,因此本系統(tǒng)要求首先添加書架信息,并且根據(jù)書架信息將圖書進(jìn)行分類并保存圖書存儲的位置。5.8條形碼打印條形碼打印共有兩項(xiàng)功能:打印圖書條形碼和打印帶讀者條形碼的圖書證。為防止與市面上的條形碼標(biāo)準(zhǔn)不匹配的特點(diǎn),本系統(tǒng)并未主動編寫生成條形碼、解析條形碼的代碼,而是從網(wǎng)上下載了由google提供的ZXing資源,調(diào)用其接口并通過一定的邏輯將其條形碼打印,然后配合visualstudio的控件對其進(jìn)行打印,具體見圖5-5和圖5-6圖5-5圖書條形碼圖圖5-6讀者圖書證打印5.9統(tǒng)計(jì)報(bào)表5.9.1對書籍的統(tǒng)計(jì)當(dāng)點(diǎn)擊“圖書管理-統(tǒng)計(jì)”之后,首先客戶端會在后臺發(fā)送協(xié)議告訴服務(wù)器用戶需要統(tǒng)計(jì)信息。然后服務(wù)器會在后臺首先計(jì)算出當(dāng)前圖書館館藏的圖書共有多少本,其中有紙質(zhì)書籍多少本、電子書籍多少本。如以下代碼所示:publicstringGetBookSum(){System.Data.DataTabletable=mBaseConn.getTableList();if(table==null){returnRules.Rules.ErrorStr;}intsum=table.Rows.Count;intpaper=0;intelec=0;foreach(System.Data.DataRowrowintable.Rows){stringtype=row["BType"].ToString();if(type==Rules.Rules.StrElec){elec++;}elseif(type==Rules.Rules.StrPaper){paper++;}}stringdata=sum+Rules.Rules.StrLink_Att_Att+paper+ Rules.Rules.StrLink_Att_Att+elec+Rules.Rules.StrLink_Att_Att;returndata;}然后管理員可以根據(jù)兩種方式再對圖書進(jìn)行統(tǒng)計(jì):按圖書類別統(tǒng)計(jì)或者按圖書借閱排行榜統(tǒng)計(jì)。當(dāng)管理員希望使用圖書類別統(tǒng)計(jì)方法對圖書進(jìn)行統(tǒng)計(jì)時(shí),客戶端會將此消息發(fā)送給服務(wù)器,然后服務(wù)器會首先將圖書進(jìn)行分類并將每種類別的數(shù)量存儲在泛型Dictionary中,然后再對其進(jìn)行從高到低的排序。之后會將排好序的數(shù)據(jù)打包發(fā)送給客戶端顯示。同樣的,當(dāng)管理員希望使用圖書借閱排行榜進(jìn)行統(tǒng)計(jì)時(shí),服務(wù)器首先會將所有圖書id和被借閱次數(shù)統(tǒng)計(jì)出來存儲再排序再打包發(fā)送給客戶端。由此可直觀性地獲取圖書的相關(guān)信息。5.9.2對讀者的統(tǒng)計(jì)對讀者的統(tǒng)計(jì)較為簡單。首先客戶端會告訴服務(wù)器需要統(tǒng)計(jì)了,然后服務(wù)器會將當(dāng)前所有讀者的信息分類后返回給客戶端,然后客戶端會告訴服務(wù)器“我需要對讀者通過借書數(shù)量進(jìn)行統(tǒng)計(jì)”,然后服務(wù)器會將所有讀者及其借書數(shù)量統(tǒng)計(jì)出來返回給客戶端。通過對讀者的統(tǒng)計(jì),可以統(tǒng)計(jì)出那些院的哪些學(xué)生或者哪個(gè)單位的哪個(gè)教師借書次數(shù)較多,還可以評出“最愛讀書的人”。5.10功能測試表5-1測試用例表用例編號測試模塊輸入輸出預(yù)期結(jié)果與預(yù)期結(jié)果1登陸模塊輸入用戶名:4711111222224輸入密碼:aaaaaa登陸系統(tǒng)登陸系統(tǒng)相同2添加圖書信息輸入圖書編號:1000000000009,圖書名稱:book01,作者:author01,類型:紙質(zhì),圖書類型:故事類;存放位置:東校區(qū)圖書館3樓A書架,單價(jià):10添加圖書信息成功添加信息成功相同3添加讀者信息輸入讀者編號:3000000000007,關(guān)聯(lián)ID:1,讀者類型:教師;用戶名:Jandgen,用戶密碼:qqqqqq,

溫馨提示

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

最新文檔

評論

0/150

提交評論