安卓畢業(yè)設計設備查詢系統(tǒng)本科設計說明_第1頁
安卓畢業(yè)設計設備查詢系統(tǒng)本科設計說明_第2頁
安卓畢業(yè)設計設備查詢系統(tǒng)本科設計說明_第3頁
安卓畢業(yè)設計設備查詢系統(tǒng)本科設計說明_第4頁
安卓畢業(yè)設計設備查詢系統(tǒng)本科設計說明_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、I / 52本科生畢業(yè)設計本科生畢業(yè)設計論論 文文 題題 目:目:畢業(yè)設計(論文)原創(chuàng)性聲明和使用授權(quán)說明畢業(yè)設計(論文)原創(chuàng)性聲明和使用授權(quán)說明原創(chuàng)性聲明原創(chuàng)性聲明本人重承諾:所呈交的畢業(yè)設計(論文) ,是我個人在指導教師的指導下進行的研究工作與取得的成果。盡我所知,除文中特別加以標注和致的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過的研究成果,也不包含我為獲得與其它教育機構(gòu)的學位或?qū)W歷而使用過的材料。對本研究提供過幫助和做出過貢獻的個人或集體,均已在文中作了明確的說明并表示了意。作 者 簽 名:日 期:指導教師簽名: 日期:使用授權(quán)說明使用授權(quán)說明基于 Android 平臺的設備查詢系統(tǒng)設計

2、開發(fā)II / 52本人完全了解大學關(guān)于收集、保存、使用畢業(yè)設計(論文)的規(guī)定,即:按照學校要求提交畢業(yè)設計(論文)的印刷本和電子版本;學校有權(quán)保存畢業(yè)設計(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務;學??梢圆捎糜坝?、縮印、數(shù)字化或其它復制手段保存論文;在不以贏利為目的前提下,學校可以公布論文的部分或全部容。作者簽名: 日 期:學位論文原創(chuàng)性聲明學位論文原創(chuàng)性聲明本人重聲明:所呈交的論文是本人在導師的指導下獨立進行研究所取得的研究成果。除了文中特別加以標注引用的容外,本論文不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。本

3、人完全意識到本聲明的法律后果由本人承擔。作者簽名: 日期: 年 月 日學位論文使用授權(quán)書學位論文使用授權(quán)書本學位論文作者完全了解學校有關(guān)保留、使用學位論文的規(guī)定,同意學校保留并向國家有關(guān)部門或機構(gòu)送交論文的復印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學可以將本學位論文的全部或部分容編入有關(guān)數(shù)據(jù)庫進行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本學位論文。涉密論文按學校規(guī)定處理。III / 52作者簽名:日期: 年 月 日導師簽名: 日期: 年 月 日注意事項1.設計(論文)的容包括:1)封面(按教務處制定的標準封面格式制作)2)原創(chuàng)性聲明3)中文摘要(300 字左右) 、關(guān)鍵詞4)外

4、文摘要、關(guān)鍵詞5)目次頁(附件不統(tǒng)一編入)6)論文主體部分:引言(或緒論) 、正文、結(jié)論7)參考文獻8)致9)附錄(對論文支持必要時)2.論文字數(shù)要求:理工類設計(論文)正文字數(shù)不少于 1 萬字(不包括圖紙、程序清單等) ,文科類論文正文字數(shù)不少于 1.2 萬字。3.附件包括:任務書、開題報告、外文譯文、譯文原文(復印件) 。4.文字、圖表要求:1)文字通順,語言流暢,書寫字跡工整,打印字體與大小符合要求,無錯別字,不準請他人代寫2)工程設計類題目的圖紙,要求部分用尺規(guī)繪制,部分用計算機繪制,所有圖紙應符合國家技術(shù)標準規(guī)。圖表整潔,布局合理,文字注釋必須使用工程字書寫,不準用徒手畫3)畢業(yè)論文

5、須用 A4 單面打印,論文 50 頁以上的雙面打印4)圖表應繪制于無格子的頁面上5)軟件工程類課題應有程序清單,并提供電子文檔5.裝訂順序IV / 521)設計(論文)2)附件:按照任務書、開題報告、外文譯文、譯文原文(復印件)次序裝訂目目 錄錄摘要 1一、前言 1(一)設計目標 1(二)系統(tǒng)價值 1二、系統(tǒng)需求分析2三、總體設計與系統(tǒng)結(jié)構(gòu)2(一)總體設計2(二)系統(tǒng)結(jié)構(gòu) 3(三)開發(fā)工具介紹和關(guān)鍵技術(shù) 31. Eclipse 的介紹 32.JCreator 與 Tomcat 介紹 53.關(guān)鍵技術(shù)介紹 6四、系統(tǒng)功能設計 7(一)前臺管理 71.注冊 72.用戶登錄 83.設備查詢 84.用戶

