

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 存檔日期: 存檔編號: </p><p><b> 本科生畢業(yè)設(shè)計</b></p><p><b> 論 文 題 目:</b></p><p> 姓 名:
2、 </p><p> 學(xué) 院: 教育科學(xué)學(xué)院 </p><p> 專 業(yè): 教育技術(shù)學(xué) </p><p> 年 級 、 學(xué) 號: </p>
3、<p> 指 導(dǎo) 教 師: </p><p><b> 目 錄</b></p><p><b> 摘 要1</b></p><p><b> 一、前 言1</b></p><p><
4、;b> ?。ㄒ唬┰O(shè)計目標(biāo)1</b></p><p><b> (二)系統(tǒng)價值1</b></p><p> 二、系統(tǒng)需求分析2</p><p> 三、總體設(shè)計與系統(tǒng)結(jié)構(gòu)2</p><p><b> ?。ㄒ唬┛傮w設(shè)計2</b></p><p>&
5、lt;b> ?。ǘ┫到y(tǒng)結(jié)構(gòu)3</b></p><p> ?。ㄈ╅_發(fā)工具介紹和關(guān)鍵技術(shù)3</p><p> 1. Eclipse的介紹3</p><p> 2.JCreator與Tomcat介紹5</p><p> 3.關(guān)鍵技術(shù)介紹6</p><p> 四、系統(tǒng)功能設(shè)計7<
6、/p><p><b> ?。ㄒ唬┣芭_管理7</b></p><p><b> 1. 注冊7</b></p><p><b> 2. 用戶登錄8</b></p><p><b> 3. 設(shè)備查詢8</b></p><p>&
7、lt;b> 4. 用戶管理8</b></p><p><b> 5. 設(shè)備管理8</b></p><p><b> (二)后臺管理8</b></p><p><b> 1. 注冊管理9</b></p><p><b> 2. 登錄管
8、理9</b></p><p> 3. 設(shè)備查詢管理9</p><p><b> 4. 用戶管理9</b></p><p><b> 5. 設(shè)備管理9</b></p><p> 五、數(shù)據(jù)庫結(jié)構(gòu)設(shè)計9</p><p> ?。ㄒ唬?shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計9
9、</p><p> ?。ǘ?shù)據(jù)庫物理結(jié)構(gòu)設(shè)計11</p><p> 六、系統(tǒng)開發(fā)及編碼實(shí)現(xiàn)13</p><p> ?。ㄒ唬┓?wù)器端的設(shè)計---搭建java web服務(wù)器13</p><p> (二)連接數(shù)據(jù)庫模塊14</p><p> ?。ㄈ┓?wù)器功能模塊14</p><p>
10、 1. 注冊模塊14</p><p> 2. 登錄模塊15</p><p> 3. 設(shè)備查詢模塊15</p><p> 4. 特定用戶查詢模塊15</p><p> 5. 查詢所有用戶模塊15</p><p> 6. 新增設(shè)備模塊16</p><p> ?。ㄋ模┛蛻舳说脑O(shè)
11、計---設(shè)計 UI界面16</p><p> ?。ㄎ澹┚唧w功能代碼實(shí)現(xiàn)17</p><p> 1. 注冊界面17</p><p> 2. 登錄界面20</p><p> 3. 學(xué)生用戶設(shè)備查詢界面23</p><p> 4. 管理員界面28</p><p> 5. 管理學(xué)生
12、用戶界面28</p><p> 6. 管理設(shè)備界面29</p><p> 7. 新增設(shè)備界面33</p><p><b> 七、用戶體驗(yàn)35</b></p><p> ?。ㄒ唬?用戶注冊體驗(yàn)35</p><p> ?。ǘ┯脩舻卿涹w驗(yàn)36</p><p>
13、 ?。ㄈ┰O(shè)備查詢體驗(yàn)37</p><p> ?。ㄋ模┯脩艄芾眢w驗(yàn)38</p><p> ?。ㄎ澹┰O(shè)備管理體驗(yàn)38</p><p><b> 八、總 結(jié)39</b></p><p><b> 參考文獻(xiàn)41</b></p><p> Abstract42<
14、;/p><p> 附錄一 其它核心代碼43</p><p> 基于Android平臺的設(shè)備查詢系統(tǒng)設(shè)計</p><p><b> [摘要]: </b></p><p> 基于web的傳統(tǒng)設(shè)備查詢應(yīng)用適合在PC機(jī)上使用,難以通過移動終端隨時隨地的使用,而移動終端尤其是智能手機(jī)的出現(xiàn)使得移動應(yīng)用成為可能。基于Andro
15、id平臺的設(shè)備查詢系統(tǒng)能夠通過Android終端實(shí)現(xiàn)設(shè)備隨時隨地的查詢和管理,擴(kuò)大用戶的使用空間。本篇文章闡述了在Android平臺下設(shè)備查詢系統(tǒng)的設(shè)計與實(shí)現(xiàn)過程,其目的是讓人們能夠在基于Android平臺的移動設(shè)備上享受快捷方便的設(shè)備信息查詢服務(wù)。本系統(tǒng)采用C/S結(jié)構(gòu),使用Android布局技術(shù)設(shè)計頁面布局,實(shí)現(xiàn)了用戶注冊、登錄、查詢設(shè)備信息以及管理員用戶(老師)對普通用戶(學(xué)生)管理和普通用戶預(yù)借設(shè)備等功能,并在模擬器上通過了測試。
16、</p><p> [關(guān)鍵詞]:設(shè)備查詢系統(tǒng);Android開發(fā);Eclipse</p><p><b> 一、前 言</b></p><p><b> ?。ㄒ唬┰O(shè)計目標(biāo) </b></p><p> 隨著信息技術(shù)的快速發(fā)展,移動互聯(lián)網(wǎng)時代已經(jīng)來臨。智能手機(jī)是移動互聯(lián)網(wǎng)時代一個標(biāo)志性的客戶端工具
17、,它兼具了計算機(jī)具有強(qiáng)大的計算、存儲能力和傳統(tǒng)手機(jī)方便攜帶、移動性好的優(yōu)勢,同時還具有自己的操作系統(tǒng),能夠安裝、卸載軟件,可以通過移動通信網(wǎng)絡(luò)來實(shí)現(xiàn)無線網(wǎng)絡(luò)接入,可以補(bǔ)充甚至代替?zhèn)鹘y(tǒng)web的諸多功能,因此,移動終端技術(shù)必然有良好的發(fā)展前景。</p><p> 基于Android的設(shè)備查詢系統(tǒng)是適應(yīng)移動終端快速良好發(fā)展的具體體現(xiàn), 該系統(tǒng)按功能的不同分為用戶管理、設(shè)備管理兩個部分。用戶按照使用者的不同分為管理員和
18、普通用戶(學(xué)生),兩類用戶都是使用同一個平臺,只是權(quán)限不同。學(xué)生用戶只能注冊、查詢設(shè)備信息、預(yù)借等功能;管理員擁有可以對學(xué)生用戶賬號進(jìn)行注銷,查詢學(xué)生用戶信息,實(shí)時更新設(shè)備信息,發(fā)布新設(shè)備等權(quán)限。</p><p><b> ?。ǘ┰O(shè)計的價值</b></p><p> 就目前我國在設(shè)備管理移動客戶端的開發(fā)與應(yīng)用來說,這方面還不是很成熟,多數(shù)學(xué)校設(shè)備管理系統(tǒng)還是采用傳
19、統(tǒng)的人管理設(shè)備模式,致使設(shè)備及時信息得不到擴(kuò)散,設(shè)備得不到充分的利用,降低了設(shè)備的應(yīng)有的價值。在這種情況下,基于Android平臺的設(shè)備查詢系統(tǒng)屬于一個計較新的應(yīng)用。該設(shè)計能及時方便地查詢設(shè)備信息、發(fā)布信息、預(yù)借設(shè)備、管理設(shè)備,做到設(shè)備信息的實(shí)時化,彌補(bǔ)了設(shè)備傳統(tǒng)管理中信息不能實(shí)時化的缺陷?,F(xiàn)今,對于校內(nèi)的設(shè)備管理者和使用來說,智能手機(jī)是一個必備的物品,手機(jī)客戶端這種形式的設(shè)備查詢系統(tǒng),能更加方便設(shè)備的管理和貼近學(xué)生的的生活,對設(shè)備的管
20、理和充分利用起到了促進(jìn)作用。</p><p><b> 二、系統(tǒng)需求分析</b></p><p> 大學(xué)的日常教學(xué)和生活中,學(xué)生由于學(xué)習(xí)或者生活的需要,對學(xué)校設(shè)備有較大的需求,而學(xué)校的設(shè)備在傳統(tǒng)的人管理設(shè)備模式中往往處于閑置狀態(tài)但又不能外借給學(xué)生,滿足學(xué)生的需求。而這種管理模式下多半是由于設(shè)備的信息得不到及時的傳播造成的。另一方面,設(shè)備的擁有方(校方)又希望設(shè)備得
21、到充分的利用,使使用價值最大化。為了解決這個矛盾,學(xué)生和校方都希望能夠讓設(shè)備信息得到及時的傳播,滿足學(xué)生的需求和校方的期望。設(shè)備管理系統(tǒng)就是基于這種矛盾應(yīng)運(yùn)而生的。該系統(tǒng)能夠解決設(shè)備信息傳播不及時的矛盾,方便設(shè)備的管理和貼近學(xué)生的的生活,具有較大使用價值。</p><p> 三、總體設(shè)計與系統(tǒng)結(jié)構(gòu)</p><p> 為了使軟件開發(fā)能夠及時、順利進(jìn)行,開發(fā)人員進(jìn)行了長時間艱苦的學(xué)習(xí)。現(xiàn)對
22、系統(tǒng)的總體設(shè)計和系統(tǒng)結(jié)構(gòu)設(shè)計及開發(fā)工具和關(guān)鍵技術(shù)做具體說明。</p><p><b> ?。ㄒ唬┛傮w設(shè)計</b></p><p> 基于Android平臺開發(fā)的設(shè)備查詢系統(tǒng)設(shè)計的思路是:用戶角色分為學(xué)生用戶和管理員兩類;功能包括注冊、登錄、設(shè)備查詢、設(shè)備更新、管理普通用戶(學(xué)生)共五個部分。其中系統(tǒng)管理中的學(xué)生用戶權(quán)限包括注冊、登錄、設(shè)備查詢、設(shè)備預(yù)借、修改個人信息
23、四個模塊;管理員的權(quán)限則是除了注冊、登錄、設(shè)備查詢權(quán)限外,還有實(shí)時更新設(shè)備信息、管理學(xué)生用戶、修改個人信息等模塊。從管理功能的角度來看分為前臺和后臺管理兩大部分。后臺管理模塊是本系統(tǒng)最重要部分之一,它是系統(tǒng)維護(hù)和信息管理平臺。根據(jù)現(xiàn)實(shí)需要,本系統(tǒng)后臺管理用戶有兩類:管理員和學(xué)生用戶。這兩類用戶使用的系統(tǒng)管理平臺都是同一個平臺上,只不過登陸之后根據(jù)用戶的不同類型擁有相應(yīng)的權(quán)限。</p><p><b>
24、 (二)系統(tǒng)結(jié)構(gòu)</b></p><p> 本系統(tǒng)總體邏輯結(jié)構(gòu)為C/S結(jié)構(gòu),結(jié)構(gòu)圖如圖2-1所示:</p><p> 圖2.1 C/S結(jié)構(gòu)圖</p><p> (三)開發(fā)工具介紹及其關(guān)鍵技術(shù)</p><p> 1.Eclipse簡介</p><p> Eclipse 是一個開放源代碼、基于 Jav
25、a 的可擴(kuò)展集成開發(fā)平臺。它本身只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。Eclipse 自身附帶了一個標(biāo)準(zhǔn)的插件集?! ?lt;/p><p> Android工程是在Eclipse工具上編寫的,進(jìn)行android工程的編寫,首先需要在Eclipse上安裝ADT插件,并且指定SDK所在的路徑,便可以創(chuàng)建android虛擬機(jī)(模擬器)了。</p><p> 在Eclipse中創(chuàng)建
26、虛擬機(jī)的步驟如下:</p><p> (1)安裝ADT插件</p><p> 在Eclipse單擊菜單欄的Help,在Help里面選中Install NewSoftware選項(xiàng),之后便可以出現(xiàn)如下界面:</p><p> 圖2.2 ADT安裝步驟界面</p><p> 指定好ADT的路徑后,就可以開始安裝ADT插件。</p>
27、;<p> (2)導(dǎo)入AndroidSDK</p><p> 安裝好ADT插件后,單擊Eclipse菜單欄Windows下找到preperence,點(diǎn)擊進(jìn)入,得到如下界面:</p><p> 圖2.3 AndroidSDK安裝界面</p><p> 如上圖,在左邊框架選項(xiàng)選中Android,在SDK Location下導(dǎo)入AndroidSDK路
28、徑,點(diǎn)擊Apply應(yīng)用,就會導(dǎo)入Android的各個版本。</p><p> (3)創(chuàng)建虛擬機(jī)(模擬器)</p><p> 安裝好ADT和導(dǎo)入AndroidSDK成功后,就可以在菜單欄Windows選項(xiàng)下找到AVD manage選項(xiàng),單擊進(jìn)入后便有管理android虛擬機(jī)界面,在創(chuàng)建界面設(shè)置好虛擬機(jī)參數(shù)并確定后,就創(chuàng)建好了一個android虛擬機(jī)。</p><p&g
29、t; 在創(chuàng)建好虛擬機(jī)后,點(diǎn)擊start按鈕便可以運(yùn)行選中的android虛擬機(jī), 2.3.3系統(tǒng)虛擬機(jī)下圖:</p><p> 圖2.4 android虛擬機(jī)視圖</p><p> 虛擬機(jī)模擬的是android智能手機(jī)的界面,通過操作虛擬機(jī)可以體驗(yàn)到android智能手機(jī)的大部分應(yīng)用。同時模擬器是作為開發(fā)的Android應(yīng)用運(yùn)行的工具,他提供最基本的人機(jī)交互功能。</p>
30、<p> 2.JCreator與Tomcat介紹</p><p> Jcreator是Xinox Software公司開發(fā)的一個用于Java程序設(shè)計的集成開發(fā)環(huán)境(IDE),具有編輯、調(diào)試、運(yùn)行Java程序的功能。它分為LE和Pro版本。LE版本功能上受到一些限制,是免費(fèi)版本。Pro版本功能最全,但這個版本是一個共享軟件。這個軟件比較小巧,對硬件要求不是很高,完全用C++寫的,速度快、效率高。具
31、有語法著色、代碼自動完成、代碼參數(shù)提示、工程向?qū)?、類向?qū)У裙δ?。第一次啟動時提示設(shè)置JavaJDK主目錄及JDKJavaDoc目錄,軟件自動設(shè)置好類路徑、編譯器及解釋器路徑,還可以在幫助菜單中使用JDKHelp。</p><p> 圖2.5 JCreator Pro版本界面視圖</p><p> 本系統(tǒng)是基于C/S架構(gòu)的,所以需要在JCreator上創(chuàng)建服務(wù)器端,利用servlet來提
32、供服務(wù),并將其部署在Tomcat下。需要解決的是創(chuàng)建不同的servlet來提供不同的服務(wù)。</p><p> Tomcat是美國Apache 軟件基金會Jakarta 項(xiàng)目中的一個核心項(xiàng)目。它是由Apache、Sun 和其他一些公司及個人共同開發(fā)而成。目前,Tomcat 廣受程序員的喜歡,因?yàn)樗\(yùn)行時占用的系統(tǒng)資源較小,擴(kuò)展性較好,還支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)等常用的功能;同時,它還在不斷的改進(jìn)和完善
33、中,程序員可以更改它或在其中加入新的功能。</p><p> Tomcat 是一個輕量級應(yīng)用服務(wù)器,它在中小型系統(tǒng)或者并發(fā)訪問用戶規(guī)模不大的場合下被普遍使用,受到廣泛的好評,是開發(fā)和調(diào)試程序的首選。</p><p><b> 3. 關(guān)鍵技術(shù)介紹</b></p><p> 本軟件采用java作為開發(fā)語言,Android頁面布局和后臺服務(wù)器數(shù)
34、據(jù)存儲是開發(fā)本軟件的關(guān)鍵技術(shù),用戶界面的設(shè)計是否美觀和合理直接影響用戶體驗(yàn),因此運(yùn)用好布局技術(shù)是直接和用戶體驗(yàn)相關(guān),而數(shù)據(jù)存儲技術(shù)則記錄了用戶所有的操作數(shù)據(jù)和用戶所需要提取的數(shù)據(jù)。</p><p> 在Android中,UI通常使用xml技術(shù)設(shè)計,而xml中控件的位置和狀態(tài)則離不開布局的使用,Android中常用的布局有五種,分別是:LinearLayout、AbsoluteLayout、RelativeLay
35、out、FrameLayout、TableLayout,由于布局的使用,并且布局之間可以互相嵌套,使得android軟件UI的設(shè)計變得非常靈活自如,非常復(fù)雜的界面設(shè)計也是通過合理的布局實(shí)現(xiàn)的。本系統(tǒng)開發(fā)采用的主要是LinearLayout布局。</p><p> 另外,Json數(shù)據(jù)交換技術(shù)也是本設(shè)計的關(guān)鍵技術(shù)之一。在服務(wù)器客戶端之間的數(shù)據(jù)傳輸采用json數(shù)據(jù)交換格式,服務(wù)器把數(shù)據(jù)放在bilder數(shù)據(jù)流里,在客戶
36、端通過json解析出特定數(shù)據(jù)值,從而便捷地解決了服務(wù)器與客戶端的數(shù)據(jù)交互。</p><p><b> 四、系統(tǒng)功能設(shè)計</b></p><p> 本系統(tǒng)采用C/S模式開發(fā),客戶端和服務(wù)器端是獨(dú)立分開的,這樣的分開也就形成了前臺管理和后臺管理。前臺管理注重用戶的交互是否簡便,后臺管理注重功能的邏輯和與數(shù)據(jù)庫數(shù)據(jù)交互的功能。</p><p>&
37、lt;b> (一)前臺管理</b></p><p> 前臺客戶端的所有功能畫出的功能流程圖如下:</p><p> 圖3.1 前臺客戶端流程圖</p><p><b> 1.注冊</b></p><p> 用戶通過手機(jī)客戶端主界面上的注冊按鈕注冊新的學(xué)生用戶,注冊用戶的信息通過服務(wù)器端和數(shù)據(jù)庫
38、連接,數(shù)據(jù)庫中的用戶表則會生成你注冊的信息,同時在手機(jī)客戶端提示注冊成功。</p><p><b> 2.用戶登錄</b></p><p> 用戶登錄分為兩類用戶:管理員和學(xué)生用戶??梢酝ㄟ^登錄界面中選定身份登錄,服務(wù)器根據(jù)登錄選定的信息選擇數(shù)據(jù)庫中的數(shù)據(jù)表進(jìn)行匹配,用戶名和密碼正確則登錄成功。</p><p><b> 3.設(shè)
39、備查詢</b></p><p> 在查詢界面輸入所需查詢設(shè)備名稱的關(guān)鍵字,通過服務(wù)器端查詢數(shù)據(jù)庫返回你所查詢的設(shè)備信息,設(shè)備信息包括:設(shè)備名稱、編號、是否可接、設(shè)備的地址等信息。</p><p><b> 4.用戶管理</b></p><p> 用戶管理模塊是管理員對學(xué)生用戶賬號的管理,對于某些賬號不使用了,比如:學(xué)生畢業(yè)等原
40、因不再使用賬號的問題,管理員有權(quán)利對這類賬號進(jìn)行刪除,同時可以學(xué)生用戶的用戶名查詢學(xué)生用戶的信息。</p><p><b> 5.設(shè)備管理</b></p><p> 這個功能也只有管理員身份才能擁有,管理員通過此功能,可以對設(shè)備進(jìn)行新增、刪除功能、修改設(shè)備信息。</p><p> 通過這個模塊,管理員可以對新增的設(shè)備進(jìn)行管理,實(shí)時發(fā)布新增
41、設(shè)備。還可以及時對設(shè)備信息及時修改,避免信息錯誤。</p><p><b> ?。ǘ┖笈_管理</b></p><p> 后臺服務(wù)器端的主要任務(wù)是根據(jù)接收到的客戶端發(fā)送過來的請求,根據(jù)客戶端不同功能模塊,通過檢索數(shù)據(jù)庫不同表格,把檢索結(jié)果返回給客戶端顯示給以用戶,其基本流程圖如下:</p><p> 圖3.2 后臺服務(wù)器端流程圖</p
42、><p><b> 1.注冊管理</b></p><p> 用戶注冊提交:向服務(wù)器提交用戶注冊的信息,同時新增到數(shù)據(jù)庫。 </p><p> 注冊管理是后臺的一個重要內(nèi)容,注冊只提供學(xué)生用戶的注冊,這樣可以保證設(shè)備館用戶權(quán)限的穩(wěn)定和安全。通過注冊用戶,用戶才能享受來自手機(jī)客戶端的所有功能。通過手機(jī)客戶端注冊用戶,來作為以后通過手機(jī)客戶端登錄設(shè)
43、備館管理系統(tǒng)的唯一身份認(rèn)證。</p><p><b> 2.登錄管理</b></p><p> 用戶登錄管理:根據(jù)你登錄的信息向服務(wù)器發(fā)送請求,然后和數(shù)據(jù)庫信息進(jìn)行對比,來確認(rèn)用戶登錄的成功與否。 </p><p> 登錄時候,首先你必須選定你的登錄身份,是以學(xué)生用戶還是管理員身份登錄,根據(jù)你選擇的不同身份,服務(wù)器向不同的數(shù)據(jù)庫表來核對信
44、息,以通過對用戶信息的核對,以確定所登錄的賬號密碼是否正確。</p><p><b> 3.設(shè)備查詢管理</b></p><p> 設(shè)備查詢管理主要通過設(shè)備的幾個關(guān)鍵信息進(jìn)行查詢,根據(jù)設(shè)備名稱向數(shù)據(jù)庫提交信息進(jìn)行條件檢索。通過輸入信息的檢索,返回檢索設(shè)備的基本信息,比如:設(shè)備名稱、是否可接、設(shè)備的地點(diǎn)等。</p><p><b>
45、 4.用戶管理</b></p><p> 用戶管理,是管理員根據(jù)實(shí)際需要對用戶進(jìn)行注銷,是與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)更新與交互的服務(wù)。</p><p><b> 5.設(shè)備管理</b></p><p> 后臺的設(shè)備管理,是處理管理員把新設(shè)備添加到設(shè)備數(shù)據(jù)庫表的服務(wù),通過添加到數(shù)據(jù)庫表,學(xué)生用戶才能在設(shè)備查詢功能中查詢到新更新的設(shè)備信息。
46、同時,對于已經(jīng)歸還的設(shè)備要及時修改是否可借,也就是更新從設(shè)備表的相應(yīng)信息。</p><p><b> 五、數(shù)據(jù)庫結(jié)構(gòu)設(shè)計</b></p><p> 本系統(tǒng)設(shè)計時采用的是SQL數(shù)據(jù)庫。SQL數(shù)據(jù)庫的版本是2005版。通過SQL Server Management Studio管理數(shù)據(jù)庫。以Windows身份驗(yàn)證登陸。</p><p> 配置
47、數(shù)據(jù)庫:新建數(shù)據(jù)庫QE,在其中創(chuàng)建表,分別為:student(儲存學(xué)生用戶信息)、administrator(儲存管理員信息)、equipment(儲存設(shè)備信息)、borrow(儲存學(xué)生預(yù)借記錄)。</p><p> (一)數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計</p><p> 在需求分析階段已完成該系統(tǒng)所有的數(shù)據(jù)分析。根據(jù)該階段所建立的概念模型,已經(jīng)得出滿足系統(tǒng)設(shè)計要求的幾個關(guān)系描述,該階段的主要工作
48、就是把前一階段的成果轉(zhuǎn)化為具體的數(shù)據(jù)庫。</p><p> 管理員用戶用戶名(也就是老師的工號)、密碼、姓名、電話四個屬性,通過這兩個屬性來確定管理員用戶的身份是否合法,其中用戶名(工號)為主鍵,其E-R圖如下:</p><p> 圖4.1 管理員E-R圖</p><p> 學(xué)生用戶有用戶名(學(xué)號)、姓名、密碼、班級、電話屬性,通過這些屬性,來確認(rèn)學(xué)生信息表的
49、信息,其中主鍵為用戶名(學(xué)號),其E-R圖如下:</p><p> 圖4.2 學(xué)生用戶E-R圖</p><p> 設(shè)備信息表,是用來存儲設(shè)備的基本信息,包括設(shè)備名稱、設(shè)備編號、是否可接、地址、管理員、管理員電話,其中編號為主鍵,其E-R圖如下:</p><p> 圖4.3 設(shè)備信息E-R圖</p><p> 學(xué)生預(yù)借記錄是用來儲存有學(xué)
50、生預(yù)借記錄信息的,學(xué)生通過查詢此表可以查到自己預(yù)借設(shè)備記錄。其屬性有學(xué)生學(xué)號,預(yù)借設(shè)備編號、預(yù)借設(shè)備名稱、預(yù)借時間點(diǎn)四個屬性。主鍵Id,其E-R圖如下:</p><p> 圖4.4預(yù)借記錄E-R圖</p><p> 對于各個實(shí)體之間的關(guān)系E-R圖如下:</p><p> 圖 4.5 實(shí)體關(guān)系圖</p><p> (二)數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)
51、計</p><p> 依據(jù)數(shù)據(jù)庫的原理,并結(jié)合以上E-R圖,經(jīng)過轉(zhuǎn)化,即可進(jìn)行數(shù)據(jù)庫的物理設(shè)計?;谝陨蠑?shù)據(jù)庫的邏輯設(shè)計,考慮程序設(shè)計的簡易性,同時考慮題目的時間,該系統(tǒng)的數(shù)據(jù)庫采用SQL建立一個數(shù)據(jù)庫,在其下創(chuàng)建4個數(shù)據(jù)表,其結(jié)構(gòu)分別如下各表:</p><p> 表4-1 數(shù)據(jù)表清單</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ā)及編碼實(shí)現(xiàn)</p><p> ?。ㄒ唬┓?wù)器端的設(shè)計---搭建web服務(wù)器</p><p> 本軟件是C/S結(jié)構(gòu)的系統(tǒng),因此要先搭建
53、服務(wù)器端,利用JCreator Pro 編寫servlet來提供服務(wù),并將其部署在Tomcat下。創(chuàng)建不同的servlet來提供不同的服務(wù)。</p><p> 在JCreator Pro新建工程名myweb1,編譯成的.class文件位置在tomcat服務(wù)器web1\WEB-INF\classes下,web1為站點(diǎn)。如下圖所示:</p><p> 圖5.1 服務(wù)器端結(jié)構(gòu)和servlet
54、位置</p><p> (二)連接數(shù)據(jù)庫模塊</p><p> dbconn類是用來連接數(shù)據(jù)庫和操作數(shù)據(jù)庫的,并返回操作執(zhí)行的值。</p><p> ?。ㄈ┓?wù)器功能模塊</p><p> 除dbconn類之外,其他的類都是為service提供服務(wù),封裝對數(shù)據(jù)庫的操作的方法。</p><p><b>
55、 其具體情況如下:</b></p><p><b> 1.注冊模塊</b></p><p> 注冊分為學(xué)生用戶注冊和管理員注冊。</p><p> 提供管理員用戶注冊servlet為registeradmin,重寫其doPost()和doGet()方法,該servlet是用來處理管理員用戶注冊請求。注冊的參數(shù)有Idadmin
56、,Passwordadmin,Nameadmin,Teladmin,其url為:</p><p> http://10.0.2.2:8080/web1/registeradmin。</p><p> 提供學(xué)生用戶注冊servlet為svlt_getdata,重寫其doPost()和doGet()方法,該servlet是用來處理學(xué)生用戶注冊請求。注冊的參數(shù)有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> 登陸分為學(xué)生用戶登陸和管理員登陸。</p><p> 提供用戶登錄的servlet為L
58、oadingadmin,重寫其doPost()和doGet()方法,該servlet是用來處理學(xué)生用戶的請求。登錄的參數(shù)有Idadmin、Passwordadmin,其url為:</p><p> http://10.0.2.2:8080/web1/Loadingadmin。</p><p> 提供用戶登錄的servlet為Loading,重寫其doPost()和doGet()方法,該
59、servlet是用來處理學(xué)生用戶的請求。登錄的參數(shù)有Idstu、Passwordstu,其url為:</p><p> http://10.0.2.2:8080/web1/Loading。</p><p><b> 3.設(shè)備查詢模塊</b></p><p> 設(shè)備查詢分為學(xué)生用戶查詢和管理員查詢。</p><p>
60、 提供管理員設(shè)備查詢servlet為admin_saerch_equipment,重寫其doPost()和doGet()方法,該servlet是用來處理管理員查詢特定設(shè)備的請求。查詢設(shè)備參數(shù)為EName,其url為:</p><p> http://10.0.2.2:8080/web1/admin_saerch_equipment</p><p> 提供學(xué)生用戶設(shè)備查詢servlet
61、為student_saerch_equipment,重寫其doPost()和doGet()方法,該servlet是用來處理學(xué)生查詢特定設(shè)備的請求。查詢設(shè)備參數(shù)為EIsendetail,其url為:</p><p> http://10.0.2.2:8080/web1/student_saerch_equipment。</p><p> 4.管理員學(xué)生用戶查詢模塊</p>
62、<p> 管理員查詢學(xué)生用戶分為查詢特定用戶和查詢所有用戶。</p><p> 提供特定用戶查詢servlet為admin_search_student_message,重寫其doPost()和doGet()方法,該servlet用來處理管理員查詢特定學(xué)生用戶信息的請求。管理員查詢特定學(xué)生用戶參數(shù)有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用來處理管理員用戶查詢所有學(xué)生用戶信息的請求。因?yàn)槭遣樵兯袑W(xué)生用戶,所以不需要提供任何
64、參數(shù),只需要通過點(diǎn)擊查詢所有這個按鈕便可以查詢出所有,其url為:</p><p> http://10.0.2.2:8080/web1/admin_search_allstudent_message。</p><p><b> 6.新增設(shè)備模塊</b></p><p> 提供管理員添加設(shè)備servlet為equipment_add,重寫
65、其doPost()和doGet()方法,該servlet是用來處理管理員用戶發(fā)布新設(shè)備的請求。對發(fā)布的設(shè)備需要提供參數(shù)有設(shè)備名稱、設(shè)備編號、設(shè)備是否可接、設(shè)備的地址,設(shè)備管理員、設(shè)備管理員電話參數(shù),其url為:</p><p> http://10.0.2.2:8080/web1/equipment_add。</p><p> (四)設(shè)計安卓客戶端UI界面</p><
66、;p> 在Eclipse安裝好了ADT插件并且導(dǎo)入了AndroidSDK后,創(chuàng)建一個工程(android project),此工程是作為設(shè)備管理系統(tǒng)的客戶端,是為大用戶下載使用的,所以,該UI界面的主要要求是要操作性強(qiáng)和交互簡單。Android project名稱:EQ(Equipment Qury的首字母大寫)</p><p> 我的工程結(jié)構(gòu)如圖所示:</p><p> 圖5
67、.2 客戶端系統(tǒng)結(jié)構(gòu)</p><p> 下面就來簡單說說各個class文件的功能和作用:</p><p> Admin_equipment_manage.java 是管理員管理設(shè)備界面;</p><p> Admin_manage_studentuser.java是管理員管理學(xué)生用戶界面;</p><p> Admin_message
68、_modify.java是管理員修改個人信息界面;</p><p> Admin_modify_equipment.java是管理員修改設(shè)備信息界面;</p><p> Equipmentadd.java是管理新增設(shè)備界面;</p><p> Loading.java 是剛啟動系統(tǒng)主界面,可以登錄或者注冊;</p><p> M
69、ainadmin.java是管理員登陸成功后的主界面;</p><p> Mainmessagestu.java是學(xué)生用戶個人信息界面;</p><p> Mainsearchstu.java是學(xué)生用戶登陸后主界面;</p><p> Registerstu.java 是學(xué)生注冊界面;</p><p> Registeradmin.
70、java是管理員注冊界面; </p><p> Show_history_borrow.java是學(xué)生查詢預(yù)借記錄界面;</p><p> Stu_message_modify.java是學(xué)生修改人信息界面;</p><p> Student_equipment_detailmessage.java是學(xué)生看看設(shè)備詳細(xì)信息界面。</p><p
71、> (五)具體功能代碼實(shí)現(xiàn)</p><p><b> 1. 注冊界面</b></p><p> 對于一個系統(tǒng)的開始,首先必須的是用戶的注冊界面,注冊模塊是為了登錄系統(tǒng)所進(jìn)行的獲取通行證的步驟,注冊所有的信息都將提交給數(shù)據(jù)庫進(jìn)行存儲,注冊的信息將作為用戶在本系統(tǒng)進(jìn)行一切活動的標(biāo)識。注冊界面如下:</p><p><b>
72、圖5.3 注冊界面</b></p><p> 以學(xué)生注冊為例,在輸入框內(nèi)輸入注冊信息,點(diǎn)擊確定按鈕便可以注冊,主要代碼如下:</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> 運(yùn)行到這里就要執(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> //判定注冊成功后跳轉(zhuǎn)到登陸頁面</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,"注冊失敗!請重試", 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> 運(yùn)行到此,學(xué)生注冊算是完成了。由于管理員注冊和學(xué)生注冊類似
99、,因此不再說明管理員注冊界面。</p><p><b> 2.登錄界面</b></p><p> 登錄界面作為系統(tǒng)的門面,登錄界面完成的功能是驗(yàn)證所登錄用戶的賬號是否正確,以驗(yàn)證是否有進(jìn)入系統(tǒng)的權(quán)限。登錄界面如下:</p><p><b> 圖5.4 登錄界面</b></p><p> 登錄
100、界面主要為驗(yàn)證賬號和密碼的功能,登錄界面分為學(xué)生用戶登錄和管理員登錄,下面來說說主要功能的實(shí)現(xiàn):</p><p> 點(diǎn)擊登錄按鈕之后先獲取賬號和密碼,接著判定用戶的類型,根據(jù)用戶的類型相向不同的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> //判定用戶類別后跳轉(zhuǎn)到相應(yīng)的主界面</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> 服務(wù)器根據(jù)傳送過來的數(shù)據(jù)檢索用戶名是否存在,密碼是否正確,如果正確則返回true,否則返回false,客戶端接收到返回數(shù)據(jù)后,判定是否為true,是就進(jìn)入到相應(yīng)的主頁,功能代碼:</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> 如果登陸成功,則跳轉(zhuǎn)到主界面,如果失敗,主線程就會收到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.學(xué)生用戶設(shè)備查詢界面</p>&
118、lt;p> 學(xué)生用戶通過輸入所需查詢的設(shè)備名稱時,便可以從數(shù)據(jù)庫中查詢到所查詢的設(shè)備。需要說明的是,默認(rèn)的查詢條件為“可借”,如果需要查詢?nèi)吭O(shè)備,可以選擇“全部”。在沒有輸入任何關(guān)鍵字的情況下,查詢結(jié)果為選擇條件下的所有設(shè)備。例如,輸入框沒有輸入任何字,條件是“可借”,那么查詢的結(jié)果是顯示所有可借的設(shè)備。查詢“計算機(jī)”界面如下:</p><p> 圖5.5 設(shè)備查詢界面</p><
119、p> 設(shè)備查詢功能主要代碼如下:</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> 點(diǎn)擊事件發(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> //獲得搜索設(shè)備的名稱并賦值給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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于android平臺的酒店即時查詢系統(tǒng)設(shè)計與實(shí)現(xiàn)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計(論文)-基于android平臺的成績查詢應(yīng)用
- android電子課表計算機(jī)畢業(yè)設(shè)計--基于android平臺的電子課表查詢設(shè)計與實(shí)現(xiàn)
- 基于android的天氣預(yù)報查詢系統(tǒng)的實(shí)現(xiàn)畢業(yè)設(shè)計
- 基于android的天氣預(yù)報查詢系統(tǒng)的實(shí)現(xiàn)--畢業(yè)設(shè)計
- 畢業(yè)論文-基于android平臺的車輛信息查詢系統(tǒng)的開發(fā)設(shè)計
- 基于android平臺的飛機(jī)游戲畢業(yè)設(shè)計
- 基于android平臺的飛機(jī)游戲畢業(yè)設(shè)計
- 基于android平臺的股票查詢系統(tǒng)的設(shè)計與開發(fā)
- 基于android平臺的星座查詢軟件設(shè)計
- 基于android平臺的星座查詢軟件設(shè)計
- 基于android平臺的星座查詢軟件設(shè)計
- 基于android平臺的手機(jī)游戲開發(fā)【畢業(yè)設(shè)計】
- 基于android平臺的飛機(jī)游戲畢業(yè)設(shè)計x
- 畢業(yè)設(shè)計(論文)基于android平臺的手機(jī)商城的設(shè)計
- 畢業(yè)設(shè)計——基于android系統(tǒng)的失物招領(lǐng)平臺的設(shè)計與實(shí)現(xiàn)
- 基于Android平臺的星座查詢軟件設(shè)計.doc
- 基于android平臺的電子課表查詢設(shè)計與實(shí)現(xiàn)
- 基于android平臺的掌上社區(qū)設(shè)計與實(shí)現(xiàn)畢業(yè)設(shè)計
- 基于Android平臺的星座查詢軟件設(shè)計.doc
評論
0/150
提交評論