酒店預(yù)訂系統(tǒng)_第1頁(yè)
酒店預(yù)訂系統(tǒng)_第2頁(yè)
酒店預(yù)訂系統(tǒng)_第3頁(yè)
酒店預(yù)訂系統(tǒng)_第4頁(yè)
酒店預(yù)訂系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

北京理工大學(xué)珠海學(xué)院課程設(shè)計(jì)說(shuō)明書(shū)2023—2023學(xué)年第1學(xué)期題目:酒店預(yù)訂系統(tǒng)學(xué)院:商學(xué)院專業(yè)班級(jí):信息管理與信息系統(tǒng)四班學(xué)號(hào)姓名:8謝澤銓學(xué)號(hào)姓名:1熊祖威 學(xué)號(hào)姓名:4邵驊學(xué)號(hào)姓名:3歐邦用指導(dǎo)教師:成績(jī):時(shí)間:年月日目錄第一章設(shè)計(jì)內(nèi)容與目標(biāo) 41.1項(xiàng)目背景 41.2項(xiàng)目目的 41.3使用環(huán)境 41.4開(kāi)發(fā)方法 4第二章需求分析 52.1軟件工具與硬件環(huán)境需求 52.2功能需求2.2.1系統(tǒng)功能需求 52.2.2系統(tǒng)功能結(jié)構(gòu)圖 52.2.3功能需求具體介紹 62.2.4對(duì)系統(tǒng)性能的規(guī)定 62.2.5統(tǒng)計(jì)分析 6第三章系統(tǒng)分析 83.1現(xiàn)行系統(tǒng)的現(xiàn)況以及存在問(wèn)題 83.1.1傳統(tǒng)酒店房間預(yù)訂業(yè)務(wù)活動(dòng) 83.1.2傳統(tǒng)酒店房間預(yù)訂業(yè)務(wù)數(shù)據(jù)處理 83.2全面描述新系統(tǒng)的功能和目標(biāo) 93.2.1從用戶方的角度: 93.2.2從酒店方的角度: 93.3新系統(tǒng)的邏輯模型 93.3.2數(shù)據(jù)流圖 103.3數(shù)據(jù)字典 133.3.1詞條描述 133.4E-R圖 203.5新系統(tǒng)的可行性分析 21第四章系統(tǒng)設(shè)計(jì) 224.1系統(tǒng)概述 224.2開(kāi)發(fā)、測(cè)試與運(yùn)行環(huán)境 224.3系統(tǒng)結(jié)構(gòu)圖 224.3.1功能模塊劃分 224.3.2功能模塊描述 234.4代碼設(shè)計(jì) 234.5數(shù)據(jù)庫(kù)設(shè)計(jì) 244.5.1數(shù)據(jù)庫(kù)環(huán)境說(shuō)明 244.5.2數(shù)據(jù)庫(kù)命名規(guī)則 244.5.3安全性設(shè)計(jì)說(shuō)明 244.5.4概念結(jié)構(gòu)設(shè)計(jì) 244.5.5關(guān)系數(shù)據(jù)模型 254.5.6數(shù)據(jù)庫(kù)實(shí)施 254.6用戶界面設(shè)計(jì)概述 284.7綜合考慮 314.7.1穩(wěn)定性和可擴(kuò)展性 314.7.2性能分析 324.7.3性能指標(biāo)實(shí)現(xiàn) 324.7.4防錯(cuò)與出錯(cuò)處理 32第五章酒店預(yù)訂系統(tǒng)的實(shí)現(xiàn) 335.1開(kāi)發(fā)環(huán)境的選擇和依據(jù) 335.1.1開(kāi)發(fā)環(huán)境的選擇 335.1.2開(kāi)發(fā)環(huán)境選擇的依據(jù) 335.1.3開(kāi)發(fā)框架和方法 335.2系統(tǒng)功能模塊的實(shí)現(xiàn) 335.2.1用戶模塊實(shí)現(xiàn) 335.2.2查詢模塊實(shí)現(xiàn) 385.2.3預(yù)訂模塊實(shí)現(xiàn) 425.2.4退訂模塊實(shí)現(xiàn) 475.3酒店預(yù)訂系統(tǒng)APP測(cè)試情況 485.3.1測(cè)試用例 485.3.2測(cè)試環(huán)境與配置 485.3.3測(cè)試方法 485.3.4測(cè)試數(shù)據(jù) 49第六章全文總結(jié) 50

第一章設(shè)計(jì)內(nèi)容與目的1.1項(xiàng)目背景當(dāng)下是一個(gè)信息化的時(shí)代,越來(lái)越多的用戶喜歡在網(wǎng)上進(jìn)行消費(fèi)活動(dòng),如網(wǎng)上訂餐,網(wǎng)上購(gòu)物等等。而酒店預(yù)訂作為一種較為普遍的消費(fèi)活動(dòng),自然也需要借助信息的力量來(lái)使其更加方便快捷,讓顧客具有更好的消費(fèi)體驗(yàn),同時(shí)節(jié)約顧客的時(shí)間成本。本系統(tǒng)是針對(duì)酒店的具體業(yè)務(wù)而開(kāi)發(fā)的。業(yè)務(wù)管理以酒店前臺(tái)管理為核心,通過(guò)使用手機(jī)APP的方式,為旅客提供高效的服務(wù),減免手工解決的繁瑣與誤差,及時(shí)、準(zhǔn)確的反映酒店的經(jīng)營(yíng)情況,提供應(yīng)旅客以快捷、準(zhǔn)確和可靠的信息和服務(wù),同時(shí),也提高了酒店自身的管理水平。1.2項(xiàng)目目的在如今信息化的背景下,任何行業(yè)都與信息化息息相關(guān)。如何運(yùn)用現(xiàn)代社會(huì)賦予我們的新觀念、新手段發(fā)明更大的財(cái)富,針對(duì)酒店預(yù)訂這一環(huán)節(jié),我們了解到目前酒店預(yù)訂工作依舊效率低,大多數(shù)用戶仍然使用著電話預(yù)定的人工預(yù)訂方式,因而不能及時(shí)了解用戶的需求,不可以很好地滿足用戶的需求。人工管理存在許多弊端,由于不可避免的人為因素,如登記錯(cuò)誤,預(yù)訂反復(fù)等,導(dǎo)致數(shù)據(jù)丟失、誤報(bào),因此就需要優(yōu)化后的酒店預(yù)訂系統(tǒng)。為了方便顧客更好地進(jìn)行酒店預(yù)訂以及幫助酒店更好地管理,避免浪費(fèi)時(shí)間成本和管理成本,我們準(zhǔn)備開(kāi)發(fā)一個(gè)既方便顧客預(yù)訂客房又能使酒店方便管理的具有良好客戶體驗(yàn)的酒店預(yù)訂管理系統(tǒng)。1.3使用環(huán)境本系統(tǒng)規(guī)定用戶需要在Android4.0及其以上版本的系統(tǒng)上使用。1.4開(kāi)發(fā)方法數(shù)據(jù)庫(kù)采用面向過(guò)程的開(kāi)發(fā)方法,APP應(yīng)用運(yùn)用JAVA語(yǔ)言進(jìn)行面向?qū)ο蟮拈_(kāi)發(fā)方法。第二章需求分析2.1軟件工具與硬件環(huán)境需求(1)軟件工具:MicrosoftVisualStudio2023,AndroidStudio(2)軟件環(huán)境:Windows操作系統(tǒng)(3)硬件環(huán)境:配置在1G

RAM內(nèi)存,160G硬盤(pán),100Mbps網(wǎng)卡以上2.2功能需求