6、管理 85.設備管理 8(二)后臺管理 81.注冊管理 92.登錄管理 93.設備查詢管理 94. 用戶管理 95.設備管理 9五、數(shù)據(jù)庫結(jié)構(gòu)設計 9(一)數(shù)據(jù)庫邏輯結(jié)構(gòu)設計 9(二)數(shù)據(jù)庫物理結(jié)構(gòu)設計 11V / 52六、系統(tǒng)開發(fā)與編碼實現(xiàn) 13(一)服務器端的設計-搭建JAVA WEB服務器 13(二)連接數(shù)據(jù)庫模塊 14(三)服務器功能模塊 141.注冊模塊 142.登錄模塊 153.設備查詢模塊 154.特定用戶查詢模塊 155.查詢所有用戶模塊 156.新增設備模塊 16(四)客戶端的設計-設計 UI 界面 16(五)具體功能代碼實現(xiàn) 171.注冊界面 172.登錄界面 203.學生

7、用戶設備查詢界面 234.管理員界面 285.管理學生用戶界面 286.管理設備界面 297.新增設備界面 33七、用戶體驗 35(一)用戶注冊體驗 35(二)用戶登錄體驗 36(三)設備查詢體驗 37(四)用戶管理體驗 38(五)設備管理體驗 38八、總 結(jié) 39參考文獻 41ABSTRACT42附錄一其它核心代碼 431 / 52基于基于 AndroidAndroid 平臺的設備查詢系統(tǒng)設計平臺的設備查詢系統(tǒng)設計 摘要摘要 : 基于 web 的傳統(tǒng)設備查詢應用適合在 PC 機上使用,難以通過移動終端隨時隨地的使用,而移動終端尤其是智能手機的出現(xiàn)使得移動應用成為可能。基于 Android 平

8、臺的設備查詢系統(tǒng)能夠通過 Android 終端實現(xiàn)設備隨時隨地的查詢和管理,擴大用戶的使用空間。本篇文章闡述了在 Android 平臺下設備查詢系統(tǒng)的設計與實現(xiàn)過程,其目的是讓人們能夠在基于 Android 平臺的移動設備上享受快捷方便的設備信息查詢服務。本系統(tǒng)采用 C/S 結(jié)構(gòu),使用 Android 布局技術(shù)設計頁面布局,實現(xiàn)了用戶注冊、登錄、查詢設備信息以與管理員用戶(老師)對普通用戶(學生)管理和普通用戶預借設備等功能,并在模擬器上通過了測試。 關(guān)鍵詞關(guān)鍵詞 :設備查詢系統(tǒng);Android 開發(fā);Eclipse一、前一、前 言言(一)設計目標隨著信息技術(shù)的快速發(fā)展,移動互聯(lián)網(wǎng)時代已經(jīng)來臨

9、。智能手機是移動互聯(lián)網(wǎng)時代一個標志性的客戶端工具,它兼具了計算機具有強大的計算、存儲能力和傳統(tǒng)手機方便攜帶、移動性好的優(yōu)勢,同時還具有自己的操作系統(tǒng),能夠安裝、卸載軟件,可以通過移動通信網(wǎng)絡來實現(xiàn)無線網(wǎng)絡接入,可以補充甚至代替?zhèn)鹘y(tǒng) web 的諸多功能,因此,移動終端技術(shù)必然有良好的發(fā)展前景?;?Android 的設備查詢系統(tǒng)是適應移動終端快速良好發(fā)展的具體體現(xiàn), 該系統(tǒng)按功能的不同分為用戶管理、設備管理兩個部分。用戶按照使用者的不同分為管理員和普通用戶(學生) ,兩類用戶都是使用同一個平臺,只是權(quán)限不同。學生用戶只能注冊、查詢設備信息、預借等功能;管理員擁有可以對學生用戶賬號進行注銷,查詢學

10、生用戶信息,實時更新設備信息,發(fā)布新設備等權(quán)限。(二)設計的價值就目前我國在設備管理移動客戶端的開發(fā)與應用來說,這方面還不是很成熟,多數(shù)學校設備管理系統(tǒng)還是采用傳統(tǒng)的人管理設備模式,致使設備與時信息得不到擴散,設備得不到充分的利用,降低了設備的應有的價值。在這種情況下,基于 Android 平臺的設備查詢系統(tǒng)屬于一個計較新的應用。該設計能與時方便地查詢設備信息、發(fā)布信息、預借設備、管理設備,做到設備信息的實時化,彌補了設備傳統(tǒng)管理息不能實時化的缺陷?,F(xiàn)今,對于校的設備管理者和使用來說,智能手機是一個必備的物品,手機客戶端這種形式的設備查詢系統(tǒng),能更加方便設備的管理和貼近學生的的生活,對設備的管

11、理和充分利用起到了促進作用。2 / 52二、系統(tǒng)需求分析二、系統(tǒng)需求分析大學的日常教學和生活中,學生由于學習或者生活的需要,對學校設備有較大的需求,而學校的設備在傳統(tǒng)的人管理設備模式中往往處于閑置狀態(tài)但又不能外借給學生,滿足學生的需求。而這種管理模式下多半是由于設備的信息得不到與時的傳播造成的。另一方面,設備的擁有方(校方)又希望設備得到充分的利用,使使用價值最大化。為了解決這個矛盾,學生和校方都希望能夠讓設備信息得到與時的傳播,滿足學生的需求和校方的期望。設備管理系統(tǒng)就是基于這種矛盾應運而生的。該系統(tǒng)能夠解決設備信息傳播不與時的矛盾,方便設備的管理和貼近學生的的生活,具有較大使用價值。三、三

