基于android studio的圖書管理系統(tǒng)的APP開發(fā)
《基于android studio的圖書管理系統(tǒng)的APP開發(fā)》由會員分享,可在線閱讀,更多相關(guān)《基于android studio的圖書管理系統(tǒng)的APP開發(fā)(42頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、目錄 摘要 I ABSTRACT II 1 緒論 1 1.1 課題研究的目的及意義 1 1.2 國內(nèi)課題研究現(xiàn)狀 2 1.3 課題綜述 2 2 系統(tǒng)分析與設(shè)計 3 2.1 需求分析 3 2.1.1 功能需求 3 2.1.2 性能需求 3 2.2 可行性分析 4 2.2.1 經(jīng)濟(jì)可行性 4 2.2.2 技術(shù)可行性 4 2.3 開發(fā)工具介紹和關(guān)鍵技術(shù) 4 2.3.1 eclipse介紹 4 2.3.2 SQL Server 2008介紹 7 2.3.3 Tomcat介紹 8 2.3.4 關(guān)鍵技術(shù)介紹 9 3 系統(tǒng)總體設(shè)計 10 3.1 設(shè)計原則 10 3.
2、2 系統(tǒng)結(jié)構(gòu) 11 3.3 設(shè)計思想 11 3.4 用戶使用模塊 11 3.4.1 用戶注冊 12 3.4.2 用戶登錄 12 3.4.3 書籍查詢 13 3.4.4 用戶管理 13 3.4.5 圖書管理 13 3.5 管理員管理模塊 13 3.5.1 注冊管理 14 3.5.2 登錄管理 14 3.5.3 書籍查詢管理 14 3.5.4 用戶管理 14 3.5.5 圖書管理 14 3.6 系統(tǒng)數(shù)據(jù)分析和設(shè)計 15 3.6.1 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計 15 3.6.2 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計 16 4 詳細(xì)設(shè)計 18 4.1 客戶端的設(shè)計——Android的界面設(shè)計
3、 18 4.2 服務(wù)端的設(shè)計——搭建web服務(wù)器 19 4.3 具體功能界面 22 4.3.1 注冊界面 22 4.3.2 登陸界面 23 4.3.3 圖書查詢預(yù)約界面 26 4.3.4 添加圖書界面 29 4.3.5 管理學(xué)生用戶界面 31 5 系統(tǒng)測試與性能測試 32 5.1 軟件測試 32 5.2 本系統(tǒng)測試 32 5.2.1用戶普通功能模塊測試 33 5.2.2 用戶管理模塊測試 33 5.3 本章小結(jié) 33 結(jié)束語 34 致謝 35 參考文獻(xiàn) 36 基于Android的圖書管理系統(tǒng)客戶端設(shè)計與實(shí)現(xiàn) 摘要 傳統(tǒng)的WEB應(yīng)
4、用只能在電腦上使用,不方便用戶隨時隨地的使用。為了解決這樣的不足,基于Android 平臺的各種應(yīng)用客戶端就應(yīng)運(yùn)而生。為了能夠讓人們在基于 Android 平臺的移動設(shè)備上享用圖書管理系統(tǒng)的功能,本設(shè)計闡述了在 Android 平臺下圖書管理系統(tǒng)的設(shè)計和實(shí)現(xiàn)過程,該系統(tǒng)采用C/S結(jié)構(gòu),使用Android 布局技術(shù)完成界面設(shè)計,使用java語言開發(fā)完成。系統(tǒng)實(shí)現(xiàn)了用戶注冊、登陸、查詢圖書,以及學(xué)生用戶管理和圖書管理等功能,并在不同型號的設(shè)備模擬器上測試通過。 關(guān)鍵詞:圖書管理系統(tǒng),Android,客戶端,數(shù)據(jù)庫設(shè)計,服務(wù)端。 DESIGN AND IMPLEMENTATION OF L
5、IBRARY MANAGEMENT SYSTEM CLIENT BASED ON ANDROID ABSTRACT Traditional WEB application only on computer use, convenient to use anytime, anywhere. To address this deficiency, the client-based applications on the Android platform came into being. In order to allow people to enjoy the funct
6、ion library management systems on mobile devices based on the Android platform, the design describes the design and implementation process of library management system in the Android platform, the system uses C / S structure, layout techniques to complete the Android interface design, use java langu
7、age development is completed. System user registration, login, check books, and student user management and library management functions, and tested on different types of equipment simulator through. KEY WORDS Library Management System, Android, Client, Database Design, Server. 37 1 緒論
8、1.1 課題研究的目的及意義 隨著計算機(jī)和通信技術(shù)的發(fā)展,人類已經(jīng)逐漸的進(jìn)入信息化社會。信息和材料能源一樣成為一種社會的基本生產(chǎn)材料,在人類社會生產(chǎn)活動中發(fā)揮著重要的作用,大幅度地提高了社會生產(chǎn)力。同時人們對信息和數(shù)據(jù)的利用與處理也已進(jìn)入自動化、網(wǎng)絡(luò)化和社會化的階段。因此,開發(fā)相關(guān)的管理信息系統(tǒng)已經(jīng)成為各行各業(yè)D的必須[1]。管理信息系統(tǒng)作為一門邊緣科學(xué),集管理科學(xué)、信息科學(xué)、系統(tǒng)科學(xué)、現(xiàn)代通信技術(shù)和電子計算機(jī)技術(shù)與一體,可以解決企業(yè)或組織所面臨的問題。對內(nèi)來看,可以提高工作效率;對外來看,可以獲得競爭優(yōu)勢[2]。 圖書作為一種信息資源,用戶閱讀的資料繁多,包含很多的信息數(shù)據(jù)的管理。以前,
9、有很多的圖書管理都是手工的,尚未使用計算機(jī)進(jìn)行管理。根據(jù)調(diào)查得知,人們對圖書管理的方式主要是計算機(jī)管理,及少量的基于文本、表格等紙質(zhì)媒介的手工處理。手工處理對于大量的圖書信息管理很不方便,耗時耗力,而且容易出錯。對于大中型的圖書館來說,計算機(jī)管理已經(jīng)成為家常便飯,好的計算機(jī)圖書管理系統(tǒng)可以相當(dāng)容易的實(shí)現(xiàn)對圖書、用戶的管理,安全性和穩(wěn)定性較高,已經(jīng)成為這些圖書管理主流管理方式[3]。但是,這只是對于圖書管理人員來說的。對那些我那個圖書館來回跑的用戶來說,這樣的情況還是很不方便的。 在移動互聯(lián)發(fā)展極速的今天,作為主流管理的計算機(jī)已經(jīng)不能滿足一些人們的要求,所以,作為移動互聯(lián)時代標(biāo)志性的客戶端工具
10、——智能手機(jī)的出現(xiàn)就顯得有些理所當(dāng)然了[4]。而基于android 平臺的智能手機(jī)就是其中的代表。智能手機(jī)就像一臺微型電腦,具有強(qiáng)大的計算和存儲能力,可以通過通信網(wǎng)絡(luò)來實(shí)現(xiàn)網(wǎng)絡(luò)的介入,可以隨時隨地的使用。這樣的功能彌補(bǔ)了計算機(jī)攜帶不方便的不足。所以,基于android 平臺的圖書管理系統(tǒng)客戶端,也就滿足了用戶與圖書館交互的不足[5]。通過android 平臺的圖書管理系統(tǒng)客戶端,用戶可以很好地為用戶提供方便,隨時隨地了解圖書信息及圖書借閱。而智能手機(jī)的普及可以使得這個圖書管理系統(tǒng)得到廣泛的使用[6]。 1.2 國內(nèi)課題研究現(xiàn)狀 計算機(jī)技術(shù)的快速發(fā)展及計算機(jī)網(wǎng)絡(luò)的普及,英特網(wǎng)成為人們查找信息
11、的重要途徑。本世紀(jì)是信息的時代,所以信息的交換流通就顯得特別的重要[10]。因此,快速的實(shí)現(xiàn)信息交互就顯得非常很有必要。 目前,國內(nèi)基于Android 平臺的圖書管理系統(tǒng)還不太成熟,大多數(shù)的圖書館都采用計算機(jī)管理的方式,基于Android 平臺的圖書管理系統(tǒng)就顯得不太成熟,暫時,還沒有太大的市場。但是,在計算機(jī)管理漸顯弊端的今天,Android技術(shù)逐漸走進(jìn)了人們的視線。隨著智能手機(jī)的市場占有率的不斷提高,基于Android技術(shù)的應(yīng)用將會越來越多,圖書管理系統(tǒng)作為傳統(tǒng)的計算機(jī)應(yīng)用,也必將在手機(jī)客戶端得到廣泛的應(yīng)用[7]。 1.3 課題綜述 智能手機(jī)的普及,使得Android技術(shù)的到廣泛的
12、推廣,基于Android的圖書管理系統(tǒng)作為出現(xiàn)在手機(jī)上,已經(jīng)是必不可擋的趨勢。該系統(tǒng)是一套簡單,實(shí)用性強(qiáng)的系統(tǒng),可以簡化戶對圖書的操作,方便用戶的使用[7]。 技術(shù)方面,Java語言是Internet 開發(fā)的一個強(qiáng)大工具,運(yùn)用Java來開發(fā)這樣一個管理系統(tǒng)軟件,不僅功能強(qiáng)大,可復(fù)用性強(qiáng),更能為使用者到來方便。對于該系統(tǒng)的設(shè)計,一般采用java服務(wù)器端、客戶端的開發(fā),采用Microsoft SQL Server 2008 作為后臺數(shù)據(jù)庫開發(fā)工具,以Jdk 作為JavaBean、Servlet開發(fā)工具,在Windows 系統(tǒng)中用jdbc連接技術(shù)進(jìn)行服務(wù)器連接[8]。 本系統(tǒng)增加了管理員功能,管
13、理員可以通過該系統(tǒng)實(shí)現(xiàn)對用戶信息和圖書信息的簡單操作。而用戶可以通過該系統(tǒng)的搜索功能來實(shí)現(xiàn)圖書的查找以及對圖書借閱信息的掌握。本系統(tǒng)以PC機(jī)模擬圖書館服務(wù)器,在同一局域網(wǎng)wifi下就可連接手機(jī)客戶端。 2 系統(tǒng)分析與設(shè)計 2.1 需求分析 需求分析就是把軟件計劃期間建立的軟件可行性分析求精和細(xì)化,分析各種可能的解法,并且分配給各個軟件元素。簡單點(diǎn)說需求分析就是告訴系統(tǒng)必須完成哪些工作。它主要包括以下兩方面。 2.1.1 功能需求 本系統(tǒng)會涉及到圖書信息、圖書借閱信息、讀者信息以及管理員的多種數(shù)據(jù)管理。從管理的角度出發(fā)可以將圖書管理分為圖書管理和用戶管理。圖書管理包括添加圖書,
14、刪除圖書,查詢圖書等。用戶管理包括讀者的個人信息管理,借閱管理等。 客戶端上的圖書管理主要有以下幾個部分組成: (1)添加圖書:把新進(jìn)的圖書添加進(jìn)入數(shù)據(jù)庫。 (2)圖書信息管理:把圖書的詳細(xì)信息(如:作者,價格等)寫入數(shù)據(jù)庫。 (3)圖書查詢管理:用戶可以根據(jù)圖書名稱等對圖書進(jìn)行查詢。 (4) 圖書預(yù)約管理:用戶可以根據(jù)查詢反饋信息來預(yù)約圖書。 用戶管理主要功能有以下組成: (1)用戶信息管理:可以對用戶信息進(jìn)行操作。 (2)用戶借書管理:用戶可以預(yù)約圖書。 2.1.2 性能需求 系統(tǒng)的運(yùn)行對運(yùn)行環(huán)境的一些要求: (1)硬件環(huán)境:處理器:現(xiàn)有Inter Pentium系列
15、或更高 內(nèi)存:不小于1G 硬盤空間:100G 顯卡:AMD/Intel現(xiàn)有系列 (2)軟件環(huán)境:開發(fā)環(huán)境:Win7/Windows XP 開發(fā)工具:Eclipse 數(shù)據(jù)庫管理系統(tǒng):SQL Server2008 運(yùn)行環(huán)境:Win7、WindowsXP 2.2 可行性分析 2.2.1 經(jīng)濟(jì)可行性 本設(shè)計是基于Android的 圖書管理系統(tǒng),在使用方面向用戶體驗(yàn)靠攏,所以本系統(tǒng)設(shè)計目的就是簡單,使用,經(jīng)濟(jì)。 開發(fā)成本:本系統(tǒng)開發(fā)只需要一臺個人電腦,另可選擇免費(fèi)的Eclipse,Android SDK,SQL Server 2008等開發(fā)工具。 使用成本:Android 2.0
16、以上手機(jī)一部。 2.2.2 技術(shù)可行性 基于Android 的圖書管理系統(tǒng)客戶端是可行的,因?yàn)樵谝苿踊ヂ?lián)技術(shù)快速發(fā)展的今天,智能手機(jī)已經(jīng)普及大眾了,而且Android技術(shù)以相當(dāng)?shù)某墒靃9]。我們可以使用Android開發(fā)出適用于手機(jī)客戶端的各種應(yīng)用。本系統(tǒng)在開發(fā)工具方面采用了Java EE 版本的Eclipse,并且配置好Android環(huán)境,開發(fā)簡單,方便。數(shù)據(jù)庫方面則使用了SQL Server 2008,這是一個功能強(qiáng)大,最重要的是可跨平臺的數(shù)據(jù)庫,適用于各種Web 和 Android開發(fā)。 2.3 開發(fā)工具介紹和關(guān)鍵技術(shù) 2.3.1 Eclipse介紹 Eclipse 是一個開
17、放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件澤建構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。 Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),通過安裝不通過的插件Eclipse可以支持不同的計算機(jī)語言,比如C++和Python等開發(fā)工具。Eclipse的本身只是一個框架平臺,但是眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE
18、。 Eclipse是一個開放源代碼的軟件開發(fā)項(xiàng)目,專注于高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。它主要由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個項(xiàng)目組成,具體包括四個部分組成——Eclipse Platform、JDT、CDT和PDE。 Eclipse發(fā)展史如表2-1所示。 表2-1 Eclipse版本號 版本代號 版本平臺 主要版本發(fā)布日期 SR1發(fā)行日期 SR2發(fā)行日期 Callisto 3.2 2006.6.26 N/A N/A Europa 3.3 2007.6.27 2007.9.28 2008.2.
19、29 Ganymede 3.4 2008.6.25 2009.9.24 2009.2.25 Galileo 3.5 2009.6.24 2009.9.25 2010.2.26 Helios 3.6 2010.6.23 2010.9.24 2011.2.25 Indigo 3.7 2011.6.22 2011.9.23 2012.2.24 Juno 3.8及4.2 2012.6.27 2012.9.28 2013.3.1 Kepler 4.3 2013.6.26 2013.9.27 2014.2.28 Luna 4.4 2014.
20、6.25 N/A N/A Android工程是在Eclipse工具上編寫的[12],進(jìn)行android工程的編寫,首先需要在Eclipse上安裝ADT插件,然后指定SDK所在的路徑,便可以創(chuàng)建android虛擬機(jī)了。 在Eclipse下創(chuàng)建虛擬機(jī)的步驟如下: (1)安裝ADT插件 在Eclipse單擊菜單欄的Help,在Help里面選中Install NewSoftware選項(xiàng),之后便可以出現(xiàn)界面如圖2-2所示。 圖2-2 ADT安裝步驟界面 指定好你的ADT路徑后,便可以安裝好ADT插件。 (2)導(dǎo)入AndroidSDK 安裝好ADT插件后,單擊Eclipse菜單欄W
21、indows下找到preperence,點(diǎn)擊進(jìn)入,得到如圖2-3所示。 圖2-3 AndroidSDK安裝界面 在左邊選項(xiàng)選中Android,在SDK Location下導(dǎo)入AndroidSDK路徑,點(diǎn)擊Apply應(yīng)用,便會導(dǎo)入Android的各個版本。 (3)創(chuàng)建虛擬機(jī) 安裝好ADT和導(dǎo)入AndroidSDK成功后,便可以在菜單欄Windows下找到AVD manage選項(xiàng),單擊進(jìn)入后便有新建android虛擬機(jī)界面,在創(chuàng)建界面設(shè)置好虛擬機(jī)參數(shù)點(diǎn)擊確定后,就創(chuàng)建好了一個android虛擬機(jī)。 創(chuàng)建好虛擬機(jī)后,點(diǎn)擊開始便可以運(yùn)行一個android虛擬機(jī),虛擬機(jī)運(yùn)行成功界面如圖2-
22、4所示。 圖2-4 android虛擬機(jī)視圖 虛擬機(jī)模擬的是android智能手機(jī)的界面,通過操作虛擬機(jī)可以體驗(yàn)到android智能手機(jī)的部分應(yīng)用。同時虛擬機(jī)是作為開發(fā)的android應(yīng)用運(yùn)行的場所,他提供基本的人機(jī)交互功能。 2.3.2 SQL Server 2008介紹 SQL Server 2008實(shí)在Microsoftd的數(shù)據(jù)平臺上發(fā)布,可以組織管理任何數(shù)據(jù)??梢詫⒔Y(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化額文檔的數(shù)據(jù)直接存儲到數(shù)據(jù)庫中??梢詫?shù)據(jù)驚醒查詢、搜索、同步、報告和分析之類的操作。數(shù)據(jù)可以存儲在各種設(shè)備上,從數(shù)據(jù)中心最大的服務(wù)器一直到桌面設(shè)計和移動設(shè)備,它都可以控制數(shù)據(jù)為不用管數(shù)
23、據(jù)存儲在哪里[13]。 SQL Server 2008出現(xiàn)在微軟數(shù)據(jù)平臺遠(yuǎn)景上是因?yàn)樗沟霉究梢赃\(yùn)行他們最關(guān)鍵任務(wù)的應(yīng)用程序,同時降低了管理數(shù)據(jù)基礎(chǔ)設(shè)施和發(fā)送觀察信息給所有用戶的成本。 這個平臺有以下特點(diǎn): (1)可信任的——使得公司可以以很高的安全性、可靠性和可擴(kuò)展性來運(yùn)行他們最關(guān)鍵任務(wù)的應(yīng)用程序。 (2)高效的——使得公司可以降低開發(fā)和管理他們的數(shù)據(jù)基礎(chǔ)設(shè)施的時間和成本。 (3)智能的——提供了一個全面的平臺,可以在你的用戶需要的時候給他們發(fā)送觀察和信息。 SQL(Structured Query Language,結(jié)構(gòu)查詢語言)是一個功能強(qiáng)大的數(shù)據(jù)庫語言。SQL通常使用于數(shù)
24、據(jù)庫的通訊。ANSI(美國國家標(biāo)準(zhǔn)學(xué)會)聲稱,SQL是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。SQL語句通常用于完成一些數(shù)據(jù)庫的操作任務(wù),比如在數(shù)據(jù)庫中更新數(shù)據(jù),或者從數(shù)據(jù)庫中檢索數(shù)據(jù)。標(biāo)準(zhǔn)的SQL命令,比如“Select”、 “Insert”、 “Update”、 “Delete”、 “Create”和 “Drop”常常被用于完成絕大多數(shù)數(shù)據(jù)庫的操作。SQL功能強(qiáng)大,是一種完備的數(shù)據(jù)處理語言,不僅用于數(shù)據(jù)庫查詢,而且用于數(shù)據(jù)庫中的數(shù)據(jù)修改和更新,概括起來,它可以分成以下幾組: (1)DML(Data Manipulation Language,數(shù)據(jù)操作語言):用于檢索或者修改數(shù)據(jù)。 (2)DDL
25、(Data Definition Language,數(shù)據(jù)定義語言): 用于定義數(shù)據(jù)的結(jié)構(gòu),比如 創(chuàng)建、修改或者刪除數(shù)據(jù)庫對象。 (3)DCL(Data Control Language,數(shù)據(jù)控制語言):用于定義數(shù)據(jù)庫用戶的權(quán)限。 其中DML組可以細(xì)分為以下的幾個語句:SELECT:用于檢索數(shù)據(jù);INSERT:用于增加數(shù)據(jù)到數(shù)據(jù)庫;UPDATE:用于從數(shù)據(jù)庫中修改現(xiàn)存的數(shù)據(jù);DELETE:用于從數(shù)據(jù)庫中刪除數(shù)據(jù)。 2.3.3 Tomcat介紹 Tomcat服務(wù)器是一個免費(fèi)的開放源代碼的Web應(yīng)用服務(wù)器,屬于輕量級應(yīng)用服務(wù)器,在中小型新系統(tǒng)和并發(fā)訪問用戶不是很多的場合被普遍使用,是開發(fā)和調(diào)
26、試jsp程序的首選。對于一個初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺機(jī)器上配置好Apache服務(wù)器,可利用它響應(yīng)對HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用。)頁面的請求。史記山Tomcat部分是Apache服務(wù)器的擴(kuò)展,但他是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat時,它實(shí)際上作為一個與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。 訣竅是,的那個配置正確時,Apache為HTML頁面服務(wù),而Tomcat實(shí)際上運(yùn)行JSP頁面和Servlet。另外,Tomcat和IIS等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過,To
27、mcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。 Tomcat很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時占用的系統(tǒng)資源少,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷地改進(jìn)和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。 2.3.4 關(guān)鍵技術(shù)介紹 本系統(tǒng)開發(fā)采用的語言是java,使用的關(guān)鍵技術(shù)是布局和數(shù)據(jù)存儲。布局是用來設(shè)計用戶交互界面,用運(yùn)好頁面布局技術(shù)可以是該系統(tǒng)有個良好美觀的界面以及很好地用戶體驗(yàn),因此運(yùn)用好布局技術(shù)直接和用戶使用是相關(guān)的。而操作者所有的操作數(shù)據(jù)和用戶需要提取的數(shù)據(jù)都存儲在數(shù)據(jù)庫中,它使用了數(shù)據(jù)庫存儲技術(shù)。 Androi
28、d中,軟件界面設(shè)計常用布局有五種:AbsoluteLayout、LinearLayout、RelativeLayout、FrameLayout、TableLayout,由于布局的使用,并且布局之間可以相互嵌套,使得android軟甲的界面設(shè)計變得相當(dāng)?shù)撵`活,只要運(yùn)用的合理,即使一些復(fù)雜的頁面也可以變得簡單。 Android中數(shù)據(jù)存儲技術(shù)有文件存儲、preference、sqlite、ContentProvider和網(wǎng)絡(luò)存儲,文件存儲是以流的形式讀寫文件,可以以文件的格式,也可以以二進(jìn)制的形式,在java語言中要使用硫,則寫入文件的對象必須進(jìn)行序列化,sqlite是嵌入式移動設(shè)備中常用的輕量級
29、數(shù)據(jù)庫,可以看做是計算機(jī)上的sql server、oracle等數(shù)據(jù)庫。本系統(tǒng)中采用的sql server。 3 系統(tǒng)總體設(shè)計 3.1 設(shè)計原則 軟件開發(fā)需要遵循一定的原則,其原則有以下幾個方面 (1)軟件可靠性原則:可靠性直接關(guān)系到涉及自身的聲譽(yù)和生存發(fā)展競爭能力,意味著該軟件在測試運(yùn)行過程中避免可能發(fā)生故障的能力,且一旦發(fā)生故障后,具有解脫和排除故障的能力。 (2)實(shí)用性原則:要力求最大限度得滿足實(shí)際工作的需要,考慮各業(yè)務(wù)層次、各管理環(huán)節(jié)數(shù)據(jù)處理的實(shí)用性,把滿足用戶生產(chǎn)的和管理業(yè)務(wù)作為第一要素進(jìn)行考慮。用戶接口和操作界面設(shè)計盡可能做到界面美觀大方、操作簡便實(shí)用。 (3)可擴(kuò)
30、展性原則:為適應(yīng)將來的發(fā)展,系統(tǒng)應(yīng)具有良好的可擴(kuò)展性和可維護(hù)性。軟件設(shè)計應(yīng)盡可能模塊化、組織化,使應(yīng)用系統(tǒng)可靈活配置,適應(yīng)不同的情況。數(shù)據(jù)庫的設(shè)計應(yīng)盡可能考慮到未來的需要。 (4)安全性原則:應(yīng)用軟件與數(shù)據(jù)庫系統(tǒng)的設(shè)計要做到安全可靠,防止非法用戶的入侵。數(shù)據(jù)庫的備份策略恰當(dāng),以防災(zāi)難性事故的發(fā)生。 (5)用戶界面設(shè)計原則:用戶界面的設(shè)計應(yīng)符合Windows規(guī)范的圖形用戶界面(GUI),做到美觀大方。用戶界面應(yīng)當(dāng)直觀、明了、條理清晰。實(shí)現(xiàn)“傻瓜型”管理---易學(xué)、易用、易管理。 (6)數(shù)據(jù)庫設(shè)計原則:一致性原則:對信息進(jìn)行統(tǒng)一的分析與設(shè)計,協(xié)調(diào)好各數(shù)據(jù)源,保證系統(tǒng)數(shù)據(jù)的一致性和有效性;完整
31、性原則:數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性,要防止合法用戶使用數(shù)據(jù)庫時向數(shù)據(jù)庫加入不規(guī)范的數(shù)據(jù),對輸入到數(shù)據(jù)庫中的數(shù)據(jù)要審核和約束機(jī)制;安全性原則:數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù),防止非法用戶使用數(shù)據(jù)庫或合法用戶非法使用數(shù)據(jù)庫造成數(shù)據(jù)泄漏、更改或破壞,數(shù)據(jù)庫要有人證和授權(quán)機(jī)制;可伸縮性原則:數(shù)據(jù)庫的設(shè)計應(yīng)充分考慮發(fā)展的需要、移植的需要,應(yīng)具有良好的擴(kuò)展性,伸縮性和適度冗余;規(guī)范化數(shù)據(jù)庫的設(shè)計:應(yīng)遵循規(guī)范化理論。規(guī)范化程度過低的數(shù)據(jù)庫,可能會存在插入/刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問題,解決的方法就是對關(guān)系模式進(jìn)行分解或合并,轉(zhuǎn)換成高級范式。 3.2 系統(tǒng)結(jié)構(gòu) 基于Android 圖書管理系
32、統(tǒng)手機(jī)客戶端從設(shè)計者角度劃分,可以分為用戶(學(xué)生)和管理員。學(xué)生用戶具有的權(quán)限包括行實(shí)名注冊、用戶登錄、查找圖書、圖書借閱、定制借閱時間;管理員權(quán)限則是通過該系統(tǒng)進(jìn)行圖書更新、書籍查詢、以及用戶管理等[15]。從使用者角度可以分為前臺和后臺兩大部分。后臺是本系統(tǒng)的最重要部分,該部分是本系統(tǒng)的信息維護(hù)和管理平臺。根據(jù)顯示要求,本系統(tǒng)后臺有兩類用戶:用戶和管理員。用戶和管理員都可以通過該系統(tǒng)進(jìn)行操作,只不過權(quán)限會有所不同。 本系統(tǒng)總體設(shè)計結(jié)構(gòu)為C/S結(jié)構(gòu),結(jié)構(gòu)如圖3-1所示。 圖3-1 C/S結(jié)構(gòu)圖 3.3 設(shè)計思想 基于Android的圖書管理系統(tǒng)客戶端共分為兩大模塊:圖書管理和用戶
33、管理。圖書管理模塊主要是對新書的錄入,破損下架圖書的刪除以及對圖書的查詢。用戶管理模塊主要是對用戶的管理,查找,刪除等。結(jié)構(gòu)上看,Android圖書管理系統(tǒng)客戶端是C/S結(jié)構(gòu),該設(shè)計包括了服務(wù)器端和客戶端的設(shè)計。 3.4 用戶使用模塊 普通用戶功能流程圖如圖3-2所示。 圖3-2 用戶使用流程圖 3.4.1 用戶注冊 用戶可以通過手機(jī)客戶端上的注冊按鈕來打開注冊界面,然后根據(jù)注冊界面提示信息填入對應(yīng)數(shù)據(jù)來完成用戶注冊,注冊信息會添加到數(shù)據(jù)庫,滿足注冊條件后會返回注冊成功。注冊完成后即可登錄,執(zhí)行用戶相關(guān)操作。 3.4.2 用戶登錄 登錄用戶按照功能角色分為兩類:學(xué)生和管理
34、員。用戶可點(diǎn)擊登陸界面角色按鈕選定角色后進(jìn)行登錄,點(diǎn)擊登錄后,數(shù)據(jù)庫會匹配用戶信息,用戶信息正確后,即可完成登錄。 3.4.3 書籍查詢 在查詢界面輸入書名,通過服務(wù)器連接數(shù)據(jù)庫來返回查詢信息,查詢信息包括:書名,作者,圖書價格,是否被訂閱等信息。 3.4.4 用戶管理 用戶管理模塊式管理員對學(xué)生用戶賬號的管理,對于不使用的賬號,管理員可以對它進(jìn)行刪除,同時管理員還有權(quán)限對用戶信息進(jìn)行查詢。 3.4.5 圖書管理 圖書管理模塊可以讓管理員通過此功能,對圖書進(jìn)行添加和刪除等功能。通過這個模塊,管理員可以對最近購買的圖書進(jìn)行添加處理,而且管理員還可以對一些下架或者破損嚴(yán)重的書籍進(jìn)行刪除
35、,以免誤導(dǎo)學(xué)生,造成不必要的麻煩。 3.5 管理員管理模塊 后臺管理的功能是可以把用戶請求,通過不同功能模塊,去檢索數(shù)據(jù)庫,然后把結(jié)果返回個客戶端的用戶,如圖3-3所示。 圖3-3 管理流程圖 3.5.1 注冊管理 用戶提交注冊信息:用戶填寫完注冊信息后,點(diǎn)擊注冊按鈕,向服務(wù)器發(fā)送注冊信息,服務(wù)器保留其信息,并且更新數(shù)據(jù)庫。 注冊管理在后臺功能里面是很重要的,注冊不僅可以實(shí)現(xiàn)學(xué)生的注冊,而且還可以實(shí)現(xiàn)管理員的注冊。管理員注冊會增加一個管理員注冊激活碼,以免被人胡亂注冊,保證圖書管理系統(tǒng)的安全性。 3.5.2 登錄管理 登錄管理:登陸管理可以把登錄用戶名和密碼發(fā)送到數(shù)據(jù)庫,和
36、數(shù)據(jù)庫中用戶信息進(jìn)行對比,對比正確則可以登錄成功,反之失??! 用戶進(jìn)入登陸界面,會有用戶名、密碼以及角色選擇輸入框,角色包括學(xué)生和管理員。用戶選定角色并且輸入正確的用戶名和密碼之后則可完成登錄。登錄過程包括填寫信息和數(shù)據(jù)庫請求和響應(yīng)。 3.5.3 書籍查詢管理 用戶通過圖書查詢輸入框來對圖書進(jìn)行查詢,如輸入圖書名稱,之后把信息發(fā)送給服務(wù)器端的數(shù)據(jù)庫,數(shù)據(jù)庫會對書籍進(jìn)行查找,查找完成之后把查找信息發(fā)送給用戶,該信息會包括圖書名稱,作者,是否被借閱等。 3.5.4 用戶管理 管理員具有刪除和查詢用戶信息的權(quán)限,對于一些有特殊情況,比如學(xué)生畢業(yè),退學(xué)等學(xué)生進(jìn)行刪除,實(shí)時保持?jǐn)?shù)據(jù)庫的最新狀態(tài)
37、。 3.5.5 圖書管理 管理員具有該功能的權(quán)限。最為管理員,需要經(jīng)常對數(shù)據(jù)庫進(jìn)行更新。新購進(jìn)的圖書,管理員需要把它添加進(jìn)數(shù)據(jù)庫;破損圖書,下架圖書,管理員會將之從數(shù)據(jù)庫刪除;同時管理員還可以查詢圖書的借閱信息。 3.6 系統(tǒng)數(shù)據(jù)分析和設(shè)計 3.6.1 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計 本系統(tǒng)設(shè)計階段完成數(shù)據(jù)分析,并且根據(jù)數(shù)據(jù)信息建立相應(yīng)的關(guān)系,目的是把該階段的數(shù)據(jù)結(jié)果轉(zhuǎn)化為數(shù)據(jù)庫。 管理員和學(xué)生用戶有以下屬性:id、username、password、college_name、sex、type幾個屬性。數(shù)據(jù)庫通過用戶的name、password這兩個屬性來確定用戶身份是否合法。E-R圖如圖3-
38、4所示。 圖 3-4 用戶E-R圖 圖書信息表:專門用來存儲書籍的信息。E-R圖如圖3-5所示。 圖3-5 圖書E-R圖 對于各個實(shí)體之間的關(guān)系E-R圖如圖3-6所示。 圖3-6 實(shí)體E-R圖 3.6.2 數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計 根據(jù)以上的E-R圖,轉(zhuǎn)化成數(shù)據(jù)庫的物理設(shè)計。基于以上邏輯設(shè)計,考慮程序設(shè)計的簡易性,,該系采用SQL Server 2008建立簡單數(shù)據(jù)庫,在下邊創(chuàng)建兩個表。 表數(shù)據(jù)清單設(shè)計如表3-1所示。 表3-1 數(shù)據(jù)表清單 表名 說明 用戶表 用于存儲用戶信息 書籍信息表 用于存儲書籍基本信息 用戶表中存儲了用戶的各種
39、信息,如表3-2所示。 表3-2 用戶表 字段名 數(shù)據(jù)類型 長度 主鍵 備注 Username varchar 50 否 Password Varchar 50 否 IDcard Varchar 50 否 In_time Varchar 10 否 College_name Char 10 否 Regist_id Char 10 否 允許為空 Sex Char 10 否 Type Char 10 否 ID Int 是 圖書表中存儲了圖書的全部狀態(tài),如表3-3所示。 表
40、 3-3 圖書表 字段名 數(shù)據(jù)類型 長度 主鍵 備注 Bookid varchar 50 主鍵 Bookbuy Varchar 50 否 Bookauthor Varchar 50 否 Isborrow Char 10 否 Username Varchar 50 否 允許null Time Varchar 20 否 允許null Timestop Varchar 20 否 允許null Bookname Varchar 50 否 Studentid Varvhar 50 否 允許nul
41、l 4 詳細(xì)設(shè)計 4.1 客戶端的設(shè)計——Android的界面設(shè)計 在Eclipse安裝好了ADT插件并且導(dǎo)入了AndroidSDK后,創(chuàng)建一個android project,此工程是作為圖書館管理系統(tǒng)的客戶端,是為廣大用戶下載使用的,所以,該UI界面的主要要求是要操作性強(qiáng)和交互簡單??蛻舳说淖⒁馐马?xiàng)為:一個是數(shù)據(jù)庫的設(shè)計,一個是各個功能的布局。 Android Project 名稱:bookmanagement。工程結(jié)構(gòu)圖如圖4-1所示。 圖4-1 客戶端工程圖 4.2 服務(wù)端的設(shè)計——搭建web服務(wù)器 本軟件是C/S結(jié)構(gòu)的系統(tǒng),
42、因此要先搭建服務(wù)器端,利用Java EE中的servlet來提供服務(wù),并將其部署在Tomcat下。需要解決的是創(chuàng)建不同的servlet來提供不同的服務(wù)。 Web服務(wù)的名稱:bookweb。工程界面如圖4-2所示。 圖4-2 服務(wù)端工程圖 構(gòu)建服務(wù)器過程: 打開eclipse->點(diǎn)擊file->new->other 如圖4-3所示。 圖4-3 Servers構(gòu)建圖1 ->server->next如圖4-4所示。 圖 4-4 Servers構(gòu)建圖2 選擇對應(yīng)tomcat版本->next 如圖4-5所示。 圖 4-5 Servers構(gòu)建圖3 進(jìn)入到Add and
43、Remove界面雙擊available框中的項(xiàng)目,然后項(xiàng)目會移動到右邊框中->最后點(diǎn)擊finish。如圖4-6所示。 圖4-6 Servers構(gòu)建圖4 4.3 具體功能界面 4.3.1 注冊界面 對于一個系統(tǒng)的開始,首先必須的是用戶的注冊界面,注冊模塊是為了登錄系統(tǒng)所進(jìn)行的獲取通行證的步驟,注冊所有的信息都將提交給數(shù)據(jù)庫進(jìn)行存儲,注冊的信息將作為用戶在本系統(tǒng)進(jìn)行一切活動的標(biāo)識。注冊功能對應(yīng)的程序名為com.briup包下的RegisterActivity.java。注冊界面如圖4-7所示。 圖4-7 注冊界面 核心代碼如下: dialog_group.setOnChe
44、ckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup arg0, int checkedId) { // TODO Auto-generated method stub if(checkedId == dialog_boy.getId()){ sextype = "男"; }else if(checkedId ==dialog_girl.getId()){ s
45、extype = "女"; } } }); dialog_regis.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub username = user_name.getText().toString(); password = user_password.getText().
46、toString(); idcard = user_identity.getText().toString(); in_time = user_time.getText().toString(); college_name = collegename.getText().toString(); regist_id = tearher_regis.getText().toString(); if(username !=null && password !=null && idcard !=null && in_ti
47、me !=null && college_name !=null){ /// 處理注冊事件 json = urlParameter.regist(username, password, idcard, in_time, college_name, regist_id, sextype, strtype); try { if(json!=null && json.getBoolean("result")){ Toast.makeText(context, "注冊成功?。?!",3000).show(); dialog
48、.dismiss(); }else{ Toast.makeText(context, "注冊失?。。。?,3000).show(); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ Toast.makeText(context, "參數(shù)不可為空?。?!",3000).show(); } 4.3.2 登陸界面 登錄
49、界面作為系統(tǒng)的門面,登錄界面完成的功能是驗(yàn)證所登錄用戶的賬號是否正確,以驗(yàn)證是否有進(jìn)入系統(tǒng)的權(quán)限。登錄界面如圖4-8所示。 圖4-8 登錄界面 核心代碼如下: protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { if (null == req) { return; } res.se
50、tContentType("text/html;charset=utf-8"); req.setCharacterEncoding("utf-8"); res.setCharacterEncoding("utf-8"); PrintWriter out = res.getWriter(); String username = req.getParameter("username"); String password = req.getParameter("password");
51、 String type = req.getParameter("type"); if(username != null && password != null && type != null){ String sql = "select top 1 username,password,type from user_name where username='"+username+"' and password='"+password+"' and type='"+type+"'"; System.out.print(sql);
52、 try { resultSet = ControlDB.getInstance().executeQuery(sql); if(resultSet.next()){ maps.put("username", resultSet.getString("username")); maps.put("password", resultSet.getString("password")); maps.put("type", resultSet.getString("type")); map.put("name", maps)
53、; map.put("result", "true"); out.println(Utils.getInstance().getMapJSONObject(map)); resultSet.close(); }else{ map.put("result", "false"); out.println(Utils.getInstance().getMapJSONObject(map)); } } catch (SQLException e) { // TODO Auto-generated catc
54、h block e.printStackTrace(); } }else{ map.put("result", "false"); map.put("name", "請求參數(shù)不可為空"); out.println(Utils.getInstance().getMapJSONObject(map)); } out.flush(); out.close(); } } 4.3.3 圖書查詢預(yù)約界面 學(xué)生用戶通過輸入所需查詢的書籍名字和書籍作者名,便可以從數(shù)據(jù)庫中查詢到所查詢的圖書。 界面
55、如圖4-9所示。
圖4-9查詢預(yù)約界面
代碼如下:
public class Subscription extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
private int statement ;
private Map
56、rvletException {
// TODO Auto-generated method stub
maps = new HashMap
57、to-generated method stub res.setContentType("text/html;charset=utf-8"); req.setCharacterEncoding("utf-8"); res.setCharacterEncoding("utf-8"); this.doPost(req, res); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletExce
58、ption, IOException { // TODO Auto-generated method stub if (null == req) { return; } res.setContentType("text/html;charset=utf-8"); req.setCharacterEncoding("utf-8"); res.setCharacterEncoding("utf-8"); PrintWriter out = res.getWri
59、ter(); String bookid = req.getParameter("bookid"); String bookname = req.getParameter("bookname"); String username = req.getParameter("username"); String time = req.getParameter("time"); String timestop = req.getParameter("timestop");
60、 String studentid = req.getParameter("studentid"); if(bookid !=null && bookname !=null && username != null && time !=null && timestop !=null && studentid != null){ String _bookname = new String(bookname.getBytes("ISO-8859-1"),"UTF-8"); String sql = "update boo
61、k_name set isborrow='1', time='"+time+"',username='"+username+"',timestop='"+timestop+"',studentid='"+studentid+"' where bookid='"+bookid+"' and bookname='"+_bookname+"'"; System.out.print(sql); try { statement = ControlDB.getInstance().executeUpdate(sql); if(statement
62、== 1){ map.put("result", "true"); map.put("name", "借閱成功"); out.println(Utils.getInstance().getMapJSONObject(map)); }else{ map.put("result", "false"); map.put("name", "借閱失敗"); out.println(Utils.getInstance().getMapJSONObject(map)); } } catch (SQLExcep
63、tion e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ map.put("result", "false"); map.put("name", "請求參數(shù)不可為空"); out.println(Utils.getInstance().getMapJSONObject(map)); } } @Override public void destroy() { //
64、 TODO Auto-generated method stub super.destroy(); } } 4.3.4 添加圖書界面 該界面由于向數(shù)據(jù)庫中添加新進(jìn)圖書。界面如圖4-10所示。 圖4-10 添加界面 核心代碼如下: if(bookid != null && bookname != null && bookbuy !=null && bookauthor !=null && isborrow !=null){ if( !SqlStatm.getInstance().isselect(bookid) ){ boo
65、kname =new String(bookname.getBytes("ISO-8859-1"),"UTF-8"); bookbuy =new String(bookbuy.getBytes("ISO-8859-1"),"UTF-8"); bookauthor =new String(bookauthor.getBytes("ISO-8859-1"),"UTF-8"); String sql = "insert into book_name (bookid,bookname,bookbuy,book
66、author,isborrow,username,time,timestop,studentid) values ("+"'"+bookid+"',"+"'"+bookname+"',"+"'"+bookbuy+"',"+"'"+bookauthor+"',"+"'"+isborrow+"',"+"'"+username+"',"+"'"+time+"',"+"'"+timestop+"',"+"'"+studentid+"')"; System.out.println(sql); try { statement = ControlDB.getInstance().executeUpdate(sql); if(statement == 1){ map.put("result", "true"); map.put("name", "插入成功"); out.println(Utils.getInstance().getMapJSONObject(map)); }else
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 5《火燒云》PPT課件
- 三相永磁同步電動機(jī)矢量控制課件
- 脊髓損傷后神經(jīng)源性膀胱的功能訓(xùn)練課件
- 第五章幼兒園環(huán)境課件
- 2019全國高血壓日宣傳主題課件
- 生產(chǎn)安全事故調(diào)查工作實(shí)務(wù)-SS課件
- 合同的成立與生效課件
- 道德與法治八下12治國安邦的總章程課件
- 學(xué)前兒童情緒與情感教學(xué)課件
- 【人教版】高考地理一輪微專題強(qiáng)化(二)氣溫課件(含答案)
- 度工會工作匯報
- 紀(jì)念長征勝利80周年
- 卡通寒假生活經(jīng)典創(chuàng)意模板課件
- 高三數(shù)學(xué)二輪-導(dǎo)數(shù)及其應(yīng)用專題課件-蘇教版
- 統(tǒng)編版三下語文ppt課件-習(xí)作:奇妙的想象