基于android平臺的設備查詢系統(tǒng)設計畢業(yè)設計_第1頁
已閱讀1頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  存檔日期: 存檔編號: </p><p><b>  本科生畢業(yè)設計</b></p><p><b>  論 文 題 目:</b></p><p>  姓 名:

2、 </p><p>  學 院: 教育科學學院 </p><p>  專 業(yè): 教育技術學 </p><p>  年 級 、 學 號: </p>

3、<p>  指 導 教 師: </p><p><b>  目 錄</b></p><p><b>  摘 要1</b></p><p><b>  一、前 言1</b></p><p><

4、;b> ?。ㄒ唬┰O計目標1</b></p><p><b>  (二)系統(tǒng)價值1</b></p><p>  二、系統(tǒng)需求分析2</p><p>  三、總體設計與系統(tǒng)結構2</p><p><b> ?。ㄒ唬┛傮w設計2</b></p><p>&

5、lt;b> ?。ǘ┫到y(tǒng)結構3</b></p><p>  (三)開發(fā)工具介紹和關鍵技術3</p><p>  1. Eclipse的介紹3</p><p>  2.JCreator與Tomcat介紹5</p><p>  3.關鍵技術介紹6</p><p>  四、系統(tǒng)功能設計7<

6、/p><p><b> ?。ㄒ唬┣芭_管理7</b></p><p><b>  1. 注冊7</b></p><p><b>  2. 用戶登錄8</b></p><p><b>  3. 設備查詢8</b></p><p>&

7、lt;b>  4. 用戶管理8</b></p><p><b>  5. 設備管理8</b></p><p><b> ?。ǘ┖笈_管理8</b></p><p><b>  1. 注冊管理9</b></p><p><b>  2. 登錄管

8、理9</b></p><p>  3. 設備查詢管理9</p><p><b>  4. 用戶管理9</b></p><p><b>  5. 設備管理9</b></p><p>  五、數據庫結構設計9</p><p>  (一)數據庫邏輯結構設計9

9、</p><p> ?。ǘ祿煳锢斫Y構設計11</p><p>  六、系統(tǒng)開發(fā)及編碼實現13</p><p>  (一)服務器端的設計---搭建java web服務器13</p><p> ?。ǘ┻B接數據庫模塊14</p><p>  (三)服務器功能模塊14</p><p>

10、  1. 注冊模塊14</p><p>  2. 登錄模塊15</p><p>  3. 設備查詢模塊15</p><p>  4. 特定用戶查詢模塊15</p><p>  5. 查詢所有用戶模塊15</p><p>  6. 新增設備模塊16</p><p>  (四)客戶端的設

11、計---設計 UI界面16</p><p> ?。ㄎ澹┚唧w功能代碼實現17</p><p>  1. 注冊界面17</p><p>  2. 登錄界面20</p><p>  3. 學生用戶設備查詢界面23</p><p>  4. 管理員界面28</p><p>  5. 管理學生

12、用戶界面28</p><p>  6. 管理設備界面29</p><p>  7. 新增設備界面33</p><p><b>  七、用戶體驗35</b></p><p> ?。ㄒ唬?用戶注冊體驗35</p><p>  (二)用戶登錄體驗36</p><p>

13、  (三)設備查詢體驗37</p><p> ?。ㄋ模┯脩艄芾眢w驗38</p><p> ?。ㄎ澹┰O備管理體驗38</p><p><b>  八、總 結39</b></p><p><b>  參考文獻41</b></p><p>  Abstract42<

14、;/p><p>  附錄一 其它核心代碼43</p><p>  基于Android平臺的設備查詢系統(tǒng)設計</p><p><b>  [摘要]: </b></p><p>  基于web的傳統(tǒng)設備查詢應用適合在PC機上使用,難以通過移動終端隨時隨地的使用,而移動終端尤其是智能手機的出現使得移動應用成為可能。基于Andro

15、id平臺的設備查詢系統(tǒng)能夠通過Android終端實現設備隨時隨地的查詢和管理,擴大用戶的使用空間。本篇文章闡述了在Android平臺下設備查詢系統(tǒng)的設計與實現過程,其目的是讓人們能夠在基于Android平臺的移動設備上享受快捷方便的設備信息查詢服務。本系統(tǒng)采用C/S結構,使用Android布局技術設計頁面布局,實現了用戶注冊、登錄、查詢設備信息以及管理員用戶(老師)對普通用戶(學生)管理和普通用戶預借設備等功能,并在模擬器上通過了測試。

16、</p><p>  [關鍵詞]:設備查詢系統(tǒng);Android開發(fā);Eclipse</p><p><b>  一、前 言</b></p><p><b> ?。ㄒ唬┰O計目標 </b></p><p>  隨著信息技術的快速發(fā)展,移動互聯網時代已經來臨。智能手機是移動互聯網時代一個標志性的客戶端工具

