圖書(shū)館管理系統(tǒng)的設(shè)計(jì)_第1頁(yè)
圖書(shū)館管理系統(tǒng)的設(shè)計(jì)_第2頁(yè)
圖書(shū)館管理系統(tǒng)的設(shè)計(jì)_第3頁(yè)
圖書(shū)館管理系統(tǒng)的設(shè)計(jì)_第4頁(yè)
圖書(shū)館管理系統(tǒng)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGE1圖書(shū)館管理系統(tǒng)的設(shè)計(jì)摘要:濰坊學(xué)院圖書(shū)館管理系統(tǒng)的是用ASP.NET與C#語(yǔ)言進(jìn)行設(shè)計(jì)開(kāi)發(fā)的電腦端應(yīng)用軟件。結(jié)合MicrosoftVisualStudio2008網(wǎng)站集成開(kāi)發(fā)環(huán)境,利用SQLServer2005后臺(tái)數(shù)據(jù)庫(kù)實(shí)現(xiàn)系統(tǒng)的相關(guān)功能。該設(shè)計(jì)主要是闡述了如何使用c#語(yǔ)言實(shí)現(xiàn)系統(tǒng)中相關(guān)功能。本設(shè)計(jì)主要實(shí)現(xiàn)圖書(shū)館管理系統(tǒng)中的圖書(shū)錄入、查詢、更改等功能,采用面向?qū)ο蟮姆治龇椒▽?duì)圖書(shū)館管理系統(tǒng)功能需求進(jìn)行劃分為管理員對(duì)功能的需求和讀者對(duì)功能的需求兩大部分。其中,管理員又可分為圖書(shū)館總管理員以及書(shū)庫(kù)管理員。圖書(shū)館總管理員具有系統(tǒng)設(shè)置、讀者管理、圖書(shū)案管理等功能,書(shū)庫(kù)管理員具有圖書(shū)借還、系統(tǒng)查詢以及自身密碼修改等功能。同時(shí),本設(shè)計(jì)針對(duì)讀者方面,開(kāi)發(fā)讀者本身信息的查看及修改、圖書(shū)信息、購(gòu)書(shū)推薦、查看圖書(shū)館公告等功能。增強(qiáng)讀者在瀏覽圖書(shū)方面的權(quán)限。圖書(shū)館管理系統(tǒng)既可以減輕傳統(tǒng)的手工流程的繁瑣不足等情況,而且也對(duì)讀者提供了快捷的圖書(shū)信息檢索功能,方便圖書(shū)借閱和歸還。關(guān)鍵詞:圖書(shū)館管理系統(tǒng)圖書(shū)借閱Servletc#ASP.NETTHEDESIGNOFLIBRARYMANAGEMENTSYSTEMAbstracts:WeifangUniversitylibrarymanagementsystemisdesignedanddevelopedwithASP.NETC#language.WiththeMicrosoftVisualStudiointegrateddevelopmentenvironment2008website,relatedtosystemfunctionrealizationusingSQLServer2005database.Thisdesignismainlyexpoundshowtousethec#languagetoachievetherelatedfunctionsinthesystem.Thedesignofmainbookentry,librarymanagementsysteminthequery,changeandotherfunctions,usingobject-orientedanalysismethodtodemandmanagementsystemfunctionlibraryisdividedintotheadministratorofthefunctionalrequirementsandfunctionalrequirementsofthetwomostreaders.Amongthem,theadministratorcanbedividedintolibraryadministratorsandstack.Libraryadministratorhasthesystemsettings,thereadermanagement,bookcasemanagementandotherfunctions,withbooksborrowed,querysystemanditspasswordstack.Atthesametime,thedesignforthereaders,readers'informationdevelopmentviewandmodify,bookinformation,bookrecommendation,viewtheannouncementfunctionlibrary.Intheaspectofenhancingreadersbrowsingpermissions.Thetediousshortageoflibrarymanagementsystemcannotonlyreducethetraditionalmanualprocess,butalsoprovidesabookinformationretrievalfunctionshortcutforreaders,easytoborrowandreturnbooks.Keywords:Librarymanagementsystem;Borrowbooks;Servlet;C#ASP.NET目錄 TOC\o"1-2"\t"參考文獻(xiàn),1,標(biāo)題4,1,致謝,1,附錄,1"\h308201前言 140092系統(tǒng)分析 2171612.1需求分析 2126832.2可行性分析 2121763總體設(shè)計(jì) 4283083.1系統(tǒng)實(shí)現(xiàn)目標(biāo) 413423.2系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì) 423804詳細(xì)設(shè)計(jì) 670244.1圖書(shū)館管理系統(tǒng)ER圖 6263114.2數(shù)據(jù)表結(jié)構(gòu)設(shè)計(jì) 6106054.3數(shù)據(jù)表結(jié)構(gòu)設(shè)計(jì) 7137375列車售票系統(tǒng)的實(shí)現(xiàn) 1035445.1數(shù)據(jù)庫(kù)的連接 10251775.2系統(tǒng)模塊功能 114768結(jié)束語(yǔ) 2627034參考文獻(xiàn) 276572附錄 2825896致謝 67PAGEPAGE481前言2015年我們將迎來(lái)第二十個(gè)世界圖書(shū)日,閱讀已經(jīng)成為人們生活中的核心詞匯。人們也越來(lái)越認(rèn)識(shí)到閱讀在生活中所占比例之中,更多的選擇在在圖書(shū)館等場(chǎng)所增長(zhǎng)知識(shí),儲(chǔ)備信息。但是,傳統(tǒng)的圖書(shū)館完全依賴人工方式管理日常流程事物,借書(shū)、還書(shū)工序繁瑣。當(dāng)讀者在借書(shū)時(shí)候要持相應(yīng)的借閱證件和要借閱的圖書(shū),由圖書(shū)館管理員對(duì)相關(guān)書(shū)籍進(jìn)行登記,并在借閱證上填寫(xiě)借閱信息。還書(shū)時(shí),讀者要將借閱的圖書(shū)和借閱證一同交給工作人員,由工作人員填寫(xiě)還書(shū)日期。繁瑣的流程加重了工作人員的任務(wù)量,同時(shí)也不利于書(shū)籍的整理和保存。圖書(shū)館管理系統(tǒng)是新時(shí)期有效的優(yōu)化工作流程,方便讀者進(jìn)行借閱的一套方法。圖書(shū)館管理員有機(jī)的整合各類信息,實(shí)現(xiàn)信息的交互與統(tǒng)一。對(duì)新讀者信息進(jìn)行添加,便于對(duì)讀者信息的查詢、修改和刪除,也可以對(duì)館內(nèi)圖書(shū)信息進(jìn)行錄入,便于對(duì)圖書(shū)信息的查詢、修改和刪除。讀者可以通過(guò)該系統(tǒng),通過(guò)對(duì)本身信息的注冊(cè)和登陸,查閱圖書(shū)的相關(guān)信息以及借閱記錄,同時(shí)也可以獲取不同種類的圖書(shū)排名情況,方便借閱。本設(shè)計(jì)所實(shí)現(xiàn)的系統(tǒng)實(shí)則是仿照濰坊學(xué)院圖書(shū)館管理系統(tǒng)的基礎(chǔ)上進(jìn)行簡(jiǎn)化修改而實(shí)現(xiàn)的。本設(shè)計(jì)可能在相關(guān)頁(yè)面設(shè)計(jì)上不如校圖書(shū)館管理系統(tǒng)美觀完善。但主要的圖書(shū)管理、讀者借閱功能基本可以實(shí)現(xiàn)。2系統(tǒng)分析2.1需求分析互聯(lián)網(wǎng)+與傳統(tǒng)行業(yè)的系統(tǒng)的整合,使得人們的需求更加貼近于方便、快捷的獲取整合有效信息。人們也越來(lái)越更加習(xí)慣于通過(guò)網(wǎng)絡(luò)來(lái)完成日常事務(wù),新型互聯(lián)網(wǎng)行業(yè)深入影響到人們生活的方方面面。另外,傳統(tǒng)的圖書(shū)館遠(yuǎn)遠(yuǎn)滿足不了一部分現(xiàn)代人的需要,充分利用圖書(shū)館管理系統(tǒng),建立現(xiàn)代化圖書(shū)館運(yùn)行體系,有效的減少空間和時(shí)間上的限制,同時(shí)也能夠更方便快捷的完成圖書(shū)館的日常運(yùn)營(yíng)功能。對(duì)圖書(shū)館管理員以及讀者的需求進(jìn)行分析,充分的滿足了不同類型的常規(guī)和特殊要求,優(yōu)化了相關(guān)流程,較為成熟的實(shí)現(xiàn)技術(shù),因此深受當(dāng)代人的喜愛(ài)。本系統(tǒng)主要實(shí)現(xiàn)圖書(shū)信息的設(shè)置、錄入、信息查詢等功能,通過(guò)收集整合用戶的需求對(duì)圖書(shū)館管理系統(tǒng)功能需求進(jìn)行劃分,可將需求劃分為:圖書(shū)館管理員功能需求以及用戶功能需求。2.1.1圖書(shū)館管理員的需求通過(guò)需求分析可以獲悉,圖書(shū)館管理員對(duì)系統(tǒng)功能的需求可以分為圖書(shū)館一級(jí)管理員和圖書(shū)館初級(jí)管理員。圖書(shū)館管理員涉及對(duì)系統(tǒng)后臺(tái)的規(guī)劃、開(kāi)發(fā)、信息資源整合等方面,結(jié)合系統(tǒng)前端,完成對(duì)界面結(jié)構(gòu)的信息排列。所以系統(tǒng)針對(duì)圖書(shū)館一級(jí)管理員要設(shè)計(jì)的功能為信息的系統(tǒng)配置、讀者信息管理、圖書(shū)信息管理等功能。針對(duì)圖書(shū)館初級(jí)管理員要設(shè)計(jì)的功能為對(duì)系統(tǒng)需要完成的功能有:系統(tǒng)設(shè)置、讀者信息管理、圖書(shū)信息管理等。圖書(shū)館初級(jí)管理員的功能主要為:圖書(shū)借閱歸還、系統(tǒng)信息查詢及個(gè)人密碼的修改等功能。添加讀者信息:首先要將未曾注冊(cè)的新讀者的信息錄入到圖書(shū)館管理系統(tǒng)中,對(duì)于已經(jīng)獲取的讀者信息,圖書(shū)館一級(jí)管理員要對(duì)讀者的各類信息進(jìn)行統(tǒng)一錄入。本設(shè)計(jì)是針對(duì)于學(xué)校的圖書(shū)館管理系統(tǒng),因?yàn)槲覀兊闹饕x者為學(xué)生,所以在錄入信息的時(shí)候,我們會(huì)主要錄入與學(xué)生相關(guān)的各類信息。包括要錄入的讀者編號(hào),讀者姓名、讀者性別、讀者類型、出生日期、身份證信息、學(xué)生證信息、聯(lián)系方式、電子郵件、注冊(cè)日期、操作員、注意事項(xiàng)等。查詢、修改和刪除讀者信息:圖書(shū)館工作人員要查詢讀者的相關(guān)信息(基本信息以及租借記錄)時(shí),可以通過(guò)系統(tǒng)的后臺(tái)啟動(dòng)編輯器通過(guò)讀者姓名或者編號(hào)信息查詢到需要查詢的信息,并且可以在編輯器上對(duì)查詢到的信息進(jìn)行刪除和修改。錄入圖書(shū)信息:圖書(shū)館每年都會(huì)購(gòu)進(jìn)大批新書(shū),人工收錄不僅費(fèi)時(shí)而且費(fèi)力,因此要對(duì)這些讀書(shū)信息進(jìn)行統(tǒng)一規(guī)劃整理,并且錄入到圖書(shū)館管理系統(tǒng)當(dāng)中。錄入的信息包括:圖書(shū)名稱、圖書(shū)類型、出版社、作者、譯者、條形碼、信息摘要、頁(yè)碼、價(jià)格、館藏?cái)?shù)、所屬館藏室、所屬書(shū)架、入館時(shí)間、操作員、備注等相關(guān)信息。查詢、修改及刪除圖書(shū)信息:為了方便圖書(shū)館管理員了解獲取圖書(shū)在館內(nèi)的最新情況,我們通過(guò)設(shè)置方便圖書(shū)館管理員通過(guò)查詢圖書(shū)名稱或者圖書(shū)編號(hào),獲取圖書(shū)在館信息,清晰地顯示圖書(shū)的館藏量和所處位置。同時(shí),因?yàn)樵趫D書(shū)借閱過(guò)程中,不可避免的出現(xiàn)圖書(shū)破損或者遺失等情況。為了有效的更新系統(tǒng)中的信息,我們?cè)O(shè)立了修改、刪除功能。這樣及時(shí)的修改圖書(shū)信息,使管理員和讀者能夠很方便快捷的在查詢過(guò)程中獲得準(zhǔn)確的圖書(shū)信息,減少了圖書(shū)借閱過(guò)程中很多不必要的麻煩,使借閱過(guò)程更加高效。初級(jí)管理員管理設(shè)置:系統(tǒng)開(kāi)放給超級(jí)管理員后臺(tái)功能,通過(guò)后臺(tái)編輯器,當(dāng)圖書(shū)館需要增加或減少初級(jí)管理員時(shí),方便的對(duì)初級(jí)管理員進(jìn)行添加、刪除、修改。具體編寫(xiě)方式可以仿照前面所提到的對(duì)讀者操作方式的設(shè)計(jì)。對(duì)管理員的基本設(shè)置要包括:管理員名稱、管理員密碼、管理員擁有權(quán)限等功能??梢栽谠撨^(guò)程中,主要是對(duì)新到的書(shū)庫(kù)管理員進(jìn)行添加,修改和刪除等操作。圖書(shū)借閱管理:系統(tǒng)開(kāi)放給初級(jí)圖書(shū)管理員功能權(quán)限,當(dāng)讀者要進(jìn)行圖書(shū)的借閱時(shí),初級(jí)圖書(shū)館管理員會(huì)讀取讀者借閱信息,查詢讀者是否具有借閱權(quán)限,包括是否達(dá)到借閱上上限,是否有不良記錄等,確定讀者是否可以借閱。另外,當(dāng)讀者選取自己要進(jìn)行借閱的圖書(shū)后,可以將相關(guān)信息提交給初級(jí)管理員,包括圖書(shū)名稱、圖書(shū)代號(hào)等。初級(jí)管理員通過(guò)查詢數(shù)據(jù)庫(kù)中留存圖書(shū)相應(yīng)的信息,確定圖書(shū)是否可借。如果圖書(shū)可以借閱,圖書(shū)館管理員會(huì)在系統(tǒng)內(nèi)填寫(xiě)圖書(shū)借閱信息表,表中包括讀者信息,讀者姓名、性別、證件號(hào)碼、證件類型、讀者類型等,同時(shí)需要填寫(xiě)借閱圖書(shū)信息,書(shū)名、圖書(shū)代碼、出版社、館藏代號(hào)、書(shū)架代號(hào)、借書(shū)日期、還書(shū)日期等,這樣,完成圖書(shū)借閱操作。圖書(shū)歸還管理:讀者還書(shū)操作,讀者將要還的書(shū)交于圖書(shū)館管理員,圖書(shū)館管理員通過(guò)數(shù)據(jù)查詢,進(jìn)行還書(shū)處理。體現(xiàn)在數(shù)據(jù)庫(kù)中就是對(duì)后臺(tái)數(shù)據(jù)庫(kù)借書(shū)表中信息的刪除操作。當(dāng)讀者提供的讀者編號(hào)和圖書(shū)編號(hào)相匹配時(shí),可以執(zhí)行刪除操作。同時(shí),判斷是否超過(guò)應(yīng)還日期,對(duì)超過(guò)應(yīng)還日期的圖書(shū)信息進(jìn)行下一輪操作,根據(jù)超出天數(shù)勘定處罰措施。這樣便可以在讀者還書(shū)時(shí)判斷提示讀者是否欠費(fèi),如若欠費(fèi),可以對(duì)讀者在圖書(shū)館內(nèi)行使相應(yīng)等功能權(quán)限進(jìn)行限制。如果沒(méi)有超出限定日期,提示可以正常還書(shū),即歸還成功。管理員密碼的修改:管理員可以通過(guò)后臺(tái)模塊修改自己的密碼,和讀者密碼的修改在代碼實(shí)現(xiàn)方式上有許多相似性。2.1.2讀者的需求讀者與數(shù)據(jù)庫(kù)的鏈接體現(xiàn)在對(duì)自身信息的注冊(cè)、更改、刪除等功能,讀者只有對(duì)系統(tǒng)主數(shù)據(jù)庫(kù)的查詢權(quán)限,包括查詢自身的相關(guān)信息、圖書(shū)的相關(guān)信息、圖書(shū)推薦、圖書(shū)排行、圖書(shū)館的相關(guān)公告等方面。查看及修改讀者自身信息:讀者可以再圖書(shū)館對(duì)自身信息進(jìn)行查詢,當(dāng)讀者豬呢比借閱或者歸還土石的時(shí)候,查詢自身信息,可以清楚地了解到自己的權(quán)限,包括借閱圖書(shū)的相關(guān)信息,書(shū)名,借閱日期以及歸還日期。另外還可以看到是否有未還圖書(shū),是否達(dá)到借書(shū)上線,是否有超期現(xiàn)象,是否可以繼續(xù)借書(shū)。這樣讀者就會(huì)對(duì)自己的借閱情況有一個(gè)大概的了解,避免了盲目借書(shū)毫無(wú)頭緒或者因?yàn)檫z忘等原因忘記歸還超期等現(xiàn)象的發(fā)生。同時(shí),讀者也可以更改自身的登陸密碼,設(shè)定私人登陸。系統(tǒng)查詢:系統(tǒng)查詢過(guò)程中,主要方便讀者對(duì)圖書(shū)館中所藏圖書(shū)數(shù)據(jù)以及信息的查詢,使讀者查閱到圖書(shū)的基本信息讀者。另外,讀者可以通過(guò)系統(tǒng)查詢對(duì)圖書(shū)借閱信息進(jìn)行查詢,查詢要借圖書(shū)的館藏量,借閱信息,剩余庫(kù)存,應(yīng)還信息,所處位置等相關(guān)信息都可以通過(guò)系統(tǒng)查詢來(lái)完成。排行榜:排行榜功能,是對(duì)圖書(shū)館中圖書(shū)的借閱情況和讀者的借閱情況進(jìn)行統(tǒng)計(jì)排行。通過(guò)圖書(shū)的借閱情況,可以清楚地或者館中各類圖書(shū)的借閱情況,也可以按照排行榜有選擇性的借閱圖書(shū)。通過(guò)讀者借閱情況,可以獲知自己及其他讀者借閱情況。2.2可行性分析2.2.1技術(shù)可行性技術(shù)實(shí)現(xiàn)可行性可以根據(jù)前端以及后臺(tái)數(shù)據(jù)庫(kù)等的研發(fā)工具使用情況分析判斷。ASP.NET使用伊始,其便利和靈活性遠(yuǎn)遠(yuǎn)超越了之前的低版本ASP或者其它類似開(kāi)發(fā)軟件,ASP.NET的使用同時(shí)也給Web開(kāi)發(fā)人員帶來(lái)了良好的編程體驗(yàn),可以很大程度上減短了系統(tǒng)中Web應(yīng)用程序的開(kāi)發(fā)周期。系統(tǒng)中使用的數(shù)據(jù)庫(kù)SQLServer,是目前為止使用較為頻繁的數(shù)據(jù)庫(kù)管理系統(tǒng),在數(shù)據(jù)庫(kù)創(chuàng)建、設(shè)計(jì)、開(kāi)發(fā)、管理等功能方面占有優(yōu)勢(shì)。其中應(yīng)用SQLServer2008版本可以將數(shù)據(jù)庫(kù)與Internet連接起來(lái),并且將數(shù)據(jù)的操作在網(wǎng)頁(yè)瀏覽器上顯示出來(lái),具有客戶機(jī)/服務(wù)器的結(jié)構(gòu)。因此結(jié)合SQL的分布式處理原則,我們?cè)趫D書(shū)館管理系統(tǒng)中使用了在.NET環(huán)境基于Web頁(yè)面的B/S服務(wù)模式。2.2.2經(jīng)濟(jì)可行性系統(tǒng)成功實(shí)現(xiàn)功能后,后期的運(yùn)行維護(hù)尤為重要,而且相比系統(tǒng)研發(fā)時(shí)期,系統(tǒng)的運(yùn)維將花費(fèi)更多的時(shí)間和精力。在該系統(tǒng)中應(yīng)用的基于WEB的B/S模型,可以遠(yuǎn)遠(yuǎn)的減少維護(hù)成本,有效的增加設(shè)計(jì)可行性。如果需要更改數(shù)據(jù)的操作,只需通過(guò)服務(wù)器端對(duì)數(shù)據(jù)修改便可。同時(shí),減少了人力、物力的不便利性。可以再短時(shí)間內(nèi)快速的集中并且將問(wèn)題統(tǒng)一起來(lái),逐一解決。減少維護(hù)成本。圖書(shū)館管理系統(tǒng)的實(shí)際是在減少管理員日常運(yùn)營(yíng)繁瑣流程,保證讀者需求能夠用最簡(jiǎn)的方式得到解決。3總體設(shè)計(jì)3.1系統(tǒng)實(shí)現(xiàn)目標(biāo)濰坊學(xué)院圖書(shū)管理系統(tǒng)設(shè)計(jì)研發(fā)需要遵循的原則有::(1)界面設(shè)計(jì)簡(jiǎn)潔、友好。(2)信息輸入便捷,存儲(chǔ)安全。(3)有效的權(quán)限設(shè)置功能,方便統(tǒng)一系統(tǒng)運(yùn)作。(4)方便的查詢修改功能,及時(shí)獲取所需信息。(5)初級(jí)大數(shù)據(jù)平臺(tái),實(shí)現(xiàn)對(duì)圖書(shū)租借接口的信息化管理。(6)收集系統(tǒng)數(shù)據(jù),為圖書(shū)館管理員和讀者租借提供排行榜詳情。(7)方便、安全的個(gè)人設(shè)置和系統(tǒng)設(shè)置。(8)具有用戶最簡(jiǎn)原則,體現(xiàn)以人為本。3.2系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)通過(guò)對(duì)濰坊學(xué)院圖書(shū)館管理系統(tǒng)的需求分析,可以將該圖書(shū)管理系統(tǒng)劃分為圖書(shū)管理、讀者管理、圖書(shū)租借、系統(tǒng)查詢、系統(tǒng)設(shè)置、排行榜等幾個(gè)需求部分,各個(gè)部分的邏輯分析圖譜3-1所示。圖書(shū)管理系統(tǒng)圖書(shū)管理系統(tǒng)系統(tǒng)設(shè)置管理員設(shè)置書(shū)架設(shè)置讀者管理排行榜圖書(shū)管理圖書(shū)借還系統(tǒng)查詢讀者類型管理圖書(shū)借閱排行榜讀者借閱排行榜圖書(shū)借閱查詢圖書(shū)檔案查詢圖書(shū)歸還圖書(shū)借閱圖書(shū)檔案管理圖書(shū)類型管理讀者檔案管理圖3.1系統(tǒng)功能結(jié)構(gòu)圖(1)圖書(shū)借閱-用戶進(jìn)行圖書(shū)借閱詳細(xì)流程圖圖3-2借閱系統(tǒng)詳細(xì)流程圖(2)圖書(shū)租借系統(tǒng)-用戶還書(shū)詳細(xì)流程圖圖3-3還書(shū)系統(tǒng)詳細(xì)流程圖(3)圖書(shū)信息管理-為用戶提供相關(guān)圖書(shū)詳細(xì)流程圖圖3-4圖書(shū)信息管理詳細(xì)流程圖(4)讀者信息管理-記錄讀者的基本信息的詳細(xì)流程圖圖3-5讀者信息管理詳細(xì)流程圖3.3系統(tǒng)流程圖圖書(shū)管理系統(tǒng)的流程是用戶進(jìn)入登陸界面后,首先要輸入自己的賬號(hào)密碼以及系統(tǒng)顯示的驗(yàn)證碼,然后選擇登錄,進(jìn)行觸發(fā)登錄系統(tǒng)。系統(tǒng)數(shù)據(jù)庫(kù)對(duì)所提交的賬號(hào)密碼進(jìn)行數(shù)據(jù)判斷,如果在選擇登錄時(shí)如果有一項(xiàng)不符合,驗(yàn)證碼錯(cuò)誤或者密碼錯(cuò)誤,則不能進(jìn)入系統(tǒng),當(dāng)用戶成功登陸系統(tǒng)后,系統(tǒng)則再次對(duì)登陸的賬號(hào)信息與數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行比對(duì)判斷。判斷結(jié)果如果是圖書(shū)館管理員,則進(jìn)入功能界面,對(duì)相關(guān)信息進(jìn)行查詢,錄入更改圖書(shū)信息、查詢讀者信息、設(shè)置系統(tǒng)權(quán)限和更新排行榜信息。判斷結(jié)果如果是讀者,則進(jìn)入讀者界面,可對(duì)自身信息查詢以及查閱圖書(shū)借閱和瀏覽排行榜。圖書(shū)管理系統(tǒng)的系統(tǒng)流程圖如圖3-6所示。登陸系統(tǒng)登陸系統(tǒng)是否登陸判斷身份管理員讀者圖書(shū)歸還圖書(shū)借閱信息查詢排行榜信息圖書(shū)信息讀者信息否圖3-6圖書(shū)管理系統(tǒng)的流程圖4詳細(xì)設(shè)計(jì)4.1圖書(shū)管理系統(tǒng)ER圖本系統(tǒng)采用了E-R圖的方法進(jìn)行數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)。E-R圖是描述數(shù)據(jù)實(shí)體關(guān)系的一種直觀描述工具。結(jié)構(gòu)設(shè)計(jì)是在分析用戶需求的基礎(chǔ)上,設(shè)計(jì)出可以符合用戶需求的各類實(shí)體,通過(guò)它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。4.1.1設(shè)計(jì)E-R模式定義系統(tǒng)的實(shí)體和屬性:(1)實(shí)體:可以使用方框,為實(shí)體的名稱。(2)實(shí)體屬性:可以通過(guò)橢圓,橢圓中顯示的內(nèi)容表示為屬性的名稱。實(shí)體屬性通過(guò)線段和相應(yīng)的實(shí)體連接起來(lái)。(3)實(shí)體之間的聯(lián)系:可以通過(guò)菱形,菱形內(nèi)表示為聯(lián)系的名稱。圖書(shū)(圖書(shū)名稱,圖書(shū)類型,作者(譯者),出版社,價(jià)格,頁(yè)碼,書(shū)庫(kù)、書(shū)架,庫(kù)存數(shù)量,入館時(shí)間,管理員,)借閱者(讀者編號(hào),姓名,性別,證件類型,證件號(hào)碼,讀者類型,可借數(shù)量,借閱日期,應(yīng)還日期)圖書(shū)類別(圖書(shū)類型編號(hào),圖書(shū)類型名稱,可借天數(shù))實(shí)體和實(shí)體之間的聯(lián)系較多,比較常見(jiàn)的聯(lián)系有l(wèi):1,l:N和M:N這三種。一本圖書(shū)只能屬于一種圖書(shū)類別(類別),而一種圖書(shū)類別可以包含多本圖書(shū);一個(gè)用戶可以借閱多本不同的書(shū),而一本書(shū)也可以被多個(gè)不同的用戶所借閱。系統(tǒng)權(quán)限作為圖書(shū)館管理系統(tǒng)中判斷讀者和管理員的重要部分,首要整體E-R圖實(shí)體,用來(lái)儲(chǔ)存用戶的任務(wù)操作的詳細(xì)信息??傮wE-R圖實(shí)體屬性圖如圖4-1所示。密碼用戶ID書(shū)名圖書(shū)ID……密碼用戶ID書(shū)名圖書(shū)ID……用戶圖書(shū)事務(wù)處理圖書(shū)用戶圖書(shū)事務(wù)處理圖書(shū)mnmn操作n操作管理員m管理員管理管理總管理員管理管理總管理員mn管理員ID…密碼管理員ID…密碼圖4.1總體E-R屬性圖圖書(shū)作為圖書(shū)館管理系統(tǒng)中最重要的部分,首要?jiǎng)?chuàng)建圖書(shū)信息實(shí)體,用來(lái)保存圖書(shū)的詳細(xì)信息。圖書(shū)信息實(shí)體屬性圖如圖4-2所示。圖書(shū)信息圖書(shū)信息圖書(shū)類型價(jià)格條形碼圖書(shū)名稱名作者出版社頁(yè)碼書(shū)架入館時(shí)間圖4.2圖書(shū)屬性圖圖書(shū)管理系統(tǒng)中較為重要的重要的部分是圖書(shū)借閱與歸還部分,開(kāi)發(fā)圖書(shū)管理系統(tǒng)目的旨在為了方便管理員以及讀者查看借閱和歸還信息,所以要建立一個(gè)圖書(shū)借還實(shí)體,用來(lái)儲(chǔ)存讀者對(duì)圖書(shū)的借閱和歸還的詳細(xì)信息。圖書(shū)的借閱實(shí)體屬性圖如圖4-3所示。借閱借閱編號(hào)書(shū)目編號(hào)讀者編號(hào)借閱日期應(yīng)還日期圖4.3借閱信息屬性圖讀者作為圖書(shū)管理系統(tǒng)中必不可少的一個(gè)重要部分,可以由創(chuàng)建一個(gè)讀者的實(shí)體,用來(lái)儲(chǔ)存讀者的相關(guān)信息。讀者信息實(shí)體E-R圖如圖4.4所示。讀者讀者信息讀者編號(hào)證件類型讀者類型姓名性別6.圖書(shū)館管理系統(tǒng)的開(kāi)發(fā) 176.圖書(shū)館管理系統(tǒng)的開(kāi)發(fā) 17別證件號(hào)碼圖4.4用戶信息屬性圖4.2數(shù)據(jù)表結(jié)構(gòu)設(shè)計(jì)結(jié)合前端制作系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)的各個(gè)數(shù)據(jù)表。如表4.1—表4.10所示:表4.1管理員表(tb_admin)字段代號(hào)字段類型字段長(zhǎng)度是否可以為空備注Id(關(guān)鍵字)Nvarchar20否管理員編號(hào)NameNvarchar20可以為空管理員名稱PwdNvarchar10否管理員密碼表4.2書(shū)架表(tb_bookcase)字段代號(hào)字段類型字段長(zhǎng)度是否可以為空備注Id(關(guān)鍵字)Nvarchar20否書(shū)架idNameNvarchar20否書(shū)架名表4.3圖書(shū)館(tb_library)字段代號(hào)字段類型字段長(zhǎng)度是否可以為空備注LibrarynameNvarchar100否圖書(shū)館名稱CuratorNvarchar100否館長(zhǎng)TelInt20否電話AddressNvarchar100否地址EmailNvarchar100否電子郵件urlNvarchar20否網(wǎng)址createDatesmalldatetime20否建館時(shí)間IntroduceText500否備注表4.4圖書(shū)表(tb_bookinfo)字段代號(hào)字段類型字段長(zhǎng)度是否可以為空備注Bookcode(關(guān)鍵字)Nvarchar100否條形碼BooknameNvarchar200否圖書(shū)名稱TypeNvarchar100否圖書(shū)類型AuthorNvarchar100否作者translatorDatetime10否譯者PubnameInt10否出版社PriceNvarchar20否價(jià)格Pageint100否頁(yè)碼BcaseNvarchar10否書(shū)架StorageNvarchar20否庫(kù)存數(shù)量inTimesmalldatetime20否入館時(shí)間OperVarchar50否操作員borrownumint否借出數(shù)量表4.5讀者表(tb_reader)字段代號(hào)字段類型字段長(zhǎng)度是否可以為空備注Id(關(guān)鍵字)Nvarchr100否讀者編號(hào)NameNvarchr100否讀者名稱Sexbit1否讀者性別TypeNvarchr100否讀者類型BirthdayNvarchr100否出生年月paperTypeNvarchr100否證件類型paperNumNvarchr100否證件號(hào)碼TelNvarchr20否電話EmailNvarchr20否電子郵件createDataSmalldatatime20否注冊(cè)日期OperNvarchr100否操作員RemarkText200否備注BorrownumInt20否NumInt20否表4.6讀者類型借閱數(shù)量(tb_readertype)字段代號(hào)字段類型字段長(zhǎng)度是否可以為空備注IdInt100否編號(hào)NameNvarchar200否讀者類型NumInt20否可接數(shù)量表4.7圖書(shū)借閱信息表(tb_borrowandback)字段代號(hào)字段類型字段長(zhǎng)度是否可以為空備注Id(主鍵)Nvarchar20否編號(hào)ReaderidNvarchar100否讀者編號(hào)Bookcodeint20否條形碼borrowTimeSmalldatatime20否借閱時(shí)間ygbackTimeSmalldatatime20否應(yīng)還時(shí)間SjbackTimeSmalldatatime20否還書(shū)時(shí)間BorrowoperNvarchar100否庫(kù)存數(shù)量BackoperNvarchar100否IsbackBit20否借閱表4.8圖書(shū)類型(tb_booktype)字段代號(hào)字段類型字段長(zhǎng)度是否可以為空備注IdInt20否編號(hào)TypennameNvarchar100否圖書(shū)類型名稱DaysInt15否可借天數(shù)表4.9權(quán)限設(shè)置表(tb_purview)字段代號(hào)字段類型字段長(zhǎng)度是否可以為空備注IdNvarchar100否管理員idSyssetBit50否系統(tǒng)設(shè)置ReadsetBit50否讀者管理BooksetBit50否圖書(shū)管理BorrowbackBit50否圖書(shū)借閱sysqueryBit50否系統(tǒng)查詢5圖書(shū)館管理系統(tǒng)的實(shí)現(xiàn)5.1數(shù)據(jù)庫(kù)的連接圖書(shū)館管理系統(tǒng)可以通過(guò)JDBC連接MySQL數(shù)據(jù)庫(kù),其中包含四個(gè)參數(shù):系統(tǒng)驅(qū)動(dòng)參數(shù)driver、連接參數(shù)url、用戶名參數(shù)username、密碼參數(shù)password,四種參數(shù)相對(duì)應(yīng)的參數(shù)值為:driver=com.mysql.jdbc.Driver;url=jdbc:mysql//localhost:3306/ticket;username=root;password=1234;可以在.properties文件保存這些參數(shù),同時(shí)聲明Properties類,對(duì)配置文件進(jìn)行讀取,獲取到相應(yīng)的數(shù)據(jù)信息。在系統(tǒng)使用的編程語(yǔ)言中行文規(guī)范中指出,所使用的驅(qū)動(dòng)程序都必須在靜態(tài)的代碼塊中注冊(cè)。代碼如圖5.1所示:try{props.load(ConectionUtils.class.getClassLoader().getResourceAsStream("perties"));}catch(IOExceptione){ e.printStackTrace();}圖5.1靜態(tài)代碼塊1.驅(qū)動(dòng)注冊(cè)驅(qū)動(dòng)注冊(cè)的第一步就是將配對(duì)的驅(qū)動(dòng)安裝到JDBC驅(qū)動(dòng)管理器中。在靜態(tài)代碼塊中,利用反射機(jī)制來(lái)加載讀取到的驅(qū)動(dòng)程序從而向驅(qū)動(dòng)管理器注冊(cè)此驅(qū)動(dòng),代碼如圖5.2所示:Class.forName(driver);圖5.2注冊(cè)驅(qū)動(dòng)2.建立連接連接Connection是利用DriverManager的靜態(tài)方法getConnection()來(lái)獲得,再傳輸?shù)綄?shí)際的Driver中的Connect()方法中來(lái)從中獲取數(shù)據(jù)庫(kù)的連接。代碼如圖5.3所示:publicstaticConnectionopenConnection()throwsSQLException{ returnDriverManager.getConection(url,username,password);}圖5.3獲取參數(shù)5.2系統(tǒng)模塊功能5.2.1讀者登錄界面設(shè)計(jì)從用戶需求的角度考慮,系統(tǒng)的需求分為兩種,圖書(shū)館管理員對(duì)系統(tǒng)的需求以及讀者對(duì)系統(tǒng)的需求。在進(jìn)入系統(tǒng)進(jìn)行相關(guān)操作前,我們會(huì)首先進(jìn)入登陸界面,在登錄界面上需要輸入相對(duì)應(yīng)的賬號(hào)密碼以及系統(tǒng)提供的驗(yàn)證碼。由系統(tǒng)結(jié)合數(shù)據(jù)庫(kù)判斷權(quán)限,根據(jù)判別分別進(jìn)入不同的編輯界面。圖5.2.1登錄界面5.2.2系統(tǒng)設(shè)計(jì)界面設(shè)計(jì)當(dāng)讀者登陸系統(tǒng)后,可以看到圖書(shū)租借排行榜以及讀者租借排行榜的情況。圖5.2.2首頁(yè)界面圖書(shū)館管理員權(quán)限,涉及輸入圖書(shū)館相關(guān)信息。圖5.2.3圖書(shū)館信息界面管理員設(shè)置界面:增加管理員以及設(shè)置管理員權(quán)限。圖5.2.4管理員設(shè)置界面書(shū)架管理頁(yè)面:顯示、修改及刪除書(shū)籍信息圖5.2.5書(shū)架管理界面5.2.3讀者管理界面設(shè)計(jì)讀者類型管理頁(yè)面:顯示、修改、刪除、添加讀者類型圖5.2.6讀者類型管理界面讀者檔案管理界面:顯示、刪除及添加讀者信息圖5.2.7讀者檔案管理界面5.2.4圖書(shū)管理界面設(shè)計(jì)圖書(shū)類型管理界面:顯示、修改、刪除、添加圖書(shū)類型圖5.2.8圖書(shū)類型管理界面圖書(shū)館檔案管理界面:顯示、刪除、添加圖書(shū)檔案信息圖5.2.9圖書(shū)檔案管理界面圖書(shū)館借閱界面:用戶用戶登錄,觸發(fā)所借圖書(shū)的借閱按鍵,在所有圖書(shū)中移除此圖書(shū)信息,然后將圖書(shū)信息寫(xiě)入到所借圖書(shū)的文本文件中。圖5.2.10圖書(shū)借閱界面圖書(shū)歸還界面:用戶登錄后,觸發(fā)所還圖書(shū)的歸還按鈕,在所借圖書(shū)文本文檔中刪除此圖書(shū)的信息,并且寫(xiě)入到所有圖書(shū)文本文件中。圖5.2.11圖書(shū)歸還界面圖書(shū)檔案查詢界面:根據(jù)不同類目條件,查詢圖書(shū)檔案信息。圖5.2.12圖書(shū)檔案查詢界面圖書(shū)借閱借閱查詢界面:選擇不同類目的查詢條件,查看借閱的圖書(shū)信息。圖5.2.13圖書(shū)借閱查詢界面圖書(shū)借閱排行榜界面:顯示圖書(shū)借閱情況排行。圖5.2.14圖書(shū)借閱排行榜界面讀者借閱排行榜界面:顯示讀者借閱情況排行。圖5.2.15讀者借閱排行榜界面5.2.5更改口令界面設(shè)計(jì)更改口令界面設(shè)計(jì):可對(duì)管理員密碼進(jìn)行修改。圖5.2.16更改口令界面結(jié)束語(yǔ)為保證本次圖書(shū)館管理系統(tǒng)進(jìn)行合理的設(shè)計(jì)規(guī)劃以及運(yùn)營(yíng)實(shí)現(xiàn),任務(wù)開(kāi)始之前進(jìn)行的大量的信息收集。對(duì)獲取信息進(jìn)行詳細(xì)的市場(chǎng)調(diào)研以及需求分析,確定出設(shè)計(jì)中遵循的基本原則以及功能定義。結(jié)合系統(tǒng)需求構(gòu)建思維腦圖以及邏輯分析圖譜。本圖書(shū)館管理系統(tǒng)是根據(jù)學(xué)校固有的圖書(shū)館管理系統(tǒng)的基礎(chǔ)上,進(jìn)行的簡(jiǎn)化設(shè)計(jì)編程,通過(guò)對(duì)校圖書(shū)系統(tǒng)的用戶體驗(yàn),提煉出系統(tǒng)的需求點(diǎn),對(duì)借書(shū)、還書(shū)、圖書(shū)預(yù)覽、管理員權(quán)限、排行榜等功能進(jìn)行研究與設(shè)計(jì),期間也結(jié)合了大量的計(jì)算機(jī)編程資料。為了形成系統(tǒng)閉環(huán),對(duì)流程環(huán)節(jié)以及管理權(quán)限進(jìn)行了優(yōu)化。在設(shè)計(jì)實(shí)施階段,對(duì)定義的功能進(jìn)行詳細(xì)規(guī)劃,注重用戶需求和用戶體驗(yàn)。堅(jiān)持以用戶為中心,開(kāi)發(fā)不同的管理員及讀者功能。通過(guò)不斷地設(shè)計(jì)改進(jìn),對(duì)各個(gè)功能的具體模塊測(cè)試分析,系統(tǒng)的完成了整體設(shè)計(jì)。圖書(shū)館管理系統(tǒng)的設(shè)計(jì)主要是運(yùn)用了c#與數(shù)據(jù)庫(kù)的技術(shù)的結(jié)合來(lái)實(shí)現(xiàn)需求的所有功能。在設(shè)計(jì)過(guò)程中,應(yīng)用到了GUI模塊以及思維導(dǎo)圖的設(shè)計(jì),經(jīng)過(guò)不斷地調(diào)試改錯(cuò)設(shè)計(jì)文檔,基本實(shí)現(xiàn)了系統(tǒng)中的所有初步功能,雖然相比學(xué)校的圖書(shū)館管理系統(tǒng)的功能實(shí)現(xiàn)還有一定的差距。但是,我會(huì)在今后的學(xué)習(xí)工作中不斷地提升和完善自己,增強(qiáng)自身素質(zhì),運(yùn)用所學(xué)設(shè)計(jì)出更加完備的系統(tǒng)。

