【正文】
available information entity ER diagram圖216餐館信息實(shí)體ER圖 Fig216 Restaurant of information entity ER diagram圖217旅館信息實(shí)體ER圖Fig217 Hotel of information entity ER diagram圖218評論信息實(shí)體ER圖Fig218 Comment of information entity ER diagram圖219個人用戶實(shí)體ER圖Fig219 Individual user entity ER diagram 圖220葫蘆島信息實(shí)體ER圖 Fig220 Huludao of information entity ER diagram圖221系統(tǒng)管理員實(shí)體ER圖Fig2221The system administrator entity E R diagram 圖222系統(tǒng)綜合ER圖 Fig222 ER diagram integrated system 表23實(shí)體及其屬性表Tab24 Entity and property sheet實(shí)體名稱屬性景點(diǎn)信息景點(diǎn)名稱,景點(diǎn)簡介,景點(diǎn)開放時間,景點(diǎn)價格,景點(diǎn)地址,景點(diǎn)經(jīng)緯度。美食信息美食名稱,美食簡介。餐館信息餐館名稱,餐館簡介,餐館地址,餐館價錢。旅館信息旅館名稱,旅館簡介,旅館地址,旅館價錢。用戶信息用戶名稱(用戶手機(jī)號),密碼。購物信息特產(chǎn)名稱,特產(chǎn)簡介。評論信息評論內(nèi)容,評論時間,評分,評論ID。3概要設(shè)計(jì)總體設(shè)計(jì)即系統(tǒng)的物理設(shè)計(jì),它包括:系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)、代碼設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、以及軟硬件配置等內(nèi)容。根據(jù)該系統(tǒng)的的特點(diǎn),可以將其分為APP端和服務(wù)器端兩個部分設(shè)計(jì)。APP端主要實(shí)現(xiàn)的功能為瀏覽信息、用戶登錄,經(jīng)典的導(dǎo)航、預(yù)約門票。服務(wù)器端主要實(shí)現(xiàn)功能為信息審核,信息發(fā)布。 圖31APP端功能結(jié)構(gòu)圖 Fig31 The APP system function structure drawing 圖32后臺系統(tǒng)功能結(jié)構(gòu)圖 Fig32 The background system function structure景點(diǎn)信息是從服務(wù)器端獲取的JSON信息,安卓客戶端進(jìn)行解析?!?8080/BYSJ/servlet/GetJson?type=”,type表示請求的是哪個功能模塊的數(shù)據(jù),其中1代表景點(diǎn)、2代表美食、3代表餐館、4代表住宿、5代表購物。使用數(shù)據(jù)庫操作類中的createCon方法來進(jìn)行對數(shù)據(jù)庫的連接和訪問操作。代碼是程序員用開發(fā)工具所支持的語言寫出來的源文件,是一組由字符、符號形式表示信息的明確規(guī)則體系。代碼設(shè)計(jì)的原則包括唯一確定性、簡單性和易識別性、可擴(kuò)充性與合理性、規(guī)范性等。綜上所述代碼設(shè)計(jì)的原則如下:(1)唯一性:一個對象只能賦予它唯一的代碼。(2)簡單性:代碼命名要簡單直觀。(3)易識別性:為便于記憶、減少出錯,代碼應(yīng)當(dāng)邏輯性強(qiáng),表意明確。(4)可擴(kuò)充性:不需要變動原代碼體系,可直接追加新代碼,以適應(yīng)系統(tǒng)發(fā)展。(5)合理性:必須在邏輯上滿足應(yīng)用需要,在結(jié)構(gòu)上與處理方法相一致。(6)規(guī)范性:盡可能采用現(xiàn)有的國標(biāo)、部標(biāo)編碼,結(jié)構(gòu)統(tǒng)一。(1) 數(shù)據(jù)代碼和布局代碼JSON和XML的可讀性可謂不相上下,一邊是簡易的語法,一邊是規(guī)范的標(biāo)簽形式,很難分出勝負(fù)。XML天生有很好的擴(kuò)展性,JSON當(dāng)然也有,沒有什么是XML可以擴(kuò)展而JSON卻不能擴(kuò)展的。不過JSON在Javascript主場作戰(zhàn),可以存儲Javascript復(fù)合對象,有著xml不可比擬的優(yōu)勢。XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有提供的工具。無工具的情況下,相信熟練的開發(fā)人員一樣能很快的寫出想要的xml文檔和JSON字符串,不過,xml文檔要多很多結(jié)構(gòu)上的字符。XML的解析方式有兩種:一是通過文檔模型解析,也就是通過父標(biāo)簽索引出一組標(biāo)記。例如:(tagName),但是這樣是要在預(yù)先知道文檔結(jié)構(gòu)的情況下使用,無法進(jìn)行通用的封裝。另外一種方法是遍歷節(jié)點(diǎn)(document 以及 childNodes)。這個可以通過遞歸來實(shí)現(xiàn),不過解析出來的數(shù)據(jù)仍舊是形式各異,往往也不能滿足預(yù)先的要求。而如果不知道JSON的結(jié)構(gòu)而去解析JSON的話,那簡直是噩夢。費(fèi)時費(fèi)力不說,代碼也會變得冗余拖沓,得到的結(jié)果也不盡人意。但是這樣也不影響眾多前臺開發(fā)人員選擇JSON。()就可以看到JSON的字符串結(jié)構(gòu)。當(dāng)然不是使用這個字符串,這樣仍舊是噩夢。常用JSON的人看到這個字符串之后,就對JSON的結(jié)構(gòu)很明了了,就更容易的操作JSON。(2) 功能模塊代碼功能模塊采用的是java代碼。用java代碼加載各自功能的布局,進(jìn)行數(shù)據(jù)加載和事件分發(fā)操作。Java是功能完善的通用程序設(shè)計(jì)語言,可以用來開發(fā)可靠的、要求嚴(yán)格的應(yīng)用程序。(1)景點(diǎn)信息,包括數(shù)據(jù)項(xiàng):景點(diǎn)編號、景點(diǎn)名稱、景點(diǎn)圖片、景點(diǎn)簡介、景點(diǎn)地址、景點(diǎn)開放時間、景點(diǎn)價錢等。(2)美食信息,包括數(shù)據(jù)項(xiàng):美食編號、美食名稱、美食簡介等。(3)餐館信息,包括數(shù)據(jù)項(xiàng):餐館編號、餐館名稱、餐館簡介、餐館地址、餐館價錢等。(4)旅館信息,包括數(shù)據(jù)項(xiàng):旅館編號、旅館名稱、旅館簡介、旅館地址、旅館價錢等。(5)個人信息,包括數(shù)據(jù)項(xiàng):個人編號、用戶名、密碼。(6)評論信息,包括數(shù)據(jù)項(xiàng):評論內(nèi)容、評論時間、評分、對應(yīng)用戶ID、對用景點(diǎn)ID。表31景點(diǎn)信息表Tab31 Scenic of information table字段名稱數(shù)據(jù)類型字段大小允許空說明IDint255景點(diǎn)編號snamevarchar255景點(diǎn)名稱pic_urlvarchar255景點(diǎn)圖片descvarchar255景點(diǎn)簡介avgvarchar255景點(diǎn)評分countvarchar255 評分總數(shù)map_xvarchar255 景點(diǎn)精度map_yvarchar255景點(diǎn)維度addressvarchar255景點(diǎn)地址 opening_hoursvarchar255 景點(diǎn)開放時間pricevarchar255 景點(diǎn)價格表32美食信息表Tab32 Food of information table字段名稱數(shù)據(jù)類型字段大小允許空說明IDInt4美食編號snamevarchar255美食名稱descvarchar255美食簡介pic_urlvarchar255美食圖片表33餐館信息表Tab33Restaurant of information table字段名稱數(shù)據(jù)類型字段大小允許空說明IDint255餐館編號snamevarchar255餐館名稱avgvrchar255餐館評分pricevarchar255餐館價錢addressvarchar255餐館地址telvarchar255餐館電話map_xvarchar255餐館精度map_yvarchar255餐館緯度表34旅館信息表Tab34 Hotel of information table字段名稱數(shù)據(jù)類型字段大小允許空說明IDint255旅館編號snamevarchar255旅館名稱avgvarchar255旅館評分pricevarchar 255 旅館價錢addressvarchar255旅館地址telvarchar255旅館電話map_xvarchar255旅館精度map_yvarchar255旅館緯度pic_urlvarchar255旅館圖片表35個人信息表Tab35 User of information table字段名稱數(shù)據(jù)類型字段大小允許空說明IDint4用戶編號usernamevarchar255用戶名passwordvarchar255用戶密碼tokenvarchar255用戶標(biāo)識表36評論信息表Tab36 Comment of information table字段名稱數(shù)據(jù)類型字段大小允許空說明IDint255評論編號contentvarchar評論內(nèi)容userTypevarchar255評論時間Auditingvarchar255評分varchar255 評論用戶IDvarchar255 評論景點(diǎn)ID(1)APP開發(fā)環(huán)境開發(fā)環(huán)境:AndroidStudio集成開發(fā)環(huán)境。開發(fā)語言:JAVA。網(wǎng)站后臺數(shù)據(jù)庫:MYSQL。開發(fā)環(huán)境運(yùn)行平臺:Windows7/Windows XP。(2)服務(wù)器端操作系統(tǒng):Windows7。Web服務(wù)器:Internet信息服務(wù)(IIS)管理器。數(shù)據(jù)庫服務(wù)器:SQL Server 2005。瀏覽器:IE 。網(wǎng)站服務(wù)器運(yùn)行環(huán)境: Framework SDK 。系統(tǒng)的運(yùn)行控制將按照會員注冊、信息管理、評論管理三大模塊之間的關(guān)系來實(shí)現(xiàn)運(yùn)行。會員注冊時驗(yàn)證手機(jī)號,驗(yàn)證通過以后插入到系統(tǒng)的數(shù)據(jù)庫中,服務(wù)器端審核景點(diǎn)信息然后發(fā)布。服務(wù)器對景點(diǎn)信息和景點(diǎn)評論信息進(jìn)行審核。在用戶進(jìn)行手機(jī)號注冊時,一方面驗(yàn)證手機(jī)號格式是否正確,如果手機(jī)號格式不正確,Toast提示用戶手機(jī)號不正確,另一方面向用戶填寫的手機(jī)號發(fā)送驗(yàn)證碼來確定該手機(jī)號是不是用戶當(dāng)前正在用的手機(jī)號,如果不是將Toast提示用戶驗(yàn)證碼不正確。密碼必須大于6位以保證安全性,如果小于6位將Toast提示輸入的密碼小于6位。在用戶輸入錯誤之后提醒用戶重新輸入。隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)安全越來越重要。安全性主要有一下幾部分組成,數(shù)據(jù)接口大多采用POST請求,地址欄不可以看見明文。數(shù)據(jù)存儲時候用戶密碼采用MD5加密存儲。用戶名為用戶當(dāng)前正在使用的手機(jī)號,并且進(jìn)行短信驗(yàn)證。要保證數(shù)據(jù)的安全,就必須要保證數(shù)據(jù)庫的安全性。數(shù)據(jù)庫的安全性是指在信息系統(tǒng)的不同層次保護(hù)數(shù)據(jù)庫,防止未授權(quán)的數(shù)據(jù)訪問,避免數(shù)據(jù)泄漏以及不合法的修改對數(shù)據(jù)產(chǎn)生的破壞。因此,要時刻做好數(shù)據(jù)庫的備份工作,防止數(shù)據(jù)庫被損壞[8]。用戶登錄,用戶名、密碼以及Token作為驗(yàn)證用戶的唯一判定。當(dāng)用戶請求登錄時,APP端訪問服務(wù)器,服務(wù)器對數(shù)據(jù)庫中的用戶表進(jìn)行查詢,如果存在用戶才可以登錄,并且返回一個Token作為用戶下一次登錄的標(biāo)識。Token為每次用戶登錄服務(wù)器隨機(jī)生成的,所以可以避免非法用戶進(jìn)行流量攻擊。4詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)是軟件工程中軟件開發(fā)的一個步驟,就是對概要設(shè)計(jì)的一個細(xì)化,就是詳細(xì)設(shè)計(jì)每個模塊實(shí)現(xiàn)算法,所需的局部結(jié)構(gòu)。模塊名稱:用戶注冊。模塊功能:此模塊用于未完成注冊的個人用戶進(jìn)行注冊會員。用戶注冊時需要填寫手機(jī)號作為用戶名,并且通過手機(jī)驗(yàn)證系統(tǒng)向該手機(jī)號發(fā)送驗(yàn)證碼已確認(rèn)用戶填寫的手機(jī)號為當(dāng)前正在使用的手機(jī)號。然后系統(tǒng)審核通過完成注冊。當(dāng)用戶注冊完成以后顯示用戶頭像、用戶昵稱。如果用戶未上傳頭像系統(tǒng)給一個默認(rèn)頭像。用戶注冊流程圖,當(dāng)首次打開APP時提示用戶進(jìn)行登錄,如果用戶不登錄,仍然可以瀏覽信息,但是當(dāng)用戶想要對景區(qū)、旅店、餐館進(jìn)行評論時,判斷用戶是否登錄。如果未登錄跳到登錄頁面,用戶填寫手機(jī)號和密碼完成注冊。圖41用戶注冊流程圖 Fig41 The flow chart of membership registration模塊名稱:評論信息。模塊功能:用戶可以對景區(qū)、旅店、餐館等信息進(jìn)行評論和評分,其他用戶可以觀看到該信息的評論來作為參考。評論內(nèi)容、評論時間,評分。評論內(nèi)容、評論時間、評分、用戶名、用戶頭像。當(dāng)用戶親自體驗(yàn)過景區(qū)、餐館、旅館以后,用戶可以對其進(jìn)行評論和評分,服務(wù)器進(jìn)行審核,如果服務(wù)器審核成功,將把用戶評論信息展示出來。圖42評論信息流程圖Fig42 Comment of information flow chart模塊名稱:評論信息管理。模塊功能:服務(wù)器對景區(qū)信息、餐館信息、旅館信息以及用戶對其的評價進(jìn)行審核,如果某個信息虛假或者用戶全部評論較差服務(wù)器可以刪除該信息。景區(qū)信息、餐館信息、旅館信息、用戶評論。景區(qū)信息、餐館信息、旅館信息、用戶評論。服務(wù)器對景區(qū)信息、餐館信息、旅館信息以及用戶對其的評價進(jìn)行審核,如果某個信息虛假或者用戶全部評論較差服務(wù)器可以刪除該信息圖43評論信息管理流程圖Fig43 Comment of information management flow chart:APP首頁包括您當(dāng)前位置,出行必讀,景點(diǎn),美食,住宿,購物,活動,路線推薦幾大功能。側(cè)滑有用戶登錄之后的信息展示。圖44A