17、,它兼具了計算機具有強大的計算、存儲能力和傳統(tǒng)手機方便攜帶、移動性好的優(yōu)勢,同時還具有自己的操作系統(tǒng),能夠安裝、卸載軟件,可以通過移動通信網絡來實現無線網絡接入,可以補充甚至代替?zhèn)鹘y(tǒng)web的諸多功能,因此,移動終端技術必然有良好的發(fā)展前景。</p><p>  基于Android的設備查詢系統(tǒng)是適應移動終端快速良好發(fā)展的具體體現, 該系統(tǒng)按功能的不同分為用戶管理、設備管理兩個部分。用戶按照使用者的不同分為管理員和

18、普通用戶(學生),兩類用戶都是使用同一個平臺,只是權限不同。學生用戶只能注冊、查詢設備信息、預借等功能;管理員擁有可以對學生用戶賬號進行注銷,查詢學生用戶信息,實時更新設備信息,發(fā)布新設備等權限。</p><p><b> ?。ǘ┰O計的價值</b></p><p>  就目前我國在設備管理移動客戶端的開發(fā)與應用來說,這方面還不是很成熟,多數學校設備管理系統(tǒng)還是采用傳

19、統(tǒng)的人管理設備模式,致使設備及時信息得不到擴散,設備得不到充分的利用,降低了設備的應有的價值。在這種情況下,基于Android平臺的設備查詢系統(tǒng)屬于一個計較新的應用。該設計能及時方便地查詢設備信息、發(fā)布信息、預借設備、管理設備,做到設備信息的實時化,彌補了設備傳統(tǒng)管理中信息不能實時化的缺陷?,F今,對于校內的設備管理者和使用來說,智能手機是一個必備的物品,手機客戶端這種形式的設備查詢系統(tǒng),能更加方便設備的管理和貼近學生的的生活,對設備的管

20、理和充分利用起到了促進作用。</p><p><b>  二、系統(tǒng)需求分析</b></p><p>  大學的日常教學和生活中,學生由于學習或者生活的需要,對學校設備有較大的需求,而學校的設備在傳統(tǒng)的人管理設備模式中往往處于閑置狀態(tài)但又不能外借給學生,滿足學生的需求。而這種管理模式下多半是由于設備的信息得不到及時的傳播造成的。另一方面,設備的擁有方(校方)又希望設備得

21、到充分的利用,使使用價值最大化。為了解決這個矛盾,學生和校方都希望能夠讓設備信息得到及時的傳播,滿足學生的需求和校方的期望。設備管理系統(tǒng)就是基于這種矛盾應運而生的。該系統(tǒng)能夠解決設備信息傳播不及時的矛盾,方便設備的管理和貼近學生的的生活,具有較大使用價值。</p><p>  三、總體設計與系統(tǒng)結構</p><p>  為了使軟件開發(fā)能夠及時、順利進行,開發(fā)人員進行了長時間艱苦的學習?,F對

22、系統(tǒng)的總體設計和系統(tǒng)結構設計及開發(fā)工具和關鍵技術做具體說明。</p><p><b>  (一)總體設計</b></p><p>  基于Android平臺開發(fā)的設備查詢系統(tǒng)設計的思路是:用戶角色分為學生用戶和管理員兩類;功能包括注冊、登錄、設備查詢、設備更新、管理普通用戶(學生)共五個部分。其中系統(tǒng)管理中的學生用戶權限包括注冊、登錄、設備查詢、設備預借、修改個人信息

23、四個模塊;管理員的權限則是除了注冊、登錄、設備查詢權限外,還有實時更新設備信息、管理學生用戶、修改個人信息等模塊。從管理功能的角度來看分為前臺和后臺管理兩大部分。后臺管理模塊是本系統(tǒng)最重要部分之一,它是系統(tǒng)維護和信息管理平臺。根據現實需要,本系統(tǒng)后臺管理用戶有兩類:管理員和學生用戶。這兩類用戶使用的系統(tǒng)管理平臺都是同一個平臺上,只不過登陸之后根據用戶的不同類型擁有相應的權限。</p><p><b> 

24、?。ǘ┫到y(tǒng)結構</b></p><p>  本系統(tǒng)總體邏輯結構為C/S結構,結構圖如圖2-1所示:</p><p>  圖2.1 C/S結構圖</p><p> ?。ㄈ╅_發(fā)工具介紹及其關鍵技術</p><p>  1.Eclipse簡介</p><p>  Eclipse 是一個開放源代碼、基于 Jav

25、a 的可擴展集成開發(fā)平臺。它本身只是一個框架和一組服務,用于通過插件組件構建開發(fā)環(huán)境。Eclipse 自身附帶了一個標準的插件集。  </p><p>  Android工程是在Eclipse工具上編寫的,進行android工程的編寫,首先需要在Eclipse上安裝ADT插件,并且指定SDK所在的路徑,便可以創(chuàng)建android虛擬機(模擬器)了。</p><p>  在Eclipse中創(chuàng)建

