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

下載本文檔

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

文檔簡(jiǎn)介

47/532012屆畢業(yè)設(shè)計(jì)基于Android的圖書(shū)管理系統(tǒng)設(shè)計(jì)BOOKSMANAGEMENTSYSTEMFORANDROIDPLATFORM學(xué)院:經(jīng)濟(jì)管理學(xué)院專(zhuān)業(yè):信息管理與信息系統(tǒng)班級(jí):2008級(jí)081班學(xué)號(hào):108062014學(xué)生:海燕指導(dǎo)教師:榮玨二○一二年五月四日科技學(xué)院畢業(yè)設(shè)計(jì)、學(xué)位論文使用授權(quán)書(shū)本人海燕學(xué)號(hào)108062014聲明所呈交的畢業(yè)設(shè)計(jì)、學(xué)位論文《基于Android的圖書(shū)管理系統(tǒng)設(shè)計(jì)》,是在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作與取得的研究成果。除了文中特別加以標(biāo)注和致的地方外,論文中不包含其他人已經(jīng)發(fā)表或撰寫(xiě)過(guò)的研究成果,與我一同工作的人員對(duì)本研究所做的任何貢獻(xiàn)均已在論文中作了明確的說(shuō)明并表示意。本畢業(yè)設(shè)計(jì)、學(xué)位論文作者愿意遵守科技學(xué)院關(guān)于保留、使用學(xué)位論文的管理辦法與規(guī)定,允許畢業(yè)設(shè)計(jì)、學(xué)位論文被查閱。本人授權(quán)科技學(xué)院可以將畢業(yè)設(shè)計(jì)、學(xué)位論文的全部或部分容編入有關(guān)數(shù)據(jù)庫(kù)在校園網(wǎng)傳播,可以采用影印、縮印或掃描等復(fù)制手段保存、匯編畢業(yè)設(shè)計(jì)、學(xué)位論文。(的學(xué)位論文在解密后適用本授權(quán)書(shū))

論文作者簽名:導(dǎo)師簽名:

簽字日期:年月日簽字日期:年月日

