版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、鹽城師范學(xué)院畢業(yè)設(shè)計(jì)第 第 頁,共 SECTIONPAGES 26 頁目 錄TOC o 1-3 h u HYPERLINK l _Toc452843885 1緒論 PAGEREF _Toc452843885 h 3 HYPERLINK l _Toc452843886 1.1課題背景和意義 PAGEREF _Toc452843886 h 3 HYPERLINK l _Toc452843887 1.2 課題研究的主要內(nèi)容 PAGEREF _Toc452843887 h 3 HYPERLINK l _Toc452843888 2 系統(tǒng)開發(fā)的環(huán)境及技術(shù)分析 PAGEREF _Toc452843888
2、h 3 HYPERLINK l _Toc452843889 2.1 開發(fā)環(huán)境 PAGEREF _Toc452843889 h 3 HYPERLINK l _Toc452843890 2.2 技術(shù)分析 PAGEREF _Toc452843890 h 4 HYPERLINK l _Toc452843891 2.2.1 Android技術(shù) PAGEREF _Toc452843891 h 4 HYPERLINK l _Toc452843892 2.2.2 Axis2框架 PAGEREF _Toc452843892 h 4 HYPERLINK l _Toc452843893 2.2.3 推送技術(shù) PAG
3、EREF _Toc452843893 h 5 HYPERLINK l _Toc452843894 3 需求分析 PAGEREF _Toc452843894 h 6 HYPERLINK l _Toc452843895 3.1 系統(tǒng)可行性分析 PAGEREF _Toc452843895 h 6 HYPERLINK l _Toc452843896 3.1.1 技術(shù)可行性 PAGEREF _Toc452843896 h 6 HYPERLINK l _Toc452843897 3.1.1 法律可行性 PAGEREF _Toc452843897 h 6 HYPERLINK l _Toc452843898
4、3.1.3 經(jīng)濟(jì)可行性 PAGEREF _Toc452843898 h 6 HYPERLINK l _Toc452843899 3.2 系統(tǒng)功能性分析 PAGEREF _Toc452843899 h 7 HYPERLINK l _Toc452843900 3.2.1 手機(jī)客戶端 PAGEREF _Toc452843900 h 7 HYPERLINK l _Toc452843901 3.2.2 瀏覽器服務(wù)端 PAGEREF _Toc452843901 h 7 HYPERLINK l _Toc452843902 4 系統(tǒng)總體設(shè)計(jì) PAGEREF _Toc452843902 h 7 HYPERLIN
5、K l _Toc452843903 4.1 設(shè)計(jì)原則 PAGEREF _Toc452843903 h 7 HYPERLINK l _Toc452843904 4.2 體系架構(gòu) PAGEREF _Toc452843904 h 8 HYPERLINK l _Toc452843905 4.3 數(shù)據(jù)庫表設(shè)計(jì) PAGEREF _Toc452843905 h 8 HYPERLINK l _Toc452843906 4.4 客戶端模塊設(shè)計(jì) PAGEREF _Toc452843906 h 10 HYPERLINK l _Toc452843907 4.5 服務(wù)端模塊設(shè)計(jì) PAGEREF _Toc45284390
6、7 h 12 HYPERLINK l _Toc452843908 5 系統(tǒng)詳細(xì)設(shè)計(jì)與編碼實(shí)現(xiàn) PAGEREF _Toc452843908 h 13 HYPERLINK l _Toc452843909 5.1 數(shù)據(jù)庫連接 PAGEREF _Toc452843909 h 13 HYPERLINK l _Toc452843910 5.2 手機(jī)客戶端 PAGEREF _Toc452843910 h 14 HYPERLINK l _Toc452843911 5.2.1 自定義適配器實(shí)現(xiàn) PAGEREF _Toc452843911 h 14 HYPERLINK l _Toc452843912 5.2.2
7、推送消息的獲取 PAGEREF _Toc452843912 h 15 HYPERLINK l _Toc452843913 5.2.3 客戶端AsyncTask請求 PAGEREF _Toc452843913 h 16 HYPERLINK l _Toc452843914 5.2.4 定位實(shí)現(xiàn) PAGEREF _Toc452843914 h 18 HYPERLINK l _Toc452843915 5.3 瀏覽器服務(wù)端 PAGEREF _Toc452843915 h 19 HYPERLINK l _Toc452843916 5.3.1 查詢實(shí)現(xiàn) PAGEREF _Toc452843916 h 19
8、 HYPERLINK l _Toc452843917 5.3.2 新增實(shí)現(xiàn) PAGEREF _Toc452843917 h 19 HYPERLINK l _Toc452843918 6 系統(tǒng)測試 PAGEREF _Toc452843918 h 20 HYPERLINK l _Toc452843919 6.1 系統(tǒng)測試的目的及意義 PAGEREF _Toc452843919 h 20 HYPERLINK l _Toc452843920 6.2 客戶端功能測試 PAGEREF _Toc452843920 h 21 HYPERLINK l _Toc452843921 6.2.1 登錄功能測試 PAG
9、EREF _Toc452843921 h 21 HYPERLINK l _Toc452843922 6.2.2 租車功能測試 PAGEREF _Toc452843922 h 21 HYPERLINK l _Toc452843923 6.2.3 用戶信息測試 PAGEREF _Toc452843923 h 21 HYPERLINK l _Toc452843924 6.2.4 訂單功能測試 PAGEREF _Toc452843924 h 22 HYPERLINK l _Toc452843925 6.2.5 邊緣功能測試 PAGEREF _Toc452843925 h 22 HYPERLINK l
10、_Toc452843926 6.3 后臺功能測試 PAGEREF _Toc452843926 h 23 HYPERLINK l _Toc452843927 結(jié)束語 PAGEREF _Toc452843927 h 24 HYPERLINK l _Toc452843928 參考文獻(xiàn) PAGEREF _Toc452843928 h 25 HYPERLINK l _Toc452843929 致 謝 PAGEREF _Toc452843929 h 261緒論課題背景和意義隨著移動(dòng)通訊平臺的發(fā)展和WIFI的普及,智能手機(jī)的功能已不局限于打電話和發(fā)短信,越來越多的人開始通過智能手機(jī)進(jìn)行日常的娛樂、通訊、工作
11、、出行等方方面面。在這其中Android系統(tǒng)因?yàn)槠淞己玫慕换バ院头€(wěn)定性成為智能手機(jī)的主流操作系統(tǒng)。同時(shí)Android憑借開放的平臺和開源的特性,給開發(fā)者提供自由的開發(fā)環(huán)境。從2006年開始,中國的汽車租賃行業(yè)就處在飛速發(fā)展的階段,市場規(guī)模從當(dāng)初的20億元到現(xiàn)在的270億元。據(jù)估計(jì)未來幾年,中國汽車租賃行業(yè)仍將持續(xù)快速增長1。同時(shí),汽車租賃行業(yè)的發(fā)展近幾年也從傳統(tǒng)的面對外企、大型國有企業(yè)等企業(yè)用戶大規(guī)模的轉(zhuǎn)向投入個(gè)人業(yè)務(wù)中。在行業(yè)快速發(fā)展的同時(shí),傳統(tǒng)的線下租車模式已經(jīng)不能滿足大眾的需求,人們迫切希望通過移動(dòng)平臺快速的租賃汽車。為了滿足人們的需求,改革傳統(tǒng)的租車模式,結(jié)合相關(guān)技術(shù)設(shè)計(jì)開發(fā)了面向An
12、droid的汽車租賃系統(tǒng)。用戶僅需下載安裝軟件注冊用戶,即可快速的選取周邊汽車租賃店并預(yù)約汽車,滿足了用戶對于快速租賃的實(shí)際需求。1.2 課題研究的主要內(nèi)容基于Android的汽車租賃系統(tǒng)是一款面向大眾的軟件,開發(fā)過程中需要考慮到不同年齡段的使用人群,盡最大可能的滿足各種人群的需求。系統(tǒng)的瀏覽器端采用Java Web進(jìn)行開發(fā),有利于以后的跨平臺使用。手機(jī)移動(dòng)端采用Android控件和Java技術(shù)進(jìn)行開發(fā),數(shù)據(jù)庫使用MySQL。管理員根據(jù)要求,將門店,汽車等信息從瀏覽器端輸入到數(shù)據(jù)庫中,并對數(shù)據(jù)進(jìn)行維護(hù)和更新。用戶可在客戶端發(fā)送數(shù)據(jù)請求,通過Web服務(wù)查詢數(shù)據(jù)庫并返回JSON數(shù)據(jù),從而完成服務(wù)端
13、與客戶端的數(shù)據(jù)信息交互。2 系統(tǒng)開發(fā)的環(huán)境及技術(shù)分析2.1 開發(fā)環(huán)境服務(wù)器端開發(fā)環(huán)境:以WIN8.1 64位操作系統(tǒng)為開發(fā)平臺,MySQL5.6存儲數(shù)據(jù),Tomcat7.0作為服務(wù)器,Eclipse EE(集成Axis2插件)作為Android服務(wù)端開發(fā)工具,MyEclipse作為客戶端開發(fā)工具。客戶端開發(fā)環(huán)境:以WIN8.1 64位操作系統(tǒng)為開發(fā)平臺,以Myeclipse(集成SDK:Android4.0)作為集成開發(fā)工具,夜神模擬器作為測試工具。2.2 技術(shù)分析2.2.1 Android技術(shù)經(jīng)過十多年的發(fā)展,Android技術(shù)開發(fā)已經(jīng)很完善,其采用分層架構(gòu),如圖2-1。開發(fā)者可以選擇使用J
14、ava作為開發(fā)語言來進(jìn)行應(yīng)用開發(fā),也可以使用NDK或者C/C+來進(jìn)行應(yīng)用開發(fā)。Android SDK(軟件開發(fā)包)中有很多特制的工具和文件,可以幫助開發(fā)者在開發(fā)平臺上對移動(dòng)應(yīng)用程序進(jìn)行快速開發(fā)2。一個(gè)Android應(yīng)用程序一般是由四大組件構(gòu)成。Activity(活動(dòng)):是Android程序顯示給用戶信息的界面,用于設(shè)置頁面布局內(nèi)容等信息;Service(服務(wù)):在界面不呈現(xiàn)任何信息,對后臺運(yùn)行程序進(jìn)行處理;BroadcastReciever(廣播接收器):用來接受廣播;ContentProvider(內(nèi)容提供商):支持程序之間進(jìn)行數(shù)據(jù)的分享。圖2-1 Android分層架構(gòu)圖2.2.2 Axi
15、s2框架Axis2是Apache公司發(fā)布的最新的Web Service模型。它不是在Axis1基礎(chǔ)上的擴(kuò)展,而是重新開發(fā),重新實(shí)現(xiàn)。與之前的版本相比,它更加的高效、模塊化和可擴(kuò)展。Axis2支持SOAP協(xié)議,同時(shí)使用了新的核心XML處理模型AXIOM,更快更有效率。從技術(shù)層面上來說,Axis2由六部分組成3。組成部分見圖2-2所示。在Android開發(fā)中,使用Axis2,開發(fā)者可以快速實(shí)現(xiàn)Web Service。具體實(shí)現(xiàn)流程見圖2-3。圖2-2 Axis2技術(shù)構(gòu)成圖圖2-3 實(shí)現(xiàn)流程圖2.2.3 推送技術(shù)數(shù)據(jù)推送的實(shí)現(xiàn)方案有很多種,最常見的有如下幾種:(1)C2DM推送。它提供了輕量級的消息推
16、送體制,允許服務(wù)端告訴客戶端進(jìn)行數(shù)據(jù)交互。它是Google公司提供的原生框架,操作起來簡單方便,但是需要對android的版本號提出了要求,同時(shí)需要Google帳號登錄。(2)基于XMPP的AndroidPN推送。主要用于即時(shí)通訊,可擴(kuò)展性強(qiáng),但是需要在原有基礎(chǔ)上進(jìn)行二次開發(fā),穩(wěn)定性差,成本高。(3)使用MQTT協(xié)議。它是IBM開發(fā)的輕量級消息協(xié)議,省電省流量,但是技術(shù)實(shí)現(xiàn)成本高,同時(shí)還不夠完善4。以上幾種方案都存在一定的問題,從課題的技術(shù)需求出發(fā),選擇速度與可擴(kuò)展性兼具的極光推送技術(shù)。課題中采用極光推送的Web后臺建立與客戶端的移動(dòng)無線長連接,在客戶端中嵌入推送的SDK,使用AlarmMan
17、ager來定時(shí)執(zhí)行任務(wù),接受推送的消息。使用這種方案實(shí)現(xiàn)簡單、減少開發(fā)成本、節(jié)約用戶的流量和電量,同時(shí)極光推送還提供了消息推送結(jié)果查詢,對消息推送的結(jié)果和過程有比較詳細(xì)的記錄。極光推送原理圖見圖2-4。圖2-4 JPush推送原理3 需求分析3.1 系統(tǒng)可行性分析3.1.1 技術(shù)可行性該租車系統(tǒng)是基于Android系統(tǒng)下的手機(jī)應(yīng)用軟件,使用的是Java語言在Myeclipse上進(jìn)行開發(fā)。Android屬于開源代碼,在網(wǎng)上能找到很多的案例和官方提供的API可供參考,同時(shí)有大量的第三方的插件可以輔助我們進(jìn)行快速的開發(fā)。所以整個(gè)設(shè)計(jì)過程和開發(fā)過程是可行的。3.1.1 法律可行性軟件開發(fā)所用的技術(shù)和工
18、具都是開源免費(fèi)的,應(yīng)用軟件是經(jīng)過調(diào)查研究之后針對汽車租賃這一行業(yè)進(jìn)行開發(fā)的,并且整個(gè)設(shè)計(jì)開發(fā)的過程完全由開發(fā)者獨(dú)立的完成,開發(fā)人員對該系統(tǒng)的代碼和產(chǎn)品具有使用權(quán)。因此在法律上來說,面向Android的汽車租賃系統(tǒng)完全不存在問題。3.1.3 經(jīng)濟(jì)可行性傳統(tǒng)的線下租車模式已經(jīng)不能滿足人們對于方便快捷的獲取信息和服務(wù)的宗旨了,而通過設(shè)計(jì)開發(fā)手機(jī)端的汽車租賃服務(wù)來滿足人們的需求已經(jīng)成為一種趨勢。設(shè)計(jì)開發(fā)Android的汽車租賃系統(tǒng)不需要消耗大量的資金,只需要提供技術(shù)和工具的使用即可完成,在經(jīng)濟(jì)上是可行的。3.2 系統(tǒng)功能性分析3.2.1 手機(jī)客戶端用戶:用戶注冊:查詢用戶個(gè)人信息功能,用戶賬戶金額的充
19、值、帳號密碼修改功能。查詢門店:了解門店信息,同時(shí)附加定位功能,了解自己所處的地理位置,選擇最近的門店。汽車租賃:根據(jù)需求,用戶選擇時(shí)間、門店、車型等條件進(jìn)行租車,并計(jì)算租車總金額給用戶。訂單管理:查詢用戶所用狀態(tài)訂單,對租賃中訂單進(jìn)行退訂和確認(rèn)操作,對完成的訂單可以進(jìn)行刪除。接受顯示軟件后臺推送過來的消息。使用分享軟件功能,可以將軟將分享到QQ、微博等比較流行的平臺上。3.2.2 瀏覽器服務(wù)端管理員:有關(guān)管理員的基本功能:管理門店、車輛等信息的錄入和維護(hù)更新;管理員根據(jù)實(shí)際的需求,對使用軟件的注冊用戶信息進(jìn)行查詢、修改、刪除等;對某些用戶的訂單信息進(jìn)行查詢、刪除等。管理員使用推送功能,選擇推
20、送用戶的范圍和推送消息的內(nèi)容和格式,并負(fù)責(zé)對推送消息的后期跟進(jìn)和維護(hù)。4 系統(tǒng)總體設(shè)計(jì)4.1 設(shè)計(jì)原則(1)實(shí)用性:汽車租賃系統(tǒng)的設(shè)計(jì)從用戶的需求出發(fā),在滿足用戶的主要需求的同時(shí)整合挖掘系統(tǒng)邊緣功能,加強(qiáng)系統(tǒng)的實(shí)用性。(2)可維護(hù)性和可擴(kuò)展性:考慮到未來的二次開發(fā)需求,系統(tǒng)在設(shè)計(jì)開發(fā)中實(shí)現(xiàn)了功能點(diǎn)的模塊化和規(guī)范化。(3)合理性:在設(shè)計(jì)系統(tǒng)的時(shí)候,充分考慮到了系統(tǒng)容量的問題,對運(yùn)行環(huán)境的有較好的適應(yīng)性。(4)界面友好性:界面是否美觀是用戶選擇是否繼續(xù)使用軟件的重要因素。本系統(tǒng)界面著色合理,給人以大方、舒適感,爭取獲得用戶的贊同。4.2 體系架構(gòu)汽車租賃系統(tǒng)在服務(wù)器端采用B/S(瀏覽器/服務(wù)器)模
21、式開發(fā),有利于以后的維護(hù)和擴(kuò)展。管理員端實(shí)現(xiàn)零安裝、跨平臺使用。用戶客戶端采用Android開發(fā),用戶下載Android手機(jī)端軟件并安裝,以較少的網(wǎng)絡(luò)數(shù)據(jù)實(shí)現(xiàn)信息的查詢和發(fā)送。系統(tǒng)體系架構(gòu)如圖4-1所示。圖4-1 系統(tǒng)體系架構(gòu)4.3 數(shù)據(jù)庫表設(shè)計(jì)在進(jìn)行數(shù)據(jù)庫設(shè)計(jì)之前,必須先了解每個(gè)實(shí)體相對應(yīng)的表,每一個(gè)實(shí)體所代表的意思,同時(shí)明白實(shí)體所具有的屬性,相對應(yīng)的名稱,字段的類型,約束條件等。明白每個(gè)實(shí)體之間的關(guān)聯(lián),每個(gè)實(shí)體屬性的關(guān)聯(lián)是設(shè)計(jì)一個(gè)好的數(shù)據(jù)庫的關(guān)鍵。在MySQL 5.6中創(chuàng)建名為carclient的數(shù)據(jù)庫,根據(jù)項(xiàng)目的需求分析和實(shí)際要求,系統(tǒng)一共創(chuàng)建了五張表:用戶信息表、車輛信息表、門店信息表
22、、訂單信息表、管理員信息表。主要數(shù)據(jù)庫表如下:描述:用戶信息表(use_table)用來存儲用戶信息,管理員管理,用戶登錄、注冊、修改密碼等操作都將對此表數(shù)據(jù)做修改。如表4-1所示。表4-1 用戶信息表字段名數(shù)據(jù)類型字段大小備注idint11主鍵自增IDnamevarchar55用戶名pwdvarchar55密碼續(xù)表4-1unamevarchar55昵稱iphonevarchar55電話moneydouble55賬戶金額描述:車輛信息表(car_table)用來存儲租賃公司所有的車輛信息,管理員新增、修改等操作,用戶租車、還車等操作都將對此表數(shù)據(jù)做修改。如表4-2所示。表4-2 車輛信息表字段
23、名數(shù)據(jù)類型字段大小備注idint11主鍵自增IDstylevarchar55車輛型號namevarchar55用戶名platevarchar55車牌號carplacevarchar55車輛所在門店carpriceint10租金flagint11使用狀態(tài)描述:門店信息表(mendian_table)用來存儲門店信息,用戶查看門店操作,管理員新增、修改等操作都將對此表進(jìn)行修改。如表4-3所示。表4-3 門店信息表字段名數(shù)據(jù)類型字段大小備注idint11主鍵自增IDmendiancityvarchar55城市mendiannamevarchar55店名mendianplacevarchar55地址描
24、述:訂單信息表(myorder_table)用來存儲所有用戶的租車情況,用戶下單租車,完成訂單,取消訂單都將對此表進(jìn)行修改。如表4-4所示。表4-4 訂單信息表字段名數(shù)據(jù)類型字段大小備注idint11主鍵自增IDusenamevarchar55用戶名ordertimevarchar55租車日期rentaltimevarchar55還車日期續(xù)表4-4getcarplacevarchar55取車門店repaycarplacevarchar55還車門店carinfovarchar55車輛信息rentalmoneyvarchar55租金platevarchar55車牌號flagvarchar55訂單狀
25、態(tài)描述:管理員信息表(admin_table)。主要存儲管理員的登錄名和密碼信息。管理員登錄管理員端的時(shí)候會調(diào)用表中的數(shù)據(jù),將輸入的信息與管理員表中的進(jìn)行匹配。如表4-5所示。表4-5 管理員表字段名數(shù)據(jù)類型字段大小備注idint4主鍵自增IDusernamevarchar50管理員姓名passwordvarchar50管理員密碼4.4 客戶端模塊設(shè)計(jì)客戶端需要用戶下載安裝應(yīng)用程序并注冊用戶,用戶輸入用戶名和密碼并通過邏輯處理和驗(yàn)證之后方能進(jìn)入程序,進(jìn)行網(wǎng)絡(luò)租賃汽車、個(gè)人信息管理、推送消息接收、地理位置定位、訂單管理、軟件分享等操作。在客戶端通過網(wǎng)絡(luò)向服務(wù)器端發(fā)送數(shù)據(jù)請求,等待接受服務(wù)端返回的
26、JSON類型的數(shù)據(jù)并顯示。JSON數(shù)據(jù)類型結(jié)構(gòu)如圖4-2所示。圖4-2 JSON數(shù)據(jù)類型結(jié)構(gòu)圖客戶端功能模塊劃分,如圖4-3所示。圖4-3 客戶端功能結(jié)構(gòu)圖各功能模塊詳細(xì)功能介紹:(1)汽車租賃:用戶根據(jù)要求選擇租車時(shí)間和地點(diǎn),根據(jù)租車地點(diǎn)顯示閑置的車輛提供給用戶選擇,同時(shí)用戶需要選擇還車時(shí)間和地點(diǎn)。成功提交訂單之后會彈出租車的詳細(xì)信息給用戶,包括計(jì)算得到的租車金額。(2)個(gè)人信息:功能一:顯示用戶的個(gè)人信息,包括姓名、電話、金額;功能二:提供用戶金額充值;功能三:修改用戶的登錄密碼。(3)門店信息:功能一:顯示軟件中門店的具體信息;功能二:用戶可以定位自己當(dāng)前的具體位置。(4)軟件分享:用戶
27、可以在各大主流交流平臺上推廣軟件。(5)電話預(yù)約:針對不太熟悉網(wǎng)上租賃的用戶,通過點(diǎn)擊電話預(yù)定,選擇客服服務(wù),租賃汽車。(6)訂單信息:功能一:查看用戶所有的訂單信息;功能二:查看用戶已完成的訂單信息,對訂單可以進(jìn)行刪除;功能三:查看未完成的訂單,對訂單可以進(jìn)行退訂和確定完成訂單。(7)應(yīng)用信息:應(yīng)用版本、開發(fā)團(tuán)隊(duì)、開發(fā)日期等信息。4.5 服務(wù)端模塊設(shè)計(jì)服務(wù)端采用B/S模式設(shè)計(jì),無需客戶端,只需要通過瀏覽器就可以直接訪問數(shù)據(jù)庫,不僅有利于系統(tǒng)的維護(hù)和擴(kuò)展,同時(shí)也便于管理員的使用。為了是界面美觀,操作方便,服務(wù)端采用了HTML、CSS結(jié)合JS實(shí)現(xiàn)了動(dòng)態(tài)數(shù)據(jù)顯示。管理員端只允許管理員的身份登錄???/p>
28、以根據(jù)系統(tǒng)的具體要求添加多個(gè)管理員,管理員可以進(jìn)去系統(tǒng)對每個(gè)模塊進(jìn)行必要的操作。功能模塊劃分,如圖4-4所示。下面是對功能模塊的劃分。圖4-4 瀏覽器服務(wù)端功能結(jié)構(gòu)圖各功能模塊詳細(xì)功能介紹:(1)汽車信息管理:功能一:管理員錄入汽車信息,顯示全部汽車信息;功能二:選擇某一輛汽車,對汽車信息進(jìn)行修改、刪除。(2)訂單信息管理:功能一:顯示用戶的訂單信息;功能二:對錯(cuò)誤訂單信息進(jìn)行刪除。(3)消息推送管理:根據(jù)需求選擇消息推送的人群和消息推送的內(nèi)容。對推送的信息進(jìn)行成功檢測。(4)門店信息管理:功能一:管理員錄入門店信息,顯示全部門店信息;功能二:對門店信息進(jìn)行修改、刪除。(5)個(gè)人信息管理:對注
29、冊用戶的信息進(jìn)行管理和必要的監(jiān)督。5 系統(tǒng)詳細(xì)設(shè)計(jì)與編碼實(shí)現(xiàn)5.1 數(shù)據(jù)庫連接服務(wù)端連接數(shù)據(jù)采用JDBC的連接方式,對數(shù)據(jù)進(jìn)行查詢刪除等都在DB類中實(shí)現(xiàn)。實(shí)現(xiàn)代碼如下:public class DB / JDBC方式連接數(shù)據(jù)庫 /申明變量public DB() try Class.forName(com.lyl.db.mynewsql); catch (java.lang.ClassNotFoundException error) /輸出數(shù)據(jù)庫驅(qū)動(dòng)注冊信息錯(cuò)誤報(bào)告 / 執(zhí)行SQL查詢語句public ResultSet LylMyOwnQuery(String sql) try myconne
30、ct = DriverManager.getConnection(sConnStr, root, liyunlong); /獲取登錄數(shù)據(jù)庫所需要的資源,如URL statqleerur= myconnect .createStatement(); /創(chuàng)建對象用來執(zhí)行SQL resawees = statqleerur.executeQuery(sql); /執(zhí)行SQL,并將執(zhí)行的結(jié)果存到result中 catch (SQLException errorinfo) /輸出錯(cuò)誤日志return resawees ; /返回查詢結(jié)果 5.2 手機(jī)客戶端5.2.1 自定義適配器實(shí)現(xiàn)手機(jī)客戶端的主要功能
31、之一是接受大量的數(shù)據(jù)信息并加以處理,然后呈現(xiàn)給用戶,所以需要使用到大量的ListView。自定義適配器能夠使ListView中的數(shù)據(jù)按照開發(fā)者的愿意進(jìn)行顯示給用戶,這樣使界面設(shè)計(jì)變得合理美觀。訂單界面如圖5-1所示。自定義適配器實(shí)現(xiàn)之前需要開發(fā)者提前設(shè)計(jì)好一條數(shù)據(jù)的顯示布局,自定義適配器的實(shí)現(xiàn)代碼如下: /自定義適配器繼承BaseAdapter并優(yōu)化內(nèi)部方法public class MyRentalCarStyleAdapter extends BaseAdapter /父類構(gòu)造函數(shù)調(diào)用、申明需要的變量 /重寫方法獲取對應(yīng)數(shù)據(jù)集中的指定的值public View getView(int myw
32、eizhi, View myshitu, ViewGroup getmyparent) if ( myshitu = null ) myshitu = LayoutInflater.from(context).inflate(R.layout.myadapter,null); /用來分析緩存是否存在,不存在的話,則解析xml Myyouhua youhua = mykongzhi(myshitu, myweizhi); /將數(shù)據(jù)內(nèi)容放入View存儲器中g(shù)etviewdeshuju(youhua, myweizhi); /把View存儲器中對應(yīng)值顯示return myshitu; /返回View
33、信息private void getviewdeshuju(Myyouhua myshitu, int myweizhi) final CarBean mendiancar = list.get(myweizhi); /獲取列表中指定索引對應(yīng)id的數(shù)據(jù)放入對象中myshitu.text_style.setText(車型 + mendiancar.getStyle(); /獲取對象中對應(yīng)屬性的值并在控件上顯示出來 圖5-1 訂單界面5.2.2 推送消息的獲取從推送Web端推送用戶感興趣的信息,讓用戶長時(shí)間保持對軟件的關(guān)注度。具體實(shí)現(xiàn)需要在客戶端自定義廣播接收器,用來接受推送過來的信息并打印出來,
34、同時(shí)在配置文件中加入推送需要的權(quán)限。消息推送界面如圖5-2所示。推送消息內(nèi)容獲取的實(shí)現(xiàn)代碼如下:private static String getinformation(Bundle getbundle) StringBuilder myonegetsb = new StringBuilder(); /實(shí)例化對象for (String mykey : getbundle.keySet() /遍歷取得的推送信息if (mykey.equals(JPushInterface.EXTRA_NOTIFICATION_ID) /判斷當(dāng)通知欄傳過來的值 /拼接獲取的信息else if(mykey.equa
35、ls(JPushInterface.EXTRA_CONNECTION_CHANGE) /判斷當(dāng)連接狀態(tài)發(fā)生變化傳過來的值 /拼接獲取的信息 else /拼接獲取其他狀態(tài)的信息return myonegetsb .toString(); /返回得到的信息 圖5-2 消息推送界面5.2.3 客戶端AsyncTask請求使用AsyncTask異步任務(wù)實(shí)現(xiàn)向后臺請求數(shù)據(jù)訪問,在后臺運(yùn)行,不占用UI主線程。用戶進(jìn)行個(gè)人信息查看,進(jìn)入界面需要調(diào)用AsyncTask。用戶信息界面見如5-3所示。具體實(shí)現(xiàn)代碼如下:private class dome extends AsyncTask /三個(gè)泛型參數(shù),分別為
36、輸入?yún)?shù),任務(wù)執(zhí)行進(jìn)度和返回結(jié)果的類型protected String doInBackground(String. params) / 此方法在onPreExecute之后執(zhí)行,在后臺執(zhí)行,這里不能對UI進(jìn)行操作String mygetlongresult = null; /聲明返回值對象try /WebService的命名空間和調(diào)用方法名SoapObject myrequ= new SoapObject(strNameSpace, strMethodName); / 指定WebService的命名空間和調(diào)用的方法名myrequ.addProperty( name , name ); /將參
37、數(shù)放入request中傳給后臺調(diào)用的方法elp.bodyOut = myrequ; /傳入的協(xié)議和一些頭文件申明HttpTransportSE httpse = new HttpTransportSE( strUrl ); /實(shí)例化HttpTransportSE對象httpse .call(action, elp); /用HttpTransportSE的call方法來實(shí)現(xiàn)WebService方法的操作if (!elp.getResponse().equals(null) /使用getResponse獲得返回的值并判斷返回值是否為null /取出返回結(jié)果 catch (Exception e)
38、/ 輸出錯(cuò)誤日志return mygetlongresult ; /返回rensult的值 圖5-3 用戶信息界面5.2.4 定位實(shí)現(xiàn)在系統(tǒng)設(shè)計(jì)開發(fā)過程中需要充分考慮到用戶使用軟件的方便性,挖掘系統(tǒng)的邊緣功能,在軟件中使用定位功能有利于用戶快速獲取自己的位置,然后根據(jù)自己所在位置選擇最佳門店。定位由GPS定位和網(wǎng)絡(luò)定位來獲取,高德地圖將之封裝在SDK中,通過調(diào)用高德地圖提供的接口獲取定位地址信息。自動(dòng)定位界面如圖5-4所示。定位實(shí)現(xiàn)代碼如下:mdingwei= new AMapLocationClientOption(); /實(shí)例化對象mdingwei.setNeedAddress(true)
39、; /設(shè)置返回定位之后的地址信息mdingwei.setOnceLocation(true); /設(shè)置定位執(zhí)行一次userclient.setLocationOption(mdingwei); /將設(shè)置的參數(shù)加載到客戶端userclient.startLocation(); /開啟定位接收定位結(jié)果:getdingwei.getLocationType(); /獲取定位來源,是GPS還是根據(jù)網(wǎng)絡(luò)定位getdingwei.getCountry() ; /獲取國家信息getdingwei.getProvince(); /獲取省份信息getdingwei.getCity(); /獲取城市信息getdi
40、ngwei.getDistrict() ; /獲取城區(qū)信息getdingwei.getStreet(); /獲取街道信息 /獲取信息拼接顯示 圖5-4 自動(dòng)定位界面5.3 瀏覽器服務(wù)端5.3.1 查詢實(shí)現(xiàn)從客戶端通過AsyncTask發(fā)送數(shù)據(jù)請求,服務(wù)端接收到請求,對數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行查詢并將查詢結(jié)果封裝成JSON類型的數(shù)據(jù)返回給客戶端。查詢代碼如下:ListMap cunchushujulist; /申明變量cunchushujulist =jdbcTemplate.queryForList(select * from car_table where myflagdeas=0 and fffs
41、fdys=?, fffsfdys); /使用spring的jdbcTemplate查詢數(shù)據(jù)庫return JSONArray.toJSONString(cunchushujulist ); /將查詢結(jié)果分裝成JSON類型并返回5.3.2 新增實(shí)現(xiàn)管理員通過瀏覽器服務(wù)端登入系統(tǒng),對數(shù)據(jù)庫中的每一個(gè)功能模塊進(jìn)行維護(hù)和更新。后臺管理界面如圖5-5所示。新增實(shí)現(xiàn)代碼如下:public void addmendian( String useidname , String usepwd) /聲明變量try DB mydbmodel=new DB(); /創(chuàng)建db對象sql=insert into car_
42、table( useidname , usepwd); /編寫SQL語句mydbmodel.executeUpdate(sql); /更新數(shù)據(jù)庫中的信息mydbmodel.close(); /關(guān)閉DB連接catch (Exception e) /拋出異常信息 圖5-5 后臺管理界面6 系統(tǒng)測試6.1 系統(tǒng)測試的目的及意義系統(tǒng)測試是程序的一種執(zhí)行過程,是為了盡可能多的發(fā)現(xiàn)系統(tǒng)中存在的問題,及時(shí)更正這些問題,減少軟件開發(fā)的過程和后期維護(hù)的過程,將軟件的錯(cuò)誤密度降到最低,同時(shí)系統(tǒng)測試也能夠提高軟件的可靠性、穩(wěn)定性、節(jié)約經(jīng)濟(jì)資源、改善用戶體驗(yàn),這符合系統(tǒng)開發(fā)的最初要求。6.2 客戶端功能測試6.2.1
43、 登錄功能測試用戶登錄系統(tǒng)需要做先行性檢測,查看用戶是否正確填寫用戶名和密碼,然后根據(jù)填寫的信息與數(shù)據(jù)庫中表存儲的信息對比,根本用戶的輸入的具體信息系統(tǒng)給出用戶不同的錯(cuò)誤報(bào)告。經(jīng)過多次的測試,測試結(jié)果和目標(biāo)結(jié)果相吻合。測試結(jié)果見表6-1。表6-1 登錄功能測試用戶名密碼預(yù)期結(jié)果測試結(jié)果是否符合空123用戶不能為空!用戶不能為空!是123空密碼不能為空!密碼不能為空!是11111111用戶不存在!用戶不存在!是1231111密碼錯(cuò)誤!密碼錯(cuò)誤!是123123成功進(jìn)入主界面成功進(jìn)入主界面是6.2.2 租車功能測試用戶可以在此界面進(jìn)行網(wǎng)絡(luò)租車,可以選擇租車的時(shí)間和門店,還車的時(shí)間門店等,用戶必須先選
44、擇需要租車的門店,然后根據(jù)租車門店中現(xiàn)有的車型選擇自己需要的車型,在提交訂單的時(shí)候,會根據(jù)用戶選擇的天數(shù)來自動(dòng)計(jì)算需要的金額顯示給用戶,讓用戶確定是否下單。經(jīng)過多次的測試,測試結(jié)果和目標(biāo)結(jié)果相吻合。測試結(jié)果見表6-2。表6-2 租車功能測試操作預(yù)期結(jié)果是否符合在選擇租車地址前選擇租車型號出現(xiàn)提示信息,提示先選擇租車地址是先選擇租車地址,根據(jù)地址選擇租車型號,選擇還車地址等信息點(diǎn)擊完成提交訂單顯示訂單已提交是6.2.3 用戶信息測試用戶進(jìn)入此界面可以直接看到個(gè)人的詳細(xì)信息,能夠進(jìn)行金額的充值,點(diǎn)擊修改按鈕能修改密碼。經(jīng)過多次的測試,測試結(jié)果和目標(biāo)結(jié)果相吻合。測試結(jié)果見表6-3。表6-3 用戶信息
45、測試操作預(yù)期結(jié)果是否符合點(diǎn)擊進(jìn)入用戶界面進(jìn)入用戶界面可以看到用戶信息是點(diǎn)擊充值金額,充值金額自動(dòng)刷新界面,看到個(gè)人賬戶金額增加是點(diǎn)擊修改密碼,進(jìn)入修改賬戶,輸入錯(cuò)誤舊密碼提示消息,舊密碼是否正確是舊密碼正確,新密碼不相同出現(xiàn)提示消息,提示用戶兩次密碼有誤是舊密碼正確,新密碼正確成功修改密碼是6.2.4 訂單功能測試用戶可以手動(dòng)滑動(dòng)界面或者點(diǎn)擊不同的按鈕,在三個(gè)子頁面可以來回切換。用戶進(jìn)去界面直接顯示所有訂單。點(diǎn)擊查看未完成訂單,對未完成訂單進(jìn)行完成或者退訂操作。點(diǎn)擊完成訂單可以對完成訂單做刪除操作。經(jīng)過多次的測試,測試結(jié)果和目標(biāo)結(jié)果相吻合。測試結(jié)果見表6-4。表6-4 訂單功能測試操作預(yù)期結(jié)果
46、是否符合進(jìn)入訂單界面直接顯示全部訂單進(jìn)去訂單界面顯示全部訂單是手滑或者點(diǎn)擊按鈕切換訂單界面的完成界面,未完成界面可以顯示已完成訂單和未完成訂單是在完成界面點(diǎn)擊一條數(shù)據(jù)進(jìn)行刪除成功刪除這條數(shù)據(jù)是在未完成界面點(diǎn)擊取消訂單成功取消訂單是在未完成界面點(diǎn)擊完成訂單訂單狀態(tài)變?yōu)橥瓿捎唵问?.2.5 邊緣功能測試系統(tǒng)邊緣性的功能有分享功能和定位功能。經(jīng)過多次的測試,測試結(jié)果和目標(biāo)結(jié)果相吻合。測試結(jié)果見表6-5。表6-5 邊緣功能測試操作預(yù)期結(jié)果是否符合點(diǎn)擊主界面的分享按鈕,選擇分享到QQ空間分享軟件到QQ空間并讓其他用戶看到是在查看門店中點(diǎn)擊定位自己的位置在地圖中成功定位到自己的位置是6.3 后臺功能測試管理員登錄管理員端,可以查看所有的功能模塊。對相應(yīng)的模塊進(jìn)行操作。經(jīng)過多次的測試,測試結(jié)果和目標(biāo)結(jié)果相吻合。測試結(jié)果見表6-6。表6-6 后臺功能測試操作預(yù)期結(jié)果是否符合輸入管理員用戶名和密碼進(jìn)入后臺主界面是點(diǎn)擊汽車管理模塊,新增、刪除、修改汽車信息新增、刪除、修改汽
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年工業(yè)萘項(xiàng)目立項(xiàng)申請報(bào)告模板
- 2025年智能化配電與電控裝置項(xiàng)目規(guī)劃申請報(bào)告模板
- 函授畢業(yè)生登記表自我鑒定范文15篇
- 2025年汽車安全氣囊及裝置項(xiàng)目提案報(bào)告
- 2025年寵物水族項(xiàng)目立項(xiàng)申請報(bào)告
- 2025年無菌包裝用包裝材料項(xiàng)目立項(xiàng)申請報(bào)告
- 2025年汽車覆蓋件模具項(xiàng)目提案報(bào)告模式
- 2024年度水利工程行政合同行政優(yōu)益權(quán)實(shí)施要點(diǎn)分析3篇
- 資料員個(gè)人工作總結(jié)范文五篇
- 房屋租賃協(xié)議書六篇
- 紅色簡約中國英雄人物李大釗課件
- 小學(xué)師德考評細(xì)則
- 軟件定義網(wǎng)絡(luò)(SDN)實(shí)戰(zhàn)教程課件
- 2024版《大學(xué)生職業(yè)生涯規(guī)劃與就業(yè)指導(dǎo)》 課程教案
- 專題10閱讀理解、拓展探究-2022-2023學(xué)年八年級數(shù)學(xué)上冊期末選填解答壓軸題必刷專題訓(xùn)練(華師大版)(原卷版+解析)
- 西師大版五年級上冊小數(shù)混合運(yùn)算題100道及答案
- 2024江蘇省鐵路集團(tuán)限公司春季招聘24人高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 2022年7月國家開放大學(xué)本科《中國法律史》期末紙質(zhì)考試試題及答案
- 2024-2025學(xué)年七年級數(shù)學(xué)上冊第一學(xué)期 期末模擬測試卷(湘教版)
- 2024年部門年終工作總結(jié)參考(四篇)
- 企業(yè)反恐專項(xiàng)經(jīng)費(fèi)保障制度
評論
0/150
提交評論