2.2.1系統(tǒng)功能需求作為酒店注冊(cè)用戶,可以通過(guò)本系統(tǒng)可以對(duì)酒店內(nèi)未預(yù)訂的房間經(jīng)行查詢,預(yù)訂,對(duì)于已預(yù)訂的房間進(jìn)行退訂的操作,同時(shí)用戶也可更改個(gè)人信息,查詢個(gè)人預(yù)訂記錄。對(duì)于系統(tǒng)自身,系統(tǒng)會(huì)根據(jù)用戶的預(yù)定和退訂即時(shí)更新房間信息對(duì)于酒店管理員,可以通過(guò)使用信息推送模塊,根據(jù)需要發(fā)布房間優(yōu)惠信息。2.2.2系統(tǒng)功能結(jié)構(gòu)圖酒店預(yù)訂系統(tǒng)功能結(jié)構(gòu)圖如圖2.1所示:2.2.3功能需求具體介紹為方便用戶和管理員對(duì)此系統(tǒng)的操作,下面具體介紹它的一些功能:用戶注冊(cè)功能,面向所有未注冊(cè)的游客,想要預(yù)訂酒店房間的客人,需先注冊(cè)成用戶才干進(jìn)行本系統(tǒng),享受本系統(tǒng)的預(yù)訂房間功能,注冊(cè)時(shí)需對(duì)的填寫(xiě)本人手機(jī)聯(lián)系方式(也作為用戶賬號(hào)),設(shè)立用戶密碼來(lái)完畢用戶注冊(cè)。查詢功能模塊中,用戶可以通過(guò)房間的信息,如房間類型等信息,進(jìn)行單個(gè)查詢或者關(guān)鍵字搜索來(lái)查詢未預(yù)訂的房間信息,從而方便用戶預(yù)訂房間,還可以通過(guò)時(shí)間的先后順序查詢自身的預(yù)訂記錄,還可以進(jìn)行個(gè)人信息的查詢。用戶預(yù)訂房間功能,只面向已注冊(cè)的用戶,為他們提供簡(jiǎn)便快捷的預(yù)訂功能,用戶預(yù)定房間時(shí)需對(duì)的填寫(xiě)入住時(shí)間、退房時(shí)間,入住人姓名、聯(lián)系方式,支付完畢后生成預(yù)訂訂單。用戶取消預(yù)訂房間功能,用戶可在入住時(shí)間前三個(gè)小時(shí)自由取消預(yù)訂的房間,同時(shí)酒店會(huì)扣取用戶所預(yù)訂房間價(jià)格的5%,但不在入住時(shí)間的三個(gè)小時(shí)前取消預(yù)訂訂單,將不可再取消該訂單,房間將會(huì)保存給該客戶直到退房時(shí)間。管理員更新優(yōu)惠信息功能,管理員根據(jù)酒店的經(jīng)營(yíng)政策在APP應(yīng)用界面上推送房間優(yōu)惠信息。房間信息更新功能,用戶預(yù)定和退訂操作成功后將會(huì)影響數(shù)據(jù)庫(kù)的房間信息,本系統(tǒng)會(huì)即時(shí)獲取數(shù)據(jù)庫(kù)信息從而自動(dòng)更新房間信息。2.2.4對(duì)系統(tǒng)性能的規(guī)定為保證系統(tǒng)可以長(zhǎng)期、安全、穩(wěn)定、可靠、高效地運(yùn)營(yíng),酒店預(yù)訂系統(tǒng)應(yīng)當(dāng)滿足以下的性能需求:(1)系統(tǒng)解決的準(zhǔn)確性和及時(shí)性:系統(tǒng)解決的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能,在系統(tǒng)設(shè)計(jì)、開(kāi)發(fā)過(guò)程中,要充足考慮系統(tǒng)當(dāng)前和將來(lái)也許承受的工作量,使系統(tǒng)的解決能力和響應(yīng)能力可以滿足業(yè)務(wù)的需求。系統(tǒng)的開(kāi)發(fā)性和可擴(kuò)充性:酒店預(yù)訂系統(tǒng)在開(kāi)發(fā)過(guò)程中,應(yīng)當(dāng)充足考慮以后的可擴(kuò)充性,保證在未來(lái)一段時(shí)間內(nèi),在可接受用戶需求更新的范圍內(nèi),規(guī)定系統(tǒng)提供足夠的手段進(jìn)行功能的調(diào)整和擴(kuò)充。而要實(shí)現(xiàn)這一點(diǎn),應(yīng)通過(guò)系統(tǒng)的開(kāi)放性來(lái)完畢,既系統(tǒng)應(yīng)是一個(gè)開(kāi)放系統(tǒng),只要符合一定的規(guī)范,可以簡(jiǎn)樸的加入和減少系統(tǒng)的模塊,如增長(zhǎng)APP的推送提醒模塊等。(3)系統(tǒng)的易用性:酒店預(yù)訂系統(tǒng)是直接面對(duì)使用人員的,而使用的人員是廣大人民群眾,他們對(duì)使用APP的了解不盡相同,所以就需要系統(tǒng)提供一個(gè)良好的用戶接口和易用、直觀的人機(jī)交互用戶界面。本APP應(yīng)盡量使用大部分人們所熟悉的術(shù)語(yǔ)和信息的界面,縮短用戶對(duì)系統(tǒng)熟悉的過(guò)程,提高用戶使用的便利性和簡(jiǎn)明性。(4)系統(tǒng)的響應(yīng)速度:酒店預(yù)訂系統(tǒng)在平常解決中的響應(yīng)速度應(yīng)當(dāng)為秒級(jí),達(dá)成實(shí)時(shí)規(guī)定,以及時(shí)反饋信息。2.2.5記錄分析在系統(tǒng)的使用過(guò)程中中,會(huì)產(chǎn)生各種各樣的預(yù)定記錄,而這些數(shù)據(jù)將儲(chǔ)存在一個(gè)數(shù)據(jù)庫(kù)中,系統(tǒng)管理員可在數(shù)據(jù)庫(kù)中獲取所需的數(shù)據(jù)(如使用數(shù)據(jù)庫(kù)語(yǔ)言獲得數(shù)據(jù)),從而得到所需的報(bào)表,如酒店管理員想知道某個(gè)月那種房間類型被預(yù)訂數(shù)是最多的“每月熱門(mén)預(yù)訂房間類型報(bào)表”,也可獲取每月每個(gè)房間類型收入的“每月預(yù)訂房間類型收入報(bào)表”等,對(duì)其進(jìn)行記錄分析所得到的記錄報(bào)表有助于酒店經(jīng)營(yíng)管理的改善和提高。(1)每月熱門(mén)預(yù)訂房間類型報(bào)表查詢時(shí)間:制表時(shí)間:制表人:房間類型1月預(yù)訂數(shù)量2月預(yù)訂數(shù)量3月預(yù)訂數(shù)量4月預(yù)訂數(shù)量5月預(yù)訂數(shù)量6月預(yù)訂數(shù)量7月預(yù)訂數(shù)量8月預(yù)訂數(shù)量9月預(yù)訂數(shù)量10月預(yù)訂數(shù)量11月預(yù)訂數(shù)量12月預(yù)訂數(shù)量匯總(2)每月預(yù)訂房間類型收入報(bào)表查詢時(shí)間:制表時(shí)間:制表人:房間類型1月預(yù)訂收入2月預(yù)訂收入3月預(yù)訂收入4月預(yù)訂收入5月預(yù)訂收入6月預(yù)訂收入7月預(yù)訂收入8月預(yù)訂收入9月預(yù)訂收入10月預(yù)訂收入11月預(yù)訂收入12月預(yù)訂收入?yún)R總(3)房間預(yù)訂狀況表查詢?nèi)掌冢褐票頃r(shí)間:制表人:房間類型預(yù)訂數(shù)未預(yù)訂數(shù)房間總數(shù)(4)房間預(yù)訂記錄報(bào)表查詢?nèi)掌冢褐票頃r(shí)間:制表人:用戶帳號(hào)用戶名預(yù)訂房間類型預(yù)訂房間數(shù)量預(yù)訂房間價(jià)格入住時(shí)間退房時(shí)間聯(lián)系方式第三章系統(tǒng)分析3.1現(xiàn)行系統(tǒng)的現(xiàn)況以及存在問(wèn)題在調(diào)查過(guò)現(xiàn)有的酒店房間預(yù)訂業(yè)務(wù)流程,了解到現(xiàn)如今大多數(shù)酒店仍然使用著人工的方式進(jìn)行酒店預(yù)訂業(yè)務(wù)活動(dòng),從業(yè)務(wù)流程與數(shù)據(jù)解決兩大方面來(lái)了解現(xiàn)如今的酒店關(guān)于酒店預(yù)訂業(yè)務(wù)活動(dòng)的現(xiàn)狀以及存在的問(wèn)題。3.1.1傳統(tǒng)酒店房間預(yù)訂業(yè)務(wù)活動(dòng)傳統(tǒng)的手工酒店預(yù)訂的業(yè)務(wù)流程如圖3.1所示3.1.2傳統(tǒng)酒店房間預(yù)訂業(yè)務(wù)數(shù)據(jù)解決通過(guò)調(diào)查了解到,傳統(tǒng)酒店房間預(yù)訂業(yè)務(wù)數(shù)據(jù)解決所有由人工來(lái)操作,涉及響應(yīng)用戶的查詢和操作,手工記錄用戶的信息并將其歸檔,手工收費(fèi)以及要定期對(duì)記錄的數(shù)據(jù)進(jìn)行整理。同時(shí)對(duì)操作中出現(xiàn)的問(wèn)題進(jìn)行人工的查詢和修改。3.1.3存在的問(wèn)題通過(guò)對(duì)業(yè)務(wù)流程圖以及數(shù)據(jù)解決分析了解到傳統(tǒng)酒店房間預(yù)訂業(yè)務(wù)的局限性之處:需要花費(fèi)大量的人工和時(shí)間,比如要人工記錄各種信息,涉及用戶的預(yù)訂信息等響應(yīng)速度不一,由于客服和前臺(tái)人員工作經(jīng)驗(yàn)不同,且人對(duì)數(shù)據(jù)信息的反映速度不同,導(dǎo)致每一次操作的時(shí)間不同樣操作過(guò)程過(guò)于繁瑣,如記錄客戶信息要手工填寫(xiě),操作過(guò)程出現(xiàn)錯(cuò)誤不能返回,只能重新開(kāi)始操作操作中出現(xiàn)問(wèn)題較多,比如用戶的信息記錄錯(cuò)誤,歸檔錯(cuò)誤等出現(xiàn)問(wèn)題不能及時(shí)修改,需要花費(fèi)時(shí)間去查找問(wèn)題,比如用戶預(yù)訂了房間但是前臺(tái)并沒(méi)有記錄等不能完整的收錄用戶的信息,從而不能判斷用戶的喜好,以及很難查閱到用戶的所有交易信息收費(fèi)所有需要手工完畢,月底或季度年度的運(yùn)營(yíng)記錄分析導(dǎo)致不便,由于人工操作不可避免出現(xiàn)錯(cuò)誤,此外,人工結(jié)算成本過(guò)高且時(shí)間過(guò)長(zhǎng)3.2全面描述新系統(tǒng)的功能和目的根據(jù)現(xiàn)有的存在問(wèn)題從用戶方和酒店方的角度分析實(shí)現(xiàn)優(yōu)化房間預(yù)訂的目的。3.2.1從用戶方的角度:(1)使用房間查詢的功能,不需要進(jìn)行繁瑣的電話溝通,只需打開(kāi)酒店房間預(yù)訂系統(tǒng)即可查詢到所滿意的房間,并可以進(jìn)行實(shí)時(shí)預(yù)訂。(2)使用房間預(yù)訂的功能,預(yù)訂成功時(shí),與酒店方形成一種合約關(guān)系,保證用戶得到相應(yīng)的房間。(3)使用退房功能,可以在規(guī)定期間之內(nèi)取消對(duì)房間的預(yù)訂,減輕了用戶因突發(fā)情況發(fā)生時(shí)承擔(dān)。3.2.2從酒店方的角度:(1)對(duì)賬戶進(jìn)行管理,可以減少大量的人工輸入,采用一個(gè)用戶相應(yīng)一個(gè)賬號(hào)的方式,用于記錄用戶信息和預(yù)訂信息。(2)對(duì)賬戶進(jìn)行查詢,通過(guò)用戶數(shù)據(jù)清楚地收錄每個(gè)客人的對(duì)房間的愛(ài)慕偏好,為用戶提供便利,提高用戶滿意度。(3)收費(fèi)采用第三方收款方式,準(zhǔn)的確時(shí)到賬,減低了由于人為出現(xiàn)收款錯(cuò)誤的失誤,進(jìn)一步減輕了酒店方的風(fēng)險(xiǎn)。(4)當(dāng)出現(xiàn)退房等異常情況時(shí),不再需要人為重新登記房間信息,后臺(tái)自動(dòng)清空已預(yù)訂房間,更新房間預(yù)訂表,方便酒店管理人員核算房間使用情況。(5)設(shè)立房間訂金,在進(jìn)行預(yù)訂時(shí),當(dāng)預(yù)訂只能通過(guò)電話時(shí),不能收取任何的預(yù)訂費(fèi)用,而通過(guò)酒店房間預(yù)訂系統(tǒng)可以入住前三個(gè)小時(shí)之內(nèi)收取5%的房間訂金,保證酒店的正常運(yùn)營(yíng),減低酒店的損失。(6)進(jìn)行一系列的記錄報(bào)表分析,當(dāng)達(dá)成規(guī)定的時(shí)間,系統(tǒng)會(huì)進(jìn)行月末記錄,對(duì)每月熱門(mén)預(yù)訂房間類型,預(yù)訂房間類型,收入房間預(yù)訂以及房間預(yù)訂記錄報(bào)表,有助于酒店管理層人員作出判斷,對(duì)酒店現(xiàn)狀改善和提高。3.3新系統(tǒng)的邏輯模型由上述所描述的系統(tǒng)的功能得到我們所設(shè)計(jì)的系統(tǒng)的業(yè)務(wù)流程圖。3.3.1業(yè)務(wù)流程圖如圖3.2所示:3.3.2數(shù)據(jù)流圖根據(jù)上文需求分析所規(guī)定的功能需求和非功能需求,使用數(shù)據(jù)流方法對(duì)酒店預(yù)訂活動(dòng)進(jìn)行建模。從2.2.3節(jié)——“功能需求具體介紹”中的需求描述可知,酒店的房間預(yù)訂業(yè)務(wù)活動(dòng)重要由游客查詢、用戶注冊(cè)、用戶查詢、用戶預(yù)訂、用戶退訂五大組成,在對(duì)酒店預(yù)訂房間經(jīng)營(yíng)過(guò)程和業(yè)務(wù)流程進(jìn)行1具體分析的基礎(chǔ)上,構(gòu)造酒店預(yù)訂管理系統(tǒng)的功能模型用數(shù)據(jù)流圖描述如下。3.3.2.1抽象頂層數(shù)據(jù)流圖酒店預(yù)訂管理系統(tǒng)的頂層數(shù)據(jù)流圖用功能活動(dòng)“酒店預(yù)訂管理”來(lái)描述,如圖3.1所示。3.3.2.2第一層數(shù)據(jù)流圖對(duì)頂層數(shù)據(jù)流圖進(jìn)行分解即得到圖3.2所示的第一層數(shù)據(jù)流圖。圖3.2較具體地描述了實(shí)現(xiàn)用戶預(yù)訂酒店房間的業(yè)務(wù)活動(dòng)所需的基本功能。完畢各項(xiàng)活動(dòng)所需要輸入的數(shù)據(jù)、輸出信息,通過(guò)功能活動(dòng)解決后存儲(chǔ)的信息。3.3.2.3第二層數(shù)據(jù)流圖由于圖3.2描述的功能活動(dòng)還不夠具體,繼續(xù)對(duì)圖3.1中的功能活動(dòng)進(jìn)行分解即得到第二層數(shù)據(jù)流圖,如圖3.3~圖3.7所示。3.3.2.3第三層數(shù)據(jù)流圖本系統(tǒng)的核心功能是用戶的查詢功能模塊和預(yù)訂功能模塊,繼續(xù)對(duì)圖3.5和圖3.6中的查詢功能和預(yù)訂功能活動(dòng)進(jìn)行分解即得到第三層數(shù)據(jù)流圖,如圖3.8與圖3.8所示。3.3數(shù)據(jù)字典3.3.1詞條描述3.3.1.1數(shù)據(jù)流詞條數(shù)據(jù)流編號(hào)數(shù)據(jù)流名簡(jiǎn)述組成來(lái)源去向F1用戶登陸信息對(duì)需要使用該酒店預(yù)訂系統(tǒng)的用戶提供對(duì)的的用戶賬號(hào)和相應(yīng)的密碼信息用戶賬號(hào)+密碼用戶酒店預(yù)訂系統(tǒng)、信息解決F1.1用戶基本信息用戶登錄成功后系統(tǒng)會(huì)獲得相應(yīng)的用戶基本信息用戶賬號(hào)+密碼+性別+姓名+郵箱+手機(jī)號(hào)信息解決用戶操作解決F1.2用戶信息輸入用戶對(duì)系統(tǒng)所輸入的信息,分為查詢信息,預(yù)訂信息,退訂信息,修改信息分四種:預(yù)訂信息,查詢信息,退訂信息,修改密碼用戶用戶操作信息接受F1.3用戶舊密碼用戶原本使用的密碼用戶賬號(hào)+密碼用戶操作信息接受密碼修改F1.4用戶新密碼用戶通過(guò)密碼修改獲得的新密碼用戶賬號(hào)+密碼密碼修改用戶登錄信息解決F2查詢信息對(duì)于需要了解實(shí)際房間信息情況或個(gè)人預(yù)訂記錄信息的用戶,可通過(guò)向系統(tǒng)輸入查詢信息,系統(tǒng)則會(huì)檢索這些信息并作相應(yīng)解決查詢條件:共分兩種情況:房間查詢信息、用戶預(yù)訂記錄查詢信息用戶操作解決查詢解決F2.1查詢房間信息系統(tǒng)檢索用戶所輸入的查詢信息為查詢房間信息的信息,系統(tǒng)進(jìn)入房間信息查詢界面關(guān)鍵字或時(shí)間判別查詢信息房間信息查詢合法性F2.1.1查詢房間信息條件用戶為查詢房間信息,所輸入的合法性查詢房間信息的方式關(guān)鍵字或時(shí)間房間信息查詢合法性匹配房間信息F2.1.2匹配房間數(shù)據(jù)系統(tǒng)檢測(cè)用戶所輸入的查詢房間信息條件,并在數(shù)據(jù)庫(kù)找到符合該條件的房間信息房間類型+房間價(jià)格匹配房間信息檢查房間余量F2.2預(yù)訂記錄查詢信息系統(tǒng)判斷用戶的查詢信息為個(gè)人預(yù)訂查詢記錄信息,并進(jìn)入預(yù)訂記錄查詢界面時(shí)間判別查詢信息預(yù)訂記錄查詢合法性F2.2.1匹配時(shí)間信息系統(tǒng)檢測(cè)用戶所輸入的時(shí)間查詢信息,并在數(shù)據(jù)庫(kù)找到符合該條件的預(yù)訂記錄信息時(shí)間匹配查詢時(shí)間信息檢查預(yù)訂記錄時(shí)間F5未使用房間信息系統(tǒng)檢索用戶所輸入的房間查詢信息,輸出相應(yīng)可預(yù)訂的房間信息房間類別+房間價(jià)格檢查房間信息用戶、預(yù)訂解決F6個(gè)人預(yù)訂記錄信息系統(tǒng)檢索用戶所輸入的預(yù)訂記錄查詢信息,輸出相應(yīng)的預(yù)訂記錄信息房間類型+房間數(shù)量+用戶帳號(hào)+聯(lián)系方式+入住時(shí)間+退房時(shí)間+預(yù)訂日期檢查預(yù)訂記錄信息用戶、退訂解決F3預(yù)訂信息用戶根據(jù)需要,向系統(tǒng)輸入預(yù)訂信息,系統(tǒng)可檢測(cè)這些信息,并作出相應(yīng)的預(yù)訂解決用戶賬號(hào),入住時(shí)間,退房時(shí)間,房間類型,房間數(shù)量用戶操作解決預(yù)訂解決F3.1預(yù)訂記錄信息系統(tǒng)通過(guò)用戶所輸入的預(yù)訂信息用戶賬號(hào),入住時(shí)間,退房時(shí)間,房間類型,房間數(shù)量預(yù)訂條件解決更新預(yù)訂記錄信息和房間信息F3.1.1檢查房間數(shù)量信息系統(tǒng)接受用戶所輸入的預(yù)訂信息,用于檢測(cè)用戶所輸入的預(yù)訂房間數(shù)量是否符合酒店實(shí)際房間數(shù)量用戶賬號(hào),入住時(shí)間,退房時(shí)間,房間類型,房間數(shù)量接受預(yù)訂信息檢查預(yù)訂房間數(shù)量F3.1.2檢查日期信息系統(tǒng)檢測(cè)預(yù)訂信息中的入住時(shí)間和退房時(shí)間是否符合實(shí)際情況用戶賬號(hào),入住時(shí)間,退房時(shí)間,房間類型,房間數(shù)量檢查預(yù)訂房間數(shù)量檢查預(yù)訂房間日期F7預(yù)訂房間訂單系統(tǒng)通過(guò)用戶所輸入的預(yù)訂信息,所輸出用戶預(yù)訂記錄信息房間類型+房間數(shù)量+用戶帳號(hào)+聯(lián)系方式+入住時(shí)間+退房時(shí)間+預(yù)訂日期檢查預(yù)訂房間日期用戶,更新房間信息,更新預(yù)訂記錄信息F4退訂信息用戶根據(jù)需要,向系統(tǒng)輸入退訂信息,系統(tǒng)可檢測(cè)這些信息,并作出相應(yīng)的退訂解決房間類型+房間數(shù)量+用戶帳號(hào)+聯(lián)系方式+入住時(shí)間+退房時(shí)間+預(yù)訂日期用戶操作解決更新預(yù)訂記錄與房間信息F4.1刪除數(shù)據(jù)用戶所刪除預(yù)訂記錄數(shù)據(jù)房間類型+房間數(shù)量+用戶帳號(hào)+聯(lián)系方式+入住時(shí)間+退房時(shí)間+預(yù)訂日期退訂信息接受取消退訂3.3.1.2數(shù)據(jù)元素詞條數(shù)據(jù)項(xiàng)編號(hào)數(shù)據(jù)元素名稱別名數(shù)據(jù)類型及寬度取值范圍描述U-01用戶賬號(hào)usernameString11-區(qū)分不同用戶U-02用戶密碼passwordString184{[數(shù)字,字母]}20用戶登錄系統(tǒng)密碼U-03用戶手機(jī)號(hào)mobilePhoneNumberString11-用戶聯(lián)系方式U-04用戶姓名userNameString102{漢字}5用戶稱呼方式U-05用戶郵箱userEmailString30[A-z,0-9]{1,}\[A-z,09,\.]{1}用戶聯(lián)系方式R-01房間類型Room_nameString10[‘單人間’],[‘雙人間’],[‘標(biāo)準(zhǔn)間’],[‘豪華間’]房間類型的說(shuō)明R-01房間價(jià)格Room_priceInt4“01”-“1000”房間的價(jià)格R-01房間數(shù)量Room_countInt4“000”-“100”房間的數(shù)量R-02入住日期checkInDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“24”用戶到達(dá)酒店的日期R-03退房日期checkOutDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“23”用戶離開(kāi)酒店的日期R-04預(yù)訂日期bookingDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“23”用戶完畢預(yù)定房間訂單的日期R-05取消預(yù)訂日期canceiDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“24”用戶取消預(yù)定房間訂單的日期3.3.1.3數(shù)據(jù)文獻(xiàn)(1)文獻(xiàn)編號(hào):D1數(shù)據(jù)文獻(xiàn)名稱:用戶簡(jiǎn)述:保存的是用戶的基本信息數(shù)據(jù)存儲(chǔ)組成:用戶賬號(hào),密碼,性別,姓名,郵箱,手機(jī)號(hào)關(guān)鍵字:用戶賬號(hào)(2)文獻(xiàn)編號(hào):D2數(shù)據(jù)文獻(xiàn)名稱:預(yù)訂記錄簡(jiǎn)述:保存的是用戶預(yù)訂的記錄的信息數(shù)據(jù)存儲(chǔ)組成:用戶賬號(hào)、姓名、手機(jī)號(hào)、郵箱、房間類型、入住時(shí)間、退房時(shí)間、房間價(jià)格關(guān)鍵字:用戶賬號(hào)(3)文獻(xiàn)編號(hào):D3數(shù)據(jù)文獻(xiàn)名稱:房間信息簡(jiǎn)述:保存的是當(dāng)前房間情況的信息數(shù)據(jù)存儲(chǔ)組成:房間類型、房間價(jià)格、房間數(shù)量關(guān)鍵字:房間類型3.3.1.4外部實(shí)體外部實(shí)體編號(hào):S1名稱:用戶簡(jiǎn)述:用戶重要面向廣大人民群眾,為使用本系統(tǒng)的人有關(guān)數(shù)據(jù)流:系統(tǒng)與用戶交互的是用戶信息3.3.1.5解決過(guò)程介紹解決過(guò)程編號(hào)解決過(guò)程名輸入數(shù)據(jù)流輸出數(shù)據(jù)流簡(jiǎn)述P1信息解決用戶登錄信息,用戶新密碼用戶基本信息該加工模塊重要實(shí)現(xiàn)對(duì)登入操作的合法性檢測(cè)P1.1用戶登入信息解決用戶登錄信息用戶基本信息實(shí)現(xiàn)提醒用戶登錄成功P2用戶操作解決用戶基本信息,舊密碼預(yù)訂信息,查詢信息,退訂信息,用戶新密碼用戶可選擇操作的三個(gè)模塊,分別是修改密碼、預(yù)訂、查詢、退訂模塊P2.1用戶操作信息接受用戶所輸入的信息查詢信息,預(yù)訂信息,取消預(yù)訂信息,用戶舊密碼接受用戶所輸入的信息P2.2修改密碼用戶舊密碼用戶新密碼該加工模塊重要實(shí)現(xiàn)用戶修改個(gè)人密碼的功能P3查詢解決查詢信息房間未使用信息,預(yù)訂記錄信息接受用戶查詢請(qǐng)求,反饋結(jié)果P3.1查詢信息解決查詢信息查詢房間未使用信息,查詢預(yù)訂記錄信息接受查詢信息后,不同的查詢條件中,結(jié)合預(yù)訂記錄、房間信息兩個(gè)存儲(chǔ)文獻(xiàn),給出相應(yīng)解決措施P3.1.1查詢信息接受查詢信息查詢信息用于接受用戶所輸入的查詢信息P3.1.2判斷查詢信息查詢信息房間查詢信息,預(yù)訂記錄查詢信息對(duì)所接受的查詢信息進(jìn)行判斷,分析得出所輸入的查詢信息類別P3.2分析房間信息查詢房間信息反饋房間未使用信息檢索用戶的房間查詢信息,并輸出相應(yīng)的房間信息P3.2.1房間信息查詢合法性房間查詢信息房間信息查詢條件檢查用戶所輸入的房間查詢信息的合法性P3.2.2匹配房間信息房間信息查詢條件匹配房間信息檢索用戶所輸入的房間查詢信息,并根據(jù)查詢信息的條件在數(shù)據(jù)庫(kù)中匹配房間信息并輸出P3.2.3檢查房間余量匹配房間信息未使用房間信息對(duì)所匹配成功的房間信息進(jìn)行檢查,對(duì)房間余量大于0的房間信息進(jìn)行輸出P3.3分析預(yù)訂記錄信息預(yù)訂記錄查詢信息預(yù)訂記錄信息檢索用戶的預(yù)訂記錄查詢信息,并輸出相應(yīng)的預(yù)訂記錄信息P3.3.1匹配查詢時(shí)間信息查詢時(shí)間信息匹配時(shí)間信息檢索用戶所輸入的預(yù)訂記錄查詢信息,并根據(jù)查詢信息的條件在數(shù)據(jù)庫(kù)中匹配預(yù)訂記錄信息并輸出P3.3.2檢查預(yù)訂記錄時(shí)間時(shí)間信息預(yù)訂記錄信息對(duì)所匹配成功的房間信息進(jìn)行檢查,將符合時(shí)間的預(yù)訂記錄信息進(jìn)行輸出P4預(yù)訂解決預(yù)訂信息、未使用房間信息預(yù)訂房間訂單接受用戶的預(yù)訂信息,系統(tǒng)進(jìn)行解決并反饋給用戶P4.1預(yù)訂條件解決預(yù)訂信息預(yù)訂記錄信息對(duì)于用戶輸入的預(yù)訂條件,結(jié)合當(dāng)前房間占用情況,將最終的預(yù)訂結(jié)果反饋給用戶P4.1.1接受預(yù)訂信息預(yù)訂信息預(yù)訂信息接受用戶的預(yù)訂信息P4.1.2檢查預(yù)訂房間數(shù)量預(yù)訂信息預(yù)訂信息對(duì)用戶所輸入的預(yù)訂信息進(jìn)行檢查,檢查所輸入的房間數(shù)量是否符合酒店實(shí)際情況P4.1.3檢查預(yù)訂房間日期預(yù)訂信息預(yù)訂記錄信息對(duì)用戶所輸入的預(yù)訂信息進(jìn)行檢查,檢查所輸入的入住日期與退房日期是否符合實(shí)際生活情況P4.2更新預(yù)訂記錄與房間信息解決結(jié)果預(yù)訂結(jié)果在得到系統(tǒng)回復(fù)后,將預(yù)訂結(jié)果記錄添加到預(yù)訂記錄中,并反饋給用戶P4.2.1接受預(yù)訂記錄信息預(yù)訂記錄信息預(yù)訂記錄信息接受符合實(shí)際情況的用戶預(yù)訂房間信息P4.2.2更新房間信息預(yù)訂記錄信息預(yù)訂記錄信息用戶預(yù)訂成功時(shí)更新酒店房間信息P4.2.3更新預(yù)訂記錄信息預(yù)訂記錄信息預(yù)訂記錄信息用戶預(yù)訂成功時(shí)更新個(gè)人預(yù)訂記錄信息P5取消預(yù)訂解決退訂信息、預(yù)訂房間訂單接受用戶的退訂信息,系統(tǒng)進(jìn)行退訂解決P5.1退訂信息接受退訂信息刪除數(shù)據(jù)接受用戶輸入的退訂信息P5.2取消退訂刪除數(shù)據(jù)系統(tǒng)得到用戶的刪除預(yù)訂記錄信息后,對(duì)預(yù)訂記錄和房間信息兩個(gè)存儲(chǔ)文獻(xiàn)進(jìn)行更新3.4E-R圖3.5新系統(tǒng)的可行性分析系統(tǒng)開(kāi)發(fā)過(guò)程中會(huì)受屆時(shí)間、資源、技術(shù)等因素的限制。在明確了系統(tǒng)的開(kāi)發(fā)任務(wù)目的和系統(tǒng)范圍之后,需要從技術(shù)、經(jīng)濟(jì)、操作等方面進(jìn)行項(xiàng)目可行性分析,評(píng)估判斷系統(tǒng)開(kāi)發(fā)項(xiàng)目在現(xiàn)有技術(shù)和經(jīng)濟(jì)條件下是否可行,是否可以達(dá)成預(yù)期目的,以及保證項(xiàng)目正常進(jìn)行需要的各種資源和支撐條件。系統(tǒng)可行性分析圍繞著技術(shù)、經(jīng)濟(jì)、操作可行性三個(gè)方面。3.5.1技術(shù)可行性本系統(tǒng)使用的開(kāi)發(fā)語(yǔ)言為java,使用android作為開(kāi)發(fā)技術(shù),在android平臺(tái)上開(kāi)發(fā)運(yùn)營(yíng),使用Bmob后端云數(shù)據(jù)庫(kù)。作為目前一種流行的開(kāi)發(fā)技術(shù),android是基于linux的自由及開(kāi)放源代碼的操作系統(tǒng);通過(guò)數(shù)年的發(fā)展,android的開(kāi)發(fā)技術(shù)已經(jīng)非常成熟且方便快捷,配合上Bmob后端云數(shù)據(jù)庫(kù),可以高效便捷地實(shí)現(xiàn)開(kāi)發(fā)目的。所以本系統(tǒng)的開(kāi)發(fā)技術(shù)室可行的。3.5.2經(jīng)濟(jì)可行性投入方面,由于android操作系統(tǒng)以及Bmob后端云數(shù)據(jù)庫(kù)都是免費(fèi)使用的,同時(shí)本團(tuán)隊(duì)擁有系統(tǒng)開(kāi)發(fā)人員,無(wú)需支付系統(tǒng)開(kāi)發(fā)人工費(fèi)用,所以系統(tǒng)從開(kāi)發(fā)到運(yùn)營(yíng)都是免費(fèi)的,后期的維護(hù)只需要支付很少的人工費(fèi)用。收入方面,通過(guò)用戶下載量來(lái)收取相相應(yīng)的廣告費(fèi)用。3.5.3操作可行性本系統(tǒng)是為廣大人民群眾,為其方便預(yù)訂房間開(kāi)發(fā)的,使用大部分人們所熟悉的術(shù)語(yǔ)和信息的界面,縮短用戶對(duì)系統(tǒng)熟悉的過(guò)程,提高用戶使用的便利性和簡(jiǎn)明性,只要用戶稍微懂得使用手機(jī)并且在合適的網(wǎng)絡(luò)環(huán)境下就能自由使用本系統(tǒng)。第四章系統(tǒng)設(shè)計(jì)4.1系統(tǒng)概述酒店預(yù)訂系統(tǒng)是使用的開(kāi)發(fā)語(yǔ)言為java,使用android作為開(kāi)發(fā)技術(shù),在android平臺(tái)上開(kāi)發(fā)運(yùn)營(yíng),使用Bmob后端云數(shù)據(jù)庫(kù)的系統(tǒng),系統(tǒng)的開(kāi)發(fā)目的是為了方便酒店管理和用戶預(yù)訂;從而使酒店的管理高效便捷且可以節(jié)約時(shí)間成本和勞動(dòng)成本;用戶的預(yù)訂也更加簡(jiǎn)樸。做為一個(gè)面向不同年齡階層的操作系統(tǒng),一定要簡(jiǎn)樸易操作,所以系統(tǒng)使用的開(kāi)發(fā)語(yǔ)言為java,使用android作為開(kāi)發(fā)技術(shù),在android平臺(tái)上開(kāi)發(fā)運(yùn)營(yíng),使用Bmob后端云數(shù)據(jù)庫(kù)提高用戶使用的便利性和簡(jiǎn)明性,只要用戶稍微懂得使用手機(jī)并且在合適的網(wǎng)絡(luò)環(huán)境下就能自由使用本系統(tǒng)。4.2開(kāi)發(fā)、測(cè)試與運(yùn)營(yíng)環(huán)境類別標(biāo)準(zhǔn)配置最低配置開(kāi)發(fā)環(huán)境Window7AndroidStudio、EclipseWindowxpWindow10AndroidStudio、EclipseUbuntu14.04AndroidStudio、Eclipse測(cè)試環(huán)境Android4.4Android402Android5.0Android6.0運(yùn)營(yíng)環(huán)境Android5.0Android4.024.3系統(tǒng)結(jié)構(gòu)圖4.3.1功能模塊劃分本系統(tǒng)要實(shí)現(xiàn)用戶預(yù)訂房間功能,需要設(shè)立用戶模塊,使用戶可以通過(guò)手機(jī)直接登錄本酒店的預(yù)訂APP,在手機(jī)APP上實(shí)現(xiàn)酒店房間的查詢、預(yù)訂等活動(dòng)。本系統(tǒng)由用戶模塊、預(yù)訂模塊、查詢模塊、退訂模塊組成,系統(tǒng)功能模塊如圖4.1所示及描述如下。4.3.2功能模塊描述(1)用戶模塊該模塊重要功能是用戶進(jìn)入本系統(tǒng)所需進(jìn)行的登錄或注冊(cè)操作,用戶登錄成功后可對(duì)自己的用戶信息進(jìn)行修改,如郵箱,密碼,用戶名進(jìn)行修改。(2)查詢模塊該模塊重要功能是用戶查詢自己所需的信息,有房間信息與預(yù)訂記錄信息,并根據(jù)個(gè)人需要進(jìn)入預(yù)訂模塊過(guò)退訂模塊。(3)預(yù)訂模塊該模塊重要功能是用戶根據(jù)查詢模塊所獲得到得房間信息,根據(jù)自己的個(gè)人需求填寫(xiě)入住日期、退房日期和房間數(shù)量,合理填寫(xiě)后完畢預(yù)訂訂單。(4)退訂模塊該模塊重要功能是用戶根據(jù)查詢模塊所獲得到得預(yù)訂記錄信息,根據(jù)自己的個(gè)人需求與實(shí)際時(shí)間情況進(jìn)行房間退訂。4.4代碼設(shè)計(jì)酒店預(yù)訂系統(tǒng)代碼設(shè)計(jì)是根據(jù)酒店經(jīng)營(yíng)管理的特點(diǎn),結(jié)合實(shí)際用戶預(yù)訂房間活動(dòng)過(guò)程,所設(shè)計(jì)出的符合實(shí)際情況的代碼,所設(shè)計(jì)代碼結(jié)構(gòu)如下:(1)用戶帳號(hào)代碼由11位數(shù)字組成,實(shí)際為用戶注冊(cè)時(shí)所輸入的手機(jī)號(hào)為用戶帳號(hào)代碼,格式如下:(2)預(yù)訂編號(hào)代碼由8位數(shù)字組成,格式如下:4.5數(shù)據(jù)庫(kù)設(shè)計(jì)4.5.1數(shù)據(jù)庫(kù)環(huán)境說(shuō)明系統(tǒng)采用Bmob云數(shù)據(jù)庫(kù)系統(tǒng),運(yùn)用AndroidStudio等編程工具從數(shù)據(jù)庫(kù)獲取信息并顯示在用戶界面等。4.5.2數(shù)據(jù)庫(kù)命名規(guī)則表和字段采用駝峰命名法。4.5.3安全性設(shè)計(jì)說(shuō)明用戶密碼等隱私信息從用戶登錄到注銷全程都進(jìn)行加密傳輸,即使是數(shù)據(jù)庫(kù)管理員也無(wú)法查看用戶密碼等隱私信息。4.5.4概念結(jié)構(gòu)設(shè)計(jì)根據(jù)系統(tǒng)分析的數(shù)據(jù)流圖和數(shù)字字典,即可設(shè)計(jì)出可以滿足用戶需求的各實(shí)體及他們的關(guān)系。這些實(shí)體包含的具體信息,通過(guò)其互相關(guān)系形成的數(shù)據(jù)流動(dòng),分析得到本系統(tǒng)的E-R圖,如圖4.1所示。4.5.5關(guān)系數(shù)據(jù)模型根據(jù)上節(jié)的概念模型得到本系統(tǒng)的關(guān)系數(shù)據(jù)模型用戶信息表(User):手機(jī)號(hào)、用戶名、郵箱、密碼房間類型表(Room_name):類型名稱、類型價(jià)格、類型數(shù)量預(yù)訂表(Scheduled):預(yù)訂編號(hào)、手機(jī)號(hào)、房間類型、預(yù)訂時(shí)間、入住時(shí)間、退房時(shí)間、退訂狀態(tài)4.5.6數(shù)據(jù)庫(kù)實(shí)行數(shù)據(jù)庫(kù)的完整性和安全性設(shè)計(jì),根據(jù)酒店預(yù)訂業(yè)務(wù)規(guī)則設(shè)計(jì)觸發(fā)器、存儲(chǔ)過(guò)程。用戶信息表(User):用戶信息表重要用于保存使用本系統(tǒng)的用戶信息,如用戶帳號(hào)和用戶密碼(必需),和用戶可選擇填寫(xiě)的用戶郵箱列名別名數(shù)據(jù)類型及寬度默認(rèn)值取值范圍主鍵/外鍵可否為空手機(jī)號(hào)mobilePhoneNumberString11-主鍵NotNULL密碼passwordString184{[數(shù)字,字母]}20NotNULL用戶名userNameString10user_手機(jī)尾號(hào)后四位1{數(shù)字、字母、漢字}5NULL郵箱userEmailString30[A-z,0-9]{1,}\[A-z,09,\.]{1}NULL房間類型表(Room_name):房間類型表重要用于保存房間類型的信息。列名別名數(shù)據(jù)類型及寬度取值約束主鍵/外鍵可否為空類型價(jià)格Room_priceNumber4“01”-“1000”NotNULL類型名稱Room_nameString10[‘單人間’],[‘雙人間’],[‘標(biāo)準(zhǔn)間’],[‘豪華間’]主鍵NotNULL類型數(shù)量Room_countNumber4“01”-“100”NotNULL(3)預(yù)訂表(Scheduled):預(yù)訂表重要用于保存用戶完畢預(yù)訂房間操作時(shí),所生成的預(yù)訂記錄數(shù)據(jù),如用戶帳號(hào)、聯(lián)系方式、預(yù)訂房間類型、預(yù)訂房間數(shù)量、預(yù)訂時(shí)間、入住時(shí)間和退房時(shí)間,并且當(dāng)用戶在規(guī)定期間內(nèi)即在入住時(shí)間前三個(gè)小時(shí)內(nèi)退訂將會(huì)更新預(yù)訂登記表列名別名數(shù)據(jù)類型及寬度取值約束主鍵/外鍵可否為空預(yù)訂編號(hào)IDNumber4自增長(zhǎng)主鍵NotNULL手機(jī)號(hào)mobilePhoneNumberString11外鍵NotNULL類型名稱Room_nameString10[‘單人間’],[‘雙人間’],[‘標(biāo)準(zhǔn)間’],[‘豪華間’]外鍵NotNULL預(yù)訂價(jià)格Room_priceNumber4“01”-“1000”NotNULL入住日期checkInDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“24”NotNULL退房日期checkOutDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“23”NotNULL預(yù)訂日期bookingDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“23”NotNULL退訂日期canceiDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“24”NuLL4.6用戶界面設(shè)計(jì)概述下面圖就列出了系統(tǒng)中的一些界面:此界面為登陸界面,登陸是進(jìn)入酒店預(yù)定系統(tǒng)主界面的前提,在此界面輸入對(duì)的的密碼方可登陸,若沒(méi)有賬號(hào),可點(diǎn)擊注冊(cè)按鈕進(jìn)行注冊(cè)。此界面為注冊(cè)界面,需要輸入用戶對(duì)的的手機(jī)號(hào)作為用戶賬號(hào)才干注冊(cè)成功,當(dāng)注冊(cè)成功時(shí)會(huì)自動(dòng)跳轉(zhuǎn)到登陸界面。。此界面為酒店預(yù)訂系統(tǒng)的主界面,在該界面用戶可以看到三個(gè)可選擇項(xiàng):房間信息界面,搜索界面,用戶信息界面(默認(rèn)為房間信息界面),用戶可以通過(guò)點(diǎn)擊房間的圖片或信息進(jìn)入到房間預(yù)約的界面。當(dāng)用戶進(jìn)入酒店預(yù)約的界面時(shí),用戶需要填寫(xiě)相應(yīng)的信息來(lái)預(yù)約心儀的房間,若信息對(duì)的,則會(huì)跳到支付頁(yè)面支付相應(yīng)的費(fèi)用;在預(yù)約成功后,用戶可以在房間預(yù)約記錄中查看已成功預(yù)約的房間信息。搜索房間界面中,當(dāng)用戶進(jìn)行了搜索的操作,若符合搜索條件,界面會(huì)顯示用戶搜索到的房間,同時(shí)用戶也可以再次點(diǎn)擊搜索到的房間信息進(jìn)行預(yù)約的操作。在用戶信息界面中,用戶可以看到兩個(gè)可選擇項(xiàng):用戶個(gè)人修改信息和房間預(yù)約記錄。在房間預(yù)約記錄中,用戶可以查看已經(jīng)預(yù)約的房間,同時(shí)可以點(diǎn)擊退訂按鈕,來(lái)退訂已經(jīng)成功預(yù)定的房間,退訂成功時(shí)將會(huì)更新預(yù)訂登記表中的退訂日期屬性數(shù)據(jù),表達(dá)該預(yù)訂房間已退訂成功,當(dāng)在入住前三個(gè)小時(shí)前,退訂按鈕會(huì)顯示灰色,此時(shí)用戶將不能進(jìn)行退訂操作。4.7綜合考慮4.7.1穩(wěn)定性和可擴(kuò)展性在總體設(shè)計(jì)的時(shí)候,既要使總體結(jié)構(gòu)穩(wěn)定,又要適應(yīng)需求變化。4.7.1.1穩(wěn)定性在設(shè)計(jì)酒店預(yù)訂系統(tǒng)總體設(shè)計(jì)中,為了保證系統(tǒng)的穩(wěn)定性,使總體結(jié)構(gòu)穩(wěn)定,又要適應(yīng)需求變化,預(yù)測(cè)需求也許發(fā)生的變化。在用戶表中,用戶信息將通過(guò)用戶自己輸入相相應(yīng)的信息,若格式對(duì)的,將會(huì)被后臺(tái)數(shù)據(jù)庫(kù)記錄,而為了適應(yīng)用戶的需求,用戶信息的密碼,郵箱可以更改。房間表中關(guān)于房間的基礎(chǔ)屬性不變,而隨著預(yù)訂數(shù)量的變化,房間的數(shù)量將會(huì)增長(zhǎng)或者減少。在預(yù)定表里,后臺(tái)數(shù)據(jù)庫(kù)將會(huì)實(shí)時(shí)記錄用戶信息與其預(yù)約的房間信息,而為了滿足用戶退訂的需求,當(dāng)用戶進(jìn)行了退訂的操作時(shí),數(shù)據(jù)庫(kù)將會(huì)更新預(yù)訂登記表,顯示退訂時(shí)間,表達(dá)用戶在規(guī)定期間內(nèi)退訂成功。4.7.1.2擴(kuò)展性在設(shè)計(jì)酒店預(yù)訂系統(tǒng)的時(shí)候?yàn)榱丝紤]整個(gè)系統(tǒng)的未來(lái)成長(zhǎng)。我們通過(guò)可擴(kuò)展性來(lái)擴(kuò)充功能以完善整個(gè)系統(tǒng)。添加游客用戶,該身份擁有查看房間數(shù)量、類型、價(jià)格等功能,但是該身份沒(méi)有進(jìn)行預(yù)約房間的權(quán)限;信息推送功能,酒店出現(xiàn)新的優(yōu)惠或者房間價(jià)格出現(xiàn)變動(dòng)的時(shí)候,將會(huì)彈出信息框提醒用戶,方便用戶隨時(shí)核算房間更新信息;在首頁(yè)上層添加一個(gè)廣告位,目的是宣傳酒店的其他業(yè)務(wù),該廣告位可以隨時(shí)進(jìn)行更新。4.7.2性能分析4.7.2.1數(shù)據(jù)精確度查詢時(shí)應(yīng)保證查全率,所有相應(yīng)域包含查詢關(guān)鍵字的記錄都應(yīng)能查到。由于通常的系統(tǒng)規(guī)模在幾百到幾千項(xiàng)記錄,以查全率為標(biāo)準(zhǔn)所帶來(lái)的對(duì)查準(zhǔn)率的影響并不大。管理登記時(shí)數(shù)據(jù)準(zhǔn)確度具有可控性,系統(tǒng)設(shè)立數(shù)據(jù)屬性時(shí)對(duì)規(guī)定整數(shù)的數(shù)據(jù)設(shè)立成整型,對(duì)財(cái)務(wù)數(shù)據(jù)規(guī)定保存到小數(shù)點(diǎn)后三位,并滿足實(shí)際情況。數(shù)據(jù)計(jì)算設(shè)立時(shí)可以進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,保證準(zhǔn)確度。4.7.2.2時(shí)間特性一般操作的響應(yīng)時(shí)間應(yīng)在1~2秒內(nèi),對(duì)數(shù)據(jù)庫(kù)和用戶指令的響應(yīng)根據(jù)具體的網(wǎng)絡(luò)和硬件條件會(huì)有不同4.7.2.3適應(yīng)性在操作方式、運(yùn)營(yíng)環(huán)境、與其他軟件的接口以及開(kāi)發(fā)計(jì)劃等發(fā)生變化時(shí),應(yīng)具有的適應(yīng)能力。系統(tǒng)可以支持軟鍵盤(pán)、觸屏控制。系統(tǒng)可以適應(yīng)4.7.3性能指標(biāo)實(shí)現(xiàn)(1)用戶界面對(duì)用戶和諧,易操作,支持軟鍵盤(pán)和觸屏(2)系統(tǒng)基于Android4.0進(jìn)行開(kāi)發(fā)和維護(hù)使用,使用Bmob后端云數(shù)據(jù)庫(kù)4.7.4防錯(cuò)與犯錯(cuò)解決(1)為了防止系統(tǒng)犯錯(cuò),本酒店管理系統(tǒng)將具有可恢復(fù)性,在預(yù)定過(guò)程中,假如軟件忽然崩潰或者錯(cuò)誤以后應(yīng)當(dāng)可以將忽略當(dāng)前本次操作,重新進(jìn)入初始預(yù)定界面,不記錄到數(shù)據(jù)庫(kù)。(2)在用戶確認(rèn)進(jìn)行預(yù)訂或者退訂房間工作,會(huì)發(fā)生數(shù)據(jù)修改并記錄到數(shù)據(jù)庫(kù)時(shí)候應(yīng)給與彈窗提醒,防止用戶或酒店的錯(cuò)誤操作而導(dǎo)致經(jīng)濟(jì)的損失。第五章酒店預(yù)訂系統(tǒng)的實(shí)現(xiàn)本章敘述了系統(tǒng)開(kāi)發(fā)的具體過(guò)程,一方面明確了系統(tǒng)所使用的開(kāi)發(fā)環(huán)境和運(yùn)營(yíng)環(huán)境,即采用了Android平臺(tái)為開(kāi)發(fā)平臺(tái),數(shù)據(jù)庫(kù)采用了Bmob后端云數(shù)據(jù)庫(kù),而數(shù)據(jù)流圖的繪制則是采用了MicrosoftVisio繪圖軟件,然后根據(jù)上一章的系統(tǒng)設(shè)計(jì),具體實(shí)現(xiàn)了酒店預(yù)訂系統(tǒng)的界面設(shè)計(jì),給出了部分系統(tǒng)界面。5.1開(kāi)發(fā)環(huán)境的選擇和依據(jù)5.1.1開(kāi)發(fā)環(huán)境的選擇本系統(tǒng)采用了Android平臺(tái)為開(kāi)發(fā)平臺(tái),數(shù)據(jù)庫(kù)采用了Bmob后端云數(shù)據(jù)庫(kù),而數(shù)據(jù)流圖的繪制則是采用了MicrosoftVisio繪圖軟件。5.1.2開(kāi)發(fā)環(huán)境選擇的依據(jù)安卓手機(jī)APP占APP市場(chǎng)比例大。5.1.3開(kāi)發(fā)框架和方法本系統(tǒng)使用了MVP開(kāi)發(fā)模式,采用了xutils3框架。本系統(tǒng)使用MVP開(kāi)發(fā)模式可以高內(nèi)聚,并且有解耦的作用,低耦合有助于程序的維護(hù),單獨(dú)的功能做成獨(dú)立模塊,整個(gè)系統(tǒng)由一個(gè)個(gè)模塊通過(guò)接口組合而成,假如需要更新或者修改局部功能,只要修改一個(gè)接口的一個(gè)模塊,不影響整個(gè)系統(tǒng)其他功能使用。5.2系統(tǒng)功能模塊的實(shí)現(xiàn)從第三章系統(tǒng)設(shè)計(jì)可以得到酒店預(yù)訂系統(tǒng)涉及以下各部分組成,分別是:用戶模塊,實(shí)現(xiàn)用戶注冊(cè)、登錄和修改個(gè)人信息的功能;查詢模塊,實(shí)現(xiàn)用戶根據(jù)需要查詢自己所需的信息,有房間信息和個(gè)人預(yù)訂記錄信息等;預(yù)訂模塊,實(shí)現(xiàn)用戶預(yù)訂自己所心儀的房間的功能;退訂模塊,實(shí)現(xiàn)用戶可以在規(guī)定期間內(nèi)根據(jù)需要取消自己已預(yù)訂的房間的功能和在規(guī)定期間外用戶將不能取消已預(yù)訂房間的功能。5.2.1用戶模塊實(shí)現(xiàn)用戶模塊重要用于存儲(chǔ)用戶的基本信息,以便用戶進(jìn)入本系統(tǒng),和方便管理個(gè)人信息。

