基于android studio的圖書管理系統(tǒng)的APP開發(fā)
《基于android studio的圖書管理系統(tǒng)的APP開發(fā)》由會員分享,可在線閱讀,更多相關《基于android studio的圖書管理系統(tǒng)的APP開發(fā)(42頁珍藏版)》請在裝配圖網上搜索。
1、目錄 摘要 I ABSTRACT II 1 緒論 1 1.1 課題研究的目的及意義 1 1.2 國內課題研究現(xiàn)狀 2 1.3 課題綜述 2 2 系統(tǒng)分析與設計 3 2.1 需求分析 3 2.1.1 功能需求 3 2.1.2 性能需求 3 2.2 可行性分析 4 2.2.1 經濟可行性 4 2.2.2 技術可行性 4 2.3 開發(fā)工具介紹和關鍵技術 4 2.3.1 eclipse介紹 4 2.3.2 SQL Server 2008介紹 7 2.3.3 Tomcat介紹 8 2.3.4 關鍵技術介紹 9 3 系統(tǒng)總體設計 10 3.1 設計原則 10 3.
2、2 系統(tǒng)結構 11 3.3 設計思想 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ù)分析和設計 15 3.6.1 數(shù)據(jù)庫邏輯結構設計 15 3.6.2 數(shù)據(jù)庫物理結構設計 16 4 詳細設計 18 4.1 客戶端的設計——Android的界面設計
3、 18 4.2 服務端的設計——搭建web服務器 19 4.3 具體功能界面 22 4.3.1 注冊界面 22 4.3.2 登陸界面 23 4.3.3 圖書查詢預約界面 26 4.3.4 添加圖書界面 29 4.3.5 管理學生用戶界面 31 5 系統(tǒng)測試與性能測試 32 5.1 軟件測試 32 5.2 本系統(tǒng)測試 32 5.2.1用戶普通功能模塊測試 33 5.2.2 用戶管理模塊測試 33 5.3 本章小結 33 結束語 34 致謝 35 參考文獻 36 基于Android的圖書管理系統(tǒng)客戶端設計與實現(xiàn) 摘要 傳統(tǒng)的WEB應
4、用只能在電腦上使用,不方便用戶隨時隨地的使用。為了解決這樣的不足,基于Android 平臺的各種應用客戶端就應運而生。為了能夠讓人們在基于 Android 平臺的移動設備上享用圖書管理系統(tǒng)的功能,本設計闡述了在 Android 平臺下圖書管理系統(tǒng)的設計和實現(xiàn)過程,該系統(tǒng)采用C/S結構,使用Android 布局技術完成界面設計,使用java語言開發(fā)完成。系統(tǒng)實現(xiàn)了用戶注冊、登陸、查詢圖書,以及學生用戶管理和圖書管理等功能,并在不同型號的設備模擬器上測試通過。 關鍵詞:圖書管理系統(tǒng),Android,客戶端,數(shù)據(jù)庫設計,服務端。 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 課題研究的目的及意義 隨著計算機和通信技術的發(fā)展,人類已經逐漸的進入信息化社會。信息和材料能源一樣成為一種社會的基本生產材料,在人類社會生產活動中發(fā)揮著重要的作用,大幅度地提高了社會生產力。同時人們對信息和數(shù)據(jù)的利用與處理也已進入自動化、網絡化和社會化的階段。因此,開發(fā)相關的管理信息系統(tǒng)已經成為各行各業(yè)D的必須[1]。管理信息系統(tǒng)作為一門邊緣科學,集管理科學、信息科學、系統(tǒng)科學、現(xiàn)代通信技術和電子計算機技術與一體,可以解決企業(yè)或組織所面臨的問題。對內來看,可以提高工作效率;對外來看,可以獲得競爭優(yōu)勢[2]。 圖書作為一種信息資源,用戶閱讀的資料繁多,包含很多的信息數(shù)據(jù)的管理。以前,
9、有很多的圖書管理都是手工的,尚未使用計算機進行管理。根據(jù)調查得知,人們對圖書管理的方式主要是計算機管理,及少量的基于文本、表格等紙質媒介的手工處理。手工處理對于大量的圖書信息管理很不方便,耗時耗力,而且容易出錯。對于大中型的圖書館來說,計算機管理已經成為家常便飯,好的計算機圖書管理系統(tǒng)可以相當容易的實現(xiàn)對圖書、用戶的管理,安全性和穩(wěn)定性較高,已經成為這些圖書管理主流管理方式[3]。但是,這只是對于圖書管理人員來說的。對那些我那個圖書館來回跑的用戶來說,這樣的情況還是很不方便的。 在移動互聯(lián)發(fā)展極速的今天,作為主流管理的計算機已經不能滿足一些人們的要求,所以,作為移動互聯(lián)時代標志性的客戶端工具
10、——智能手機的出現(xiàn)就顯得有些理所當然了[4]。而基于android 平臺的智能手機就是其中的代表。智能手機就像一臺微型電腦,具有強大的計算和存儲能力,可以通過通信網絡來實現(xiàn)網絡的介入,可以隨時隨地的使用。這樣的功能彌補了計算機攜帶不方便的不足。所以,基于android 平臺的圖書管理系統(tǒng)客戶端,也就滿足了用戶與圖書館交互的不足[5]。通過android 平臺的圖書管理系統(tǒng)客戶端,用戶可以很好地為用戶提供方便,隨時隨地了解圖書信息及圖書借閱。而智能手機的普及可以使得這個圖書管理系統(tǒng)得到廣泛的使用[6]。 1.2 國內課題研究現(xiàn)狀 計算機技術的快速發(fā)展及計算機網絡的普及,英特網成為人們查找信息
11、的重要途徑。本世紀是信息的時代,所以信息的交換流通就顯得特別的重要[10]。因此,快速的實現(xiàn)信息交互就顯得非常很有必要。 目前,國內基于Android 平臺的圖書管理系統(tǒng)還不太成熟,大多數(shù)的圖書館都采用計算機管理的方式,基于Android 平臺的圖書管理系統(tǒng)就顯得不太成熟,暫時,還沒有太大的市場。但是,在計算機管理漸顯弊端的今天,Android技術逐漸走進了人們的視線。隨著智能手機的市場占有率的不斷提高,基于Android技術的應用將會越來越多,圖書管理系統(tǒng)作為傳統(tǒng)的計算機應用,也必將在手機客戶端得到廣泛的應用[7]。 1.3 課題綜述 智能手機的普及,使得Android技術的到廣泛的
12、推廣,基于Android的圖書管理系統(tǒng)作為出現(xiàn)在手機上,已經是必不可擋的趨勢。該系統(tǒng)是一套簡單,實用性強的系統(tǒng),可以簡化戶對圖書的操作,方便用戶的使用[7]。 技術方面,Java語言是Internet 開發(fā)的一個強大工具,運用Java來開發(fā)這樣一個管理系統(tǒng)軟件,不僅功能強大,可復用性強,更能為使用者到來方便。對于該系統(tǒng)的設計,一般采用java服務器端、客戶端的開發(fā),采用Microsoft SQL Server 2008 作為后臺數(shù)據(jù)庫開發(fā)工具,以Jdk 作為JavaBean、Servlet開發(fā)工具,在Windows 系統(tǒng)中用jdbc連接技術進行服務器連接[8]。 本系統(tǒng)增加了管理員功能,管
13、理員可以通過該系統(tǒng)實現(xiàn)對用戶信息和圖書信息的簡單操作。而用戶可以通過該系統(tǒng)的搜索功能來實現(xiàn)圖書的查找以及對圖書借閱信息的掌握。本系統(tǒng)以PC機模擬圖書館服務器,在同一局域網wifi下就可連接手機客戶端。 2 系統(tǒng)分析與設計 2.1 需求分析 需求分析就是把軟件計劃期間建立的軟件可行性分析求精和細化,分析各種可能的解法,并且分配給各個軟件元素。簡單點說需求分析就是告訴系統(tǒng)必須完成哪些工作。它主要包括以下兩方面。 2.1.1 功能需求 本系統(tǒng)會涉及到圖書信息、圖書借閱信息、讀者信息以及管理員的多種數(shù)據(jù)管理。從管理的角度出發(fā)可以將圖書管理分為圖書管理和用戶管理。圖書管理包括添加圖書,
14、刪除圖書,查詢圖書等。用戶管理包括讀者的個人信息管理,借閱管理等。 客戶端上的圖書管理主要有以下幾個部分組成: (1)添加圖書:把新進的圖書添加進入數(shù)據(jù)庫。 (2)圖書信息管理:把圖書的詳細信息(如:作者,價格等)寫入數(shù)據(jù)庫。 (3)圖書查詢管理:用戶可以根據(jù)圖書名稱等對圖書進行查詢。 (4) 圖書預約管理:用戶可以根據(jù)查詢反饋信息來預約圖書。 用戶管理主要功能有以下組成: (1)用戶信息管理:可以對用戶信息進行操作。 (2)用戶借書管理:用戶可以預約圖書。 2.1.2 性能需求 系統(tǒng)的運行對運行環(huán)境的一些要求: (1)硬件環(huán)境:處理器:現(xiàn)有Inter Pentium系列
15、或更高 內存:不小于1G 硬盤空間:100G 顯卡:AMD/Intel現(xiàn)有系列 (2)軟件環(huán)境:開發(fā)環(huán)境:Win7/Windows XP 開發(fā)工具:Eclipse 數(shù)據(jù)庫管理系統(tǒng):SQL Server2008 運行環(huán)境:Win7、WindowsXP 2.2 可行性分析 2.2.1 經濟可行性 本設計是基于Android的 圖書管理系統(tǒng),在使用方面向用戶體驗靠攏,所以本系統(tǒng)設計目的就是簡單,使用,經濟。 開發(fā)成本:本系統(tǒng)開發(fā)只需要一臺個人電腦,另可選擇免費的Eclipse,Android SDK,SQL Server 2008等開發(fā)工具。 使用成本:Android 2.0
16、以上手機一部。 2.2.2 技術可行性 基于Android 的圖書管理系統(tǒng)客戶端是可行的,因為在移動互聯(lián)技術快速發(fā)展的今天,智能手機已經普及大眾了,而且Android技術以相當?shù)某墒靃9]。我們可以使用Android開發(fā)出適用于手機客戶端的各種應用。本系統(tǒng)在開發(fā)工具方面采用了Java EE 版本的Eclipse,并且配置好Android環(huán)境,開發(fā)簡單,方便。數(shù)據(jù)庫方面則使用了SQL Server 2008,這是一個功能強大,最重要的是可跨平臺的數(shù)據(jù)庫,適用于各種Web 和 Android開發(fā)。 2.3 開發(fā)工具介紹和關鍵技術 2.3.1 Eclipse介紹 Eclipse 是一個開
17、放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件澤建構建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。 Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),通過安裝不通過的插件Eclipse可以支持不同的計算機語言,比如C++和Python等開發(fā)工具。Eclipse的本身只是一個框架平臺,但是眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE
18、。 Eclipse是一個開放源代碼的軟件開發(fā)項目,專注于高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質的工業(yè)平臺。它主要由Eclipse項目、Eclipse工具項目和Eclipse技術項目三個項目組成,具體包括四個部分組成——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],進行android工程的編寫,首先需要在Eclipse上安裝ADT插件,然后指定SDK所在的路徑,便可以創(chuàng)建android虛擬機了。 在Eclipse下創(chuàng)建虛擬機的步驟如下: (1)安裝ADT插件 在Eclipse單擊菜單欄的Help,在Help里面選中Install NewSoftware選項,之后便可以出現(xiàn)界面如圖2-2所示。 圖2-2 ADT安裝步驟界面 指定好你的ADT路徑后,便可以安裝好ADT插件。 (2)導入AndroidSDK 安裝好ADT插件后,單擊Eclipse菜單欄W
21、indows下找到preperence,點擊進入,得到如圖2-3所示。 圖2-3 AndroidSDK安裝界面 在左邊選項選中Android,在SDK Location下導入AndroidSDK路徑,點擊Apply應用,便會導入Android的各個版本。 (3)創(chuàng)建虛擬機 安裝好ADT和導入AndroidSDK成功后,便可以在菜單欄Windows下找到AVD manage選項,單擊進入后便有新建android虛擬機界面,在創(chuàng)建界面設置好虛擬機參數(shù)點擊確定后,就創(chuàng)建好了一個android虛擬機。 創(chuàng)建好虛擬機后,點擊開始便可以運行一個android虛擬機,虛擬機運行成功界面如圖2-
22、4所示。 圖2-4 android虛擬機視圖 虛擬機模擬的是android智能手機的界面,通過操作虛擬機可以體驗到android智能手機的部分應用。同時虛擬機是作為開發(fā)的android應用運行的場所,他提供基本的人機交互功能。 2.3.2 SQL Server 2008介紹 SQL Server 2008實在Microsoftd的數(shù)據(jù)平臺上發(fā)布,可以組織管理任何數(shù)據(jù)??梢詫⒔Y構化、半結構化和非結構化額文檔的數(shù)據(jù)直接存儲到數(shù)據(jù)庫中。可以對數(shù)據(jù)驚醒查詢、搜索、同步、報告和分析之類的操作。數(shù)據(jù)可以存儲在各種設備上,從數(shù)據(jù)中心最大的服務器一直到桌面設計和移動設備,它都可以控制數(shù)據(jù)為不用管數(shù)
23、據(jù)存儲在哪里[13]。 SQL Server 2008出現(xiàn)在微軟數(shù)據(jù)平臺遠景上是因為它使得公司可以運行他們最關鍵任務的應用程序,同時降低了管理數(shù)據(jù)基礎設施和發(fā)送觀察信息給所有用戶的成本。 這個平臺有以下特點: (1)可信任的——使得公司可以以很高的安全性、可靠性和可擴展性來運行他們最關鍵任務的應用程序。 (2)高效的——使得公司可以降低開發(fā)和管理他們的數(shù)據(jù)基礎設施的時間和成本。 (3)智能的——提供了一個全面的平臺,可以在你的用戶需要的時候給他們發(fā)送觀察和信息。 SQL(Structured Query Language,結構查詢語言)是一個功能強大的數(shù)據(jù)庫語言。SQL通常使用于數(shù)
24、據(jù)庫的通訊。ANSI(美國國家標準學會)聲稱,SQL是關系數(shù)據(jù)庫管理系統(tǒng)的標準語言。SQL語句通常用于完成一些數(shù)據(jù)庫的操作任務,比如在數(shù)據(jù)庫中更新數(shù)據(jù),或者從數(shù)據(jù)庫中檢索數(shù)據(jù)。標準的SQL命令,比如“Select”、 “Insert”、 “Update”、 “Delete”、 “Create”和 “Drop”常常被用于完成絕大多數(shù)數(shù)據(jù)庫的操作。SQL功能強大,是一種完備的數(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ù)的結構,比如 創(chuàng)建、修改或者刪除數(shù)據(jù)庫對象。 (3)DCL(Data Control Language,數(shù)據(jù)控制語言):用于定義數(shù)據(jù)庫用戶的權限。 其中DML組可以細分為以下的幾個語句: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服務器是一個免費的開放源代碼的Web應用服務器,屬于輕量級應用服務器,在中小型新系統(tǒng)和并發(fā)訪問用戶不是很多的場合被普遍使用,是開發(fā)和調
26、試jsp程序的首選。對于一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache服務器,可利用它響應對HTML(標準通用標記語言下的一個應用。)頁面的請求。史記山Tomcat部分是Apache服務器的擴展,但他是獨立運行的,所以當你運行tomcat時,它實際上作為一個與Apache獨立的進程單獨運行的。 訣竅是,的那個配置正確時,Apache為HTML頁面服務,而Tomcat實際上運行JSP頁面和Servlet。另外,Tomcat和IIS等Web服務器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。不過,To
27、mcat處理靜態(tài)HTML的能力不如Apache服務器。 Tomcat很受廣大程序員的喜歡,因為它運行時占用的系統(tǒng)資源少,擴展性好,支持負載平衡與郵件服務等開發(fā)應用系統(tǒng)常用的功能;而且它還在不斷地改進和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。 2.3.4 關鍵技術介紹 本系統(tǒng)開發(fā)采用的語言是java,使用的關鍵技術是布局和數(shù)據(jù)存儲。布局是用來設計用戶交互界面,用運好頁面布局技術可以是該系統(tǒng)有個良好美觀的界面以及很好地用戶體驗,因此運用好布局技術直接和用戶使用是相關的。而操作者所有的操作數(shù)據(jù)和用戶需要提取的數(shù)據(jù)都存儲在數(shù)據(jù)庫中,它使用了數(shù)據(jù)庫存儲技術。 Androi
28、d中,軟件界面設計常用布局有五種:AbsoluteLayout、LinearLayout、RelativeLayout、FrameLayout、TableLayout,由于布局的使用,并且布局之間可以相互嵌套,使得android軟甲的界面設計變得相當?shù)撵`活,只要運用的合理,即使一些復雜的頁面也可以變得簡單。 Android中數(shù)據(jù)存儲技術有文件存儲、preference、sqlite、ContentProvider和網絡存儲,文件存儲是以流的形式讀寫文件,可以以文件的格式,也可以以二進制的形式,在java語言中要使用硫,則寫入文件的對象必須進行序列化,sqlite是嵌入式移動設備中常用的輕量級
29、數(shù)據(jù)庫,可以看做是計算機上的sql server、oracle等數(shù)據(jù)庫。本系統(tǒng)中采用的sql server。 3 系統(tǒng)總體設計 3.1 設計原則 軟件開發(fā)需要遵循一定的原則,其原則有以下幾個方面 (1)軟件可靠性原則:可靠性直接關系到涉及自身的聲譽和生存發(fā)展競爭能力,意味著該軟件在測試運行過程中避免可能發(fā)生故障的能力,且一旦發(fā)生故障后,具有解脫和排除故障的能力。 (2)實用性原則:要力求最大限度得滿足實際工作的需要,考慮各業(yè)務層次、各管理環(huán)節(jié)數(shù)據(jù)處理的實用性,把滿足用戶生產的和管理業(yè)務作為第一要素進行考慮。用戶接口和操作界面設計盡可能做到界面美觀大方、操作簡便實用。 (3)可擴
30、展性原則:為適應將來的發(fā)展,系統(tǒng)應具有良好的可擴展性和可維護性。軟件設計應盡可能模塊化、組織化,使應用系統(tǒng)可靈活配置,適應不同的情況。數(shù)據(jù)庫的設計應盡可能考慮到未來的需要。 (4)安全性原則:應用軟件與數(shù)據(jù)庫系統(tǒng)的設計要做到安全可靠,防止非法用戶的入侵。數(shù)據(jù)庫的備份策略恰當,以防災難性事故的發(fā)生。 (5)用戶界面設計原則:用戶界面的設計應符合Windows規(guī)范的圖形用戶界面(GUI),做到美觀大方。用戶界面應當直觀、明了、條理清晰。實現(xiàn)“傻瓜型”管理---易學、易用、易管理。 (6)數(shù)據(jù)庫設計原則:一致性原則:對信息進行統(tǒng)一的分析與設計,協(xié)調好各數(shù)據(jù)源,保證系統(tǒng)數(shù)據(jù)的一致性和有效性;完整
31、性原則:數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性,要防止合法用戶使用數(shù)據(jù)庫時向數(shù)據(jù)庫加入不規(guī)范的數(shù)據(jù),對輸入到數(shù)據(jù)庫中的數(shù)據(jù)要審核和約束機制;安全性原則:數(shù)據(jù)庫的安全性是指保護數(shù)據(jù),防止非法用戶使用數(shù)據(jù)庫或合法用戶非法使用數(shù)據(jù)庫造成數(shù)據(jù)泄漏、更改或破壞,數(shù)據(jù)庫要有人證和授權機制;可伸縮性原則:數(shù)據(jù)庫的設計應充分考慮發(fā)展的需要、移植的需要,應具有良好的擴展性,伸縮性和適度冗余;規(guī)范化數(shù)據(jù)庫的設計:應遵循規(guī)范化理論。規(guī)范化程度過低的數(shù)據(jù)庫,可能會存在插入/刪除異常、修改復雜、數(shù)據(jù)冗余等問題,解決的方法就是對關系模式進行分解或合并,轉換成高級范式。 3.2 系統(tǒng)結構 基于Android 圖書管理系
32、統(tǒng)手機客戶端從設計者角度劃分,可以分為用戶(學生)和管理員。學生用戶具有的權限包括行實名注冊、用戶登錄、查找圖書、圖書借閱、定制借閱時間;管理員權限則是通過該系統(tǒng)進行圖書更新、書籍查詢、以及用戶管理等[15]。從使用者角度可以分為前臺和后臺兩大部分。后臺是本系統(tǒng)的最重要部分,該部分是本系統(tǒng)的信息維護和管理平臺。根據(jù)顯示要求,本系統(tǒng)后臺有兩類用戶:用戶和管理員。用戶和管理員都可以通過該系統(tǒng)進行操作,只不過權限會有所不同。 本系統(tǒng)總體設計結構為C/S結構,結構如圖3-1所示。 圖3-1 C/S結構圖 3.3 設計思想 基于Android的圖書管理系統(tǒng)客戶端共分為兩大模塊:圖書管理和用戶
33、管理。圖書管理模塊主要是對新書的錄入,破損下架圖書的刪除以及對圖書的查詢。用戶管理模塊主要是對用戶的管理,查找,刪除等。結構上看,Android圖書管理系統(tǒng)客戶端是C/S結構,該設計包括了服務器端和客戶端的設計。 3.4 用戶使用模塊 普通用戶功能流程圖如圖3-2所示。 圖3-2 用戶使用流程圖 3.4.1 用戶注冊 用戶可以通過手機客戶端上的注冊按鈕來打開注冊界面,然后根據(jù)注冊界面提示信息填入對應數(shù)據(jù)來完成用戶注冊,注冊信息會添加到數(shù)據(jù)庫,滿足注冊條件后會返回注冊成功。注冊完成后即可登錄,執(zhí)行用戶相關操作。 3.4.2 用戶登錄 登錄用戶按照功能角色分為兩類:學生和管理
34、員。用戶可點擊登陸界面角色按鈕選定角色后進行登錄,點擊登錄后,數(shù)據(jù)庫會匹配用戶信息,用戶信息正確后,即可完成登錄。 3.4.3 書籍查詢 在查詢界面輸入書名,通過服務器連接數(shù)據(jù)庫來返回查詢信息,查詢信息包括:書名,作者,圖書價格,是否被訂閱等信息。 3.4.4 用戶管理 用戶管理模塊式管理員對學生用戶賬號的管理,對于不使用的賬號,管理員可以對它進行刪除,同時管理員還有權限對用戶信息進行查詢。 3.4.5 圖書管理 圖書管理模塊可以讓管理員通過此功能,對圖書進行添加和刪除等功能。通過這個模塊,管理員可以對最近購買的圖書進行添加處理,而且管理員還可以對一些下架或者破損嚴重的書籍進行刪除
35、,以免誤導學生,造成不必要的麻煩。 3.5 管理員管理模塊 后臺管理的功能是可以把用戶請求,通過不同功能模塊,去檢索數(shù)據(jù)庫,然后把結果返回個客戶端的用戶,如圖3-3所示。 圖3-3 管理流程圖 3.5.1 注冊管理 用戶提交注冊信息:用戶填寫完注冊信息后,點擊注冊按鈕,向服務器發(fā)送注冊信息,服務器保留其信息,并且更新數(shù)據(jù)庫。 注冊管理在后臺功能里面是很重要的,注冊不僅可以實現(xiàn)學生的注冊,而且還可以實現(xiàn)管理員的注冊。管理員注冊會增加一個管理員注冊激活碼,以免被人胡亂注冊,保證圖書管理系統(tǒng)的安全性。 3.5.2 登錄管理 登錄管理:登陸管理可以把登錄用戶名和密碼發(fā)送到數(shù)據(jù)庫,和
36、數(shù)據(jù)庫中用戶信息進行對比,對比正確則可以登錄成功,反之失??! 用戶進入登陸界面,會有用戶名、密碼以及角色選擇輸入框,角色包括學生和管理員。用戶選定角色并且輸入正確的用戶名和密碼之后則可完成登錄。登錄過程包括填寫信息和數(shù)據(jù)庫請求和響應。 3.5.3 書籍查詢管理 用戶通過圖書查詢輸入框來對圖書進行查詢,如輸入圖書名稱,之后把信息發(fā)送給服務器端的數(shù)據(jù)庫,數(shù)據(jù)庫會對書籍進行查找,查找完成之后把查找信息發(fā)送給用戶,該信息會包括圖書名稱,作者,是否被借閱等。 3.5.4 用戶管理 管理員具有刪除和查詢用戶信息的權限,對于一些有特殊情況,比如學生畢業(yè),退學等學生進行刪除,實時保持數(shù)據(jù)庫的最新狀態(tài)
37、。 3.5.5 圖書管理 管理員具有該功能的權限。最為管理員,需要經常對數(shù)據(jù)庫進行更新。新購進的圖書,管理員需要把它添加進數(shù)據(jù)庫;破損圖書,下架圖書,管理員會將之從數(shù)據(jù)庫刪除;同時管理員還可以查詢圖書的借閱信息。 3.6 系統(tǒng)數(shù)據(jù)分析和設計 3.6.1 數(shù)據(jù)庫邏輯結構設計 本系統(tǒng)設計階段完成數(shù)據(jù)分析,并且根據(jù)數(shù)據(jù)信息建立相應的關系,目的是把該階段的數(shù)據(jù)結果轉化為數(shù)據(jù)庫。 管理員和學生用戶有以下屬性: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圖 對于各個實體之間的關系E-R圖如圖3-6所示。 圖3-6 實體E-R圖 3.6.2 數(shù)據(jù)庫物理結構設計 根據(jù)以上的E-R圖,轉化成數(shù)據(jù)庫的物理設計?;谝陨线壿嬙O計,考慮程序設計的簡易性,,該系采用SQL Server 2008建立簡單數(shù)據(jù)庫,在下邊創(chuàng)建兩個表。 表數(shù)據(jù)清單設計如表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 詳細設計 4.1 客戶端的設計——Android的界面設計 在Eclipse安裝好了ADT插件并且導入了AndroidSDK后,創(chuàng)建一個android project,此工程是作為圖書館管理系統(tǒng)的客戶端,是為廣大用戶下載使用的,所以,該UI界面的主要要求是要操作性強和交互簡單??蛻舳说淖⒁馐马棡椋阂粋€是數(shù)據(jù)庫的設計,一個是各個功能的布局。 Android Project 名稱:bookmanagement。工程結構圖如圖4-1所示。 圖4-1 客戶端工程圖 4.2 服務端的設計——搭建web服務器 本軟件是C/S結構的系統(tǒng),
42、因此要先搭建服務器端,利用Java EE中的servlet來提供服務,并將其部署在Tomcat下。需要解決的是創(chuàng)建不同的servlet來提供不同的服務。 Web服務的名稱:bookweb。工程界面如圖4-2所示。 圖4-2 服務端工程圖 構建服務器過程: 打開eclipse->點擊file->new->other 如圖4-3所示。 圖4-3 Servers構建圖1 ->server->next如圖4-4所示。 圖 4-4 Servers構建圖2 選擇對應tomcat版本->next 如圖4-5所示。 圖 4-5 Servers構建圖3 進入到Add and
43、Remove界面雙擊available框中的項目,然后項目會移動到右邊框中->最后點擊finish。如圖4-6所示。 圖4-6 Servers構建圖4 4.3 具體功能界面 4.3.1 注冊界面 對于一個系統(tǒng)的開始,首先必須的是用戶的注冊界面,注冊模塊是為了登錄系統(tǒng)所進行的獲取通行證的步驟,注冊所有的信息都將提交給數(shù)據(jù)庫進行存儲,注冊的信息將作為用戶在本系統(tǒ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)的門面,登錄界面完成的功能是驗證所登錄用戶的賬號是否正確,以驗證是否有進入系統(tǒng)的權限。登錄界面如圖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 圖書查詢預約界面 學生用戶通過輸入所需查詢的書籍名字和書籍作者名,便可以從數(shù)據(jù)庫中查詢到所查詢的圖書。 界面
55、如圖4-9所示。
圖4-9查詢預約界面
代碼如下:
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ù)庫中添加新進圖書。界面如圖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)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 川渝旅游日記成都重慶城市介紹推薦景點美食推薦
- XX國有企業(yè)黨委書記個人述責述廉報告及2025年重點工作計劃
- 世界濕地日濕地的含義及價值
- 20XX年春節(jié)節(jié)后復工安全生產培訓人到場心到崗
- 大唐女子圖鑒唐朝服飾之美器物之美繪畫之美生活之美
- 節(jié)后開工第一課輕松掌握各要點節(jié)后常見的八大危險
- 廈門城市旅游介紹廈門景點介紹廈門美食展示
- 節(jié)后開工第一課復工復產十注意節(jié)后復工十檢查
- 傳統(tǒng)文化百善孝為先孝道培訓
- 深圳城市旅游介紹景點推薦美食探索
- 節(jié)后復工安全生產培訓勿忘安全本心人人講安全個個會應急
- 預防性維修管理
- 常見閥門類型及特點
- 設備預防性維修
- 2.乳化液泵工理論考試試題含答案