12、、總體設計與系統(tǒng)結(jié)構(gòu)總體設計與系統(tǒng)結(jié)構(gòu)為了使軟件開發(fā)能夠與時、順利進行,開發(fā)人員進行了長時間艱苦的學習?,F(xiàn)對系統(tǒng)的總體設計和系統(tǒng)結(jié)構(gòu)設計與開發(fā)工具和關(guān)鍵技術(shù)做具體說明。(一)總體設計基于 Android 平臺開發(fā)的設備查詢系統(tǒng)設計的思路是:用戶角色分為學生用戶和管理員兩類;功能包括注冊、登錄、設備查詢、設備更新、管理普通用戶(學生)共五個部分。其中系統(tǒng)管理中的學生用戶權(quán)限包括注冊、登錄、設備查詢、設備預借、修改個人信息四個模塊;管理員的權(quán)限則是除了注冊、登錄、設備查詢權(quán)限外,還有實時更新設備信息、管理學生用戶、修改個人信息等模塊。從管理功能的角度來看分為前臺和后臺管理兩大部分。后臺管理模塊是本

13、系統(tǒng)最重要部分之一,它是系統(tǒng)維護和信息管理平臺。根據(jù)現(xiàn)實需要,本系統(tǒng)后臺管理用戶有兩類:管理員和學生用戶。這兩類用戶使用的系統(tǒng)管理平臺都是同一個平臺上,只不過登陸之后根據(jù)用戶的不同類型擁有相應的權(quán)限。(二)系統(tǒng)結(jié)構(gòu)本系統(tǒng)總體邏輯結(jié)構(gòu)為 C/S 結(jié)構(gòu),結(jié)構(gòu)圖如圖 2-1 所示:3 / 52圖 2.1C/S 結(jié)構(gòu)圖(三)開發(fā)工具介紹與其關(guān)鍵技術(shù)1.Eclipse 簡介Eclipse 是一個開放源代碼、基于 Java 的可擴展集成開發(fā)平臺。它本身只是一個框架和一組服務,用于通過插件組件構(gòu)建開發(fā)環(huán)境。Eclipse 自身附帶了一個標準的插件集。Android 工程是在 Eclipse 工具上編寫的,進

14、行 android 工程的編寫,首先需要在 Eclipse 上安裝 ADT 插件,并且指定 SDK 所在的路徑,便可以創(chuàng)建android 虛擬機(模擬器)了。在 Eclipse 中創(chuàng)建虛擬機的步驟如下:(1)安裝 ADT 插件在 Eclipse 單擊菜單欄的 Help,在 Help 里面選中 Install NewSoftware 選項,之后便可以出現(xiàn)如下界面:圖 2.2ADT 安裝步驟界面指定好 ADT 的路徑后,就可以開始安裝 ADT 插件。(2)導入 AndroidSDK安裝好 ADT 插件后,單擊 Eclipse 菜單欄 Windows 下找到 preperence,點擊進入,得到如下

15、界面:4 / 52圖 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)建好虛擬機后,點擊 start 按鈕便可以運行選中的 android 虛擬機, 2.3.3

16、 系統(tǒng)虛擬機下圖:5 / 52圖 2.4android 虛擬機視圖虛擬機模擬的是 android 智能手機的界面,通過操作虛擬機可以體驗到android 智能手機的大部分應用。同時模擬器是作為開發(fā)的 Android 應用運行的工具,他提供最基本的人機交互功能。2.JCreator 與 Tomcat 介紹Jcreator 是 Xinox Software 公司開發(fā)的一個用于 Java 程序設計的集成開發(fā)環(huán)境(IDE) ,具有編輯、調(diào)試、運行 Java 程序的功能。它分為 LE 和 Pro 版本。LE 版本功能上受到一些限制,是免費版本。Pro 版本功能最全,但這個版本是一個共享軟件。這個軟件比較

17、小巧,對硬件要求不是很高,完全用 C+寫的,速度快、效率高。具有語法著色、代碼自動完成、代碼參數(shù)提示、工程向?qū)?、類向?qū)У裙δ?。第一次啟動時提示設置 JavaJDK 主目錄與 JDKJavaDoc 目錄,軟件自動設置好類路徑、編譯器與解釋器路徑,還可以在幫助菜單中使用JDKHelp。6 / 52圖 2.5 JCreatorPro 版本界面視圖本系統(tǒng)是基于 C/S 架構(gòu)的,所以需要在 JCreator 上創(chuàng)建服務器端,利用servlet 來提供服務,并將其部署在 Tomcat 下。需要解決的是創(chuàng)建不同的servlet 來提供不同的服務。Tomcat 是美國 Apache 軟件基金會 Jakarta