26、虛擬機的步驟如下:</p><p>  (1)安裝ADT插件</p><p>  在Eclipse單擊菜單欄的Help,在Help里面選中Install NewSoftware選項,之后便可以出現如下界面:</p><p>  圖2.2 ADT安裝步驟界面</p><p>  指定好ADT的路徑后,就可以開始安裝ADT插件。</p>

27、;<p>  (2)導入AndroidSDK</p><p>  安裝好ADT插件后,單擊Eclipse菜單欄Windows下找到preperence,點擊進入,得到如下界面:</p><p>  圖2.3 AndroidSDK安裝界面</p><p>  如上圖,在左邊框架選項選中Android,在SDK Location下導入AndroidSDK路

28、徑,點擊Apply應用,就會導入Android的各個版本。</p><p>  (3)創(chuàng)建虛擬機(模擬器)</p><p>  安裝好ADT和導入AndroidSDK成功后,就可以在菜單欄Windows選項下找到AVD manage選項,單擊進入后便有管理android虛擬機界面,在創(chuàng)建界面設置好虛擬機參數并確定后,就創(chuàng)建好了一個android虛擬機。</p><p&g

29、t;  在創(chuàng)建好虛擬機后,點擊start按鈕便可以運行選中的android虛擬機, 2.3.3系統(tǒng)虛擬機下圖:</p><p>  圖2.4 android虛擬機視圖</p><p>  虛擬機模擬的是android智能手機的界面,通過操作虛擬機可以體驗到android智能手機的大部分應用。同時模擬器是作為開發(fā)的Android應用運行的工具,他提供最基本的人機交互功能。</p>

30、<p>  2.JCreator與Tomcat介紹</p><p>  Jcreator是Xinox Software公司開發(fā)的一個用于Java程序設計的集成開發(fā)環(huán)境(IDE),具有編輯、調試、運行Java程序的功能。它分為LE和Pro版本。LE版本功能上受到一些限制,是免費版本。Pro版本功能最全,但這個版本是一個共享軟件。這個軟件比較小巧,對硬件要求不是很高,完全用C++寫的,速度快、效率高。具

31、有語法著色、代碼自動完成、代碼參數提示、工程向導、類向導等功能。第一次啟動時提示設置JavaJDK主目錄及JDKJavaDoc目錄,軟件自動設置好類路徑、編譯器及解釋器路徑,還可以在幫助菜單中使用JDKHelp。</p><p>  圖2.5 JCreator Pro版本界面視圖</p><p>  本系統(tǒng)是基于C/S架構的,所以需要在JCreator上創(chuàng)建服務器端,利用servlet來提

32、供服務,并將其部署在Tomcat下。需要解決的是創(chuàng)建不同的servlet來提供不同的服務。</p><p>  Tomcat是美國Apache 軟件基金會Jakarta 項目中的一個核心項目。它是由Apache、Sun 和其他一些公司及個人共同開發(fā)而成。目前,Tomcat 廣受程序員的喜歡,因為它運行時占用的系統(tǒng)資源較小,擴展性較好,還支持負載平衡與郵件服務等開發(fā)應用系統(tǒng)等常用的功能;同時,它還在不斷的改進和完善

33、中,程序員可以更改它或在其中加入新的功能。</p><p>  Tomcat 是一個輕量級應用服務器,它在中小型系統(tǒng)或者并發(fā)訪問用戶規(guī)模不大的場合下被普遍使用,受到廣泛的好評,是開發(fā)和調試程序的首選。</p><p><b>  3. 關鍵技術介紹</b></p><p>  本軟件采用java作為開發(fā)語言,Android頁面布局和后臺服務器數

34、據存儲是開發(fā)本軟件的關鍵技術,用戶界面的設計是否美觀和合理直接影響用戶體驗,因此運用好布局技術是直接和用戶體驗相關,而數據存儲技術則記錄了用戶所有的操作數據和用戶所需要提取的數據。</p><p>  在Android中,UI通常使用xml技術設計,而xml中控件的位置和狀態(tài)則離不開布局的使用,Android中常用的布局有五種,分別是:LinearLayout、AbsoluteLayout、RelativeLay

35、out、FrameLayout、TableLayout,由于布局的使用,并且布局之間可以互相嵌套,使得android軟件UI的設計變得非常靈活自如,非常復雜的界面設計也是通過合理的布局實現的。本系統(tǒng)開發(fā)采用的主要是LinearLayout布局。</p><p>  另外,Json數據交換技術也是本設計的關鍵技術之一。在服務器客戶端之間的數據傳輸采用json數據交換格式,服務器把數據放在bilder數據流里,在客戶

36、端通過json解析出特定數據值,從而便捷地解決了服務器與客戶端的數據交互。</p><p><b>  四、系統(tǒng)功能設計</b></p><p>  本系統(tǒng)采用C/S模式開發(fā),客戶端和服務器端是獨立分開的,這樣的分開也就形成了前臺管理和后臺管理。前臺管理注重用戶的交互是否簡便,后臺管理注重功能的邏輯和與數據庫數據交互的功能。</p><p>&