容摘要隨著移動(dòng)通信技術(shù)的發(fā)展,Android智能機(jī)的不斷普與,為圖書(shū)管理系統(tǒng)提供了良好的機(jī)遇。結(jié)合數(shù)字圖書(shū)館與移動(dòng)通信技術(shù),用戶(hù)可以隨時(shí)隨地訪(fǎng)問(wèn)圖書(shū)館的數(shù)字資源,進(jìn)行信息查詢(xún)和電子閱讀,通過(guò)為用戶(hù)提供實(shí)時(shí)性和個(gè)性化服務(wù),提升用戶(hù)滿(mǎn)意度,提高圖書(shū)館的服務(wù)效率。同時(shí),也能促進(jìn)傳統(tǒng)圖書(shū)館的發(fā)展,提高其競(jìng)爭(zhēng)優(yōu)勢(shì)。本文就是為滿(mǎn)足用戶(hù)對(duì)圖書(shū)館服務(wù)實(shí)時(shí)性和便捷性的要求,研究基于android平臺(tái)的圖書(shū)管理系統(tǒng)客戶(hù)端。首先,簡(jiǎn)述了android版圖書(shū)管理系統(tǒng)的必要性;其次,紹了實(shí)現(xiàn)本系統(tǒng)時(shí)所用到的相關(guān)技術(shù);然后,研究android版圖書(shū)管理系統(tǒng)的流程與各個(gè)功能模塊的組成;最后指出系統(tǒng)的具體設(shè)計(jì)和實(shí)現(xiàn)過(guò)程。關(guān)鍵詞:android、圖書(shū)管理系統(tǒng)、客戶(hù)端。ABSTRACTAlongwiththedevelopmentofmobilecommunicationtechnologyandtheincreasingpopularityofAndroidsmartphone,provideagoodopportunityforbooksmanagementsystem.Combinedigitallibraryandmobiletechnology,userscanaccessthelibrary'sdigitalresourcesatanytimeandplace,queringinformationandreadingelectronicbooks.Throughprovidinguserwithreal-timeandpersonalizedservices,itcanimprovescustomersatisfactionandlibrary'sserviceefficiency.Atthesametime,italsocanpromotethedevelopmentoftraditionallibrary,improveitscompetitiveadvantage.Thispaperistomeettheuser'srequirementthatprovidewithreal-timeandconvenienceservice,studingbooksmanagementsystemclientbasedonandroidplatform.Firstofall,thispaperdescribesthenecessityofbooksmanagementsystembasedonandroidplatform;Second,introducerelevanttechnologyusedbythesystem;Then,discusstheprocessandthecompositionofeachfunctionmoduleofthissystem;Atlast,itpointsoutthatthesystem'sspecificdesignandimplementationprocess.KEYWORDS:android,booksmanagementsystem,client正文目錄16487第一章引言 129165第一節(jié)選題背景114203第二節(jié)選題容29252第二章技術(shù)解析 3801第一節(jié)Android介紹38302一、概述324100二、Android特點(diǎn)322236第二節(jié)SQLite數(shù)據(jù)庫(kù)系統(tǒng)介紹416153一、概述45990二、SQLite的特點(diǎn)5742第三節(jié)結(jié)構(gòu)化系統(tǒng)分析與設(shè)計(jì)方法511488一、基本思想519566二、SSA&D的優(yōu)缺點(diǎn)611393三、SSA&D開(kāi)發(fā)系統(tǒng)的一般過(guò)程719075第三章系統(tǒng)分析 81657第一節(jié)需求分析824214第二節(jié)可行性分析92162一、技術(shù)可行性912732二、經(jīng)濟(jì)可行性918674三、運(yùn)營(yíng)可行性929439第三節(jié)系統(tǒng)的業(yè)務(wù)流程分析1027385第四節(jié)系統(tǒng)的邏輯模型114374一、數(shù)據(jù)流程分析1125420二、數(shù)據(jù)字典134854第四章系統(tǒng)設(shè)計(jì) 1730021第一節(jié)系統(tǒng)功能模塊設(shè)計(jì)173550一、公用模塊172867二、讀者模塊1827849三、管理員模塊1828285第二節(jié)系統(tǒng)詳細(xì)設(shè)計(jì)197275一、數(shù)據(jù)庫(kù)設(shè)計(jì)1917968二、UML用例圖設(shè)計(jì)202088三、界面設(shè)計(jì)2013978第五章系統(tǒng)實(shí)施 3030627第一節(jié)編程304895一、讀者登錄頁(yè)面306609二、管理員登錄頁(yè)面3223415三、主頁(yè)面3412737四、圖書(shū)查找3618404第二節(jié)系統(tǒng)自動(dòng)化測(cè)試4114957一、查詢(xún)功能測(cè)試421067二、讀者登錄功能測(cè)試4216981三、管理員登錄功能測(cè)試4330554四、新書(shū)入庫(kù)和圖書(shū)查詢(xún)功能測(cè)試431204五、辦理借書(shū)證和讀者查詢(xún)功能測(cè)試449878六、讀者續(xù)借功能測(cè)試4513707第三節(jié)系統(tǒng)評(píng)價(jià)4629580一、系統(tǒng)的不足4624280二、系統(tǒng)擴(kuò)展4615162參考文獻(xiàn) 4724753致 48第一章引言選題背景移動(dòng)通信技術(shù)的不斷發(fā)展,web應(yīng)用技術(shù)的進(jìn)一步創(chuàng)新,移動(dòng)互聯(lián)網(wǎng)將為互聯(lián)網(wǎng)發(fā)展提供一個(gè)新的平臺(tái),為各種傳統(tǒng)的互聯(lián)網(wǎng)業(yè)務(wù)注入新的活力。移動(dòng)互聯(lián)網(wǎng)可以讓用戶(hù)“隨時(shí)、隨地、隨心”的享受便捷的服務(wù),為用戶(hù)提供更豐富的業(yè)務(wù)、更個(gè)性化的服務(wù)。據(jù)國(guó)家互聯(lián)網(wǎng)信息辦公室副主任錢(qián)小芊指出,中國(guó)移動(dòng)終端使用數(shù)量已經(jīng)超過(guò)計(jì)算機(jī)數(shù)量,中國(guó)移動(dòng)手機(jī)上網(wǎng)數(shù)量達(dá)到3.5億,這意味著移動(dòng)互聯(lián)網(wǎng)的發(fā)展具有廣闊的前景。而在移動(dòng)互聯(lián)網(wǎng)時(shí)代,最耀眼的明星莫過(guò)于智能機(jī)了。2011年,全球智能手機(jī)的銷(xiāo)量將達(dá)到4.5億臺(tái),劇預(yù)計(jì),在2014年智能機(jī)的數(shù)量將占手機(jī)市場(chǎng)的45%。而iphone、android、symbian、windowsphone4款手機(jī)操作系統(tǒng),是目前市場(chǎng)是最受歡迎、占據(jù)最大市場(chǎng)份額的手機(jī)平臺(tái)。移動(dòng)互聯(lián)網(wǎng)的發(fā)展將成為互聯(lián)網(wǎng)發(fā)展新一代的動(dòng)力,這也為傳統(tǒng)的圖書(shū)館業(yè)務(wù)提供了新的發(fā)展空間。隨著智能機(jī)的普與,越來(lái)越多的企業(yè)把自己的業(yè)務(wù)推向移動(dòng)互聯(lián)網(wǎng),開(kāi)發(fā)出屬于自己的客戶(hù)端。從眾多數(shù)據(jù)分析報(bào)告中,企業(yè)的管理者逐漸意識(shí)到移動(dòng)互聯(lián)網(wǎng)的重要性,它將成為未來(lái)企業(yè)家的主要競(jìng)爭(zhēng)領(lǐng)域。因此,企業(yè)投入了大量的資源在手機(jī)客戶(hù)端的開(kāi)發(fā)上,紛紛推出自己的客戶(hù)端。其中,iphone和android應(yīng)用程序數(shù)量增長(zhǎng)迅速,涉與到了人們生活的各個(gè)方面,如娛樂(lè)、休閑、辦公等,都可以在網(wǎng)上搜索到相關(guān)的應(yīng)用程序。淘寶有自己的淘寶客戶(hù)端,買(mǎi)家無(wú)需打開(kāi)瀏覽器即可逛遍淘寶;手機(jī)版阿里旺旺客戶(hù)端為用戶(hù)和賣(mài)家之間建立起有效的溝通途徑;淘寶賣(mài)家版客戶(hù)端轉(zhuǎn)為賣(mài)家提供辦公服務(wù),在手機(jī)上就可查看、管理訂單;手機(jī)支付解決了交易的一大障礙。無(wú)疑,淘寶通過(guò)推出自己的客戶(hù)端,將業(yè)務(wù)延伸到移動(dòng)終端上,這種新的商業(yè)模式,將為淘寶帶來(lái)無(wú)限商機(jī)與利潤(rùn)空間。小到一家淘寶網(wǎng)店,也不忘推出自家店鋪的手機(jī)客戶(hù)端,希望通過(guò)這個(gè)手段來(lái)增加買(mǎi)家的再次訪(fǎng)問(wèn)和購(gòu)買(mǎi)率??梢哉f(shuō),手機(jī)客戶(hù)端已經(jīng)滲透到生活的每一個(gè)細(xì)節(jié),它正在默默的改變著人類(lèi)的生活方式。傳統(tǒng)的信息服務(wù)機(jī)構(gòu)之一“圖書(shū)館”,擁有大量的注冊(cè)用戶(hù)量和訪(fǎng)問(wèn)需求量,它完全可以利用移動(dòng)互聯(lián)網(wǎng)這個(gè)平臺(tái)來(lái)延伸自己的服務(wù),為用戶(hù)提供更具有實(shí)時(shí)性和個(gè)性化的便捷服務(wù),提升圖書(shū)館的工作效率和服務(wù)水平。國(guó)外也有許多機(jī)構(gòu)正在研究手機(jī)圖書(shū)館,試圖推動(dòng)圖書(shū)館向隨時(shí)隨地提供便捷服務(wù)的方向發(fā)展。研制一款圖書(shū)管理系統(tǒng)客戶(hù)端,可以節(jié)約讀者的時(shí)間和精力,無(wú)需專(zhuān)門(mén)跑到計(jì)算機(jī)前查詢(xún)圖書(shū)與館藏地址;可以減少計(jì)算機(jī)的采購(gòu)數(shù)量和維修成本,即節(jié)約圖書(shū)館的經(jīng)營(yíng)成本;克服地域限制,達(dá)到更大的資源共享;通過(guò)手機(jī)訪(fǎng)問(wèn)圖書(shū)館、閱讀電子書(shū),提高讀者的積極性,擴(kuò)大教育的意義;提升了圖書(shū)館的競(jìng)爭(zhēng)優(yōu)勢(shì)。圍繞以上目標(biāo),本人設(shè)計(jì)了android版圖書(shū)管理系統(tǒng),方便讀者查詢(xún)書(shū)籍,供讀者進(jìn)行借閱信息瀏覽、續(xù)借;方便管理員查詢(xún)、編輯信息。爭(zhēng)取提高圖書(shū)館的服務(wù)效率,為讀者提供隨時(shí)隨地、更加便捷的服務(wù),提升讀者滿(mǎn)意度,提高圖書(shū)館的競(jìng)爭(zhēng)力。選題容本系統(tǒng)是針對(duì)高校圖書(shū)管理系統(tǒng)的業(yè)務(wù)流程,主要包括圖書(shū)查詢(xún)(名稱(chēng)查詢(xún)、分類(lèi)查詢(xún)、高級(jí)查詢(xún))、新書(shū)推薦、熱門(mén)推薦、讀者登錄、讀者借閱信息瀏覽、讀者續(xù)借、管理員登錄、圖書(shū)借/還、新書(shū)入庫(kù)、辦理借書(shū)證、讀者信息編輯、圖書(shū)信息編輯、借閱信息查找、到期提醒(和短信方式)等業(yè)務(wù)模塊。另外,為本系統(tǒng)設(shè)計(jì)了自動(dòng)化測(cè)試方案,以上提到的功能幾乎都有相應(yīng)的自動(dòng)化測(cè)試用例,為完成系統(tǒng)編碼后的系統(tǒng)測(cè)試節(jié)約了時(shí)間。本系統(tǒng)基于android平臺(tái),用java語(yǔ)言編寫(xiě),eclipse作為開(kāi)發(fā)工具,以SQLite作為后臺(tái)數(shù)據(jù)庫(kù)。既可以運(yùn)行在真實(shí)的手機(jī)設(shè)備上,又可以在計(jì)算機(jī)上,運(yùn)行在模擬器中。另外自動(dòng)化測(cè)試工具使用Robotium,主要針對(duì)功能測(cè)試,通過(guò)獲取界面上的控件并對(duì)控件的事件進(jìn)行操作,模擬人機(jī)交互的過(guò)程。技術(shù)解析Android介紹概述Android,是一款基于Linux核的移動(dòng)操作系統(tǒng),它包含一個(gè)操作系統(tǒng)、中間件和關(guān)鍵應(yīng)用,主要用于移動(dòng)設(shè)備。最初android系統(tǒng)是由AndyRubin開(kāi)發(fā),主要支持手機(jī)設(shè)備。2005年被谷歌收購(gòu)并注資,聯(lián)合多家制造商組成手機(jī)聯(lián)盟,共同開(kāi)發(fā)改良,逐漸擴(kuò)展到平板電腦等其他移動(dòng)終端設(shè)備。Android系統(tǒng)推出后,僅僅兩年時(shí)間便超過(guò)了symbian系統(tǒng),成為最受全球人們歡迎的手機(jī)平臺(tái)。Android最早的版本為android1.5,現(xiàn)在已經(jīng)發(fā)行到android4.0版本,每個(gè)新版本的推出都伴隨著新的功能,令android平臺(tái)變得越來(lái)越強(qiáng)大。Android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和linux核心層。應(yīng)用程序?qū)影琫mail客戶(hù)端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等,會(huì)同android一起發(fā)布,主要用java語(yǔ)言寫(xiě)的。應(yīng)用程序框架,可以供開(kāi)發(fā)人員訪(fǎng)問(wèn)。該框架的設(shè)計(jì)簡(jiǎn)化了組件的重用性,任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊。隱藏在每個(gè)應(yīng)用后面的是一系列的服務(wù)和系統(tǒng),其中包括視圖、容提供器、資源管理器、通知管理器、活動(dòng)管理器。系統(tǒng)運(yùn)行庫(kù)又可以分為程序庫(kù)和Android運(yùn)行庫(kù)。其中程序庫(kù)包含一些以C/C++編寫(xiě)的庫(kù),通過(guò)Android應(yīng)用程序框架為開(kāi)發(fā)者提供服務(wù),如一些核心庫(kù):Bionic系統(tǒng)C庫(kù)、媒體庫(kù)、SurfaceManager、Webkit,LibWebCore、SGL、SQLite。Android運(yùn)行庫(kù),提供了JAVA語(yǔ)言核心庫(kù)的大多數(shù)功能。每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例。Dalvik虛擬機(jī)執(zhí)行(.dex)的Dalvik可執(zhí)行文件,該格式文件針對(duì)小存使用做了優(yōu)化。最底層是Linux核層,Android的核心系統(tǒng)服務(wù)依賴(lài)于Linux2.6核,如安全性,存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。Linux核也同時(shí)作為硬件和軟件棧之間的抽象層。Android特點(diǎn)(一)開(kāi)放性。android平臺(tái)是開(kāi)源的,受到廣大開(kāi)發(fā)者和移動(dòng)設(shè)備制造商推崇。開(kāi)源意味著開(kāi)發(fā)人員可以深入了解代碼,做二次開(kāi)發(fā),有了更大的選擇余地與發(fā)展空間。任何一個(gè)用戶(hù),如果自己懂一點(diǎn)開(kāi)發(fā)知識(shí),也可以寫(xiě)一些程序運(yùn)行在手機(jī)上,非常方便。(二)Dalvik虛擬機(jī)。Dalvik虛擬機(jī)是android平臺(tái)的重要部件之一,它對(duì)小存使用做了優(yōu)化,可以同時(shí)運(yùn)行多個(gè)虛擬機(jī)的實(shí)例。Dalvik虛擬機(jī)運(yùn)行Java應(yīng)用程序,但是,它與標(biāo)準(zhǔn)的Java虛擬機(jī)有些區(qū)別。第一,JVM是基于棧結(jié)構(gòu)的,但是Dalvik是基于寄存器,選擇基于寄存器的方式是因?yàn)樗鼘?duì)提前優(yōu)化提供了更好的支持,在性能有很大的提升。第二,Dalvik運(yùn)行java應(yīng)用程序,是執(zhí)行(.dex)Dalvik可執(zhí)行文件,.dex格式是一種壓縮格式,專(zhuān)為Dalvik設(shè)計(jì)的。它可以減少整體文件尺寸,而且還提高了I/O操作的類(lèi)查找速度,因而更適合存和處理器速度有限的系統(tǒng)。(三)中間件。Android中間件是操作系統(tǒng)和應(yīng)用程序之間溝通的橋梁,android包含很多有特殊的中間件。Android瀏覽器是基于webkit(一個(gè)開(kāi)源的瀏覽器引擎),android采用OpenCORE作為基礎(chǔ)多媒體框架,使用skia為核心圖形引擎,搭配OpenGL/ES,Android的多媒體數(shù)據(jù)庫(kù)采用SQLite數(shù)據(jù)庫(kù)系統(tǒng),用戶(hù)可通過(guò)ContentResolver類(lèi)訪(fǎng)問(wèn)共用數(shù)據(jù)庫(kù)的數(shù)據(jù)。(四)應(yīng)用構(gòu)成。Android應(yīng)用程序一般由以下四個(gè)部分構(gòu)成:Activity、IntentReceiver、Service、ContentProvider。Activity類(lèi)負(fù)責(zé)創(chuàng)建視圖,一個(gè)活動(dòng)中的Activity就是在屏幕上展示的界面,Service是運(yùn)行在后臺(tái)的服務(wù)。當(dāng)接收、短信等,是由IntentReceiver處理,即廣播接收器。ContentProvider是容提供者,封裝了很多上下文環(huán)境,用來(lái)訪(fǎng)問(wèn)各種資源。(五)界面布局。Android提供多種布局管理器,如FrameLayout(框架布局)、LinearLayout(線(xiàn)性布局)、TableLayout(表格布局)、AbsoluteLayout(絕對(duì)布局)、RelativeLayout(相對(duì)布局),從而使用各種尺寸的屏幕。如果開(kāi)發(fā)者不滿(mǎn)足于系統(tǒng)提供的控件,還可以開(kāi)發(fā)自定義控件。SQLite數(shù)據(jù)庫(kù)系統(tǒng)介紹概述SQLite誕生于2000年5月,是一款輕便型數(shù)據(jù)庫(kù)。它的設(shè)計(jì)目標(biāo)是嵌入式的,占用資源非常低,支持Windows/Linux/Unix等操作系統(tǒng),只需要幾百K的存就足夠了。它能夠結(jié)合Tcl、C#、PHP、Java等多種語(yǔ)言,擁有ODBC接口,但比起Mysql、PostgreSQL這兩款開(kāi)源的數(shù)據(jù)庫(kù)系統(tǒng)來(lái)說(shuō),處理速度要更快。SQLite雖然占用存小,但是一樣支持SQL語(yǔ)句,同時(shí)還支持事務(wù)處理等功能。SQLite操作起來(lái)簡(jiǎn)單,又支持跨平臺(tái),能夠使用很多語(yǔ)言直接創(chuàng)建數(shù)據(jù)庫(kù),如果你想開(kāi)發(fā)一個(gè)小型應(yīng)用,SQLite將是你最好的選擇。SQLite的特點(diǎn)SQLite擁有很多特點(diǎn),首先它是嵌入式的。SQLite設(shè)計(jì)的目標(biāo)就是嵌入式,它占用的資源非常少,在被嵌入到設(shè)備中時(shí),只需要幾百K的存即可,而且處理速度也很快。SQLite支持事務(wù)處理功能,使用前無(wú)需特殊配置,支持多種開(kāi)發(fā)語(yǔ)言和操作系統(tǒng)。SQLite允許忽略數(shù)據(jù)類(lèi)型,這意味著你可以保存任何類(lèi)型的數(shù)據(jù)到任何表的任何列中。多個(gè)線(xiàn)程或進(jìn)程可以訪(fǎng)問(wèn)同一個(gè)數(shù)據(jù)庫(kù),SQLite支持并行的多個(gè)讀訪(fǎng)問(wèn)。SQLite操作簡(jiǎn)單、獨(dú)立,沒(méi)有額外的依賴(lài),資源開(kāi)放,你可以用于任何用途。結(jié)構(gòu)化系統(tǒng)分析與設(shè)計(jì)方法基本思想結(jié)構(gòu)化分析方法的核心是一種自頂向下逐層分解、由粗到細(xì)、由復(fù)雜到簡(jiǎn)單的求解方法。它包含兩個(gè)基本的手段,即“分解”和“抽象”?!胺纸狻本褪前汛髥?wèn)題分解成多個(gè)小問(wèn)題,然后逐一解決。“抽象”就是抓住主要問(wèn)題忽略次要問(wèn)題,首先集中精力解決主要問(wèn)題然后再想辦法解決次要問(wèn)題。具體來(lái)說(shuō),就是將一個(gè)完整的系統(tǒng)開(kāi)發(fā)過(guò)程進(jìn)行分解,劃分成若干個(gè)階段,如系統(tǒng)規(guī)劃、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)施等。在調(diào)查和整理系統(tǒng)業(yè)務(wù)的過(guò)程中,應(yīng)該遵從至上而下的規(guī)則,首先從管理層業(yè)務(wù)入手,然后往下分解至最基層。在系統(tǒng)分析時(shí),先抓住主要問(wèn)題,考慮整體的優(yōu)化,然后再考慮局部問(wèn)題,進(jìn)行局部?jī)?yōu)化。但是系統(tǒng)實(shí)施恰好相反,應(yīng)該采用自底向上的逐步實(shí)施。牛三勇、管理信息系統(tǒng)精品課程、第4章,寧夏大學(xué)牛三勇、管理信息系統(tǒng)精品課程、第4章,寧夏大學(xué)SSA&D的優(yōu)缺點(diǎn)(一)優(yōu)點(diǎn)結(jié)構(gòu)化分析方法簡(jiǎn)單、清晰,易于學(xué)習(xí)掌握和使用。在系統(tǒng)研制的每一階段和驟都有詳細(xì)的文字資料記載,資料由專(zhuān)人保管,便于管理和查詢(xún)。結(jié)構(gòu)化分析的實(shí)施過(guò)程是結(jié)構(gòu)化、模塊化、自頂向下進(jìn)行分析。在分析問(wèn)題時(shí),應(yīng)首先站在整體的角度,將各項(xiàng)具體的業(yè)務(wù)和組織放到整體中加以考察。自頂向下分析設(shè)計(jì):首先確保全局的正確,再層層的深入考慮和處理局部的問(wèn)題。結(jié)構(gòu)化分析采用了圖形描述方式,用數(shù)據(jù)流圖為即將開(kāi)發(fā)的系統(tǒng)描述了一個(gè)可見(jiàn)的模型,也為一樣的審查和評(píng)價(jià)提供了有利的條件。(二)不足長(zhǎng)期使用的過(guò)程中,結(jié)構(gòu)化分析方法也暴露出了一些薄弱環(huán)節(jié)甚至是缺陷,主要體現(xiàn)在以下幾點(diǎn):所需文檔資料數(shù)量大。使用結(jié)構(gòu)化方法人們必須編寫(xiě)數(shù)據(jù)流圖、數(shù)據(jù)字典、加工說(shuō)明等大量文檔資料,而且隨著對(duì)問(wèn)題理解程度的不斷加深或者用戶(hù)環(huán)境的變化,這套文檔也需不斷修改,這樣修改工作是不可避免的。然而這樣的工作需要占用大量的人力物力,同時(shí)文檔經(jīng)反復(fù)變動(dòng)后,也難以保持其容的一致性,雖然已有支持結(jié)構(gòu)化分析的計(jì)算機(jī)輔助自動(dòng)工具(如前面介紹過(guò)的PSL/PSA)出現(xiàn),但要被廣大開(kāi)發(fā)人員掌握使用,還有一定困難。不少軟件系統(tǒng),特別是管理信息系統(tǒng),是人機(jī)交互式的系統(tǒng)。對(duì)交互式系統(tǒng)來(lái)說(shuō),用戶(hù)最為關(guān)心的問(wèn)題之一是如何使用該系統(tǒng),如輸入命令、系統(tǒng)相應(yīng)的輸出格式等,所以在系統(tǒng)開(kāi)發(fā)早期就應(yīng)該特別重視人機(jī)交互式的用戶(hù)需求。但是,結(jié)構(gòu)化分析方法在理解、表達(dá)人機(jī)界面方面是很薄弱的,數(shù)據(jù)流圖描述和逐步分解技術(shù)在這里都發(fā)揮不了特長(zhǎng)。結(jié)構(gòu)化分析方法為目標(biāo)系統(tǒng)描述了一個(gè)模型,但這個(gè)模型僅僅是書(shū)面的,只能供人們閱讀和討論而不能運(yùn)行和試用,因此在澄清和確定用戶(hù)需求方面能起的作用畢竟是有限的。從而導(dǎo)致用戶(hù)信息反饋太遲,對(duì)目標(biāo)系統(tǒng)的質(zhì)量也有一定的影響。綜上所述,結(jié)構(gòu)化分析方法是有效的,但結(jié)構(gòu)化分析方法也不是完美無(wú)缺的,它同樣有許多局限之處。我們應(yīng)該靈活掌握結(jié)構(gòu)化分析方法的基本思想,在實(shí)際開(kāi)發(fā)過(guò)程中,要結(jié)合項(xiàng)目的特點(diǎn)和差異,從而做到靈活運(yùn)用,這樣才能較好地完成系統(tǒng)分析任務(wù)。SSA&D開(kāi)發(fā)系統(tǒng)的一般過(guò)程系統(tǒng)請(qǐng)求問(wèn)題提出的過(guò)程。系統(tǒng)規(guī)劃與初步調(diào)查系統(tǒng)現(xiàn)行狀態(tài)以與可用資源進(jìn)行初步調(diào)查;明確問(wèn)題,確定系統(tǒng)目標(biāo)和總體結(jié)構(gòu),確定分階段實(shí)施進(jìn)度;進(jìn)行可行性分析研究與書(shū)寫(xiě)可行性報(bào)告。系統(tǒng)分析現(xiàn)行系統(tǒng)進(jìn)行組織結(jié)構(gòu)分析、業(yè)務(wù)功能分析、業(yè)務(wù)流程分析、數(shù)據(jù)以與數(shù)據(jù)流程分析、功能-數(shù)據(jù)分析,然后提出新系統(tǒng)的邏輯模型,并對(duì)舊有系統(tǒng)進(jìn)行改進(jìn)。系統(tǒng)設(shè)計(jì)主要包括系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)、代碼設(shè)計(jì)、數(shù)據(jù)庫(kù)/文件設(shè)計(jì)、I/O設(shè)計(jì)、模塊功能設(shè)計(jì)和處理過(guò)程設(shè)計(jì)。系統(tǒng)實(shí)施首先,由程序員進(jìn)行程序設(shè)計(jì)。其次,由系統(tǒng)分析設(shè)計(jì)人員培訓(xùn)業(yè)務(wù)人員和操作人員針對(duì)系統(tǒng)的使用人員進(jìn)行培訓(xùn)。然后,由業(yè)務(wù)人員進(jìn)行數(shù)據(jù)庫(kù)準(zhǔn)備。最后,對(duì)完成的系統(tǒng)進(jìn)行調(diào)試與切換。系統(tǒng)運(yùn)行業(yè)務(wù)人員對(duì)系統(tǒng)的日常運(yùn)行進(jìn)行維護(hù),系統(tǒng)操作人員對(duì)系統(tǒng)運(yùn)行效果進(jìn)行評(píng)價(jià)。第三章系統(tǒng)分析需求分析一個(gè)簡(jiǎn)單的圖書(shū)管理系統(tǒng),應(yīng)該站在讀者和管理員使用的角度來(lái)分析,包含公用的部分和各自特有的部分。讀者和管理員共享的功能主要圖書(shū)查詢(xún)功能,另外還有查看最新書(shū)籍和熱門(mén)書(shū)籍。讀者特有的部分是歷史借閱信息的瀏覽、辦理續(xù)借功能等。而管理員特有的應(yīng)該包括辦理借書(shū)證、新書(shū)入庫(kù)、圖書(shū)信息編輯、讀者信息編輯、借閱記錄查詢(xún)、到期提醒等。各模塊的具體需求如下:圖書(shū)查找。可以分為以下三種查找模式:按書(shū)名查找、按分類(lèi)查找、高級(jí)查找(書(shū)名、作者、)。查詢(xún)的結(jié)果應(yīng)包含書(shū)名、編號(hào)、類(lèi)別、余量、作者、索書(shū)號(hào)、等信息。新書(shū)推薦。該功能展示圖書(shū)館最新入庫(kù)的前三名書(shū)籍,每條顯示信息應(yīng)包含書(shū)名、入庫(kù)時(shí)間、可借數(shù)量、作者、、索書(shū)號(hào)等信息。熱門(mén)推薦。該功能展示累計(jì)出借次數(shù)最多的前三名書(shū)籍。每條顯示信息應(yīng)包含書(shū)名、出借次數(shù)、可借數(shù)量、作者、、索書(shū)號(hào)等信息。讀者借閱信息瀏覽。讀者登錄后展示該讀者未歸還的借書(shū)信息,展示的信息應(yīng)包含書(shū)名、借閱日期、剩余天數(shù)、是否續(xù)借。讀者續(xù)借。對(duì)于未超期且未續(xù)借過(guò)的圖書(shū),讀者可以進(jìn)行續(xù)借。圖書(shū)借/還。當(dāng)以管理員的身份登錄后,可以進(jìn)行借書(shū)/還書(shū)操作;同一本書(shū)在歸還之后方可再借。新書(shū)入庫(kù)。由管理員負(fù)責(zé)錄入圖書(shū)的詳細(xì)信息,包括圖書(shū)編號(hào)、名稱(chēng)、類(lèi)別、數(shù)量、作者、、索書(shū)號(hào)。辦理借書(shū)證。由管理員負(fù)責(zé)錄入讀者的編號(hào)、名稱(chēng)、密碼、、日期。讀者信息編輯。由管理員負(fù)責(zé)輸入讀者編號(hào)查詢(xún),可以對(duì)該讀者信息進(jìn)行修改、更新,刪除。圖書(shū)信息編輯。由管理員負(fù)責(zé)輸入圖書(shū)編號(hào)查詢(xún),可以對(duì)該圖書(shū)信息進(jìn)行修改、更新,刪除。借閱信息查找。由管理員負(fù)責(zé)輸入讀者名稱(chēng)或圖書(shū)名稱(chēng)進(jìn)行查詢(xún),支持模糊查找。到期提醒。對(duì)所有7天以到期或者已經(jīng)超期的讀者,管理員可以選擇以短信或者方式提醒。登錄功能。分為管理員登錄和讀者登錄,同時(shí)只能以一種方式登錄。第二節(jié)可行性分析一、技術(shù)可行性Android,是一款基于Linux核的移動(dòng)操作系統(tǒng),安全性很高,而且它還是一款開(kāi)源的軟件,由google公司提供。也正因?yàn)樗拈_(kāi)源,使它聚集了超高的人氣,擁有強(qiáng)大的軟件開(kāi)發(fā)工程師隊(duì)伍進(jìn)行開(kāi)發(fā)和優(yōu)化,從而發(fā)展的非常迅速,許多移動(dòng)設(shè)備供應(yīng)商也加到了該行列之中,參與到開(kāi)發(fā)和完善android系統(tǒng)。android有很多特點(diǎn),但是最重要的一個(gè)是它的Dalvik虛擬機(jī)。它對(duì)小存使用做了優(yōu)化,可以同時(shí)運(yùn)行多個(gè)虛擬機(jī)實(shí)例,應(yīng)用程序可以同時(shí)運(yùn)行,也就是說(shuō)用戶(hù)可以一邊聽(tīng)音樂(lè),同時(shí)閱讀。它的程序庫(kù)包含一些以C/C++編寫(xiě)的庫(kù),通過(guò)Android應(yīng)用程序框架為開(kāi)發(fā)者提供服務(wù),如一些核心庫(kù):Bionic系統(tǒng)C庫(kù)、媒體庫(kù)、SurfaceManager、Webkit,LibWebCore、SGL、SQLite等。Android已經(jīng)建立在基于開(kāi)源的WebKit引擎瀏覽器,強(qiáng)大的SQLine數(shù)據(jù)庫(kù)上,用于數(shù)據(jù)存儲(chǔ)。Android支持常用的音頻、視頻、圖片格式,如AAC,MPEG4,H.264,MP3,AMR,它還支持多種的開(kāi)發(fā)環(huán)境,包含一個(gè)模擬器(用于調(diào)試的工具),一個(gè)Eclipse插件。二、經(jīng)濟(jì)可行性由于android系統(tǒng)是開(kāi)源的,所以不需要支付額外的軟件費(fèi)用。圖書(shū)管理系統(tǒng)業(yè)務(wù)相對(duì)穩(wěn)定和簡(jiǎn)單,各模塊功能的操作邏輯也相對(duì)簡(jiǎn)單,所以開(kāi)發(fā)這個(gè)系統(tǒng)所消耗的人力資源也比較少。加上需求調(diào)研相對(duì)容易和穩(wěn)定,開(kāi)發(fā)周期會(huì)相對(duì)較短。數(shù)據(jù)庫(kù)SQLite又是開(kāi)源的軟件,可以直接運(yùn)行在android設(shè)備上。提供了手機(jī)客戶(hù)端之后,方便服務(wù)學(xué)生,減少圖書(shū)館的臺(tái)式機(jī)數(shù)量和維護(hù)費(fèi)用,能為圖書(shū)館間接節(jié)約經(jīng)費(fèi)。三、運(yùn)營(yíng)可行性系統(tǒng)開(kāi)發(fā)出來(lái)之后,必須要有人使用才能發(fā)揮其價(jià)值,不然就是白白投資。對(duì)于android版圖書(shū)管理系統(tǒng)而言,依托的是當(dāng)下智能機(jī)市場(chǎng)占有率最高的移動(dòng)終端平臺(tái),因?yàn)槠淦张c而帶來(lái)該系統(tǒng)運(yùn)營(yíng)的可行性。讀者進(jìn)入圖書(shū)館后,只要打開(kāi)手機(jī)中的應(yīng)用程序,就能得知需要的書(shū)籍對(duì)應(yīng)的索書(shū)號(hào),從而節(jié)約了去排隊(duì)等候查詢(xún)和抄寫(xiě)索書(shū)號(hào)的麻煩之舉。當(dāng)借的書(shū)收到快到期的通知時(shí),可以打開(kāi)手機(jī)就完成續(xù)借免去遺忘而造成被扣費(fèi)的風(fēng)險(xiǎn)。當(dāng)想得知想要的書(shū)圖書(shū)館里是否存在或可借時(shí),也可以通過(guò)手機(jī)完成搜索而迅速得知,非常方便。這些需求構(gòu)成了android版圖書(shū)管理系統(tǒng)能夠成功運(yùn)營(yíng)的強(qiáng)大基礎(chǔ),讀者方便了,滿(mǎn)意度提高了,自然圖書(shū)館的發(fā)展也就更好了。綜上所述,android版圖書(shū)管理系統(tǒng)的開(kāi)發(fā)是完全可行的。第三節(jié)系統(tǒng)的業(yè)務(wù)流程分析業(yè)務(wù)流程指組織的業(yè)務(wù)活動(dòng)過(guò)程,業(yè)務(wù)流程分析是對(duì)業(yè)務(wù)功能分析的進(jìn)一步細(xì)化。如圖3-1的業(yè)務(wù)流程圖,就是表明了本系統(tǒng)中主體之間的業(yè)務(wù)關(guān)系與作業(yè)順序。圖3-1圖書(shū)管理系統(tǒng)業(yè)務(wù)流程圖當(dāng)收到新書(shū)采購(gòu)人員采購(gòu)回來(lái)的新書(shū)之后,進(jìn)行新書(shū)入庫(kù),存到圖書(shū)信息表中,然后管理員有權(quán)進(jìn)行編輯。管理員為讀者辦理借書(shū)證以后,記錄到讀者信息表中,管理員有權(quán)對(duì)讀者信息進(jìn)行編輯。管理員在完成借還書(shū)操作后,該記錄會(huì)被保存到借閱信息表中。讀者登錄后可查看到自己的借閱記錄,并可進(jìn)行續(xù)借操作。當(dāng)系統(tǒng)自動(dòng)篩選出即將到期的借閱記錄時(shí),管理員可以進(jìn)行提醒操作。第四節(jié)系統(tǒng)的邏輯模型數(shù)據(jù)流程分析根據(jù)上述的業(yè)務(wù)流程,對(duì)其中的數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)以與數(shù)據(jù)流動(dòng)過(guò)程進(jìn)行抽象,得到了系統(tǒng)的邏輯模型,即系統(tǒng)的數(shù)據(jù)流程圖。頂層數(shù)據(jù)流程圖頂層數(shù)據(jù)流程圖說(shuō)明了系統(tǒng)與各個(gè)重要外部實(shí)體的關(guān)系與數(shù)據(jù)流。首先系統(tǒng)會(huì)存儲(chǔ)由管理員錄入的讀者、圖書(shū)信息,借閱信息也會(huì)被自動(dòng)記錄到系統(tǒng)中,并由系統(tǒng)自動(dòng)幫助管理員篩選出即將到期的借閱記錄。系統(tǒng)為讀者提供圖書(shū)信息查詢(xún)、借閱歷史信息瀏覽。圖3-2圖書(shū)管理系統(tǒng)的頂層數(shù)據(jù)流程圖第一層數(shù)據(jù)流程圖系統(tǒng)整體的數(shù)據(jù)流程圖,說(shuō)明了關(guān)鍵子系統(tǒng)之間的聯(lián)系與與文檔的關(guān)系。圖3-3圖書(shū)管理系統(tǒng)的第一層數(shù)據(jù)流程圖第二層數(shù)據(jù)流程圖系統(tǒng)中查詢(xún)、讀者證辦理、讀者信息編輯、新書(shū)入庫(kù)、圖書(shū)信息編輯、圖書(shū)借還、讀者續(xù)借、到期提醒等子系統(tǒng)的數(shù)據(jù)流程圖。圖3-4圖書(shū)管理系統(tǒng)的第二層數(shù)據(jù)流程圖數(shù)據(jù)字典數(shù)據(jù)項(xiàng)數(shù)據(jù)項(xiàng)編號(hào):I01數(shù)據(jù)項(xiàng)名稱(chēng):圖書(shū)編號(hào)別名:圖書(shū)編號(hào)簡(jiǎn)述:圖書(shū)的唯一標(biāo)識(shí)類(lèi)型:字符型數(shù)據(jù)項(xiàng)編號(hào):I02數(shù)據(jù)項(xiàng)名稱(chēng):讀者編號(hào)別名:讀者登錄賬戶(hù)簡(jiǎn)述:讀者登錄時(shí)的用戶(hù)名類(lèi)型:字符型數(shù)據(jù)項(xiàng)編號(hào):I03數(shù)據(jù)項(xiàng)名稱(chēng):圖書(shū)管理員編號(hào)別名:管理員登錄賬戶(hù)簡(jiǎn)述:圖書(shū)管理員登錄時(shí)的賬戶(hù)類(lèi)型:字符型數(shù)據(jù)流編號(hào):D1名稱(chēng):辦理借書(shū)證簡(jiǎn)述:圖書(shū)管理員為新同學(xué)辦理借書(shū)證組成:借書(shū)證號(hào)++密碼+聯(lián)系方式++辦理日期來(lái)源:管理員模塊去向:讀者模板編號(hào):D2名稱(chēng):新書(shū)入庫(kù)簡(jiǎn)述:圖書(shū)管理員接到新書(shū)后,為新書(shū)登記到系統(tǒng)組成:圖書(shū)編號(hào)+書(shū)名+分類(lèi)+數(shù)量+作者++索書(shū)號(hào)來(lái)源:管理員模塊去向:圖書(shū)信息模塊編號(hào):D3名稱(chēng):借書(shū)簡(jiǎn)述:讀者拿到書(shū)后,向圖書(shū)管理員辦理借書(shū)登記組成:借書(shū)證號(hào)+圖書(shū)編號(hào)+日期來(lái)源:借閱模塊去向:借閱模塊編號(hào):D4名稱(chēng):還書(shū)簡(jiǎn)述:讀者將書(shū)歸還到圖書(shū)館時(shí),向圖書(shū)管理員辦理還書(shū)登記組成:借書(shū)證號(hào)+圖書(shū)編號(hào)+還書(shū)日期來(lái)源:借閱模塊去向:借閱模塊編號(hào):D5名稱(chēng):到期提醒簡(jiǎn)述:管理員篩選出圖書(shū)快到期者,通過(guò)短信或方式提醒讀者還書(shū)組成:讀者編號(hào)+剩余天數(shù)+手機(jī)+來(lái)源:管理員模塊去向:提醒模塊編號(hào):D6名稱(chēng):續(xù)借簡(jiǎn)述:讀者在圖書(shū)快到期時(shí),辦理續(xù)借組成:讀者編號(hào)+圖書(shū)編號(hào)+續(xù)借日期來(lái)源:讀者模塊去向:借閱模塊數(shù)據(jù)存儲(chǔ)編號(hào):F1名稱(chēng):讀者信息簡(jiǎn)述:對(duì)讀者基本信息的記錄組成:借書(shū)證號(hào)++密碼+聯(lián)系方式++辦理日期編號(hào):F2名稱(chēng):管理員信息簡(jiǎn)述:對(duì)管理員基本信息的記錄組成:管理員編號(hào)+管理員密碼編號(hào):F3名稱(chēng):圖書(shū)信息簡(jiǎn)述:對(duì)圖書(shū)基本信息的記錄組成:圖書(shū)編號(hào)+書(shū)名+分類(lèi)+數(shù)量+作者++索書(shū)號(hào)編號(hào):F4名稱(chēng):借閱信息簡(jiǎn)述:對(duì)借閱流水信息的記錄組成:圖書(shū)編號(hào)+借書(shū)證號(hào)+借書(shū)日期+還書(shū)日期+是否續(xù)借數(shù)據(jù)處理編號(hào):P1.1名稱(chēng):錄入圖書(shū)信息輸入:新書(shū)到貨通知單處理:根據(jù)新書(shū)具體情況錄入圖書(shū)信息輸出:圖書(shū)信息記錄編號(hào):P1.2名稱(chēng):辦理借書(shū)證信息輸入:借書(shū)證申請(qǐng)通知處理:根據(jù)讀者信息為其開(kāi)通借書(shū)證輸出:讀者借書(shū)證記錄編號(hào):P1.3名稱(chēng):錄入借書(shū)記錄輸入:借書(shū)申請(qǐng)?zhí)幚恚焊鶕?jù)借書(shū)證和圖書(shū)編號(hào),登記借書(shū)信息輸出:借書(shū)記錄編號(hào):P2.2名稱(chēng):錄入還書(shū)記錄輸入:審核通過(guò)的入庫(kù)通知單處理:根據(jù)借書(shū)證和圖書(shū)編號(hào),登記還書(shū)信息輸出:還書(shū)記錄編號(hào):P3.1名稱(chēng):辦理續(xù)借輸入:續(xù)借申請(qǐng)?zhí)幚恚焊鶕?jù)借書(shū)證和圖書(shū)編號(hào),登記續(xù)借信息輸出:續(xù)借記錄編號(hào):P4.1名稱(chēng):到期提醒輸入:借書(shū)將到期清單處理:根據(jù)讀者編號(hào)和手機(jī)/地址,發(fā)送提醒通知輸出:短信/通知單外部實(shí)體編號(hào):S1名稱(chēng):圖書(shū)管理員簡(jiǎn)述:管理圖書(shū)館日常業(yè)務(wù)的工作人員輸入的數(shù)據(jù)流:圖書(shū)到貨單、申請(qǐng)辦卡通知輸出的數(shù)據(jù)流:到期提醒、新書(shū)入庫(kù)編號(hào):S2 名稱(chēng):讀者簡(jiǎn)述:需要辦理借書(shū)/還書(shū)業(yè)務(wù)的人輸入的數(shù)據(jù)流:借書(shū)記錄輸出的數(shù)據(jù)流:辦理借書(shū)證第四章系統(tǒng)設(shè)計(jì)系統(tǒng)功能模塊設(shè)計(jì)系統(tǒng)功能模塊說(shuō)明:圖4-1Android版圖書(shū)管理系統(tǒng)的模塊劃分公用模塊圖書(shū)查詢(xún):分三種查詢(xún)方式,即按圖書(shū)名稱(chēng)查詢(xún)、按分類(lèi)查詢(xún)、高級(jí)查詢(xún)。其中高級(jí)查詢(xún)可按照書(shū)名、作者、進(jìn)行組合查詢(xún)。查詢(xún)的結(jié)果應(yīng)包含書(shū)名、編號(hào)、類(lèi)別、余量、作者、索書(shū)號(hào)、等信息。圖書(shū)推薦:圖書(shū)分兩種推薦方式,即新書(shū)推薦和熱門(mén)書(shū)籍推薦。新書(shū)是按照?qǐng)D書(shū)新建的時(shí)間排序,取前三名展示,每條顯示信息應(yīng)包含書(shū)名、入庫(kù)時(shí)間、可借數(shù)量、作者、、索書(shū)號(hào)等信息。熱門(mén)書(shū)籍是按照被借閱的次數(shù)排名,取前三名展示,每條顯示信息應(yīng)包含書(shū)名、出借次數(shù)、可借數(shù)量、作者、、索書(shū)號(hào)等信息。系統(tǒng)簡(jiǎn)介:關(guān)于系統(tǒng)版本說(shuō)明,系統(tǒng)主要功能介紹等容。讀者模塊讀者登錄:輸入借書(shū)證號(hào)和密碼,驗(yàn)證通過(guò)即可登錄系統(tǒng)。借閱信息查詢(xún):根據(jù)登錄的讀者號(hào),查詢(xún)?cè)撟x者所有的未還的借書(shū)記錄,包含書(shū)名、借閱日期、剩余天數(shù)、是否續(xù)借。辦理續(xù)借:讀者根據(jù)自己的未還書(shū)記錄且未超期的,可以申請(qǐng)續(xù)借。管理員模塊管理員是圖書(shū)管理系統(tǒng)的重要角色,也是功能最多的角色,可以分為新入庫(kù)管理、辦理借書(shū)證、圖書(shū)查詢(xún)與編輯、讀者信息查詢(xún)與編輯、借閱信息查詢(xún)、到期提醒、辦理借書(shū)、辦理還書(shū)八大模塊。新書(shū)入庫(kù)管理:錄入新到的圖書(shū)的基本信息,包括圖書(shū)編號(hào)、名稱(chēng)、類(lèi)別、數(shù)量、作者、、索書(shū)號(hào)。辦理借書(shū)證:對(duì)于新的辦理借書(shū)證的申請(qǐng),由系統(tǒng)管理員錄入讀者的基本信息,包含讀者的借書(shū)證號(hào)、名稱(chēng)、密碼、聯(lián)系方式、、辦理日期。圖書(shū)查詢(xún)與編輯:根據(jù)輸入的圖書(shū)編號(hào)查詢(xún),可以對(duì)該圖書(shū)信息進(jìn)行更新和刪除操作。讀者信息查詢(xún)與編輯:根據(jù)輸入的讀者編號(hào)查詢(xún),可以對(duì)該讀者信息進(jìn)行修改和刪除操作。借閱信息查詢(xún):根據(jù)輸入的讀者名稱(chēng)或圖書(shū)名稱(chēng)進(jìn)行查詢(xún),支持模糊查找。到期提醒:對(duì)所有7天以到期或者已經(jīng)超期的讀者,管理員可以選擇以短信或者方式提醒。辦理借書(shū):根據(jù)讀者提供的借書(shū)證和圖書(shū)編號(hào),為讀者辦理借書(shū)操作。辦理還書(shū):根據(jù)讀者提供的借書(shū)證和圖書(shū)編號(hào),為讀者還書(shū)借書(shū)操作。系統(tǒng)詳細(xì)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)表4-1USER(用戶(hù)信息表)中文名字字段名稱(chēng)字段類(lèi)型長(zhǎng)度主鍵是否不能為空借書(shū)證號(hào)USER_IDtext√√讀者名稱(chēng)USER_NAMEtext讀者密碼USER_PASSWORDtext聯(lián)系方式USER_TELEPHONEtext地址USER_EMAILtext注冊(cè)日期USER_SIGN_DATEdate表4-2ADMIN(管理員信息表)中文名字字段名稱(chēng)字段類(lèi)型長(zhǎng)度主鍵是否不能為空管理員編號(hào)ADMIN_IDtext√√管理員密碼ADMIN_PASSWORDtext表4-3BOOK_INFO(圖書(shū)信息表)中文名字字段名稱(chēng)字段類(lèi)型長(zhǎng)度主鍵是否不能為空?qǐng)D書(shū)編號(hào)BOOK_IDtext√√圖書(shū)名稱(chēng)BOOK_NAMEtext類(lèi)別BOOK_CATEGORYtext總數(shù)量BOOK_COUNTinteger作者BOOK_AUTHORtextBOOK_PRESStext索書(shū)號(hào)BOOK_ADDRESStext入庫(kù)時(shí)間BOOK_IN_DATEdate出借次數(shù)BOOK_BORROWED_COUNTinteger出借數(shù)量BOOK_BORROWED_AMOUNTinteger表4-4BORROW_INFO(借閱信息表)中文名字字段名稱(chēng)字段類(lèi)型長(zhǎng)度主鍵是否不能為空?qǐng)D書(shū)編號(hào)BORROW_BOOK_IDtext√√圖書(shū)名稱(chēng)BORROW_BOOK_NAMEtext借書(shū)證號(hào)BORROW_BOOK_CARD_IDtext√√讀者名稱(chēng)BORROW_READER_NAMEtext借書(shū)日期BORROW_DATEdate√√還書(shū)日期RETURN_DATEdate是否續(xù)借IS_REBORROWtextUML用例圖設(shè)計(jì)用例圖的主要目的是幫助開(kāi)發(fā)團(tuán)隊(duì)以一種可視化的方式理解系統(tǒng)的功能需求,包括基于基本流程的"角色"關(guān)系,以與系統(tǒng)用例之間的關(guān)系。用例圖一般表示出用例的組織關(guān)系:要么是整個(gè)系統(tǒng)的全部用例,要么是完成具有功能的一組用例。系統(tǒng)的用例圖如下圖所示。圖4-2系統(tǒng)用例圖界面設(shè)計(jì)圖4-3讀者登錄界面圖4-4管理員登錄頁(yè)面圖4-5主界面圖4-6圖書(shū)列表界面圖4-7圖書(shū)詳情界面圖4-8新書(shū)推薦界面圖4-9熱門(mén)推薦界面圖4-10讀者借閱詳情界面圖4-11借書(shū)/還書(shū)界面圖4-12管理員綜合界面圖4-13新書(shū)入庫(kù)界面圖4-14辦理借書(shū)證界面圖4-15讀者信息維護(hù)界面圖4-16圖書(shū)信息維護(hù)界面圖4-17借閱信息查詢(xún)界面圖4-18到期提醒界面第五章系統(tǒng)實(shí)施編程讀者登錄頁(yè)面publicclassReaderLoginActivityextendsActivity{ EditTextabout_login_name; EditTextabout_login_password; Stringname; Stringpassword; Override protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.reader_login); about_login_name=(EditText)findViewById(R.id.reader_login_name); about_login_password=(EditText)findViewById(R.id.reader_login_password); findViewById(R.id.reader_login_commit).setOnClickListener(newOnClickListener(){ publicvoidonClick(Viewv){ name=about_login_name.getText().toString(); password=about_login_password.getText().toString(); if(name=="") Toast.makeText(getApplicationContext(),"請(qǐng)輸入用戶(hù)名!",Toast.LENGTH_SHORT).show();elseif(password=="") Toast.makeText(getApplicationContext(),"請(qǐng)輸入密碼!",Toast.LENGTH_SHORT).show(); else{ ContentResolvercr=getContentResolver(); Cursorcursor=cr.query(NAME.USER_CONTENT_URI, newString[]{NAME.USER_ID,NAME.USER_PASSWORD}, NAME.USER_ID+"=\""+name +"\""+"and"+NAME.USER_PASSWORD+"=\""+password+"\"",null,null); if(cursor.moveToFirst()){ Constants.setReaderId(name); Constants.login=1; Intentintent=newIntent(); intent.putExtra("reader_id",name); intent.setClass(getBaseContext(),ReaderDetailActivity.class); startActivity(intent); finish(); }else Toast.makeText(getApplicationContext(),"賬號(hào)或密碼錯(cuò)誤!",Toast.LENGTH_SHORT).show(); cursor.close(); } } }); findViewById(R.id.reader_login_back).setOnClickListener(newOnClickListener(){ publicvoidonClick(Viewv){ Intentintent=newIntent(); intent.setClass(getBaseContext(),LibraryMain.class); startActivity(intent); finish(); } }); }}管理員登錄頁(yè)面publicclassAdminLoginActivityextendsActivity{ EditTextabout_login_name; EditTextabout_login_password; Stringname; Stringpassword; Override protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.admin_login); about_login_name=(EditText)findViewById(R.id.admin_login_name); about_login_password=(EditText)findViewById(R.id.about_login_password); findViewById(R.id.admin_commit).setOnClickListener(newOnClickListener(){ publicvoidonClick(Viewv){ name=about_login_name.getText().toString(); password=about_login_password.getText().toString(); if(name=="") Toast.makeText(getApplicationContext(),"請(qǐng)輸入用戶(hù)名!",Toast.LENGTH_SHORT).show();elseif(password=="") Toast.makeText(getApplicationContext(),"請(qǐng)輸入密碼!",Toast.LENGTH_SHORT).show(); else{ ContentResolvercr=getContentResolver(); Cursorcursor=cr.query(NAME.ADMIN_CONTENT_URI, newString[]{NAME.ADMIN_ID,NAME.ADMIN_PASSWORD}, NAME.ADMIN_ID+"=\""+name +"\""+"and"+NAME.ADMIN_PASSWORD+"=\""+password+"\"",null,null); if(cursor.moveToFirst()){ Constants.setAdminId(name); Constants.login=2; Intentintent=newIntent(); intent.setClass(getBaseContext(),AdminDetailActivity.class); startActivity(intent); finish(); }else Toast.makeText(getApplicationContext(),"賬號(hào)或密碼錯(cuò)誤!",Toast.LENGTH_SHORT).show(); cursor.close(); } } }); findViewById(R.id.admin_back).setOnClickListener(newOnClickListener(){ publicvoidonClick(Viewv){ Intentintent=newIntent(); intent.setClass(getBaseContext(),LibraryMain.class); startActivity(intent); finish(); } }); }}主頁(yè)面publicclassLibraryMainextendsTabActivity{ privateTabHosttabHost; Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); tabHost=getTabHost(); populateTab(); } /** *組裝tab控件 */ privatevoidpopulateTab(){ Resourcesres=getResources(); populateTabItem(R.drawable.icon_1, res.getString(R.string.tab_home),newIntent(this, HomeActivity.class)); if(Constants.login==1) populateTabItem(R.drawable.icon_3, res.getString(R.string.tab_reader),newIntent(this, ReaderDetailActivity.class)); else populateTabItem(R.drawable.icon_3, res.getString(R.string.tab_reader),newIntent(this, ReaderLoginActivity.class)); populateTabItem(R.drawable.icon_2, res.getString(R.string.tab_br),newIntent(this, BrActivity.class)); if(Constants.login==2) populateTabItem(R.drawable.icon_4, res.getString(R.string.tab_admin),newIntent(this, AdminDetailActivity.class)); else populateTabItem(R.drawable.icon_4, res.getString(R.string.tab_admin),newIntent(this, AdminLoginActivity.class)); populateTabItem(R.drawable.icon_5, res.getString(R.string.tab_more),newIntent(this, MoreActivity.class)); Log.e("start3","start3"); } /** *生成tab_item * *paramimageResourceSelector *圖片選擇器 *paramtext *文本 *paramintent *intent */ privatevoidpopulateTabItem(intimageResourceSelector,Stringstr, Intentintent){ Log.e("start2","start2"); Viewview=View.inflate(this,R.layout.tab_item,null);//拼裝view ((ImageView)view.findViewById(R.id.tab_item_imageview)) .setImageResource(imageResourceSelector); ((TextView)view.findViewById(R.id.tab_item_textview)).setText(str); TabSpecspec=tabHost.newTabSpec(str).setIndicator(view) .setContent(intent);//將view注入spec tabHost.addTab(spec);}圖書(shū)查找publicclassHomeActivityextendsActivity{ privateListViewlv_main; privateListViewlv_main2; EditTextsearch_content; Override protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.home); search_content=(EditText)findViewById(R.id.searchContent); String[]items1=this.getResources().getStringArray(R.array.sort); List<Map<String,Object>>datas1=this.getDatas(items1); ImageAdapteradapter1=newImageAdapter(this,datas1);lv_main=(ListView)findViewById(R.id.lv_main1);lv_main.setAdapter(adapter1);String[]items2=this.getResources().getStringArray(R.array.newest); List<Map<String,Object>>datas2=this.getDatas(items2); ImageAdapteradapter2=newImageAdapter(this,datas2);lv_main2=(ListView)findViewById(R.id.lv_main2);lv_main2.setAdapter(adapter2);lv_main.setOnItemClickListener(newOnItemClickListener(){ publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intposition, longarg3){ //TODOAuto-generatedmethodstub Intentintent=newIntent(); switch(position){ case0: intent.putExtra("sort",0); intent.setClass(getBaseContext(),BookListActivity.class); startActivity(intent); break; case1: intent.putExtra("sort",1); intent.setClass(getBaseContext(),BookListActivity.class); startActivity(intent); break; case2: intent.putExtra("sort",2); intent.setClass(getBaseContext(),BookListActivity.class); startActivity(intent); break; case3: intent.putExtra("sort",3); intent.setClass(getBaseContext(),BookListActivity.class); startActivity(intent); break; } }});lv_main2.setOnItemClickListener(newOnItemClickListener(){ publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intposition, longarg3){ //TODOAuto-generatedmethodstub Intentintent=newIntent(); switch(position){ case0: intent.putExtra("new","new"); intent.setClass(getBaseContext(),NewestActivity.class); startActivity(intent); break; case1: intent.putExtra("hot","hot"); intent.setClass(getBaseContext(),HostestActivity.class); startActivity(intent); break; } }});findViewById(R.id.btSearch).setOnClickListener( newOnClickListener(){ publicvoidonClick(Viewv){ Stringcontent=search_content.getText().toString(); if(search_content.length()<1) Toast.makeText(getApplicationContext(),"請(qǐng)輸入書(shū)名!",Toast.LENGTH_SHORT).show(); else{ Intentintent=newIntent(); intent.setClass(getBaseContext(),BookListActivity.class); intent.putExtra("book_name",content); startActivity(intent); } } });findViewById(R.id.advanced_search).setOnClickListener( newOnClickListener(){ publicvoidonClick(Viewv){ Intentintent=newIntent(); intent.setClass(getBaseContext(),AdvancedSearchActivity.class); startActivity(intent); } }); } publicList<Map<String,Object>>getDatas(String[]items){ List<Map<String,Object>>results=newArrayList<Map<String,Object>>(); for(inti=0;i<items.length;i++){ Map<String,Object>item=newHashMap<String,Object>(); item.put("left",R.drawable.list_left); item.put("text",items[i]); item.put("right",R.drawable.list_right); results.add(item); } returnresults; } publicbooleanonCreateOptionsMenu(Menumenu){ //TODOAuto-generatedmethodstub menu.add(0,1,1,"退出"); returnsuper.onCreateOptionsMenu(menu);}publicbooleanonOptionsItemSelected(MenuItemitem){ //TODOAuto-generatedmethodstub if(item.getItemId()==1){ dialog(); } returntrue;}protectedvoiddialog(){ AlertDialog.Builderbuilder=newBuilder(HomeActivity.this); builder.setMessage("您確定要退出嗎?"); builder.setTitle("提示"); builder.setPositiveButton("確定",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhich){ dialog.dismiss(); Constants.setAdminId(""); Constants.setReaderId(""); Constants.login=-1; HomeActivity.this.finish(); } }); builder.setNegativeButton("取消",newDialogInterface.OnClickListener(){ publicvoidonClick(DialogInterfacedialog,intwhich){ dialog.dismiss(); } }); builder.create().show(); }}系統(tǒng)自動(dòng)化測(cè)試查詢(xún)功能測(cè)試在主頁(yè)面的搜索框中輸入“論語(yǔ)”二字,點(diǎn)擊搜索按鈕,看頁(yè)面是否跳轉(zhuǎn)到查詢(xún)列表窗口,并查看列表中是否包含跟“論語(yǔ)”有關(guān)的書(shū)籍。publicvoidtest_a()throwsException{ solo.sleep(1000); solo.enterText(0,"論語(yǔ)"); solo.slee

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論