18、 項目中的一個核心項目。它是由 Apache、Sun 和其他一些公司與個人共同開發(fā)而成。目前,Tomcat 廣受程序員的喜歡,因為它運行時占用的系統(tǒng)資源較小,擴展性較好,還支持負載平衡與服務等開發(fā)應用系統(tǒng)等常用的功能;同時,它還在不斷的改進和完善中,程序員可以更改它或在其中加入新的功能。Tomcat 是一個輕量級應用服務器,它在中小型系統(tǒng)或者并發(fā)訪問用戶規(guī)模不大的場合下被普遍使用,受到廣泛的好評,是開發(fā)和調(diào)試程序的首選。3. 關(guān)鍵技術(shù)介紹本軟件采用 java 作為開發(fā)語言,Android 頁面布局和后臺服務器數(shù)據(jù)存儲是開發(fā)本軟件的關(guān)鍵技術(shù),用戶界面的設計是否美觀和合理直接影響用戶體驗,因此運用

19、好布局技術(shù)是直接和用戶體驗相關(guān),而數(shù)據(jù)存儲技術(shù)則記錄了用戶所有的操作數(shù)據(jù)和用戶所需要提取的數(shù)據(jù)。在 Android 中,UI 通常使用 xml 技術(shù)設計,而 xml 中控件的位置和狀態(tài)則離不開布局的使用,Android 中常用的布局有五種,分別是:LinearLayout、AbsoluteLayout、RelativeLayout、FrameLayout、TableLayout,由于布局的使用,并且布局之間可以互相嵌套,使得 android 軟件 UI 的設計變得非常靈活自如,非常復雜的界面設計也是通過合理的布局實現(xiàn)的。本系統(tǒng)開發(fā)采用的主要是 LinearLayout 布局。另外,Json 數(shù)

20、據(jù)交換技術(shù)也是本設計的關(guān)鍵技術(shù)之一。在服務器客戶端之7 / 52間的數(shù)據(jù)傳輸采用 json 數(shù)據(jù)交換格式,服務器把數(shù)據(jù)放在 bilder 數(shù)據(jù)流里,在客戶端通過 json 解析出特定數(shù)據(jù)值,從而便捷地解決了服務器與客戶端的數(shù)據(jù)交互。四、系統(tǒng)功能設計四、系統(tǒng)功能設計本系統(tǒng)采用 C/S 模式開發(fā),客戶端和服務器端是獨立分開的,這樣的分開也就形成了前臺管理和后臺管理。前臺管理注重用戶的交互是否簡便,后臺管理注重功能的邏輯和與數(shù)據(jù)庫數(shù)據(jù)交互的功能。(一)前臺管理前臺客戶端的所有功能畫出的功能流程圖如下:圖 3.1 前臺客戶端流程圖1.注冊用戶通過手機客戶端主界面上的注冊按鈕注冊新的學生用戶,注冊用戶的

21、信息通過服務器端和數(shù)據(jù)庫連接,數(shù)據(jù)庫中的用戶表則會生成你注冊的信息,8 / 52同時在手機客戶端提示注冊成功。2.用戶登錄用戶登錄分為兩類用戶:管理員和學生用戶??梢酝ㄟ^登錄界面中選定身份登錄,服務器根據(jù)登錄選定的信息選擇數(shù)據(jù)庫中的數(shù)據(jù)表進行匹配,用戶名和密碼正確則登錄成功。3.設備查詢在查詢界面輸入所需查詢設備名稱的關(guān)鍵字,通過服務器端查詢數(shù)據(jù)庫返回你所查詢的設備信息,設備信息包括:設備名稱、編號、是否可接、設備的地址等信息。4.用戶管理用戶管理模塊是管理員對學生用戶賬號的管理,對于某些賬號不使用了,比如:學生畢業(yè)等原因不再使用賬號的問題,管理員有權(quán)利對這類賬號進行刪除,同時可以學生用戶的用

22、戶名查詢學生用戶的信息。5.設備管理這個功能也只有管理員身份才能擁有,管理員通過此功能,可以對設備進行新增、刪除功能、修改設備信息。通過這個模塊,管理員可以對新增的設備進行管理,實時發(fā)布新增設備。還可以與時對設備信息與時修改,避免信息錯誤。(二)后臺管理后臺服務器端的主要任務是根據(jù)接收到的客戶端發(fā)送過來的請求,根據(jù)客戶端不同功能模塊,通過檢索數(shù)據(jù)庫不同表格,把檢索結(jié)果返回給客戶端顯示給以用戶,其基本流程圖如下:圖 3.2 后臺服務器端流程圖9 / 521.注冊管理用戶注冊提交:向服務器提交用戶注冊的信息,同時新增到數(shù)據(jù)庫。 注冊管理是后臺的一個重要容,注冊只提供學生用戶的注冊,這樣可以保證設備

23、館用戶權(quán)限的穩(wěn)定和安全。通過注冊用戶,用戶才能享受來自手機客戶端的所有功能。通過手機客戶端注冊用戶,來作為以后通過手機客戶端登錄設備館管理系統(tǒng)的唯一身份認證。2.登錄管理用戶登錄管理:根據(jù)你登錄的信息向服務器發(fā)送請求,然后和數(shù)據(jù)庫信息進行對比,來確認用戶登錄的成功與否。 登錄時候,首先你必須選定你的登錄身份,是以學生用戶還是管理員身份登錄,根據(jù)你選擇的不同身份,服務器向不同的數(shù)據(jù)庫表來核對信息,以通過對用戶信息的核對,以確定所登錄的賬號密碼是否正確。3.設備查詢管理設備查詢管理主要通過設備的幾個關(guān)鍵信息進行查詢,根據(jù)設備名稱向數(shù)據(jù)庫提交信息進行條件檢索。通過輸入信息的檢索,返回檢索設備的基本信