LoginActivity.java

//按鈕點(diǎn)擊事件

@Event(value

=

{R.id.sign_in_button,

R.id.sign_up_text})

private

void

onClick(View

view)

{

switch

(view.getId())

{

case

R.id.sign_in_button:

//獲取手機(jī)號(hào)

String

phoneNumber

=

signInPhone.getText().toString().trim();

//獲取密碼

String

password

=

signInPassword.getText().toString().trim();

//判斷手機(jī)號(hào)和密碼是否為空

if

(TextUtils.isEmpty(phoneNumber)

||

TextUtils.isEmpty(password))

{

Toast.makeText(LoginActivity.this,

"請(qǐng)輸入用戶名和密碼",

Toast.LENGTH_SHORT).show();

}

else

{

User

user

=

new

User();

//設(shè)立手機(jī)號(hào)

user.setMobilePhoneNumber(phoneNumber);

//設(shè)立用戶名

user.setUsername("usr_"

+

phoneNumber.substring(7));

//設(shè)立密碼

user.setPassword(password);

//登錄邏輯

loginPresenter.login(user);

}

break;

case

R.id.sign_up_text:

Intent

signIntent

=

new

Intent(LoginActivity.this,

SignActivity.class);

overridePendingTransition(android.R.anim.fade_in,

android.R.anim.fade_out);

startActivity(signIntent);

break;

}

}