37、lt;b> ?。ㄒ唬┣芭_管理</b></p><p>  前臺客戶端的所有功能畫出的功能流程圖如下:</p><p>  圖3.1 前臺客戶端流程圖</p><p><b>  1.注冊</b></p><p>  用戶通過手機客戶端主界面上的注冊按鈕注冊新的學生用戶,注冊用戶的信息通過服務器端和數據庫

38、連接,數據庫中的用戶表則會生成你注冊的信息,同時在手機客戶端提示注冊成功。</p><p><b>  2.用戶登錄</b></p><p>  用戶登錄分為兩類用戶:管理員和學生用戶??梢酝ㄟ^登錄界面中選定身份登錄,服務器根據登錄選定的信息選擇數據庫中的數據表進行匹配,用戶名和密碼正確則登錄成功。</p><p><b>  3.設

39、備查詢</b></p><p>  在查詢界面輸入所需查詢設備名稱的關鍵字,通過服務器端查詢數據庫返回你所查詢的設備信息,設備信息包括:設備名稱、編號、是否可接、設備的地址等信息。</p><p><b>  4.用戶管理</b></p><p>  用戶管理模塊是管理員對學生用戶賬號的管理,對于某些賬號不使用了,比如:學生畢業(yè)等原

40、因不再使用賬號的問題,管理員有權利對這類賬號進行刪除,同時可以學生用戶的用戶名查詢學生用戶的信息。</p><p><b>  5.設備管理</b></p><p>  這個功能也只有管理員身份才能擁有,管理員通過此功能,可以對設備進行新增、刪除功能、修改設備信息。</p><p>  通過這個模塊,管理員可以對新增的設備進行管理,實時發(fā)布新增

41、設備。還可以及時對設備信息及時修改,避免信息錯誤。</p><p><b> ?。ǘ┖笈_管理</b></p><p>  后臺服務器端的主要任務是根據接收到的客戶端發(fā)送過來的請求,根據客戶端不同功能模塊,通過檢索數據庫不同表格,把檢索結果返回給客戶端顯示給以用戶,其基本流程圖如下:</p><p>  圖3.2 后臺服務器端流程圖</p

42、><p><b>  1.注冊管理</b></p><p>  用戶注冊提交:向服務器提交用戶注冊的信息,同時新增到數據庫。 </p><p>  注冊管理是后臺的一個重要內容,注冊只提供學生用戶的注冊,這樣可以保證設備館用戶權限的穩(wěn)定和安全。通過注冊用戶,用戶才能享受來自手機客戶端的所有功能。通過手機客戶端注冊用戶,來作為以后通過手機客戶端登錄設

43、備館管理系統(tǒng)的唯一身份認證。</p><p><b>  2.登錄管理</b></p><p>  用戶登錄管理:根據你登錄的信息向服務器發(fā)送請求,然后和數據庫信息進行對比,來確認用戶登錄的成功與否。 </p><p>  登錄時候,首先你必須選定你的登錄身份,是以學生用戶還是管理員身份登錄,根據你選擇的不同身份,服務器向不同的數據庫表來核對信

44、息,以通過對用戶信息的核對,以確定所登錄的賬號密碼是否正確。</p><p><b>  3.設備查詢管理</b></p><p>  設備查詢管理主要通過設備的幾個關鍵信息進行查詢,根據設備名稱向數據庫提交信息進行條件檢索。通過輸入信息的檢索,返回檢索設備的基本信息,比如:設備名稱、是否可接、設備的地點等。</p><p><b>

45、  4.用戶管理</b></p><p>  用戶管理,是管理員根據實際需要對用戶進行注銷,是與數據庫進行數據更新與交互的服務。</p><p><b>  5.設備管理</b></p><p>  后臺的設備管理,是處理管理員把新設備添加到設備數據庫表的服務,通過添加到數據庫表,學生用戶才能在設備查詢功能中查詢到新更新的設備信息。

46、同時,對于已經歸還的設備要及時修改是否可借,也就是更新從設備表的相應信息。</p><p><b>  五、數據庫結構設計</b></p><p>  本系統(tǒng)設計時采用的是SQL數據庫。SQL數據庫的版本是2005版。通過SQL Server Management Studio管理數據庫。以Windows身份驗證登陸。</p><p>  配置

47、數據庫:新建數據庫QE,在其中創(chuàng)建表,分別為:student(儲存學生用戶信息)、administrator(儲存管理員信息)、equipment(儲存設備信息)、borrow(儲存學生預借記錄)。</p><p> ?。ㄒ唬祿爝壿嫿Y構設計</p><p>  在需求分析階段已完成該系統(tǒng)所有的數據分析。根據該階段所建立的概念模型,已經得出滿足系統(tǒng)設計要求的幾個關系描述,該階段的主要工作