24、息,比如:設備名稱、是否可接、設備的地點等。4.用戶管理用戶管理,是管理員根據(jù)實際需要對用戶進行注銷,是與數(shù)據(jù)庫進行數(shù)據(jù)更新與交互的服務。5.設備管理后臺的設備管理,是處理管理員把新設備添加到設備數(shù)據(jù)庫表的服務,通過添加到數(shù)據(jù)庫表,學生用戶才能在設備查詢功能中查詢到新更新的設備信息。同時,對于已經(jīng)歸還的設備要與時修改是否可借,也就是更新從設備表的相應信息。五、數(shù)據(jù)庫結(jié)構(gòu)設計五、數(shù)據(jù)庫結(jié)構(gòu)設計本系統(tǒng)設計時采用的是 SQL 數(shù)據(jù)庫。SQL 數(shù)據(jù)庫的版本是 2005 版。通過SQL Server Management Studio 管理數(shù)據(jù)庫。以 Windows 身份驗證登陸。配置數(shù)據(jù)庫:新建數(shù)據(jù)庫

25、 QE,在其中創(chuàng)建表,分別為:student(儲存學生用戶信息) 、administrator(儲存管理員信息) 、equipment(儲存設備信息) 、borrow(儲存學生預借記錄) 。(一)數(shù)據(jù)庫邏輯結(jié)構(gòu)設計在需求分析階段已完成該系統(tǒng)所有的數(shù)據(jù)分析。根據(jù)該階段所建立的概念10 / 52模型,已經(jīng)得出滿足系統(tǒng)設計要求的幾個關(guān)系描述,該階段的主要工作就是把前一階段的成果轉(zhuǎn)化為具體的數(shù)據(jù)庫。管理員用戶用戶名(也就是老師的工號) 、密碼、 、四個屬性,通過這兩個屬性來確定管理員用戶的身份是否合法,其中用戶名(工號)為主鍵,其 E-R 圖如下:圖 4.1 管理員 E-R 圖學生用戶有用戶名(學號)

26、、 、密碼、班級、屬性,通過這些屬性,來確認學生信息表的信息,其中主鍵為用戶名(學號),其 E-R 圖如下:圖 4.2 學生用戶 E-R 圖設備信息表,是用來存儲設備的基本信息,包括設備名稱、設備編號、是否可接、地址、管理員、管理員,其中編號為主鍵,其 E-R 圖如下:11 / 52圖 4.3 設備信息 E-R 圖學生預借記錄是用來儲存有學生預借記錄信息的,學生通過查詢此表可以查到自己預借設備記錄。其屬性有學生學號,預借設備編號、預借設備名稱、預借時間點四個屬性。主鍵 Id,其 E-R 圖如下:圖 4.4 預借記錄 E-R 圖對于各個實體之間的關(guān)系 E-R 圖如下:圖 4.5 實體關(guān)系圖(二)

27、數(shù)據(jù)庫物理結(jié)構(gòu)設計依據(jù)數(shù)據(jù)庫的原理,并結(jié)合以上 E-R 圖,經(jīng)過轉(zhuǎn)化,即可進行數(shù)據(jù)庫的物理設計?;谝陨蠑?shù)據(jù)庫的邏輯設計,考慮程序設計的簡易性,同時考慮題目的時間,該系統(tǒng)的數(shù)據(jù)庫采用 SQL 建立一個數(shù)據(jù)庫,在其下創(chuàng)建 4 個數(shù)據(jù)表,其結(jié)構(gòu)分別如下各表:12 / 52表 4-1 數(shù)據(jù)表清單表名說明administrator(管理員用戶表)用于存儲管理員信息student(學生用戶表)用于存儲學生用戶信息equipment(設備信息表)用于存儲設備基本信息borrow(預借記錄表)用于儲存預借記錄基本信息表 4-2administrator表字段名數(shù)據(jù)類型長度主鍵備注Idint 否自動編號Ida

28、dminvarchar50是工號,管理員的登錄賬號Nameadminvarchar50否管理員Teladminvarchar50否管理員Passwordadminvarchar50否管理員登錄的密碼表 4-3student表字段名數(shù)據(jù)類型長度主鍵備注Idint否自動編號Idstuvarchar50是學號Namestuvarchar50否學生Passwordstuvarchar50否學生密碼Classstuvarchar50否班級Telstuvarchar50否學生聯(lián)系表 4-4equipment表字段名數(shù)據(jù)類型長度主鍵備注Idint否自動編號ENamevarchar50否設備名稱EIsenva

29、rchar50是設備編號13 / 52ESparebloom否說明設備是否可解EAddressvarchar100否設備地址ETeacherICvarchar50否該設備管理老師ETeacherICtelvarchar50否該設備管理老師表 4-5borrow表字段名數(shù)據(jù)類型長度主鍵備注Idint是自動編號Idstuborrowvarchar50否預借學生學號Timeborrowdatetime50否預借時間點getdate()生成Isenborrowvarchar50否預借設備編號Nameequipmentborrowvarchar10否預借設備名稱六、系統(tǒng)開發(fā)與編碼實現(xiàn)六、系統(tǒng)開發(fā)與編碼實