LoginPresenterImpl.java

@Override

public

void

login(User

user)

{

//顯示登錄加載

loginView.showLoading();

//登錄邏輯

loginModel.loadUserInfo(user,

this);

}

@Override

public

void

onLoginSuccess(User

user)

{

//隱藏登錄加載

loginView.hideLoading();

//接口回調(diào),登錄成功

loginView.loginSuccess(user);

}

@Override

public

void

onLoginFail(Exception

e)

{

//隱藏登錄加載

loginView.hideLoading();

//接口回調(diào),登錄失敗

loginView.loginFailed(e);

}

LoginModelImpl.java

//用戶登錄

@Override

public

void

loadUserInfo(final

User

user,

final

OnLoginListener

loginListener)

{

handler.post(new

Runnable()

{

@Override

public

void

run()

{

//通過(guò)檢查數(shù)據(jù)庫(kù)里該用戶是否存在進(jìn)行登錄

user.login(new

SaveListener<User>()

{

@Override

public

void

done(User

user,

BmobException

e)

{

//登錄成功返回User實(shí)例

if

(e

==

null)

{

//回調(diào)

loginListener.onLoginSuccess(user);

}

//登錄失敗返回Exception

else

{

//回調(diào)

loginListener.onLoginFail(e);

}

}

});

}

});

}ProfileActivity.java