48、就是把前一階段的成果轉化為具體的數據庫。</p><p>  管理員用戶用戶名(也就是老師的工號)、密碼、姓名、電話四個屬性,通過這兩個屬性來確定管理員用戶的身份是否合法,其中用戶名(工號)為主鍵,其E-R圖如下:</p><p>  圖4.1 管理員E-R圖</p><p>  學生用戶有用戶名(學號)、姓名、密碼、班級、電話屬性,通過這些屬性,來確認學生信息表的

49、信息,其中主鍵為用戶名(學號),其E-R圖如下:</p><p>  圖4.2 學生用戶E-R圖</p><p>  設備信息表,是用來存儲設備的基本信息,包括設備名稱、設備編號、是否可接、地址、管理員、管理員電話,其中編號為主鍵,其E-R圖如下:</p><p>  圖4.3 設備信息E-R圖</p><p>  學生預借記錄是用來儲存有學

50、生預借記錄信息的,學生通過查詢此表可以查到自己預借設備記錄。其屬性有學生學號,預借設備編號、預借設備名稱、預借時間點四個屬性。主鍵Id,其E-R圖如下:</p><p>  圖4.4預借記錄E-R圖</p><p>  對于各個實體之間的關系E-R圖如下:</p><p>  圖 4.5 實體關系圖</p><p>  (二)數據庫物理結構設

51、計</p><p>  依據數據庫的原理,并結合以上E-R圖,經過轉化,即可進行數據庫的物理設計?;谝陨蠑祿斓倪壿嬙O計,考慮程序設計的簡易性,同時考慮題目的時間,該系統(tǒng)的數據庫采用SQL建立一個數據庫,在其下創(chuàng)建4個數據表,其結構分別如下各表:</p><p>  表4-1 數據表清單</p><p>  表4-2 administrator表</p>

52、;<p>  表4-3 student表</p><p>  表4-4 equipment表</p><p>  表4-5 borrow表</p><p>  六、系統(tǒng)開發(fā)及編碼實現</p><p>  (一)服務器端的設計---搭建web服務器</p><p>  本軟件是C/S結構的系統(tǒng),因此要先搭建

53、服務器端,利用JCreator Pro 編寫servlet來提供服務,并將其部署在Tomcat下。創(chuàng)建不同的servlet來提供不同的服務。</p><p>  在JCreator Pro新建工程名myweb1,編譯成的.class文件位置在tomcat服務器web1\WEB-INF\classes下,web1為站點。如下圖所示:</p><p>  圖5.1 服務器端結構和servlet

54、位置</p><p>  (二)連接數據庫模塊</p><p>  dbconn類是用來連接數據庫和操作數據庫的,并返回操作執(zhí)行的值。</p><p> ?。ㄈ┓掌鞴δ苣K</p><p>  除dbconn類之外,其他的類都是為service提供服務,封裝對數據庫的操作的方法。</p><p><b>

55、  其具體情況如下:</b></p><p><b>  1.注冊模塊</b></p><p>  注冊分為學生用戶注冊和管理員注冊。</p><p>  提供管理員用戶注冊servlet為registeradmin,重寫其doPost()和doGet()方法,該servlet是用來處理管理員用戶注冊請求。注冊的參數有Idadmin

56、,Passwordadmin,Nameadmin,Teladmin,其url為:</p><p>  http://10.0.2.2:8080/web1/registeradmin。</p><p>  提供學生用戶注冊servlet為svlt_getdata,重寫其doPost()和doGet()方法,該servlet是用來處理學生用戶注冊請求。注冊的參數有Idstu,Namestu,P

57、asswordstu,Classstu,Telstu,其url為:</p><p>  http://10.0.2.2:8080/web1/registerstu</p><p><b>  2.登錄模塊</b></p><p>  登陸分為學生用戶登陸和管理員登陸。</p><p>  提供用戶登錄的servlet為L

58、oadingadmin,重寫其doPost()和doGet()方法,該servlet是用來處理學生用戶的請求。登錄的參數有Idadmin、Passwordadmin,其url為:</p><p>  http://10.0.2.2:8080/web1/Loadingadmin。</p><p>  提供用戶登錄的servlet為Loading,重寫其doPost()和doGet()方法,該

59、servlet是用來處理學生用戶的請求。登錄的參數有Idstu、Passwordstu,其url為:</p><p>  http://10.0.2.2:8080/web1/Loading。</p><p><b>  3.設備查詢模塊</b></p><p>  設備查詢分為學生用戶查詢和管理員查詢。</p><p>

60、  提供管理員設備查詢servlet為admin_saerch_equipment,重寫其doPost()和doGet()方法,該servlet是用來處理管理員查詢特定設備的請求。查詢設備參數為EName,其url為:</p><p>  http://10.0.2.2:8080/web1/admin_saerch_equipment</p><p>  提供學生用戶設備查詢servlet

61、為student_saerch_equipment,重寫其doPost()和doGet()方法,該servlet是用來處理學生查詢特定設備的請求。查詢設備參數為EIsendetail,其url為:</p><p>  http://10.0.2.2:8080/web1/student_saerch_equipment。</p><p>  4.管理員學生用戶查詢模塊</p>