30、現(xiàn)(一)服務器端的設計-搭建 web 服務器本軟件是 C/S 結(jié)構(gòu)的系統(tǒng),因此要先搭建服務器端,利用 JCreator Pro 編寫 servlet 來提供服務,并將其部署在 Tomcat 下。創(chuàng)建不同的 servlet 來提供不同的服務。在 JCreator Pro 新建工程名 myweb1,編譯成的.class 文件位置在 tomcat服務器 web1WEB-INFclasses 下,web1 為站點。如下圖所示:14 / 52圖 5.1 服務器端結(jié)構(gòu)和 servlet 位置(二)連接數(shù)據(jù)庫模塊dbconn 類是用來連接數(shù)據(jù)庫和操作數(shù)據(jù)庫的,并返回操作執(zhí)行的值。(三)服務器功能模塊除 db

31、conn 類之外,其他的類都是為 service 提供服務,封裝對數(shù)據(jù)庫的操作的方法。其具體情況如下:1.注冊模塊注冊分為學生用戶注冊和管理員注冊。提供管理員用戶注冊 servlet 為 registeradmin,重寫其 doPost()和15 / 52doGet()方法,該 servlet 是用來處理管理員用戶注冊請求。注冊的參數(shù)有Idadmin,Passwordadmin,Nameadmin,Teladmin,其 url 為::8080/web1/registeradmin。提供學生用戶注冊 servlet 為 svlt_getdata,重寫其 doPost()和 doG

32、et()方法,該 servlet 是用來處理學生用戶注冊請求。注冊的參數(shù)有Idstu,Namestu,Passwordstu,Classstu,Telstu,其 url 為::8080/web1/registerstu2.登錄模塊登陸分為學生用戶登陸和管理員登陸。提供用戶登錄的 servlet 為 Loadingadmin,重寫其 doPost()和 doGet()方法,該 servlet 是用來處理學生用戶的請求。登錄的參數(shù)有Idadmin、Passwordadmin,其 url 為::8080/web1/Loadingadmin。提供用戶登錄的 servle

33、t 為 Loading,重寫其 doPost()和 doGet()方法,該servlet 是用來處理學生用戶的請求。登錄的參數(shù)有 Idstu、Passwordstu,其url 為::8080/web1/Loading。3.設備查詢模塊設備查詢分為學生用戶查詢和管理員查詢。提供管理員設備查詢 servlet 為 admin_saerch_equipment,重寫其doPost()和 doGet()方法,該 servlet 是用來處理管理員查詢特定設備的請求。查詢設備參數(shù)為 EName,其 url 為::8080/web1/admin_saerch_equipmen

34、t提供學生用戶設備查詢 servlet 為 student_saerch_equipment,重寫其doPost()和 doGet()方法,該 servlet 是用來處理學生查詢特定設備的請求。查詢設備參數(shù)為 EIsendetail,其 url 為::8080/web1/student_saerch_equipment。4.管理員學生用戶查詢模塊管理員查詢學生用戶分為查詢特定用戶和查詢所有用戶。提供特定用戶查詢 servlet 為 admin_search_student_message,重寫其doPost()和 doGet()方法,該 servlet 用來處理管理員查詢特定學

35、生用戶信息的請求。管理員查詢特定學生用戶參數(shù)有 Namestu,其 url 為::8080/web1/admin_search_student_message。5查詢所有用戶模塊提供所有用戶查詢 servlet 為 admin_search_allstudent_message,重寫其16 / 52doPost()和 doGet()方法, 該 servlet 用來處理管理員用戶查詢所有學生用戶信息的請求。因為是查詢所有學生用戶,所以不需要提供任何參數(shù),只需要通過點擊查詢所有這個按鈕便可以查詢出所有,其 url 為: :8080/web1/admin_search

36、_allstudent_message。6.新增設備模塊提供管理員添加設備 servlet 為 equipment_add,重寫其 doPost()和doGet()方法,該 servlet 是用來處理管理員用戶發(fā)布新設備的請求。對發(fā)布的設備需要提供參數(shù)有設備名稱、設備編號、設備是否可接、設備的地址,設備管理員、設備管理員參數(shù),其 url 為::8080/web1/equipment_add。(四)設計安卓客戶端 UI 界面在 Eclipse 安裝好了 ADT 插件并且導入了 AndroidSDK 后,創(chuàng)建一個工程(android project) ,此工程是作為設備管理系統(tǒng)的客

37、戶端,是為大用戶下載使用的,所以,該 UI 界面的主要要要操作性強和交互簡單。Android project名稱:EQ(Equipment Qury 的首字母大寫)我的工程結(jié)構(gòu)如圖所示:圖 5.2 客戶端系統(tǒng)結(jié)構(gòu)下面就來簡單說說各個 class 文件的功能和作用:Admin_equipment_manage.java 是管理員管理設備界面;Admin_manage_studentuser.java 是管理員管理學生用戶界面;17 / 52Admin_message_modify.java 是管理員修改個人信息界面;Admin_modify_equipment.java 是管理員修改設備信息界面