//修改信息點(diǎn)擊事件

@Event(value

=

{R.id.confirmButton,

R.id.home})

private

void

onClick(View

view)

{

switch

(view.getId())

{

case

R.id.confirmButton:

//獲取用戶名

String

username

=

usernameEditText.getText().toString().trim();

//獲取郵箱地址

String

email

=

emailEditText.getText().toString().trim();

//獲取密碼

final

String

password

=

passwordEditText.getText().toString().trim();

//獲取重新輸入的密碼

final

String

newPassword

=

newPasswordEditText.getText().toString().trim();

//獲取確認(rèn)密碼

String

confirmPassword

=

confirmPasswordEditText.getText().toString().trim();

//判斷用戶名密碼等是否為空

if

(!TextUtils.isEmpty(username)

&&

!TextUtils.isEmpty(email)

&&

TextUtils.isEmpty(password)

&&

TextUtils.isEmpty(newPassword)

&&

TextUtils.isEmpty(confirmPassword)

&&

isEmail(email))

{

progressDialog.show();

user.setUsername(username);

user.setEmail(email);

handler.post(new

Runnable()

{

@Override

public

void

run()

{

//更新用戶信息

user.update(user.getObjectId(),

new

UpdateListener()

{

@Override

public

void

done(BmobException

e)

{

//更新成功,提醒用戶更新成功

if

(e

==

null)

{

progressDialog.dismiss();

Toast.makeText(ProfileActivity.this,

"更新信息成功",

Toast.LENGTH_SHORT).show();

}

//更新失敗,提醒用戶更新失敗

else

{

progressDialog.dismiss();

Toast.makeText(ProfileActivity.this,

e.getMessage(),

Toast.LENGTH_SHORT).show();

}

}

});

}

});

}

5.2.2查詢模塊實(shí)現(xiàn)查詢模塊重要用戶查詢功能,用戶通過(guò)合理的查詢方式來(lái)查找自己需要的信息。

MainFragment.java

@Nullable

@Override

public

View

onCreateView(LayoutInflater

inflater,

@Nullable

ViewGroup

container,

@Nullable

Bundle

savedInstanceState)

{

View

view

=

x.view().inject(this,

inflater,

container);

Bundle

bundle

=

getArguments();

if

(bundle

!=

null)

{

user

=

(User)

bundle.get("user");

Log.d("USER",

"get

user

success");

}

//房間加載presenter

presenter

=

new

MainPresenterImpl(this);

refreshLayout.setColorSchemeColors(R.color.colorPrimary,

R.color.colorPrimaryDark,

R.color.textPrimary,

R.color.textPrimaryDark);

refreshLayout.setOnRefreshListener(this);

manager

=

new

LinearLayoutManager(getActivity(),

LinearLayoutManager.VERTICAL,

false);

adapter

=

new

MainAdapter();

recyclerView.setHasFixedSize(true);

recyclerView.setItemAnimator(new

DefaultItemAnimator());

recyclerView.setLayoutManager(manager);

adapter.setItemClickListener(onItemClickListener);

recyclerView.setAdapter(adapter);

//刷新加載房間

onRefresh();

return

view;

}

@Override

public

void

onRefresh()

{

if

(rooms

!=

null)

{

rooms.clear();

}

//加載房間邏輯

presenter.load();

}

@Override

public

void

showLoading()

{

refreshLayout.setRefreshing(true);

}

@Override

public

void

hideLoading()

{

refreshLayout.setRefreshing(false);

}

//加載成功回調(diào)

@Override

public

void

loadingSuccess(List<Room>

rooms)

{

this.rooms

=

rooms;

adapter.setData(rooms);

}

//加載失敗回調(diào)

@Override

public

void

loadingFailed(Exception

e)

{

Toast.makeText(getActivity(),

e.getMessage(),

Toast.LENGTH_SHORT).show();

Log.d("Exception",

e.getMessage());

}

MainPresenterImpl.java

//加載房間

@Override

public

void

load()

{

//顯示等待加載

mainView.showLoading();

//加載邏輯

mainModel.load(this);

}

//接口回調(diào),加載成功

@Override

public

void

onLoadingSuccess(List<Room>

rooms)

{

mainView.hideLoading();

mainView.loadingSuccess(rooms);

}

//接口回調(diào),加載失敗

@Override

public

void

onLoadingFailed(Exception

e)

{

mainView.hideLoading();

mainView.loadingFailed(e);

}

MainModelImpl.java

//加載房間

@Override

public

void

load(final

OnLoadListener

listener)

{

handler.post(new

Runnable()

{

@Override

public

void

run()

{

//新建查詢

BmobQuery<Room>

query

=

new

BmobQuery<>();

//查詢房間

query.findObjects(new

FindListener<Room>()

{

@Override

public

void

done(List<Room>

list,

BmobException

e)

{

if

(e

==

null)

{

//加載成功,返回Li

溫馨提示

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

評(píng)論

0/150

提交評(píng)論