62、<p>  管理員查詢學生用戶分為查詢特定用戶和查詢所有用戶。</p><p>  提供特定用戶查詢servlet為admin_search_student_message,重寫其doPost()和doGet()方法,該servlet用來處理管理員查詢特定學生用戶信息的請求。管理員查詢特定學生用戶參數有Namestu,其url為:</p><p>  http://10.0.2.

63、2:8080/web1/admin_search_student_message。</p><p>  5.查詢所有用戶模塊</p><p>  提供所有用戶查詢servlet為admin_search_allstudent_message,重寫其doPost()和doGet()方法, 該servlet用來處理管理員用戶查詢所有學生用戶信息的請求。因為是查詢所有學生用戶,所以不需要提供任何

64、參數,只需要通過點擊查詢所有這個按鈕便可以查詢出所有,其url為:</p><p>  http://10.0.2.2:8080/web1/admin_search_allstudent_message。</p><p><b>  6.新增設備模塊</b></p><p>  提供管理員添加設備servlet為equipment_add,重寫

65、其doPost()和doGet()方法,該servlet是用來處理管理員用戶發(fā)布新設備的請求。對發(fā)布的設備需要提供參數有設備名稱、設備編號、設備是否可接、設備的地址,設備管理員、設備管理員電話參數,其url為:</p><p>  http://10.0.2.2:8080/web1/equipment_add。</p><p>  (四)設計安卓客戶端UI界面</p><

66、;p>  在Eclipse安裝好了ADT插件并且導入了AndroidSDK后,創(chuàng)建一個工程(android project),此工程是作為設備管理系統(tǒng)的客戶端,是為大用戶下載使用的,所以,該UI界面的主要要求是要操作性強和交互簡單。Android project名稱:EQ(Equipment Qury的首字母大寫)</p><p>  我的工程結構如圖所示:</p><p>  圖5

67、.2 客戶端系統(tǒng)結構</p><p>  下面就來簡單說說各個class文件的功能和作用:</p><p>  Admin_equipment_manage.java 是管理員管理設備界面;</p><p>  Admin_manage_studentuser.java是管理員管理學生用戶界面;</p><p>  Admin_message

68、_modify.java是管理員修改個人信息界面;</p><p>  Admin_modify_equipment.java是管理員修改設備信息界面;</p><p>  Equipmentadd.java是管理新增設備界面;</p><p>  Loading.java 是剛啟動系統(tǒng)主界面,可以登錄或者注冊;</p><p>  M

69、ainadmin.java是管理員登陸成功后的主界面;</p><p>  Mainmessagestu.java是學生用戶個人信息界面;</p><p>  Mainsearchstu.java是學生用戶登陸后主界面;</p><p>  Registerstu.java 是學生注冊界面;</p><p>  Registeradmin.

70、java是管理員注冊界面; </p><p>  Show_history_borrow.java是學生查詢預借記錄界面;</p><p>  Stu_message_modify.java是學生修改人信息界面;</p><p>  Student_equipment_detailmessage.java是學生看看設備詳細信息界面。</p><p

71、> ?。ㄎ澹┚唧w功能代碼實現</p><p><b>  1. 注冊界面</b></p><p>  對于一個系統(tǒng)的開始,首先必須的是用戶的注冊界面,注冊模塊是為了登錄系統(tǒng)所進行的獲取通行證的步驟,注冊所有的信息都將提交給數據庫進行存儲,注冊的信息將作為用戶在本系統(tǒng)進行一切活動的標識。注冊界面如下:</p><p><b>  

72、圖5.3 注冊界面</b></p><p>  以學生注冊為例,在輸入框內輸入注冊信息,點擊確定按鈕便可以注冊,主要代碼如下:</p><p>  EditText idstu = (EditText)findViewById(R.id.idstu);</p><p>  EditText passwordstu = (EditText)findView

73、ById(R.id.passwordstu);</p><p>  EditText passwordstusencond = (EditText)findViewById(R.id.passwordstusencond);</p><p>  EditText namestu = (EditText)findViewById(R.id.namestu);</p><p

74、>  EditText telstu = (EditText)findViewById(R.id.telstu);</p><p>  EditText classstu = (EditText)findViewById(R.id.classstu);</p><p>  String Idstu = idstu.getText().toString().trim();</p&

75、gt;<p>  String Passwordstu = passwordstu.getText().toString().trim();;</p><p>  String Passwordstusencond = passwordstusencond.getText().toString().trim();;</p><p>  String Namestu = nam

