




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
河北農(nóng)業(yè)大學本科畢業(yè)論文(設計)題目: 河北省中小學省級標準化學校建設 圖書管理系統(tǒng)軟件學院: 信息科學與技術(shù)學院專業(yè)班級: 軟件1001班學號: 學生姓名: 指導老師姓名:指導教師職稱:教授二O一四年六月五日河北省中小學省級標準化學校建設圖書管理系統(tǒng)軟件摘要隨著日前科技發(fā)展日益迅猛的需要,信息產(chǎn)品的要求也越來越高,人們?nèi)找姘l(fā)現(xiàn)書籍作為知識力量傳播的載體已經(jīng)無法滿足人們的需求,于是出現(xiàn)了電子書籍等高科技產(chǎn)品?,F(xiàn)今的圖書管理系統(tǒng)卻少有能跟進時代需求的較為完善的系統(tǒng)。除此之外,當前我國仍存在著一個嚴峻的現(xiàn)象:一般的中小學校雖然設有圖書館,卻沒有一套完整的管理系統(tǒng),不能對書籍、信息等擁有一套合理的、健全的操作管理。這不僅使得圖書的管理混亂、來源去向無法追蹤,同時也影響了學生們對圖書的借閱,更是影響了學生們的全面發(fā)展、影響了我國人才的培養(yǎng)。為了解決以上問題,特地為河北省中小學的圖書館設計了本系統(tǒng)。本系統(tǒng)主要分為五大功能:圖書管理、讀者管理、借閱管理、條形碼打印、統(tǒng)計報表。五大功能各自堅守自己的崗位,通過ConnDB類與數(shù)據(jù)庫相連,并相互建立依賴關(guān)系。于此同時,為了避免書籍雜亂無章存放的現(xiàn)象,本系統(tǒng)要求首先需要為圖書館的書架信息進行分類存儲,才能添加書籍并要求書籍信息內(nèi)存儲與其相關(guān)的存放位置及書架信息。除此之外,為了融入現(xiàn)代高速發(fā)展的信息科技時代,本系統(tǒng)在現(xiàn)有的基礎上,還添加了電子圖書的錄入、存儲與閱讀等的功能,保證了圖書不會單一枯燥。針對河北省中小學人數(shù)不多、圖書館里館藏書籍數(shù)量不多的特點,本系統(tǒng)為圖書管理等的操作均采用了簡單式的能滿足基本功能的方法。為了適應高校擁有多個分校、多個圖書館分區(qū)的特點,本系統(tǒng)采用了C/S模式并提供書架管理以協(xié)助學校的圖書分區(qū)儲存。為了保護圖書信息的安全,本系統(tǒng)采用sqlserver2012設計了相關(guān)數(shù)據(jù)庫,并能新添了一名可登陸用戶,并允許且只能允許服務器使用此身份訪問數(shù)據(jù)庫。本文介紹了在.NET平臺下利用C#語言、采用C/S模式實現(xiàn)河北省中小學省級標準化學校建設圖書管理系統(tǒng)軟件基本功能的全過程。首先從圖書信息管理的實際情況出發(fā),為系統(tǒng)的開發(fā)背景、需求分析、設計原則進行了相關(guān)闡述,然后為系統(tǒng)的詳細設計和功能實現(xià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ù)基礎 312412.1設計原則 371672.2管理理論 3234512.2.1MIS理論 3304842.2.2圖書管理 365132.2.3讀者管理 322892.2.4借閱管理 3224922.3人機交互理論 3284852.3.1人機交互的特點與要求 4182342.4C#語言的支持 494072.5數(shù)據(jù)庫的支持 4236093需求分析 613103.1確認目標 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)設計 1483404.1數(shù)據(jù)庫設計 1450744.1.1數(shù)據(jù)庫分析 14149704.1.2數(shù)據(jù)庫概念設計 1444264.1.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設計 1622244.2服務器與客戶端的設計 23231534.2.1服務器與客戶端之間的聯(lián)系設計 23314914.2.2服務器數(shù)據(jù)建模 23242554.2.3客戶端數(shù)據(jù)建模 2536885設計實現(xiàn)與測試 26115905.1登陸功能 26194065.2主界面 26124755.3系統(tǒng)設置 27272855.4圖書管理 27175545.5讀者管理 2870835.6借閱管理 28133495.7書架管理 29272885.8條形碼打印 30317525.9統(tǒng)計報表 30194695.9.1對書籍的統(tǒng)計 3099685.9.2對讀者的統(tǒng)計 31280715.10功能測試 32109646總結(jié)與展望 3414595參考文獻 354159致謝 36PAGE371緒論1.1背景(1)開發(fā)背景傳統(tǒng)的方式首先要把買來的圖書資料登記到資料本上,再給每本書分類貼上標簽及制作和標簽想對應的圖書分類卡票,最后圖書分類卡片按類別分別放置在文件柜里。對于有圖書證的學生或教師來說,還要對他們的資料做一定的記錄。并且在人們來借書的時候,首先持證者要去存放圖書分類卡片的文件柜里查找想借的書是否在架,如果卡片存在,再按照圖書分類卡片在相應的書架上找到需要的圖書,然后登記持證者的借還書時間和在書簽條上寫下借還書記錄,等等。無論是對于圖書的管理還是對借閱的管理,都十分復雜不方便。而在圖書管理系統(tǒng)中采用計算機管理圖書是一種計算機應用技術(shù)的創(chuàng)新,它解決了傳統(tǒng)復雜的純手工方式,避免了圖書管理與借閱等流程中的繁瑣細節(jié),并且?guī)砹朔奖懔藢D書與讀者的統(tǒng)計。(2)圖書管理系統(tǒng)產(chǎn)生的背景圖書管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應用程序的開發(fā)兩個方面。對于前者要求建立數(shù)據(jù)庫一致性和完整性較強、數(shù)據(jù)安全性較好的庫,后者則要求應用程序功能完備,易使用等特點。經(jīng)過分析發(fā)現(xiàn),采用visualstudio開發(fā)工具可以有效便捷地對數(shù)據(jù)庫進行操作,采用sqlserver可以創(chuàng)建一個較為穩(wěn)定、安全的數(shù)據(jù)庫,且二者可以相互操作,還可以采用visualstudio開發(fā)工具方便快捷地隨意生成、替換所需控件,方便了窗體的設計。于是,在此基礎上,首先建立了一套數(shù)據(jù)庫、服務器、客戶端相互連接的基本體系。再經(jīng)過對初始原型系統(tǒng)的不斷修正和改進,不斷努力實現(xiàn)能夠滿足用戶需求的可行的系統(tǒng)軟件。1.2目的為了實現(xiàn)書籍與其他文獻的集中存儲、分布管理,為了便于資料的便捷查詢和安全控制,為了追蹤書籍的來源、去向、統(tǒng)計所有館藏書籍信息,為了提高效率、減少人力資源,為了跟進時代的需求、社會的需要,為了廣大莘莘學子的全面發(fā)展與綜合素質(zhì)的提高,編寫了本系統(tǒng)。1.3意義(1)提高了圖書管理效率友好、健全的圖書管理系統(tǒng)不僅具有一種人性化的設計,還可以在不同情況下跟進用戶需求進行不斷的改進。在這種強大的支持下不僅可以不斷減少管理員操作管理所耗費的精力,還可以避免管理人員操作的錯誤率,提高服務質(zhì)量。(2)帶動了學生看書的積極性存在著不少中小學生認為自己一看書就犯困,然而上網(wǎng)時卻來勁兒。而本系統(tǒng)嵌入了電子書籍的查看與閱讀,緊密跟進時代的需求,不僅有效地避免了學生們的這一弊端,還可以促進學生們的積極性。(3)提供了多元化、綜合化的服務跟進時代步伐的一套圖書管理系統(tǒng)不僅實現(xiàn)管理服務的多元化、綜合化,還有效地提升了網(wǎng)絡信息資源的利用效率。具備登陸權(quán)限的人員,可以在任意地點下載客戶端登陸進行查詢、添加電子書籍、查看電子書籍等操作,打破了傳統(tǒng)的單一服務形式。(4)提高了圖書管理人員的綜合素質(zhì)圖書管理系統(tǒng)的應用為圖書管理人員的工作職能帶來了重大的變革,這要求圖書管理人員應當具備較高的綜合素質(zhì),在網(wǎng)絡信息時代不斷完善自己的知識體系。促使圖書管理人員自覺地提高綜合技能、熟練運用計算機技術(shù),能夠自主建立各種文獻數(shù)據(jù)庫、解答讀者的問題,并指導讀者如何獲取其所需的資料信息。2設計理論與技術(shù)基礎2.1設計原則本系統(tǒng)秉承方便管理員操作的原則、即時保存與管理信息的原則、人機交互友好的原則、數(shù)據(jù)通訊流暢的原則、為人民服務的原則,全力為河北省中小學打造一個與時俱進的圖書管理系統(tǒng)軟件。力爭完善系統(tǒng)的每一個重要環(huán)節(jié),避免“蝴蝶效應”給系統(tǒng)帶來的重大損失。2.2管理理論為了避免圖書館內(nèi)讀者對書籍頻繁的借閱與歸還帶來的凌亂問題、為了解決書籍隨意存放造成的雜亂無章問題等等,一個有組織、有效率的管理顯得尤為重要。2.2.1MIS理論MIS(ManagementInformationSystem)即管理信息系統(tǒng),是一個以人為主導的,利用計算機硬件、軟件、網(wǎng)絡設備,進行信息的收集、傳遞、存儲、加工、整理的系統(tǒng),以提高組織的經(jīng)營效率。管理信息系統(tǒng)是有別于一般的信息系統(tǒng),因為它們都是用來分析其他信息系統(tǒng)在組織的業(yè)務活動中的應用。學術(shù)上,管理信息系統(tǒng)通常是用來指那些和決策自動化或支持決策者做決策有關(guān)的信息管理方法(例如決策支持系統(tǒng)、專家系統(tǒng)和主管支持系統(tǒng))的統(tǒng)稱。2.2.2圖書管理圖書管理為專門為圖書而打造一套管理方案。它統(tǒng)計了圖書的訂購時間、訂購價格、入庫時間、出庫時間、從屬分類、存放位置等的信息。無論是入庫還是出庫,它都有一套體系記錄其相關(guān)信息,并且需要判斷是否可以進行該操作。2.2.3讀者管理只有擁有相應權(quán)限的讀者才能進行相關(guān)操作。與此同時,管理員需要統(tǒng)計所有讀者的信息,并且記錄該讀者是否可以借書、續(xù)借等。一套擁有讀者信息的管理系統(tǒng),才能更好的追蹤書籍的去向。2.2.4借閱管理Id號為**的書籍在不在?被誰借出去了?什么時候借出去的?什么時候歸還?歸還的時候有沒有超時?若不能歸還,需要賠償多少金額?等等問題的提出,無疑需要借閱管理來處理。同時,借閱管理需要統(tǒng)計出所有書籍或讀者的借閱次數(shù)或數(shù)量。2.3人機交互理論縱然圖書管理系統(tǒng)中引入了計算機等自動化元素,然而仍然需要一定量的人工管理與操作系統(tǒng),以維護數(shù)據(jù)的準確性并能及時發(fā)現(xiàn)問題、解決問題。而系統(tǒng)的客戶端則是本系統(tǒng)與用戶的直接交互。為了從人性化的角度思考、更滿足用戶的需求,人機交互的思想起到了重大作用。2.3.1人機交互的特點與要求(1)友好性無論是管理員還是讀者在操作時,界面應當以簡潔明了、便捷的方式呈現(xiàn)在用戶面前,操作越簡單越能快捷地獲取想要的數(shù)據(jù)便越好。如果能提供給用戶相應的快捷方式,或者提供給用戶相關(guān)維護人員的聯(lián)系方式便更好了。(2)靈活性系統(tǒng)應當在能夠滿足用戶的需求的情況下,能夠以不同的方式去完成用戶的需求。盡量避免死板、不可改變的情況。(3)功能性系統(tǒng)應當能完成每一個用戶所發(fā)出的指令并能滿足用戶的需求。(4)明確性系統(tǒng)應當清楚、明確的知道用戶發(fā)出了什么指令,并且能夠正確地給出相應的輸出。(5)一致性系統(tǒng)的工作方式和處理問題的步驟盡可能和人的思維方式一致,系統(tǒng)在不同工作顯示界面上應當具有相似的交互顯示格式和相似的人際操作方式。(6)可靠性系統(tǒng)應當能夠正常無故障地工作,應當在運行過程中不會出現(xiàn)死機、崩潰等問題;系統(tǒng)運算提供的數(shù)據(jù)應當可靠無誤;系統(tǒng)對數(shù)據(jù)的安全保護應當具備一套相對健全的體系。(7)圖形化的使用雖然本系統(tǒng)是個應用軟件,但是對于的使用還是很有必要的。圖形化的使用能使系統(tǒng)表現(xiàn)更直觀形象、更易用戶所接受。2.4C#語言的支持C#是微軟推出的一種基于.NET框架的、面向?qū)ο蟮母呒壘幊陶Z言。C#由C語言和C++派生而來,繼承了其強大的性能,同時又以.NET框架作為基礎,擁有類似visualBasic的快速開發(fā)能力。C#由安德斯·海爾斯伯格主持開發(fā),微軟在2000年發(fā)布了這種語言。C#雖然沒有模板的支持,但是在C#2.0中引入了泛型,并且支持一些C++模板不支持的特性,本系統(tǒng)在接收通訊數(shù)據(jù)時就使用了這項技術(shù)。C#中的委托技術(shù)也相當重要。在.NET環(huán)境中不允許線程直接訪問控件,而在客戶端從線程返回回來數(shù)據(jù)之后,會經(jīng)常性的使用這些數(shù)據(jù)改變窗體中相應的顯示的數(shù)據(jù)。而有了委托的這項技術(shù),方便安全地解決了這一大難題。2.5數(shù)據(jù)庫的支持MicrosoftSQLServer是由美國微軟公司所推出的關(guān)系數(shù)據(jù)庫解決方案。數(shù)據(jù)庫的內(nèi)置語言原本是采用美國標準局(ANSI)和國際標準組織(ISO)所定義的SQL語言,但是微軟公司對它進行了部分擴充而成為Transact-SQL。采用數(shù)據(jù)庫的思想,不僅能夠快捷、清晰明確地存儲所有相關(guān)數(shù)據(jù),而且能夠方便數(shù)據(jù)的查找與統(tǒng)計,更重要的是,數(shù)據(jù)庫的引入為網(wǎng)絡安全、信息系統(tǒng)的保護更是增添了一層厚厚保護膜。本系統(tǒng)對數(shù)據(jù)庫的使用不多,主要是新增了一名可登陸數(shù)據(jù)庫的用戶、創(chuàng)建數(shù)據(jù)庫、查詢/修改與保存數(shù)據(jù)表信息。由于在C#中采用DataAdapter緩存技術(shù)實現(xiàn)對數(shù)據(jù)庫的操作,所以本系統(tǒng)在數(shù)據(jù)庫中的修改也省去了不少繁瑣事件,同樣不需要編寫復雜的存儲過程。在安全上,加強了程序的防護措施;在事件處理上,它們分工更明確,避免了邏輯混亂的不良現(xiàn)象。3需求分析3.1確認目標3.1.1功能需求需求說明本系統(tǒng)為三大種人群而設計:Administrator、普通管理員、讀者。Administrator為高級管理員,只由一人負責,能夠操作后臺的一些高級配置、如更改數(shù)據(jù)庫、數(shù)據(jù)備份與恢復、對普通管理員的權(quán)限的修改等;普通管理員能夠操作圖書管理系統(tǒng)的一些基礎功能操作,如錄入圖書、查詢圖書資料、修改圖書資料、管理讀者等;而讀者又分為三內(nèi):校內(nèi)的教師與學生、校外授權(quán)的超級用戶,但他們都只能做對圖書的查詢與查看電子書籍等操作。只有在登錄被驗證、獲得權(quán)限之后才能登入系統(tǒng),不同身份的人登錄之后所能看到的界面是不一樣的。每位讀者擁有自己的一份借書證,其中記錄著讀者的ID號、姓名、院系(單位)、與借書還書的相關(guān)信息。讀者可以根據(jù)其所持圖書證進行借閱書籍、歸還書籍、進入圖書館等操作,還可通過圖書證登陸相關(guān)系統(tǒng)后查詢、閱讀電子書籍。借閱圖書時,由管理員錄入借書卡號,系統(tǒng)首先驗證該卡號的有效性,若無效,則提示無效的原因;若有效,則顯示卡號、姓名、借書限額、已借閱數(shù)量、可再借數(shù)量等信息,本次實際借書的數(shù)量不能超出可再借數(shù)量的值。完成借書操作的同時要修改相應圖書信息的狀態(tài)、讀者信息中的已借數(shù)量、在借閱信息中添加相應的記錄。歸還圖書時,由管理員錄入借書卡號和待歸還的圖書編號,顯示借書卡號、讀者姓名、圖書編號、圖書名稱、借書日期、應歸還日期等信息,并自動計算是否超期以及超期的罰款金額,若進行續(xù)借則取消超期和罰款等信息;若圖書有損壞,由管理員根據(jù)實際情況從系統(tǒng)中選擇相應的損壞程度,系統(tǒng)自動計算損壞賠償金額。完成歸還操作的同時,修改相應圖書信息的狀態(tài)、修改讀者信息中的已借數(shù)量、在借書信息中對相應的借書記錄做標記、在還書信息中添加相應的記錄。圖書管理員不定期地對圖書信息進行添加、修改和刪除等操作,在圖書尚未歸還的情況下對圖書信息進行刪除。也可以對讀者信息進行添加、修改、刪除等操作,在讀者還有未歸還的圖書的情況下不能進行刪除讀者信息。信息查詢。所有錄入數(shù)據(jù)庫的數(shù)據(jù),包括讀者的信息、書籍的信息,圖書管理員不僅擁有可以添加、修改、刪除信息的權(quán)限,還擁有查看的權(quán)限已經(jīng)將所有讀者、圖書的id號打印出條形碼的權(quán)限。尤其是對于讀者的登陸密碼,假若讀者忘記了密碼,可以尋求管理員的幫助。管理員通過一定途徑確定該讀者及所持圖書證的正確關(guān)系,成功辨認后方能為其找回密碼。密碼的現(xiàn)實也不能直接顯示在界面。只有管理員確定當前信息查看安全的情況下才能點擊“現(xiàn)實密碼”,才能查看所有讀者的登陸密碼。于此同時,管理員還擁有統(tǒng)計報表的權(quán)限。通過當前已有的數(shù)據(jù),管理員可以判斷出當前圖書借閱的趨勢并預計未來圖書的借閱情況并能根據(jù)此趨勢判斷將來圖書館的發(fā)展趨勢。另外,圖書管理員還可以根據(jù)統(tǒng)計來判斷是否需要新進一些什么類別的書籍以滿足讀者的需要,進而更好的管理與完善圖書管理系統(tǒng)等等。如圖3-1所示:圖書管理圖書管理讀者管理借閱管理條形碼打印統(tǒng)計報表添加圖書刪除圖書查找圖書添加讀者修改讀者信息讀書刪除讀者借書還書讀者條形碼的打印圖書條形碼的打印圖書總數(shù)量統(tǒng)計按圖書類別統(tǒng)計圖書借閱排行讀者借閱排行系統(tǒng)圖書管理圖3-1功能分析圖開始登錄是否合法是是否普通管理員?否是否高級管理員?否結(jié)束否否顯示讀者界面顯示普通管理員界面顯示普通用戶界面是是是等待用戶相關(guān)操作開始登錄是否合法是是否普通管理員?否是否高級管理員?否結(jié)束否否顯示讀者界面顯示普通管理員界面顯示普通用戶界面是是是等待用戶相關(guān)操作是否讀者?圖3-2基本流程圖3.1.2性能需求數(shù)據(jù)庫的容量河北省中小學的圖書館藏量相對來說比較小,可以萬計數(shù),數(shù)據(jù)庫中所需記錄的數(shù)據(jù)所占空間并不大,因此對數(shù)據(jù)庫的容量只需較大,無嚴格限制。服務器性能與容量服務器要求必須在有多臺客戶端登陸時仍然能夠較好地流暢地運行,并且能夠返回給客戶端正確的數(shù)據(jù)。于此同時,因為電子書籍的存儲只能以文本的形式存儲以節(jié)省數(shù)據(jù)庫的資源,所以相對來說,數(shù)據(jù)庫的容量是需要較大的。假若每本書籍所需容量為1M,那么10000本書所需容量為10000M,即9.77G,而隨著電子書籍的普遍,所需容量必然會增加。從長遠的角度思考,服務器所需的性能與容量相對來說都是較大的。網(wǎng)絡環(huán)境本系統(tǒng)所需網(wǎng)絡要求不嚴,只需要能夠保證數(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)要求每位用戶在每次登陸的時候能夠為其進行正確的判斷,登陸之后能夠安全、可靠地執(zhí)行操作,不出現(xiàn)崩潰、閃退等嚴重現(xiàn)象。數(shù)據(jù)發(fā)送與接收也需要正確,不出現(xiàn)數(shù)據(jù)遺失、通訊協(xié)議重復、端口號占用等錯誤現(xiàn)象。3.1.5安全保密要求對密碼的保護本系統(tǒng)嚴格要求不論是在用戶操作時還是在數(shù)據(jù)傳送時都需要對用戶密碼具有很好的保護措施。在登陸輸入密碼的時候,需要將其進行隱藏;在數(shù)據(jù)傳送時,需要有一定的協(xié)議規(guī)則將其封裝,使其不易被破解;且數(shù)據(jù)庫不會被客戶端所操作,等等。由此加深了對密碼的保護措施。對書籍信息的保護只有管理員才擁有權(quán)限對書籍的錄入、修改、刪除操作,而這些操作在數(shù)據(jù)傳送時因其特有的一套編碼與解碼規(guī)則,使其數(shù)據(jù)的傳送在一定程度上具備相應的安全性。3.1.6用戶界面的需求用戶界面需達到直觀、美觀、便捷、圖形化、易于用戶接受、不花哨、不單調(diào)、界面風格相對統(tǒng)一的要求。3.1.7資源使用需求數(shù)據(jù)庫與服務器由校方所提供,應當盡可能地節(jié)省數(shù)據(jù)庫與服務器所需資源,應當在完成之后為其進行優(yōu)化。而客戶端為更多人不定時不定地點所操作的一部分,需求其下載時間短、資源占用量少的特點,因此不應超過15兆。3.2面向?qū)ο蟮姆治龈鶕?jù)本系統(tǒng)在開發(fā)過程中需求變化少、項目風險低、用戶使用環(huán)境比較穩(wěn)定、用戶除提出需求外很少參與開發(fā)工作及開發(fā)人員對學校圖書管理系統(tǒng)較為熟悉等特點,本系統(tǒng)決定采用瀑布模型開發(fā)項目。3.2.1系統(tǒng)分析系統(tǒng)軟件定義本系統(tǒng)為一款易于所有教師、同學、管理者所接受的圖書管理系統(tǒng)軟件,并將適用人群擴大化至河北省所有的中小學,并將其標準化。采用C/S模式,使用C#語言,主要目的是實現(xiàn)為河北省各大中小學提供管理各類文獻的標準化系統(tǒng),基本要求為實現(xiàn)易操作、美觀、強大、滿足大部分教師/學生的對圖書文獻需求、能跟進時代需要等的管理系統(tǒng)??尚行苑治霰鞠到y(tǒng)主要面向人群分為五類人群:教師、學生、管理者、超級用戶、高級管理員,他們的權(quán)限不一樣,而高級管理者擁有最高的權(quán)限。無論社會如何發(fā)展、科技如何發(fā)展,文字書籍對人群都仍然是十分必要的,這款軟件的設計面向的人群數(shù)量仍是極多的,軟件的功能也在與時俱進,因此該項目對于面向人群的設計是合理的。本系統(tǒng)的環(huán)境要求不高,只需要一臺裝有visualstudio和sqlserver軟件的筆記本或者臺式機即可。所需配置不高,配置可行性通過。本系統(tǒng)的測試環(huán)境完全可以采用開發(fā)環(huán)境進行配置測試,因此測試環(huán)境可行性通過。本系統(tǒng)所需資源、所需成本較低。開發(fā)者完全擁有開發(fā)本系統(tǒng)所需要的基本硬件資源與軟件資源。因此資源分析可行性通過。最后,鑒于開發(fā)者與學校關(guān)系密切,了解學校圖書情況,同時也可以實地考察當前河北省的各大學校的圖書館實際情況,可以獲取大量所需數(shù)據(jù)資料,并且能夠在此基礎上為圖書管理系統(tǒng)融入當前時代的新內(nèi)容,為當前社會帶來良好的社會效益。因此,總的來說,本系統(tǒng)完全具備開發(fā)的各項基本條件,可以進行開發(fā)。系統(tǒng)組成本系統(tǒng)主要由以下三個子系統(tǒng)構(gòu)成:讀者子系統(tǒng)、管理員管理子系統(tǒng)、高級管理員管理子系統(tǒng)。具體可參閱3-2基本流程圖介紹。系統(tǒng)功能描述本文檔主要介紹借閱書籍與歸還書籍的功能。讀者首先向圖書管理員進行借閱請求,請求通過后圖書管理員會為其首先進行可借閱數(shù)量判斷,判斷成功后會為其進行借閱處理,然后相關(guān)數(shù)據(jù)會被記錄進入數(shù)據(jù)庫。具體可參閱3-1需求說明。系統(tǒng)參與者圖3-3系統(tǒng)參與者UML圖其中,用戶是對所有可執(zhí)行本系統(tǒng)人員的歸納。有且只有一名或者一組高級用戶可對系統(tǒng)做高級操作,包括對普通圖書管理員、讀者、書籍等的添加、修改、刪除等,還賦予其備份數(shù)據(jù)庫、還原數(shù)據(jù)庫的權(quán)限。普通管理員則有多名分別負責不同館區(qū),可以對書籍、讀者信息進行添加、修改、刪除等操作,可以統(tǒng)計當前所有信息,可以將當前所有圖書id、讀者圖書證進行打印操作,可以輔助讀者進行借書、還書等操作及其管理。讀者除了可以在圖書館借閱、歸還書籍外,只允許對書籍進行查看與閱讀電子書籍的操作。3.2.2相關(guān)用例圖(1)讀者用例圖圖3-4讀者用例圖讀者擁有登錄系統(tǒng)、查看書籍、借閱書籍、歸還書籍的權(quán)限。在查看書籍之后,可以通過電子書籍的id號進行閱讀書籍的操作。當讀者需要借閱書籍的時候,系統(tǒng)首先會判斷該讀者是否可以借閱,包括判斷該讀者是否有權(quán)限借閱、是否借閱的書籍已經(jīng)超量等信息。而歸還書籍的時候,還會要求圖書管理員查看該書籍的的狀態(tài),如果該書籍已經(jīng)受到損壞,那么可能會要求該讀者進行一定的賠償。具體情況依據(jù)學校的規(guī)定而定。圖書管理員用例圖圖3-5圖書管理員用例圖圖書管理員所擁有的權(quán)限比較多,也是其職責所在。首先,圖書管理員擁有對讀者的管理、對圖書的管理、對借閱的管理、條形碼的打印、統(tǒng)計報表等主要權(quán)限。當學校讀者相關(guān)信息發(fā)生變化時,需要管理員通過系統(tǒng)的“讀者管理”來進行數(shù)據(jù)庫與實際情況的統(tǒng)一與備份。其中包括添加、刪除、修改、清空、查看讀者信息等操作。同理,當學校書籍相關(guān)信息發(fā)生變化時,也需要管理員通過系統(tǒng)的“圖書管理”來進行數(shù)據(jù)庫與實際圖書信息的統(tǒng)一與備份。同樣的,也包括對圖書的添加、刪除、修改、情況、查看等操作。而借閱管理則包括借出與歸還兩類操作。當讀者來借書時,不僅僅管理員賦予其借書的權(quán)限,管理員更是有義務將其相關(guān)借閱信息存儲;同理,當讀者歸還圖書時,管理員不僅僅需要將圖書放回書架相應位置,還需要將該讀者歸還了什么書籍等信息記錄入庫。條形碼打印則包括打印圖書條形碼和打印讀者條形碼。為了進一步方便管理員對讀者信息的相關(guān)管理,本系統(tǒng)直接將打印讀者條形碼更換成了打印讀者圖書證。統(tǒng)計報表則是最后圖書管理系統(tǒng)總會需要到的一項功能。它包括統(tǒng)計圖書信息與統(tǒng)計讀者信息,還可以更細地劃分,這將在本文檔后邊會介紹到。4系統(tǒng)設計4.1數(shù)據(jù)庫設計4.1.1數(shù)據(jù)庫概念設計本系統(tǒng)主要有5個實體,分別是圖書證實體、書籍實體、書籍信息實體、書架實體和借閱實體。圖書證實體是關(guān)聯(lián)學生、教師、超級用戶、管理員和高級管理員的實體,其referenceId關(guān)聯(lián)著外部數(shù)據(jù)庫實體的所對應的id號。而學生、教師等在理應在入校的時候就已經(jīng)統(tǒng)計記錄下來了,所以本系統(tǒng)沒有故意設置該實體(只在演示的時候創(chuàng)造了測試實體)。圖書證實體E-R圖如圖4-1所示:LibraryCardNorLibraryCardNorReferenceIddReferenceTypeCanBorrowNumCanKeepTimeTimeowNumPassIdAccountIdIdTimeowNum圖4-1圖書證實體E-R圖對于圖書館來說,最重要的就是其內(nèi)存儲的書籍,所以需要建立一個書籍實體以存儲相關(guān)信息,包括其固有屬性“圖書類別”。如圖4-2所示:CostCostAuthorTimeowNumIdPublishBTypePrintTimemeNameTimeowNumBookClassify圖4-2書籍實體E-R圖書籍除了其自身的屬性之外,還包括了其他的屬性,如是否被借閱、什么時候歸還等,于是還需要一個實體為其進行存儲。兩實體相互關(guān)聯(lián)并以“是否其自身必有的屬性”區(qū)分。如圖4-3所示:BookStateBookStateStorgeTimeFetchoutTimeIdShelfIdTimeowNumOutTimeLoseTimeBookStateTimeowNum圖4-3書籍信息實體E-R圖然而,對于書籍,還有一個很重要的為題:以什么方式存放在哪里?對于書籍的分類管理存儲很重要,否則難以得知圖書的位置,于是本系統(tǒng)提出了對書架的管理。如圖4-4所示:bookshelfbookshelfIdStorgeTypePlace圖4-4書籍實體E-R圖最后,本系統(tǒng)的重點就是對于借閱書籍與還書的管理了。一個友好便捷的圖書管理才能更好地處理并及時獲取圖書的信息,也才能更好地保護圖書資源。本系統(tǒng)的借閱實體由圖書Id和借書證Id組成的聯(lián)合主鍵共同識別唯一信息,并且及時記錄了是否被借閱或歸還。如圖4-5所示:BorrowInfoBorrowInfoBorrowTimeGivebackBookIdTimeowNumBorrowSignignCardIdTimeowNum圖4-5借閱實體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)強制參照完整性:BookState中的Id的值必須和Book中的Id的值相對應;BorrowInfo中的CardId的值必須和LibraryCardNor中的Id的值相對應;BorrowInfo中的BookId的值必須和BookState中的Id的值相對應;LibraryCardNor的ReferenceId必須與學生或者教師或者超級用戶的Id值相對應;各表之間的聯(lián)系圖如圖4-6: 圖4-6各表之間的聯(lián)系圖4.1.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設計根據(jù)以上設計,本系統(tǒng)數(shù)據(jù)庫共做了5個邏輯表。分別是LibraryCardNor借書證表、BookShelf書架表、Book圖書表、BookState圖書狀態(tài)表、BorrowInfo借書信息表??紤]到學校在錄取學生或者教師的時候會為其錄入數(shù)據(jù)并創(chuàng)建相關(guān)數(shù)據(jù)庫,為了節(jié)省學??捎觅Y源,本系統(tǒng)希望能夠從該數(shù)據(jù)庫引入學生和教師信息,于是此處不再為其進行數(shù)據(jù)分析,而是做了部分有關(guān)學生和教師的測試表。另外,本系統(tǒng)還需要一個超級用戶表、一個圖書管理員表和一個高級用戶表。于此,各表如下所示:表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職務的描述IsBlackint否NULL是否在黑名單之內(nèi)(只能為0或1,默認為0),在黑名單之內(nèi)的人,不能再登陸系統(tǒng),也不能再被創(chuàng)建。此操作只允許高級管理員通過數(shù)據(jù)庫設置表4-4LIbraryCardNor借書證表字段名數(shù)據(jù)類型是否主鍵是否為空描述IdVarchar(20)是NOTNULL借書證編號(對應條形碼),也是登陸賬號ReferenceIdVarchar(20)否NOTNULL借書人編號ReferenceTypeChar(2)否NOTNULL借書人類型(只能為1-3,其中1為學生,2為教師,3為超級用戶)AccountIdVarchar(20)否NOTNULL昵稱PassIdVarchar(20)否NOTNULL登陸密碼CanBorrowNumint否NULL可借閱數(shù)量默認為5CanKeepTimeint否NULL可借閱時間,單位為天,默認為30表4-5Book圖書表字段名數(shù)據(jù)類型是否主鍵是否為空描述IdVarchar(20)是NOTNULL圖書編號(對應圖書條形碼)NameVarchar(20)否NOTNULL圖書名稱AuthorVarchar(20)否NOTNULL作者BTypeVarchar(10)否NULL材料類型(只能為“紙質(zhì)”或者“電子”,默認為“紙質(zhì)”)PublishVarchar(40)否NULL出版社PrintTimedatetime否NULL出版時間Costdouble否NULL花費ClassifyVarchar(40)否NULL圖書類型表4-6BookState圖書狀態(tài)表字段名數(shù)據(jù)類型是否主鍵是否為空描述IdVarchar(20)是NOTNULL圖書編號BookStateVarchar(4)否NULL圖書狀態(tài)(只能為“庫存”或“借出”或“遺失”或“出庫”,默認為“庫存”)SheldIdVarchar(20)否NULL對應圖書的編號StoreTimedatetime否NULL存儲時間FetchoutTimedatetime否NULL借出時間loseTimedatetime否NULL遺失時間OutTimedatetime否NULL出庫時間表4-7BorrowInfo借書信息表字段名數(shù)據(jù)類型是否主鍵是否為空描述CardIdVarchar(20)是NOTNULL對應圖書證編號BookIdVarchar(20)是NOTNULL對應圖書編號BorrowTimedatetime否NULL借書時間GiveBackdatetime否NULL還書時間BorrowSignint否NULL是否已經(jīng)歸還(默認為0,0表示沒有歸還,非0表示已經(jīng)歸還)表4-8BookShelf書架表字段名數(shù)據(jù)類型是否主鍵是否為空描述IdVarchar(20)是NOTNULL書架編號PlaceVarchar(40)否NOTNULL書架具體存放位置StoreTypeVarchar(20)否NOTNULL書架存放類型4.2服務器與客戶端的設計4.2.1服務器與客戶端之間的聯(lián)系設計服務器與客戶端之間的對外連接均采用C#提供的Socket進行連接。其中服務器默認使用端口號8000并使用多線程不斷監(jiān)聽外部是否有客戶端接入。如果,則再為其建立一個專用線程,與該客戶端進行數(shù)據(jù)通訊。而客戶端默認使用一個線程連接服務器的8000端口號,并提供一個可以修改連接目的的ip地址和端口號以防止服務器更換ip地址或者端口號時的不統(tǒng)一而導致的無法連接現(xiàn)象。無論是服務器還是客戶端,均使用C#提供的泛型dictionary及委托相互聯(lián)系而產(chǎn)生的回調(diào)并及時進行客戶端的數(shù)據(jù)更新。服務器與客戶端相互商量,協(xié)議統(tǒng)一無差錯,保證了通訊之間的功能唯一性與數(shù)據(jù)準確性。另外,為了安全,只有服務器可以訪問數(shù)據(jù)庫,而客戶端不允許之間操作數(shù)據(jù)庫。4.2.2服務器數(shù)據(jù)建模服務器主要分成三部分:與數(shù)據(jù)庫建立聯(lián)系、與客戶端建立聯(lián)系、服務器內(nèi)部的管理、計算與數(shù)據(jù)保存等。數(shù)據(jù)庫內(nèi)有多個表,服務器可能對其進行多個表的操作,并且對每個表的需求與操作方式可能各有差別,因此,需要建立一個與數(shù)據(jù)庫聯(lián)系的基類,然后分別建立幾個繼承該基類的子類對數(shù)據(jù)庫進行相互的操作?;惱锎娣胖A的操作,而子類中存放著具備各自特征的操作。本系統(tǒng)為小型的只為中小學設計的系統(tǒng),因此服務器與客戶端之間的通訊并不需要大量的支持,所以本系統(tǒng)只為服務器與客戶端的連接設計了一個類進行簡單的接收數(shù)據(jù)、處理數(shù)據(jù)、發(fā)送數(shù)據(jù)的操作。而服務器內(nèi)部的管理、計算與數(shù)據(jù)保存可能會關(guān)系到各類管理類,具體實現(xiàn)如下圖4-7所示:圖4-7服務器數(shù)據(jù)建模圖4.2.3客戶端數(shù)據(jù)建模客戶端的設計思路與服務器類似,不同的是,客戶端不需要那么多的管理類,卻需要大量的窗體類用以為用戶呈現(xiàn)相關(guān)數(shù)據(jù)。具體如下圖4-8所示:圖4-8客戶端數(shù)據(jù)建模圖5設計實現(xiàn)與測試5.1登陸功能用戶登陸時,首先需要輸入賬號和密碼,所以,該功能首先需要一個帶2個文本框跟一提交信息按鈕的窗體,當用戶輸入密碼后,密碼會被自動轉(zhuǎn)換為字符“*”以達到保密的作用卻不妨礙對密碼數(shù)據(jù)的讀取。當用戶點擊確定后,首先從文本框中讀取出賬號和密碼,然后判斷是否符合規(guī)則(不能為空),然后添加長度數(shù)據(jù)與其對應的連接字符,再添加對應的登陸協(xié)議號及其連接字符,最后一并發(fā)送給服務器。服務器接收到數(shù)據(jù)之后,通過協(xié)議號發(fā)現(xiàn)此數(shù)據(jù)為登陸數(shù)據(jù),然后進行解析判斷是否符合規(guī)則,如果符合規(guī)則,則繼續(xù),否則扔棄此數(shù)據(jù)。然后服務器會去數(shù)據(jù)庫查找是否符合該賬號密碼的用戶,如果存在并且密碼正確,則會發(fā)送給客戶端一“登陸成功”的消息,否則會告訴用戶出什么錯了。假如用戶輸入出錯,在顯示出錯信息之后,系統(tǒng)會自動退出以保證數(shù)據(jù)的安全性。登陸功能模塊,主要采用了協(xié)議關(guān)系表、Dictionary與delegate聯(lián)合形成的回調(diào)函數(shù)以及控件的invoke函數(shù)。在登陸界面初始化成功之后,系統(tǒng)會在后臺自動初始化ManageForm主界面,以避免用戶登陸之后因為界面沒有初始化完成而產(chǎn)生的短時間的卡頓。5.2主界面主界面除了背景圖片外,主要分成兩部分:菜單欄部分和快捷鍵部分。如圖5-1所示:圖5-1主界面菜單欄圖當用戶點擊菜單欄的按鈕時,每個菜單按鈕都會彈出自己所有的子菜單,相應的,當點擊子菜單時,它也會顯示它所有的子菜單,當然,如果該菜單鍵沒有子菜單則不顯示,如果該菜單對應某些功能,則會顯示輔助功能實現(xiàn)的界面,并可在后臺為用戶獲取其所希望得到的數(shù)據(jù)。于此同時,本系統(tǒng)還為常用的幾個按鈕鍵做了快捷方式,如圖5-2:圖5-2主界面快捷鍵圖以上三個快捷圖片是為方便圖書管理員操作而特意添加的圖片按鈕,它們大概是圖書管理中點擊率最高的按鈕。如此可方便用戶的操作并能達到節(jié)省時間的效果。“看書”按鈕,會首先為用戶彈出一個可輸入圖書id號的文本框,當用戶輸入相應存在的id號時,服務器則會為讀者傳送該id號所對應的電子圖書內(nèi)容。而假若不存在,同樣的也會返回數(shù)據(jù)提示讀者該圖書并不存在。無論用戶點擊主菜單的哪個按鈕或者點擊快捷鍵圖片,系統(tǒng)都會為其生成一個與之對應的界面。5.3系統(tǒng)設置在系統(tǒng)設置中,為了防止系統(tǒng)服務器端與其他應用發(fā)送占用端口號的沖突事件,本系統(tǒng)特意為管理員添加了“重置IP和端口”按鈕和“重新連接”按鈕。每次系統(tǒng)啟動之后,系統(tǒng)都會從當前進程所在路徑下查找“info.txt”文件,如果不存在則創(chuàng)建并寫下默認ip地址和端口號,否則從中讀取ip地址和端口號信息,然后根據(jù)默認的或文本中存儲的ip地址和端口號訪問服務器。因此,在重置ip地址和端口號之后,本系統(tǒng)會首先修改“info.txt”中的信息,然后再根據(jù)該信息與服務器進行重連操作。考慮到用戶可能保留著其他應用程序使用時的一些習慣,本系統(tǒng)為了與其他應用相統(tǒng)一,增加了“退出”按鈕。如此,本系統(tǒng)希望用戶能夠更易接受本系統(tǒng)并能很好的運用。5.4圖書管理圖書管理主要分為四大模塊:錄入/修改圖書信息、刪除圖書信息、清空圖書信息和查看圖書信息。無論是哪種功能的需求實現(xiàn),本系統(tǒng)都會為其找到其所對應的協(xié)議號,并且從界面中獲取所需的相關(guān)信息,然后通過ProtocalMgr打包,再通過ConnectServer發(fā)送給服務器。因此ConnectServer類在本系統(tǒng)剛啟動的時候必定就已經(jīng)啟動起來了,而ProtocalMgr在ConnectServer中創(chuàng)建并關(guān)聯(lián)。于是,只要將這些按鈕所需執(zhí)行的功能與其相對應的協(xié)議號相對應,則可從服務器獲取所希望的數(shù)據(jù)。而服務器直接跟數(shù)據(jù)庫相連,因此客戶端便可獲取到所有存儲在數(shù)據(jù)庫中的數(shù)據(jù)。然而,其中有一個很重要的問題:當服務器給客戶端發(fā)送消息的時候,有時候會因為數(shù)據(jù)過大過長而丟失數(shù)據(jù),但是如果把它們分散發(fā)送給客戶端,又可能會產(chǎn)生端口號占用或者數(shù)據(jù)堵塞的情況而導致客戶端無法接受正確的數(shù)據(jù)或者根本無法接收到數(shù)據(jù)。于是,本系統(tǒng)采用了一個暫時認為很好的方法:當服務器發(fā)現(xiàn)所發(fā)數(shù)據(jù)可能過大時,便會將它們分成很多個部分分批次發(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)定了。同樣的,有時候客戶端發(fā)送消息給服務器時也遇到過這樣的問題,同樣也是通過此方法解決的。5.5讀者管理讀者管理的思路與圖書管理的思路具有異曲同工之處,同樣擁有添加/修改讀者信息、刪除讀者信息、查看讀者信息、清空讀者信息的操作。并且在界面顯示上也與圖書管理的界面相似,有著同樣的風格。5.6借閱管理借閱管理除了跟圖書管理、讀者管理一樣擁有查看借閱信息、清空借閱信息之外,還具有借書、還書的功能。在借書時,當管理員輸入讀者的id號,即圖書借閱卡上的條形碼之后,系統(tǒng)會在后臺自動發(fā)送消息給服務器告訴它“我想要id號為**的一些信息”,然后服務器便會將該讀者的部分信息發(fā)送過來。當客戶端接收到此消息后,首先判斷數(shù)據(jù)是否正確,如果正確則結(jié)合C#提供的委托功能調(diào)用控件的invoke函數(shù)將所有信息輸出到界面;而如果數(shù)據(jù)出錯了,客戶端也會根據(jù)服務器提供的數(shù)據(jù)告訴用戶出現(xiàn)了什么樣的錯誤。當成功接收該讀者的信息并成功顯示之后,管理員將讀者所需借閱的書籍id號(書籍對應的條形碼)輸入系統(tǒng),如果該讀者身份正確并且其所借閱的圖書數(shù)量并未超出規(guī)定值,則發(fā)送給服務器獲取圖書信息并且根據(jù)同樣的方式將圖書信息輸出到界面。如果該讀者可以繼續(xù)借閱,則還可以第二次輸入圖書信息。最后在提交時一并將數(shù)據(jù)發(fā)送給服務器,并將該讀者與圖書直接的借閱關(guān)系數(shù)據(jù)保存在數(shù)據(jù)庫。而當讀者還書時,只需要輸入讀者的id號即可獲取到讀者的信息以及與其相對應的圖書借閱信息。然后管理員便可以批量告訴服務器該讀者歸還了什么書籍了。由此,一套基本的借閱管理便結(jié)束了??蓞⒖家幌陆栝喗缑鎴D片了解本系統(tǒng)(見圖5-3和5-4):圖5-3借閱圖書界面圖圖5-4還書界面圖5.7書架管理書架管理跟圖書管理、讀者管理類似,擁有添加/修改書架信息、清空書架信息、刪除書架信息、查看書架信息的功能。但值得說明的一點是,考慮到如果書架沒有首先管理好,圖書入庫后將無法很好地分類,容易導致圖書堆放雜亂無章、難以查找書籍的弊端,因此本系統(tǒng)要求首先添加書架信息,并且根據(jù)書架信息將圖書進行分類并保存圖書存儲的位置。5.8條形碼打印條形碼打印共有兩項功能:打印圖書條形碼和打印帶讀者條形碼的圖書證。為防止與市面上的條形碼標準不匹配的特點,本系統(tǒng)并未主動編寫生成條形碼、解析條形碼的代碼,而是從網(wǎng)上下載了由google提供的ZXing資源,調(diào)用其接口并通過一定的邏輯將其條形碼打印,然后配合visualstudio的控件對其進行打印,具體見圖5-5和圖5-6圖5-5圖書條形碼圖圖5-6讀者圖書證打印5.9統(tǒng)計報表5.9.1對書籍的統(tǒng)計當點擊“圖書管理-統(tǒng)計”之后,首先客戶端會在后臺發(fā)送協(xié)議告訴服務器用戶需要統(tǒ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ù)兩種方式再對圖書進行統(tǒng)計:按圖書類別統(tǒng)計或者按圖書借閱排行榜統(tǒng)計。當管理員希望使用圖書類別統(tǒng)計方法對圖書進行統(tǒng)計時,客戶端會將此消息發(fā)送給服務器,然后服務器會首先將圖書進行分類并將每種類別的數(shù)量存儲在泛型Dictionary中,然后再對其進行從高到低的排序。之后會將排好序的數(shù)據(jù)打包發(fā)送給客戶端顯示。同樣的,當管理員希望使用圖書借閱排行榜進行統(tǒng)計時,服務器首先會將所有圖書id和被借閱次數(shù)統(tǒng)計出來存儲再排序再打包發(fā)送給客戶端。由此可直觀性地獲取圖書的相關(guān)信息。5.9.2對讀者的統(tǒng)計對讀者的統(tǒng)計較為簡單。首先客戶端會告訴服務器需要統(tǒng)計了,然后服務器會將當前所有讀者的信息分類后返回給客戶端,然后客戶端會告訴服務器“我需要對讀者通過借書數(shù)量進行統(tǒng)計”,然后服務器會將所有讀者及其借書數(shù)量統(tǒng)計出來返回給客戶端。通過對讀者的統(tǒng)計,可以統(tǒng)計出那些院的哪些學生或者哪個單位的哪個教師借書次數(shù)較多,還可以評出“最愛讀書的人”。5.10功能測試表5-1測試用例表用例編號測試模塊輸入輸出預期結(jié)果與預期結(jié)果1登陸模塊輸入用戶名:4711111222224輸入密碼:aaaaaa登陸系統(tǒng)登陸系統(tǒng)相同2添加圖書信息輸入圖書編號:1000000000009,圖書名稱:book01,作者:author01,類型:紙質(zhì),圖書類型:故事類;存放位置:東校區(qū)圖書館3樓A書架,單價: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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑施工合同轉(zhuǎn)讓協(xié)議
- 砂礫購銷合同
- 房地產(chǎn)項目顧問服務合同
- 售貨機銷售合同協(xié)議
- 醫(yī)藥研發(fā)服務合同
- 第12課《自定主題活動三:制作方便面盒滑翔機》(教學設計)-2023-2024學年四年級下冊綜合實踐活動浙教版
- Unit 6 教學設計2024-2025學年人教版(2024)七年級英語上冊
- 六安職業(yè)技術(shù)學院《獸醫(yī)流行病學專題》2023-2024學年第二學期期末試卷
- 石家莊城市經(jīng)濟職業(yè)學院《化學合成實驗》2023-2024學年第二學期期末試卷
- 中國地質(zhì)大學(北京)《水生態(tài)保護與修復》2023-2024學年第二學期期末試卷
- 六年級下冊音樂全冊教案湖南文藝出版社湘教版
- Tracepro-實例學習教程
- 進貨單出貨單(Excel表格模板)
- 鐵皮板房拆除施工協(xié)議書
- 鐵路工程施工組織設計.ppt
- 介入科制度匯編
- 電子技術(shù)基礎與技能-(3)
- 工程造價專業(yè)畢業(yè)實習報告
- 刑釋解教人員安置幫教工作檔案
- 《病理學》教案
- 綜合日語第二冊練習冊(修訂版)答案精編版
評論
0/150
提交評論