38、;Equipmentadd.java 是管理新增設備界面;Loading.java 是剛啟動系統(tǒng)主界面,可以登錄或者注冊;Mainadmin.java 是管理員登陸成功后的主界面;Mainmessagestu.java 是學生用戶個人信息界面;Mainsearchstu.java 是學生用戶登陸后主界面;Registerstu.java 是學生注冊界面;Registeradmin.java 是管理員注冊界面; Show_history_borrow.java 是學生查詢預借記錄界面;Stu_message_modify.java 是學生修改人信息界面;Student_equipment_det

39、ailmessage.java 是學生看看設備詳細信息界面。(五)具體功能代碼實現(xiàn)1. 注冊界面對于一個系統(tǒng)的開始,首先必須的是用戶的注冊界面,注冊模塊是為了登錄系統(tǒng)所進行的獲取通行證的步驟,注冊所有的信息都將提交給數(shù)據(jù)庫進行存儲,注冊的信息將作為用戶在本系統(tǒng)進行一切活動的標識。注冊界面如下:圖 5.3 注冊界面以學生注冊為例,在輸入框輸入注冊信息,點擊確定按鈕便可以注冊,主要代碼如下:EditText idstu = (EditText)findViewById(R.id.idstu);EditTextpasswordstu = (EditText)findViewById(R.id.pas

40、swordstu);EditTextpasswordstusencond = 18 / 52(EditText)findViewById(R.id.passwordstusencond);EditText namestu = (EditText)findViewById(R.stu);EditText telstu = (EditText)findViewById(R.id.telstu);EditText classstu = (EditText)findViewById(R.id.classstu);String Idstu = idstu.getText().toStrin

41、g().trim();String Passwordstu = passwordstu.getText().toString().trim();String Passwordstusencond = passwordstusencond.getText().toString().trim();String Namestu = namestu.getText().toString().trim();String Telstu = telstu.getText().toString().trim();String Classstu = classstu.getText().toString().t