76、estu.getText().toString().trim();;</p><p>  String Telstu = telstu.getText().toString().trim();;</p><p>  String Classstu = classstu.getText().toString().trim();;</p><p>  if(Passwo

77、rdstu.equals(Passwordstusencond)){if(Idstu.equals("")||Passwordstu.equals("")||Passwordstusencond.equals("")||Namestu.equals("")||Telstu.equals("")||Classstu.equals(&quo

78、t;")){</p><p>  Toast.makeText(Registerstu.this, "注冊信息請?zhí)顚懲暾?quot;, Toast.LENGTH_LONG).show();; </p><p><b>  }else{</b></p><p>  String URL="http://10.0.2

79、.2:8080/web1/registerstu";</p><p>  List<NameValuePair> </p><p>  params=new ArrayList<NameValuePair>();</p><p>  params.add(new BasicNameValuePair("Idstu"

80、;,Idstu));</p><p>  params.add(new BasicNameValuePair("Passwordstu",Passwordstu));</p><p>  params.add(new BasicNameValuePair("Namestu",Namestu));</p><p>  param

81、s.add(new BasicNameValuePair("Telstu",Telstu));</p><p>  params.add(new BasicNameValuePair("Classstu",Classstu));</p><p>  new HttpThread(params,URL).start();</p><

82、p><b>  }</b></p><p><b>  }else{</b></p><p><b>  ;</b></p><p><b>  }</b></p><p>  運行到這里就要執(zhí)行HttpThread類了,其的代碼如下:</p&

83、gt;<p><b>  //線程</b></p><p>  class HttpThread extends Thread{</p><p>  List<NameValuePair> params;</p><p>  String url=null;</p><p>  public H

84、ttpThread( List<NameValuePair> params,String url){</p><p>  this.params= params;</p><p>  this.url=url;</p><p><b>  }</b></p><p><b>  @Override&

85、lt;/b></p><p>  public void run() {</p><p>  registerResult = postData(params,url);</p><p>  //判定注冊成功后跳轉到登陸頁面</p><p>  if(registerResult.equals("true")){&l

86、t;/p><p>  Message msg1 = new Message();</p><p>  msg1.obj = registerResult;</p><p>  handler.sendMessage(msg1); </p><p><b>  }</b></p><p><b&g