參考文獻(xiàn)[1]唐政,房大偉.C#項(xiàng)目開(kāi)發(fā)全程實(shí)錄[M].北京:清華大學(xué)出版社.2005.3[2]程秉輝.解決網(wǎng)頁(yè)設(shè)計(jì)一定會(huì)遇到210個(gè)問(wèn)題[M].北京:科學(xué)出版社.2008.5[3]馬駿,黨蘭學(xué).ASP.NET網(wǎng)頁(yè)設(shè)計(jì)與網(wǎng)站開(kāi)發(fā)[M].北京:人民郵電出版社.2007.1[4]趙致格.數(shù)據(jù)庫(kù)系統(tǒng)與應(yīng)用編著[M].北京:清華大學(xué)出版社.2007.9[5]CharlesABell.深入理解.MySQL[M].北京:人民郵電出版社.2010:178[6]薩師煊,王珊.?dāng)?shù)據(jù)庫(kù)系統(tǒng)概論[M].北京:清華大學(xué)出版社.2006:17-18[7]盧翰.軟件開(kāi)發(fā)視頻大講堂:C#從入門到精通(第3版)[M].北京:電子工業(yè)出版社.2011:275-276[8]趙俊峰.Java.Web應(yīng)用開(kāi)發(fā)案例教程——基于MVC模式的JSP+Servlet+JDBC和AJAX[M].北京:清華大學(xué)出版社.2012:398-400[9]謝發(fā)徽.圖書(shū)館電子信息系統(tǒng)應(yīng)用實(shí)踐[M].北京:機(jī)械工程出版社.2014:176[10]陳曹維,圖書(shū)館科技查新服務(wù)與科技查新管理系統(tǒng)[M].北京:海洋出版社.2011:345-350[11]林上杰,林康司.JSP2.0技術(shù)手冊(cè)[M].北京:電子工業(yè)出版社.2004:195-198[12]潘凱華,李慧,劉欣等MySQL快速入門[M].北京:清華大學(xué)出版社.2012:276-280[13]劉曉華,張健,周慧貞.JSP應(yīng)用開(kāi)發(fā)詳解(第三版)[M].北京:電子工業(yè)出版社.2007:176[14]袁征宇.出版信息管理系統(tǒng)數(shù)據(jù)庫(kù)接口技術(shù)案例[M].北京:清華大學(xué)出版社.2015:14-18[15]續(xù)蕾.基于B/S的在線小型圖書(shū)館信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[M].遼寧大連:遼寧對(duì)外經(jīng)貿(mào)學(xué)院信息技術(shù)系,2011附錄主要分析程序:packagecom.chinasoft.bms.dao;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importcom.chinasoft.bms.vo.Users;publicclassUsersDao{ privateFileReaderfr; privateBufferedReaderbr; privateFileWriterfw; privateBufferedWriterbw; privatefinalStringPATH="datas/users.txt"; //讀取所有用戶 publicList<Users>getAllUser(){ List<Users>list=newArrayList<Users>(); try{ //打開(kāi)文件 fr=newFileReader(PATH); br=newBufferedReader(fr); //讀取文件 Stringstr=null; while((str=br.readLine())!=null){ String[]arr=str.split("#");//將數(shù)據(jù)分開(kāi) //將數(shù)據(jù)封裝到Users類型的對(duì)象中,并添加到集合中 list.add(newUsers(arr[0],arr[1],arr[2],Integer.parseInt(arr[3]),arr[4])); } }catch(FileNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnlist; } //單個(gè)修改寫(xiě)入用戶的信息 publicbooleansaveUserInfo(Stringuser){ booleanflag=false; try{ fw=newFileWriter(PATH,true); bw=newBufferedWriter(fw); bw.write(user); bw.newLine(); bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //添加用戶 publicbooleanaddUser(Stringuser){ booleanflag=false; try{ fw=newFileWriter(PATH,true); bw=newBufferedWriter(fw); bw.write(user); bw.newLine(); bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //添加用戶(刪除后的重新寫(xiě)入) publicbooleanaddUser(List<Users>list){ booleanflag=false; try{ fw=newFileWriter(PATH); bw=newBufferedWriter(fw); for(Usersuser:list){ bw.write(user.toSaveString()); bw.newLine(); bw.flush(); } flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } privatevoidclose(){ try{ if(br!=null)br.close(); if(fr!=null)fr.close(); if(bw!=null)bw.close(); if(fw!=null)fw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } //(修改信息)寫(xiě)入一個(gè)用戶的信息 publicbooleansaveOneUser(List<Users>list){ booleanflag=false; try{ fw=newFileWriter(PATH,true); bw=newBufferedWriter(fw); for(Usersus:list){ bw.write(us.toString()); bw.newLine(); } bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; }importcom.chinasoft.bms.vo.Books;publicclassBooksDao{ privateFileReaderfr; privateBufferedReaderbr; privateFileWriterfw; privateBufferedWriterbw; privateStringpath; privateStringaddress; publicBooksDao(){ path="datas/books.txt"; address="F:/download.txt"; } //讀取所有圖書(shū)信息 publicList<Books>getAllBooks(){ List<Books>list=newArrayList<Books>(); try{ fr=newFileReader(path); br=newBufferedReader(fr); Stringstr=null; while((str=br.readLine())!=null){ String[]arr=str.split("#"); list.add(newBooks(arr[0],arr[1],arr[2],arr[3],Double.parseDouble(arr[4]))); } }catch(FileNotFoundExceptione){ Filefi=newFile(path); try{ fi.createNewFile(); }catch(IOExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnlist; } //寫(xiě)入圖書(shū)信息--單個(gè)追加 publicbooleansaveBooks(Stringstr){ booleanflag=false; try{ fw=newFileWriter(path,true); bw=newBufferedWriter(fw); bw.write(str); bw.newLine(); bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //寫(xiě)入圖書(shū)信息--整體添加 publicbooleansaveAllBooks(List<Books>list){ booleanflag=false; try{ fw=newFileWriter(path); bw=newBufferedWriter(fw); for(Booksbook:list){ bw.write(book.toString()); bw.newLine(); } bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //下載一本圖書(shū)的方法 publicbooleandownload(Stringbook){ booleanflag=false; try{ fw=newFileWriter(address); bw=newBufferedWriter(fw); bw.write(book); bw.newLine(); bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //檢查下載庫(kù)里是否有要下載的書(shū)籍 publicbooleanhasDownloadBook(StringbookName){ booleanflag=false; Filefi=newFile("E:/DreamHeaven/BmsServer/bin/download"); File[]fl=fi.listFiles(); for(Filea:fl){ if((bookName+".txt").equals(a.getName())){ flag=true; break; } } returnflag; } privatevoidclose(){ try{ if(br!=null)br.close(); if(fr!=null)fr.close(); if(bw!=null)bw.close(); if(fw!=null)fw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }}publicclassBorrowBooksDao{ privateFileReaderfr; privateBufferedReaderbr; privateFileWriterfw; privateBufferedWriterbw; privateStringpath; publicBorrowBooksDao(){ path="datas/borrowBooks.txt"; } //讀取借書(shū)信息 publicList<BorrowBooks>getBorrowBooks(){ List<BorrowBooks>list=newArrayList<BorrowBooks>(); try{ fr=newFileReader(path); br=newBufferedReader(fr); Stringstr=null; while((str=br.readLine())!=null){ String[]arr=str.split("#"); BorrowBooksborrowBook=newBorrowBooks(arr[0],arr[1],arr[2],arr[3], Double.parseDouble(arr[4]),arr[5],arr[6],arr[7],arr[8]); list.add(borrowBook); } }catch(FileNotFoundExceptione){ Filefi=newFile(path); try{ fi.createNewFile(); }catch(IOExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnlist; //寫(xiě)入借書(shū)信息========新加改動(dòng) publicbooleansaveBorrowBooks(BooksoneBook,Usersuser){ booleanflag=false; Datetime=newDate(); SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringborrowTime=sdf.format(time); Stringstr=newBorrowBooks(oneBook.getBookId(),oneBook.getBookName(),oneBook.getAuthor(),oneBook.getFrom(), oneBook.getPrice(),borrowTime,user.getUserId(),user.getUserName(),user.getPhone()).toString(); try{ fw=newFileWriter(path,true); bw=newBufferedWriter(fw); bw.write(str); bw.newLine(); bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //整體添加借書(shū)信息 publicbooleansaveAllBorrowBooks(List<BorrowBooks>list){ booleanflag=false; try{ fw=newFileWriter(path); bw=newBufferedWriter(fw); for(BorrowBooksborrowBook:list){ bw.write(borrowBook.toString()); bw.newLine(); } bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //關(guān)閉的方法 privatevoidclose(){ try{ if(br!=null)br.close(); if(fr!=null)fr.close(); if(bw!=null)bw.close(); if(fw!=null)fw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }importcom.chinasoft.bms.vo.Notice;publicclassNoticeDao{ privateFileReaderfr; privateBufferedReaderbr; privateFileWriterfw; privateBufferedWriterbw; privateStringpath; publicNoticeDao(){ path="datas/notice.txt"; } //讀取公告信息 publicList<Notice>getNotice(){ List<Notice>list=newArrayList<Notice>(); try{ fr=newFileReader(path); br=newBufferedReader(fr); Stringstr=null; while((str=br.readLine())!=null){ String[]arr=str.split("#"); list.add(newNotice(arr[0],arr[1],arr[2])); } }catch(FileNotFoundExceptione){ Filefi=newFile(path); try{ fi.createNewFile(); }catch(IOExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnlist; } //寫(xiě)入公告信息 publicbooleansaveNotice(Stringstr){ booleanflag=false; try{ fw=newFileWriter(path,true); bw=newBufferedWriter(fw); bw.write(str); bw.newLine(); bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //寫(xiě)入公告的信息(刪除后覆蓋原有的公告) publicbooleansaveNotice(List<Notice>list){ booleanflag=false; try{ fw=newFileWriter(path); bw=newBufferedWriter(fw); for(Noticeno:list){ bw.write(no.toSaveNotice()); bw.newLine(); bw.flush(); } flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } publicvoidclose(){ try{ if(br!=null)br.close(); if(fr!=null)fr.close(); if(bw!=null)bw.close(); if(fw!=null)fw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }importcom.chinasoft.bms.vo.ReturnBooks;publicclassReturnBooksDao{ privateFileReaderfr; privateBufferedReaderbr; privateFileWriterfw; privateBufferedWriterbw; privateStringpath; publicReturnBooksDao(){ path="datas/returnBooks.txt"; } //讀取借書(shū)信息 publicList<ReturnBooks>getReturnBooks(){ List<ReturnBooks>list=newArrayList<ReturnBooks>(); try{ fr=newFileReader(path); br=newBufferedReader(fr); Stringstr=null; while((str=br.readLine())!=null){ String[]arr=str.split("#"); list.add(newReturnBooks(arr[0],arr[1],arr[2],arr[3], Double.parseDouble(arr[4]),arr[5],arr[6],arr[7],arr[8],arr[9])); } }catch(FileNotFoundExceptione){ Filefi=newFile(path); try{ fi.createNewFile(); }catch(IOExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnlist; } //寫(xiě)入借書(shū)信息 publicbooleansaveReturnBooks(Stringstr){ booleanflag=false; try{ fw=newFileWriter(path,true); bw=newBufferedWriter(fw); bw.write(str); bw.newLine(); bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } publicvoidclose(){ try{ if(br!=null)br.close(); if(fr!=null)fr.close(); if(bw!=null)bw.close(); if(fw!=null)fw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }}publicclassBooks{ privateStringbookId;//書(shū)號(hào) privateStringbookName;//書(shū)名 privateStringauthor;//作者 privateStringfrom;//出版社 privatedoubleprice;//價(jià)格//封裝 publicStringgetBookId(){ returnbookId; } publicvoidsetBookId(StringbookId){ this.bookId=bookId; } publicStringgetBookName(){ returnbookName; } publicvoidsetBookName(StringbookName){ this.bookName=bookName; } publicStringgetAuthor(){ returnauthor; } publicvoidsetAuthor(Stringauthor){ this.author=author; } publicStringgetFrom(){ returnfrom; } publicvoidsetForm(Stringfrom){ this.from=from; } publicdoublegetPrice(){ returnprice; } publicvoidsetPrice(doubleprice){ this.price=price; } //構(gòu)造方法 publicBooks(StringbookId,StringbookName,Stringauthor,Stringfrom,doubleprice){ super(); this.bookId=bookId; this.bookName=bookName; this.author=author; this.from=from; this.price=price; } publicBooks(){ super(); } //重寫(xiě)toString方法 publicStringtoString(){ returnthis.bookId+"#"+this.bookName+"#"+this.author+"#"+this.from+"#"+this.price; } //重寫(xiě)equals方法 publicbooleanequals(Objectobj){ //TODOAuto-generatedmethodstub returnthis.bookId.equalsIgnoreCase(obj.toString()); }}packagecom.chinasoft.bms.vo;publicclassBorrowBooksextendsBooks{ privateStringborrowTime; privateStringuserId; privateStringuserName; privateStringphone; publicStringgetBorrowTime(){ returnborrowTime; } publicvoidsetBorrowTime(StringborrowTime){ this.borrowTime=borrowTime; } publicStringgetUserId(){ returnuserId; } publicvoidsetUserId(StringuserId){ this.userId=userId; } publicStringgetUserName(){ returnuserName; } publicvoidsetUserName(StringuserName){ this.userName=userName; } publicStringgetPhone(){ returnphone; } publicvoidsetPhone(Stringphone){ this.phone=phone; } publicBorrowBooks(){ super(); } publicBorrowBooks(StringbookId,StringbookName,Stringauthor, Stringfrom,doubleprice,StringborrowTime, StringuserId,StringuserName,Stringphone){ super(bookId,bookName,author,from,price); this.borrowTime=borrowTime; this.userId=userId; this.userName=userName; this.phone=phone; } publicStringtoString(){ returnsuper.toString()+"#"+this.borrowTime+"#"+this.userId+"#"+this.userName+"#"+this.phone; }}packagecom.chinasoft.bms.vo;publiccl

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論