42、rim();if(Passwordstu.equals(Passwordstusencond)if(Idstu.equals()|Passwordstu.equals()|Passwordstusencond.equals()|Namestu.equals()|Telstu.equals()|Classstu.equals()Toast.makeText(Registerstu.this, 注冊信息請?zhí)顚懲暾? Toast.LENGTH_LONG).show(); elseString URL=:8080/web1/registerstu; List params=new A

43、rrayList(); params.add(new BasicNameValuePair(Idstu,Idstu); params.add(new BasicNameValuePair(Passwordstu,Passwordstu); params.add(new BasicNameValuePair(Namestu,Namestu); params.add(new BasicNameValuePair(Telstu,Telstu); params.add(new BasicNameValuePair(Classstu,Classstu); new Thread(params,URL).s

44、tart();else19 / 52;運行到這里就要執(zhí)行 Thread 類了,其的代碼如下:/線程class Thread extends Thread List params; String url=null;public Thread( List params,String url) this.params= params; this.url=url;Overridepublic void run() registerResult = postData(params,url);/判定注冊成功后跳轉(zhuǎn)到登陸頁面if(registerResult.equals(true)Message msg1

45、 = new Message();msg1.obj = registerResult;handler.sendMessage(msg1); else Toast.makeText(Registerstu.this,注冊失??!請重試, Toast.LENGTH_LONG).show(); public String postData(List params,String url)String result = ;InputStream is = null;String line = null;String URL=url;try Post request=new Post(URL);reques

46、t.setEntity(new UrlEncodedFormEntity(params, .UTF_8); Response response=new Default Client().execute(request);20 / 52if (response.getStatusLine().getStatusCode() = 200) /result = EntityUtils.toString(response.getEntity(), UTF-8);is = response.getEntity().getContent();BufferedReader read = new Buffer

47、edReader(new InputStreamReader(is);while(line=read.readLine()!=null)result = result + line; else /Log.i( Post, Post 方式請求失敗);result = -100; catch(Exception e)e.printStackTrace();return result;執(zhí)行完這個方法體后就是到了 hander 方法了,其代碼如下: handler=new Handler()public void handleMessage(Message msg1) String panding=(

48、String)msg1.obj; if(panding.equals(true) Toast.makeText(Registerstu.this, 恭喜!注冊成功錄,請登錄, Toast.LENGTH_LONG).show(); Intent intent=new Intent(); intent.setClass(Registerstu.this, Loading.class); Registerstu.this.startActivity(intent); Registerstu.this.finish(); else Toast.makeText(Registerstu.this, 注冊

49、失敗,請重試!, Toast.LENGTH_LONG).show();21 / 52 /handler 的;運行到此,學生注冊算是完成了。由于管理員注冊和學生注冊類似,因此不再說明管理員注冊界面。2.登錄界面登錄界面作為系統(tǒng)的門面,登錄界面完成的功能是驗證所登錄用戶的賬號是否正確,以驗證是否有進入系統(tǒng)的權(quán)限。登錄界面如下:圖 5.4 登錄界面登錄界面主要為驗證賬號和密碼的功能,登錄界面分為學生用戶登錄和管理員登錄,下面來說說主要功能的實現(xiàn):點擊登錄按鈕之后先獲取賬號和密碼,接著判定用戶的類型,根據(jù)用戶的類型相向不同的 serverlet 發(fā)送請求,主要功能代碼如下:m_RadioGroup.s

50、etOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() 22 / 52Override public void onCheckedChanged(RadioGroup group, int checkedId) switch(checkedId) case R.id.load_radioButton1: userleibie=student; break; case R.id.load_radioButton2: userleibie=admin; break; /Toast.makeText(Loading.thi

51、s, userleibie, Toast.LENGTH_LONG).show(); ); EditText idloading = (EditText)findViewById(R.id.idloading);EditText passwordloading = (EditText)findViewById(R.id.passwordloading);String Idloading = idloading.getText().toString();String Passwordloading = passwordloading.getText().toString();/判定用戶類別后跳轉(zhuǎn)到

52、相應的主界面if(userleibie.equals(student)/Toast.makeText(Loading.this, 用戶類別:+userleibie, Toast.LENGTH_LONG).show();String URL=:8080/web1/Loading; List params=new ArrayList(); params.add(new BasicNameValuePair(Idstu,Idloading); params.add(new BasicNameValuePair(Passwordstu,Passwordloading); new Thr

53、ead(params,URL).start();else if(userleibie.equals(admin)23 / 52String URL=:8080/web1/Loadingadmin; List params=new ArrayList(); params.add(new BasicNameValuePair(Idadmin,Idloading); params.add(new BasicNameValuePair(Passwordadmin,Passwordloading); new Thread2(params,URL).start();服務器根據(jù)傳送過來的數(shù)據(jù)

54、檢索用戶名是否存在,密碼是否正確,如果正確則返回 true,否則返回 false,客戶端接收到返回數(shù)據(jù)后,判定是否為true,是就進入到相應的主頁,功能代碼:if(LoadResult.equals(true) /System.out.println(LoadResult); EditText idloading2 = (EditText)findViewById(R.id.idloading); String Idloading2 = idloading2.getText().toString(); Intent intent=new Intent(); intent.putExtra(Id

55、stu, Idloading2+); intent.setClass(Loading.this, Mainsearchstu.class); Loading.this.startActivity(intent); Loading.this.finish(); else Message msg1 = new Message();msg1.obj = LoadResult;handler.sendMessage(msg1); 如果登陸成功,則跳轉(zhuǎn)到主界面,如果失敗,主線程就會收到 message,提示登錄失敗,功能代碼: handler=new Handler()public void handl

56、eMessage(Message msg1)24 / 52 Toast.makeText(Loading.this, 登錄失敗,請重試!, Toast.LENGTH_LONG).show(); /handler 的;3.學生用戶設備查詢界面學生用戶通過輸入所需查詢的設備名稱時,便可以從數(shù)據(jù)庫中查詢到所查詢的設備。需要說明的是,默認的查詢條件為“可借” ,如果需要查詢?nèi)吭O備,可以選擇“全部” 。在沒有輸入任何關(guān)鍵字的情況下,查詢結(jié)果為選擇條件下的所有設備。例如,輸入框沒有輸入任何字,條件是“可借” ,那么查詢的結(jié)果是顯示所有可借的設備。查詢“計算機”界面如下:圖 5.5 設備查詢界面設備查詢功

57、能主要代碼如下:偵聽搜索按鈕Buttonsearch_mainsearchstu=(Button) findViewById(R.id.search_mainsearchstu);search_mainsearchstu.setOnCli25 / 52ckListener(new search_mainsearchstu();點擊事件發(fā)生后public class search_mainsearchstu implements OnClickListener Overridepublic void onClick(View v) /獲得搜索設備的名稱并賦值給 EName EditText EN

58、ame_search = (EditText)findViewById(R.id.EName_search_mainsearchstu);String EName = EName_search.getText().toString();/測試獲得的 search_message1/Toast.makeText(Mainsearchstu.this, 查詢設備的名稱是:+EName, Toast.LENGTH_LONG).show();String URL=:8080/web1/search_message_stu; List params=new ArrayList(); pa

59、rams.add(new BasicNameValuePair(EName,EName);new Thread(params,URL).start();/Mainsearchstu.this.finish();把搜索請求發(fā)送給服務器,服務器返回數(shù)據(jù),在客戶端接受數(shù)據(jù),并用jason 解析,顯示搜索到的結(jié)果。主要功能代碼:handler=new Handler()public void handleMessage(Message msg) String EName_searchResult=(String)msg.obj;/obj 不一定是 String 類,可以是別的類,看用戶具體的應用 Sy

60、stem.out.println(返回的數(shù)據(jù)是+EName_searchResult); /Toast.makeText(Mainsearchstu.this, EName_searchResult, Toast.LENGTH_LONG).show(); tryJSONArray array=new JSONArray(EName_searchResult); for(int i=0;iarray.length();i+) JSONObject jsonObject=array.getJSONObject(i);ENamesearchi=jsonObject.getString26 / 52(EName);

溫馨提示

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

評論

0/150

提交評論