87、t;  else{</b></p><p>  Toast.makeText(Registerstu.this,"注冊失?。≌堉卦?quot;, Toast.LENGTH_LONG).show();</p><p><b>  }</b></p><p><b>  }</b></p>

88、<p>  public String postData(List<NameValuePair> params,String url){</p><p>  String result = "";</p><p>  InputStream is = null;</p><p>  String line = null;&l

89、t;/p><p>  String URL=url;</p><p><b>  try{</b></p><p>  HttpPost request=new HttpPost(URL);</p><p>  request.setEntity(new UrlEncodedFormEntity(params,HTTP.UT

90、F_8));</p><p>  HttpResponse response=new DefaultHttpClient().execute(request);</p><p>  if (response.getStatusLine().getStatusCode() == 200) { </p><p>  //result = EntityUtils.toSt

91、ring(response.getEntity(), "UTF-8");</p><p>  is = response.getEntity().getContent();</p><p>  BufferedReader read = new BufferedReader(new InputStreamReader(is));</p><p>

92、  while((line=read.readLine())!=null){</p><p>  result = result + line;</p><p><b>  }</b></p><p><b>  } else {</b></p><p>  //Log.i("HttpPo

93、st", "HttpPost方式請求失敗");</p><p>  result = "-100";</p><p><b>  }</b></p><p>  }catch(Exception e){</p><p>  e.printStackTrace();<

94、/p><p><b>  }</b></p><p>  return result;</p><p><b>  }}</b></p><p>  執(zhí)行完這個方法體后就是到了hander方法了,其代碼如下:</p><p>  handler=new Handler(){<

95、;/p><p>  public void handleMessage(Message msg1){</p><p>  String panding=(String)msg1.obj; if(panding.equals("true")){</p><p>  Toast.makeText(Registerstu.this, &qu

96、ot;恭喜!注冊成功錄,請登錄", Toast.LENGTH_LONG).show(); </p><p>  Intent intent=new Intent();</p><p>  intent.setClass(Registerstu.this, Loading.class);</p><p>  Registerstu.this.startAc

97、tivity(intent); </p><p>  Registerstu.this.finish();</p><p><b>  }else{</b></p><p>  Toast.makeText(Registerstu.this, "注冊失敗,請重試!", Toast.LENGTH_LONG).sho

98、w();</p><p><b>  }</b></p><p><b>  }</b></p><p>  //handler的}</p><p><b>  };</b></p><p>  運行到此,學生注冊算是完成了。由于管理員注冊和學生注冊類似

99、,因此不再說明管理員注冊界面。</p><p><b>  2.登錄界面</b></p><p>  登錄界面作為系統(tǒng)的門面,登錄界面完成的功能是驗證所登錄用戶的賬號是否正確,以驗證是否有進入系統(tǒng)的權限。登錄界面如下:</p><p><b>  圖5.4 登錄界面</b></p><p>  登錄

100、界面主要為驗證賬號和密碼的功能,登錄界面分為學生用戶登錄和管理員登錄,下面來說說主要功能的實現:</p><p>  點擊登錄按鈕之后先獲取賬號和密碼,接著判定用戶的類型,根據用戶的類型相向不同的serverlet發(fā)送請求,主要功能代碼如下:</p><p>  m_RadioGroup.setOnCheckedChangeListener(new RadioGroup.OnChecked

101、ChangeListener() { </p><p>  @Override </p><p>  public void onCheckedChanged(RadioGroup group, int checkedId) </p><p><b>  { </b></p><p>  switch(check

102、edId){</p><p>  case R.id.load_radioButton1:</p><p>  userleibie="student";</p><p><b>  break;</b></p><p>  case R.id.load_radioButton2: </p>

103、;<p>  userleibie="admin";</p><p><b>  break;</b></p><p><b>  }</b></p><p>  //Toast.makeText(Loading.this, userleibie, Toast.LENGTH_LONG).s

104、how();</p><p><b>  } </b></p><p><b>  }); </b></p><p>  EditText idloading = (EditText)findViewById(R.id.idloading);</p><p>  EditText passwor

105、dloading = (EditText)findViewById(R.id.passwordloading);</p><p>  String Idloading = idloading.getText().toString();</p><p>  String Passwordloading = passwordloading.getText().toString();</p

106、><p>  //判定用戶類別后跳轉到相應的主界面</p><p>  if(userleibie.equals("student")){</p><p>  //Toast.makeText(Loading.this, "用戶類別:"+userleibie, Toast.LENGTH_LONG).show();</p>

107、;<p>  String URL="http://10.0.2.2:8080/web1/Loading";</p><p>  List<NameValuePair> params=new ArrayList<NameValuePair>();</p><p>  params.add(new BasicNameValuePair

108、("Idstu",Idloading));</p><p>  params.add(new BasicNameValuePair("Passwordstu",Passwordloading));</p><p>  new HttpThread(params,URL).start();</p><p>  }else if(

109、userleibie.equals("admin")){</p><p>  String URL="http://10.0.2.2:8080/web1/Loadingadmin";</p><p>  List<NameValuePair> params=new ArrayList<NameValuePair>();<

110、/p><p>  params.add(new BasicNameValuePair("Idadmin",Idloading));</p><p>  params.add(new BasicNameValuePair("Passwordadmin",Passwordloading));</p><p>  new HttpThr

111、ead2(params,URL).start();</p><p><b>  }</b></p><p>  服務器根據傳送過來的數據檢索用戶名是否存在,密碼是否正確,如果正確則返回true,否則返回false,客戶端接收到返回數據后,判定是否為true,是就進入到相應的主頁,功能代碼:</p><p>  if(LoadResult.equ

112、als("true")){</p><p>  //System.out.println(LoadResult);</p><p>  EditText idloading2 = (EditText)findViewById(R.id.idloading);</p><p>  String Idloading2 = idloading2.get

113、Text().toString();</p><p>  Intent intent=new Intent();</p><p>  intent.putExtra("Idstu", Idloading2+"");</p><p>  intent.setClass(Loading.this, Mainsearchstu.cl

114、ass);</p><p>  Loading.this.startActivity(intent);</p><p>  Loading.this.finish();</p><p><b>  }</b></p><p><b>  else{</b></p><p> 

115、 Message msg1 = new Message();</p><p>  msg1.obj = LoadResult;</p><p>  handler.sendMessage(msg1);</p><p><b>  }</b></p><p><b>  }</b></p>

116、<p>  如果登陸成功,則跳轉到主界面,如果失敗,主線程就會收到message,提示登錄失敗,功能代碼:</p><p>  handler=new Handler(){</p><p>  public void handleMessage(Message msg1){</p><p>  Toast.makeText(Loading.this,

117、"登錄失敗,請重試!", Toast.LENGTH_LONG).show(); </p><p><b>  }</b></p><p>  //handler的}</p><p><b>  };</b></p><p>  3.學生用戶設備查詢界面</p>&

118、lt;p>  學生用戶通過輸入所需查詢的設備名稱時,便可以從數據庫中查詢到所查詢的設備。需要說明的是,默認的查詢條件為“可借”,如果需要查詢全部設備,可以選擇“全部”。在沒有輸入任何關鍵字的情況下,查詢結果為選擇條件下的所有設備。例如,輸入框沒有輸入任何字,條件是“可借”,那么查詢的結果是顯示所有可借的設備。查詢“計算機”界面如下:</p><p>  圖5.5 設備查詢界面</p><

119、p>  設備查詢功能主要代碼如下:</p><p><b>  偵聽搜索按鈕</b></p><p>  Button search_mainsearchstu=(Button) findViewById(R.id.search_mainsearchstu);search_mainsearchstu.setOnClickListener(new search_m

120、ainsearchstu());</p><p><b>  點擊事件發(fā)生后</b></p><p>  public class search_mainsearchstu implements OnClickListener {</p><p><b>  @Override</b></p><p&g

121、t;  public void onClick(View v) {</p><p>  //獲得搜索設備的名稱并賦值給EName</p><p>  EditText EName_search = (EditText)findViewById(R.id.EName_search_mainsearchstu);</p><p>  String EName = ENa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論