大學(xué)酒店管理系統(tǒng)學(xué)士學(xué)位論文_第1頁
大學(xué)酒店管理系統(tǒng)學(xué)士學(xué)位論文_第2頁
大學(xué)酒店管理系統(tǒng)學(xué)士學(xué)位論文_第3頁
大學(xué)酒店管理系統(tǒng)學(xué)士學(xué)位論文_第4頁
大學(xué)酒店管理系統(tǒng)學(xué)士學(xué)位論文_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

哈爾濱工業(yè)大學(xué)工學(xué)碩士學(xué)位論文-PAGEII--PAGEIII---PAGEIII-目錄第1章緒論 11.1課題背景 11.2目的和意義 11.3本文結(jié)構(gòu) 2第2章技術(shù)及工具介紹 32.1SQLServer簡介 32.2JSP簡介 42.3J2EE簡介 7第3章需求分析 103.1系統(tǒng)需求分析 103.2用例分析 103.2.1管理員用例圖 103.2.2會員用例圖 103.3系統(tǒng)E-R圖 113.4設(shè)計的基本思想 113.5性能需求 123.6界面需求 12第4章系統(tǒng)概要設(shè)計 144.1設(shè)計的原則 144.2項目規(guī)劃 144.3系統(tǒng)工作流程 164.4系統(tǒng)模塊劃分 184.4.1用戶登錄模塊 184.4.2管理員操作模塊 194.4.3會員操作模塊 204.5系統(tǒng)UML類圖 214.6數(shù)據(jù)庫設(shè)計 214.6.1數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計 214.6.2數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計 24第5章系統(tǒng)實現(xiàn) 285.1數(shù)據(jù)庫的連接原理 285.2系統(tǒng)登錄頁面實現(xiàn) 295.3后臺功能模塊 305.3.1注冊會員管理 305.3.2客房信息管理 315.3.3預(yù)訂信息管理 325.3.4菜品信息管理 345.3.5訂菜信息管理 365.3.6新聞信息管理 375.3.7留言信息管理 395.3.8修改個人密碼 395.4網(wǎng)站前臺模塊 405.4.1網(wǎng)站首頁界面 405.4.2用戶注冊 415.4.3查看客房信息 415.4.4客房預(yù)訂 425.4.5菜品信息查看 435.4.6菜品預(yù)訂 435.4.7系統(tǒng)留言功能 445.4.8會員信息 455.4.9中文亂碼處理 465.5測試過程 475.5.1主頁面的登錄模塊測試 475.5.2其他錯誤 47結(jié)論 49致謝 50參考文獻 51附錄 52-PAGE10--PAGE48-緒論課題背景現(xiàn)代社會,大量人員不斷流動,人們生活水平不斷提高,比如,很多地方把旅游業(yè)作為本地經(jīng)濟發(fā)展的重要支柱之一,酒店數(shù)量急劇增加,人們對酒店的要求也越來越高。面對龐大的酒店業(yè)務(wù)信息量,酒店客房建設(shè)進一步規(guī)范化、復(fù)雜化,就需要酒店客房管理系統(tǒng)來提高客房管理工作的效率。通過這樣的系統(tǒng),可以做到信息的系統(tǒng)管理和快速查詢,從而減少了管理方面的工作量,為酒店的經(jīng)營增加競爭力。利用先進的科學(xué)技術(shù),將成為提高酒店管理效率,改善服務(wù)水準(zhǔn)的重要手段之一。然而現(xiàn)在絕大多數(shù)的中小型酒店、賓館由于資金、人員等多方面原因不易使用酒店管理類軟件,同時,市場上出現(xiàn)的各類酒店入住信息管理軟件基本上都是為大型酒店專業(yè)設(shè)計的,有很多功能對于一般酒店、賓館根本用不上。全面提高酒店客房管理系統(tǒng)的水準(zhǔn),已是酒店業(yè)發(fā)展的當(dāng)務(wù)之急。雖然計算機管理并不是酒店管理走向成功的關(guān)鍵元素,但它可以最大限度地發(fā)揮準(zhǔn)確、快捷、高效等作用,對酒店的服務(wù)管理提供強有力的支持。本系統(tǒng)的出發(fā)點是強調(diào)通用性和實用性。本系統(tǒng)的設(shè)計應(yīng)符合日常辦公運作的需求,功能完備使用,界面友好清晰,簡單易學(xué),網(wǎng)絡(luò)結(jié)構(gòu)簡單,層次清楚,便于管理。所以B/S結(jié)構(gòu)的城市酒店信息管理系統(tǒng)是酒店經(jīng)營不可缺少的現(xiàn)代工具。目的和意義開發(fā)酒店客房管理系統(tǒng)的目的是用來收集、處理、存儲和宣傳客房、菜品、顧客等酒店業(yè)務(wù)方面的信息,以信息管理為核心的計算機應(yīng)用系統(tǒng)。建立一套功能完善的管理信息系統(tǒng),既能滿足業(yè)務(wù)人員日常處理的需要,增強企業(yè)經(jīng)營全過程的數(shù)字化管理水平,又能滿足管理人員決策分析的需要,提高酒店管理層對酒店經(jīng)營反饋信息的響應(yīng)速度。從而大幅度提高工作效率,提高實施管理的準(zhǔn)確性、科學(xué)性,使負擔(dān)管理的工作人員從繁雜的手工勞動中解脫出來。這次所開發(fā)的酒店客房管理系統(tǒng)應(yīng)該具有的優(yōu)點是,它可以深入到酒店日常工作,為酒店管理者提供方便。想入住酒店的客人可以通過在線的形式,當(dāng)注冊為會員后可以自由使用本系統(tǒng)的前臺,瀏覽與酒店業(yè)務(wù)方面的信息,前臺的預(yù)訂信息與后臺的預(yù)訂管理信息同步,并保存至數(shù)據(jù)庫。酒店管理者登錄后,也可以以在線的方式,對會員的預(yù)訂信息統(tǒng)一管理,并保存至數(shù)據(jù)庫,克服了人為管理中人為失誤因素給企業(yè)管理帶來的諸多不便,大大提高了酒店的工作效率,為企業(yè)創(chuàng)造了更大的利潤。本文結(jié)構(gòu)本文前半部分介紹,通過設(shè)計開發(fā),本系統(tǒng)可以為會員提供客房預(yù)訂,購買菜品等服務(wù)的網(wǎng)上平臺,會員、管理員只要在任何一臺上網(wǎng)的計算機上就可以瀏覽要了解的客房信息,并通過登錄驗證后,找到合適的客房進行預(yù)約、查詢等。本系統(tǒng)為管理員提供在線查看客房情況,修改客房、菜品信息,查看客房記錄等。后半部分結(jié)合酒店客房管理系統(tǒng)的開發(fā)和運行,認真地分析和研究當(dāng)前比較實用的JSP項目開發(fā)技術(shù)。最后本文總結(jié)了整個開發(fā)中出現(xiàn)的問題,以及對未來酒店客房管理系統(tǒng)的應(yīng)用的展望。技術(shù)及工具介紹SQLServer簡介酒店客房管理系統(tǒng)選用的是SQLServer數(shù)據(jù)庫,SQLServer數(shù)據(jù)庫具有更高的可擴展性,可用性,這符合了酒店管理系統(tǒng)的準(zhǔn)確運用及呈現(xiàn)。其他數(shù)據(jù)庫的擴展性不如SQLServer,性能也沒有SQLServer突出,所以選擇用SQLServer做數(shù)據(jù)庫。MicrosoftSQLServer2005是Microsoft公司開發(fā)的優(yōu)秀企業(yè)級網(wǎng)絡(luò)數(shù)據(jù)庫,它是把多線程作為基礎(chǔ)結(jié)構(gòu),顯著的優(yōu)點有:所需的資源少、同時又能夠把數(shù)據(jù)庫合并起來管理,并能夠保證數(shù)據(jù)的完整性,又能夠保證數(shù)據(jù)的安全性。SQLServer2005標(biāo)準(zhǔn)版最多支持四個CPU和2GB內(nèi)存,而SQLServer2005企業(yè)版可支持的CPU數(shù)量和內(nèi)存數(shù)僅受操作系統(tǒng)的限制,如在WindowsServer2003DatacenterEdition(32位)上,最多可支持64個CPU和64GB內(nèi)存。此外,SQLServer2005企業(yè)版中還提供了標(biāo)準(zhǔn)版中沒有的聯(lián)合數(shù)據(jù)庫服務(wù)器功能,可以將數(shù)據(jù)庫負載分布到多個獨立的服務(wù)器上。SQLServer2005企業(yè)版中提供了很多標(biāo)準(zhǔn)版中所沒有的OLAP高級分析特性,這對于商業(yè)智能(BI)應(yīng)用有很大的價值。幾年來,關(guān)系數(shù)據(jù)庫系統(tǒng)以多種不同的方式提供了對XML的支持。這些系統(tǒng)所支持的主要應(yīng)用場景是信息交換,該信息交換是在XML作為“牽線格式”并且關(guān)系模式和XML模式相互獨立地預(yù)定義的情況下進行的。為了適用于這種場景,微軟SQLServer2005提供并擴展了大量最早在SQLServer2000中引入的功能,比如針對XML的發(fā)布行集聚集器、OpenXML行集提供程序以及基于帶注解模式的XML視圖技術(shù)。對于大規(guī)模的數(shù)據(jù)庫應(yīng)用來說,企業(yè)版的以上特性是非常重要的。通過在SQLServer中提供對可靠的信息隊列機制的支持,服務(wù)代理能夠幫助開發(fā)人員創(chuàng)建松耦合的分布式應(yīng)用。許多數(shù)據(jù)庫應(yīng)用使用異步處理的方式來提高可擴展性和交互型會話的響應(yīng)時間。一個常用的異步處理的方法是使用工作表。與把一個業(yè)務(wù)流程中的所有工作放在一個數(shù)據(jù)庫事務(wù)中完全不同,一個應(yīng)用程序進行修改來指示存在未完成的工作,然后,向工作表中插入一條接下來要執(zhí)行的工作的記錄。只要資源允許,應(yīng)用程序處理工作表并完成業(yè)務(wù)流程。服務(wù)代理是數(shù)據(jù)庫服務(wù)器的一部分,為應(yīng)用開發(fā)直接提供對該方法的支持。以前的消息隊列技術(shù)集中于單個的消息。在服務(wù)代理中,通信的基本單元是會話——一個持久的、可靠的全雙工消息流。SQLServer保證一個會話中的消息按順序剛好向一個應(yīng)用分發(fā)一次。每個會話是一個會話組的一部分。相關(guān)的會話能夠與同一個會話組相關(guān)聯(lián)。會話出現(xiàn)在兩個服務(wù)之間。一個服務(wù)是會話的一個命名的端點。會話和消息都是強類型的。每個消息都有一個指定的類型。SQLServer可以選擇驗證消息格式是否是良好的XML,消息是否為空,或者消息是否遵循XML模式。一個協(xié)定定義了會話中所允許的消息類型,以及哪些會話參與者能夠發(fā)送這種類型的消息。SQLServer提供了一個默認的協(xié)定和消息類型,以滿足只需要可靠流的應(yīng)用。企業(yè)版中提供了兩種實現(xiàn)數(shù)據(jù)庫可用性高的方法,故障轉(zhuǎn)移群集(Failoverclustering)和日志傳送(Logshipping),這些都是標(biāo)準(zhǔn)版中所沒有的,但對于很多實用性很強的關(guān)鍵業(yè)務(wù)系統(tǒng)來說往往的必不可少的。和標(biāo)準(zhǔn)版相比,SQLServer2005企業(yè)版處理可以利用更多的硬件資源來增強性能,還提供了聯(lián)合數(shù)據(jù)庫、索引視圖、并行DBCC及增強的預(yù)讀和掃描等特性來提高數(shù)據(jù)庫的服務(wù)性能。SQLServer的數(shù)據(jù)倉庫和商務(wù)智能組件包含:SQLServer集成服務(wù),SQLServer分析服務(wù),SQLServer報表服務(wù)。它們分別在獨立的服務(wù)器中實現(xiàn),并且能彼此獨立的安裝在一臺或多臺機器上。它們能通過本地連接器、OLE-DB或者ODBC驅(qū)動鏈接多種數(shù)據(jù)源,比如文本文件、電子表格或者各種關(guān)系數(shù)據(jù)庫系統(tǒng)。它們一起提供了一個端到端的解決方案,進行抽取、轉(zhuǎn)換和加載數(shù)據(jù),然后對數(shù)據(jù)建模和添加分析功能,并最后建立和分析數(shù)據(jù)的報表。分析服務(wù)器的各個組件能夠集成并相互輔助。SQLServer2005集成服務(wù)是一個企業(yè)數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)集成的解決方案,可以用它從分散的源抽取、轉(zhuǎn)換、聚集和合并數(shù)據(jù),并把它轉(zhuǎn)移到單個或多個目的地。SQLServer分析服務(wù)組件包含針對商務(wù)智能應(yīng)用的聯(lián)機分析處理和數(shù)據(jù)挖掘功能。分析服務(wù)支持瘦客戶架構(gòu)。計算引擎在服務(wù)器端,查詢在服務(wù)器端解析,避免了在客戶端和服務(wù)器端之間傳輸大量的數(shù)據(jù)。SQLServer還支持?jǐn)?shù)據(jù)挖掘擴展,用來與數(shù)據(jù)挖掘模型交互的語言,就像SQL是用來與表和視圖交互的語言一樣,可以創(chuàng)建和訓(xùn)練模型,并將其存儲在分析服務(wù)數(shù)據(jù)庫中。然后,可以瀏覽模型中的模式,或者通過使用特殊的語法,將其應(yīng)用于新的數(shù)據(jù)執(zhí)行預(yù)測。SQLServer2005中的數(shù)據(jù)挖掘能夠用于存儲在關(guān)系或多維的數(shù)據(jù)源上。通過特定的任務(wù)和轉(zhuǎn)換,其他數(shù)據(jù)源也能夠支持,使得數(shù)據(jù)挖掘直接作用于集成服務(wù)的操作型數(shù)據(jù)的流水線上。報表服務(wù)是一個新的基于服務(wù)器的報表平臺,它可以用來創(chuàng)建和管理包含來自關(guān)系和多維數(shù)據(jù)源的數(shù)據(jù)的表格、矩陣、圖形和自由格式的報表。創(chuàng)建的報表能夠通過基于Web的連接查看和管理。矩陣報表能夠為高層次的查看匯總數(shù)據(jù),同時也支持下鉆報表的細節(jié)。參數(shù)化報表可用來在運行時基于提供的值進行數(shù)據(jù)過濾。用戶可以隨時從大量的查看格式中選擇喜歡的格式來顯示報表,并用來操縱數(shù)據(jù)和打印。JSP簡介JSP是SunMicrosystems公司倡導(dǎo),許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端就是一個HTML文本,因此客戶端只要有瀏覽器能瀏覽。JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Servlet是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要JavaServlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο?,具有平臺無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點。JSP技術(shù)的優(yōu)點如下。1.一次編寫,到處運行。在這一點上,Java比PHP更出色,除了系統(tǒng)之外,代碼不用做任何更改。2.系統(tǒng)的多平臺支持。基本上可以在所有平臺上的任意環(huán)境中開發(fā),在任意環(huán)境中進行系統(tǒng)部署,在任意環(huán)境中擴展。相比ASP.net的局限性是顯而易見的。3.強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多臺服務(wù)器進行集群和負載均衡,到多臺Application進行事務(wù)處理,消息處理,一臺服務(wù)器到無數(shù)臺服務(wù)器,Java顯示了一個巨大的生命力。4.多樣化和功能強大的開發(fā)工具支持。Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費得到,并且其中許多已經(jīng)可以順利的運行于多種平臺之下。5.支持服務(wù)器端組件。Web應(yīng)用需要強大的服務(wù)器端組件來支持,開發(fā)人員需要利用其他工具設(shè)計實現(xiàn)復(fù)雜功能的組件供Web頁面調(diào)用,以增強系統(tǒng)性能。JSP可以使用成熟的JavaBeans組件來實現(xiàn)復(fù)雜商務(wù)功能。內(nèi)部對象說明:Request客戶端請求,此請求會包含來自Get/Post請求的參數(shù);Response網(wǎng)頁傳回客戶端的響應(yīng);pageContext網(wǎng)頁的屬性是在這里管理;session與請求有關(guān)的會話;applicationservlet正在執(zhí)行的內(nèi)容;out用來傳送響應(yīng)的輸出流;config代碼片段配置對象;pageJSP網(wǎng)頁本身;exception針對錯誤網(wǎng)頁,未捕捉的例外。JSP的運行方式是在服務(wù)器啟動后,當(dāng)Web瀏覽器端發(fā)送過來一個頁面請求時,Web服務(wù)器先判斷是否是JSP頁面請求。如果該頁面只是一般的HTML/XML頁面請求,則直接將HTML/XML頁面代碼傳給Web瀏覽器端。如果請求的頁面是JSP頁面,則由JSP引擎檢查該JSP頁面,如果該頁面是第一次被請求、或不是第一次被請求但已被修改,則JSP引擎將此JSP頁面代碼轉(zhuǎn)換成Servlet代碼,然后JSP引擎調(diào)用服務(wù)器端的Java編譯器javac.exe對Servlet代碼進行編譯,把它變成字節(jié)碼(.class)文件,然后再調(diào)用Java虛擬機執(zhí)行該字節(jié)碼文件,將執(zhí)行結(jié)果傳給Web瀏覽器端。如果該JSP頁面不是第一次被請求,且沒有被修改過,則直接用JSP引擎調(diào)用Java虛擬機執(zhí)行已編譯過的字節(jié)碼.class文件,然后將結(jié)果傳送給Web瀏覽器端。從上面的敘述中我們不難看出JSP和Servlet的關(guān)系。JSP引擎負責(zé)把JSP頁面翻譯成Servlet,因此JSP在底層完全就是Servlet(指原始概念上的Servlet,而不是HttpServlet)。JSP編程對應(yīng)javax.servlet.jsp,更確切地講,這個包是供JSP引擎使用的,它在做翻譯的時候需要用到這個包,我們在編寫JSP頁面的時候是不需要涉及這個包的。為什么有了Servlet還要在高層實現(xiàn)一個JSP呢?這個問題是跟Servlet本身編寫的煩雜程度有關(guān),如果用Servlet來控制頁面外觀的話,將是一件十分繁瑣的事情,使用JSP就把煩雜的打印任務(wù)交給了JSP引擎,程序員可以把精力集中到邏輯控制上面。一般來說,支持JSP的服務(wù)器總是支持Servlet的,因為JSP本身需要Servlet的支持。Tomcat其實是一個JSP引擎,對Servlet的支持只是其功能的一部分。在使用JSP技術(shù)開發(fā)網(wǎng)站時,并不強調(diào)使用Servlet。Servlet的應(yīng)用是沒有問題的,它非常適合服務(wù)器端的處理和編程。但是如果用Servlet處理大量的HTML文本,那么將是一件極其繁瑣的事情,這種事情更適合機器去做,否則,就是浪費程序員的體力。所以Servlet更適合處理后端的事物,前端效果用JSP來實現(xiàn)更為合適。早期的JSP標(biāo)準(zhǔn)給出了兩種使用JSP。這些方式都可以歸納為JSP模式1和JSP模式2,主要差別在于處理大量請求的位置不同。在模式1中,JSP頁面獨自響應(yīng)請求并將處理結(jié)果返回客戶。這里仍然有視圖和內(nèi)容的分離,因為所有的數(shù)據(jù)都依靠bean來處理。盡管模式1可以很好地滿足小型應(yīng)用的需要,但卻不能滿足大型應(yīng)用的需要。大量使用模式1可以很好地滿足小型應(yīng)用的需要,但卻不能滿足大型應(yīng)用的需要。大量使用模式1,常常會導(dǎo)致頁面被嵌入大量的Script和Java代碼。特別是,當(dāng)需要處理的商業(yè)邏輯很復(fù)雜時,情況會變得很嚴(yán)重。也許這對于Java程序員來說,這不是大問題。但是如果開發(fā)者是前臺界面設(shè)計人員,在大型項目中,這是很常見的,則代碼的開發(fā)和維護將出現(xiàn)困難。在任何項目中,這樣的模式多少總是會導(dǎo)致定義不清的響應(yīng)和項目管理的困難。JSP模式2是一種面向動態(tài)內(nèi)容的實現(xiàn),結(jié)合了Servlet和JSP技術(shù)。它利用兩種技術(shù)原有的優(yōu)點,采用JSP來表現(xiàn)頁面,采用Servlet來完成大量的處理,Servlet扮演一個控制者的角色,并負責(zé)影響客戶請求。接著,Servlet創(chuàng)建JSP需要的bean和對象,在根據(jù)用戶的行為,決定將哪個JSP頁面發(fā)送給用戶。特別要注意的是,JSP頁面中沒有任何商業(yè)處理邏輯,它只是簡單的檢索Servlet先前創(chuàng)建的bean或者對象,再將動態(tài)內(nèi)容插入預(yù)定義的模板。從開發(fā)的觀點來看,這一模式具有更清晰的頁面表現(xiàn),清楚的開發(fā)者角色劃分,可以充分利用開發(fā)小組中的界面設(shè)計人員,事實上,越是復(fù)雜的項目,使用模式2的好處就越突出。例如,Struts技術(shù)框架就是模式2最好的實現(xiàn)。在模式2中,JSP和Servlet可以在功能上最大幅度地分開。正確使用模式2,將會有一個中心化的控制器(Servlet),以及只完成顯示的JSP頁面。另一方面,模式2的實現(xiàn)很復(fù)雜。因此,在簡單應(yīng)用中,可以考慮使用模式1。J2EE簡介J2EE平臺規(guī)范是一個由SUN公司定義的用于簡化分布式企業(yè)級應(yīng)用開發(fā)與部署的基于組件的模式(TheJ2EEPlatformSpecificationdefinesacomponent-basedmodelthatsimplifiesenterprisedevelopmentanddeployment)。它是一整套功能非常健壯的開發(fā)企業(yè)級中間件的規(guī)范,旨在為支持Java語言服務(wù)器端部署而提供平臺無關(guān)的、可移植的、多用戶的、安全的和標(biāo)準(zhǔn)的企業(yè)級平臺。它為企業(yè)級服務(wù)器端應(yīng)用的開發(fā)人員提供了巨大的便利。為企業(yè)級Java應(yīng)用的部署創(chuàng)造了一個一致的平臺?;趯哟位M件模式的J2EE平臺把業(yè)務(wù)邏輯和底層網(wǎng)絡(luò)技術(shù)分離開來,具有可伸縮性、擴展性、易開發(fā)性和易維護性,己經(jīng)成為企業(yè)級商業(yè)分布式網(wǎng)絡(luò)計算的事實標(biāo)準(zhǔn)。J2EE是大量業(yè)內(nèi)技術(shù)專家、教育專家集體智慧和經(jīng)驗設(shè)計出來的一套先進、完美、實用的規(guī)范,從這個規(guī)范的開發(fā)者將得到行業(yè)的廣泛支持,使企業(yè)級應(yīng)用的開發(fā)變得簡單、快速。學(xué)習(xí)Java,與其說是學(xué)一種技術(shù),還不如說是在學(xué)習(xí)一種編程思想,而J2EE系統(tǒng)平臺的思想是通過一個基于組件的應(yīng)用程序模式為分布式應(yīng)用程序提供一個統(tǒng)一的標(biāo)準(zhǔn)。J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點,例如“編寫一次、隨處運行”的特性、方便存取數(shù)據(jù)庫的JDBCAPI,CORBA技術(shù)以及能夠在Internet應(yīng)用中保護數(shù)據(jù)的安全模式等等,同時還提供了對EJB(EnterpriseJavaBeans),JavaServletAPI,JSP(JavaServerPages)以及XML技術(shù)的全面支持。其最終目的就是成為一個能夠使企業(yè)開發(fā)者大幅縮短投放市場時間的體系結(jié)構(gòu)。J2EE體系結(jié)構(gòu)提供中間層集成框架用來滿足無需太多費用而又需要高可用性、高可靠性以及可擴展性的應(yīng)用的需求。通過提供統(tǒng)一的開發(fā)平臺,J2EE降低了開發(fā)多層應(yīng)用的費用和復(fù)雜性,同時提供對現(xiàn)有應(yīng)用程序集成強有力支持,完全支持EnterpriseJavaBeans,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強了安全機制,提高了性能。J2EE為搭建具有可伸縮性、靈活性、易維護性的商務(wù)系統(tǒng)提供了良好的機制:保留現(xiàn)存的IT資產(chǎn);高效的開發(fā);支持異構(gòu)環(huán)境;可伸縮性;穩(wěn)定的可用性等?;谶@些優(yōu)勢的考慮,新一代客戶關(guān)系管理系統(tǒng)決定采用J2EE體系結(jié)構(gòu)來作為系統(tǒng)的實現(xiàn)載體。J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個應(yīng)用組件根據(jù)它們所在的層分布在不同的機器上。其有四個層次和相應(yīng)的容器:運行在客戶端機器上的客戶端層(ClientTier)、運行在Web服務(wù)器上的Web層(WebTier)、運行在EJB服務(wù)器上的業(yè)務(wù)層(BusinessTier)和運行在EIS服務(wù)器上企業(yè)信息系統(tǒng)層(EnterpriseInformationSystemTier)。其中Web層和業(yè)務(wù)層共同組成了三層J2EE應(yīng)用的中間層,其它兩層是客戶端層和存儲層或企業(yè)信息系統(tǒng)層。一般情況下,許多開發(fā)商把Web服務(wù)器和EJB服務(wù)器產(chǎn)品結(jié)合在一起發(fā)布,稱為應(yīng)用服務(wù)器或J2EE服務(wù)器。J2EE組件和層次如圖2-1所示。圖2-1J2EE組件和層次圖J2EE各層的組件如下。1.客戶端層組件:包括應(yīng)用客戶端程序和瀏覽器。2.Web層組件:包括JavaServlet和JavaServerPages(JSP)。3.業(yè)務(wù)層組件:包括EnterpriseJavaBeans(EJB),包含業(yè)務(wù)層代碼的邏輯,用來滿足銀行、零售和金融等特殊商務(wù)領(lǐng)域的需要。4.企業(yè)信息系統(tǒng)層組件:包括企業(yè)基礎(chǔ)建設(shè)系統(tǒng)例如企業(yè)資源計劃(ERP),大型機事務(wù)處理,數(shù)據(jù)庫系統(tǒng),及其它的遺留信息系統(tǒng)等。J2EE應(yīng)用程序的一個主要優(yōu)點是中間層的多層應(yīng)用程序。在J2EE平臺,中間層商業(yè)邏輯是由EJB(EnterpriseJavaBeans)組件實現(xiàn)的,這些EJB組件使電子商務(wù)開發(fā)者從煩瑣的系統(tǒng)設(shè)計中解脫出來,將精力主要放在商業(yè)邏輯上,提高了應(yīng)用的質(zhì)量和加快了開發(fā)的速度,而讓EJBServer處理底層復(fù)雜的各種系統(tǒng)級任務(wù),如事務(wù)處理、組件的生命周期、狀態(tài)維持、并發(fā)控制、安全檢測、資源共享等。需要這些服務(wù)的代價并不高,不用編程,只要通過簡單的配置就行。如上所述,J2EE的分層結(jié)構(gòu)把Web層與企業(yè)信息系統(tǒng)分開,使開發(fā)人員能集中精力分別進行商務(wù)邏輯或企業(yè)信息系統(tǒng)的設(shè)計,從而使大型的商務(wù)應(yīng)用軟件的設(shè)計成為可能。系統(tǒng)功能模塊清晰,可讀性強,維護和升級方便,各層開發(fā)人員分工明確,使J2EE成為企業(yè)建立自己的信息管理系統(tǒng)的最佳選擇之一。需求分析系統(tǒng)需求分析需求分析是軟件開發(fā)目的的基礎(chǔ),只要有了需求分析才知道要做的是什么,需要用什么技術(shù)開發(fā),如何設(shè)計,根據(jù)所采用的技術(shù)來規(guī)劃項目的開發(fā)進度。在項目開發(fā)過程中,需求分析的工作是非常重要的。任何一個組織或集體,實現(xiàn)它內(nèi)部人員的管理或是各個部門的協(xié)同工作都是非常必要的。通常來說,一個酒店,每天都要管理顧客的客房預(yù)定以及入住,客房狀態(tài),還要做到菜品等其他消費商品信息的共享,這些工作由酒店管理者完成,是管理員的工作重點。所以,酒店客房管理系統(tǒng)在當(dāng)今酒店業(yè)發(fā)展的流行趨勢下,根據(jù)管理員對系統(tǒng)的需求,前臺工作人員對功能的需求,設(shè)計本管理系統(tǒng)。根據(jù)實際情況及分析結(jié)果,發(fā)現(xiàn)實現(xiàn)酒店管理的網(wǎng)絡(luò)化、信息化是十分有必要的,因此設(shè)計了酒店管理系統(tǒng)。用例分析管理員用例圖管理員是系統(tǒng)的權(quán)限最高用戶,涉及到六大功能模塊,管理員對系統(tǒng)的各項功能有著操作的權(quán)限,能夠及時動態(tài)的掌握酒店信息的各項情況。其用例圖如圖3-1所示。圖3-1管理員用例圖會員用例圖普通用戶可通過注冊成為系統(tǒng)的會員,涉及幾大功能模塊,通過對系統(tǒng)前臺功能的操作,了解酒店業(yè)務(wù)和特色,了解其銷售的商品,并進行預(yù)訂操作。其用例圖如圖3-2所示。圖3-2會員用例圖系統(tǒng)E-R圖根據(jù)用例圖及酒店需求,本系統(tǒng)各實體間E-R圖初步形成,如圖3-3所示。圖3-3系統(tǒng)E-R圖設(shè)計的基本思想設(shè)計思想遵循以下幾點:1.采用B/S模式進行開發(fā),其優(yōu)點是后臺與前臺處理層次分明,而且符合眾多已經(jīng)習(xí)慣網(wǎng)頁方式的用戶。2.采用面向?qū)ο蟮拈_發(fā)與設(shè)計理念。運用面向?qū)ο蠹夹g(shù)的前提是對整體系統(tǒng)的高度和準(zhǔn)確抽象,通過它可以保證系統(tǒng)良好的框架,進而帶來產(chǎn)品較強的穩(wěn)定性和運行效率。3.采用模塊化設(shè)計。模塊化設(shè)計要求將整個系統(tǒng)劃分成基于小的模塊,有利于代碼的重載,簡化設(shè)計和實現(xiàn)過程。4.簡單方便的系統(tǒng)界面。設(shè)計簡單友好的系統(tǒng)界面,方便用戶較快的適應(yīng)系統(tǒng)的操作。5.速度優(yōu)先原則。由于此工具最重要的評測標(biāo)準(zhǔn)就是速度,因此在設(shè)計過程中,具體過程盡量做到資源占用少,速度快。6.設(shè)計既要突出重點,又要細致周到。要符合設(shè)計需求,在有可能改進的地方進行擴充,使系統(tǒng)更適應(yīng)用戶的需要。性能需求1.系統(tǒng)的安全性:酒店管理系統(tǒng)在管理權(quán)限上要嚴(yán)格進行控制。具體要求:想登錄酒店管理系統(tǒng)進行操作,必須有操作權(quán)限,沒有權(quán)限的用戶不能通過任何方式登錄系統(tǒng)查看系統(tǒng)的任何信息和數(shù)據(jù),以確保系統(tǒng)的嚴(yán)密性和安全性。2.數(shù)據(jù)的完整性:包括如下。(1)各種記錄信息的完整性,信息記錄內(nèi)容不能為空。(2)各種數(shù)據(jù)間相互聯(lián)系的正確性。(3)相同數(shù)據(jù)在不同記錄中的一致性。界面需求界面設(shè)計目前已經(jīng)成為評價軟件質(zhì)量的一條重要指標(biāo),一個好的用戶界面可以增加用戶使用系統(tǒng)的信心和興趣,提高工作效率,JSP技術(shù)是用JAVA語言作為腳本語言的,JSP網(wǎng)頁為整個服務(wù)器端的JAVA庫單元提供了一個接口來服務(wù)于HTTP的應(yīng)用程序。創(chuàng)建動態(tài)頁面非常方便。用戶界面是指軟件系統(tǒng)與用戶交互的接口,通常包括輸出、輸入、人-機對話的界面格式等。1.輸出設(shè)計:輸出是由計算機對輸入的原始信息進行加工處理,形成高質(zhì)量的有效信息,并使之具有一定的格式,提供管理者使用,這是輸出設(shè)計的主要職責(zé)和目標(biāo)。系統(tǒng)設(shè)計的過程正好和實施過程相反,并不是從輸入設(shè)計到輸出設(shè)計,而是從輸出設(shè)計到輸入設(shè)計,這是因為輸出表格直接與使用者相聯(lián)系,設(shè)計的出發(fā)點應(yīng)當(dāng)是保證輸出表格方便地為使用者服務(wù),正確及時反映和組成用于各部門的有用信息。輸出設(shè)計的原則是考慮既要全面反映不同管理層的各項需要,又要言簡意賅,不要將用戶需要和不需要的都提供給用戶。2.輸入設(shè)計:輸入數(shù)據(jù)的收集和錄入是比較麻煩的,需要大量的人力和一定設(shè)備,并且容易出錯。如果輸入系統(tǒng)的數(shù)據(jù)有錯誤,則處理后的輸出將擴大這些錯誤,因此輸入數(shù)據(jù)的正確性對于整個系統(tǒng)質(zhì)量的好壞是具有決定性意義的。輸入設(shè)計的原則有:輸入量應(yīng)保持在能滿足處理要求的最低限度。設(shè)計中可采用設(shè)置字段初值,下拉式數(shù)據(jù)窗口等方式盡量減少用戶鍵盤輸入量。輸入量越少,錯誤率就越少,數(shù)據(jù)準(zhǔn)備時間也減少;輸入的準(zhǔn)備及輸入過程應(yīng)盡量容易進行,從而減少錯誤的發(fā)生;應(yīng)盡量早對輸入數(shù)據(jù)進行檢查(盡量接近原數(shù)據(jù)發(fā)生點),以便使錯誤及時得到更正;輸入數(shù)據(jù)盡早地用其處理所需的形式被記錄,以避免數(shù)據(jù)由一種介質(zhì)轉(zhuǎn)移到另一種介質(zhì)時需要轉(zhuǎn)錄而可能發(fā)生的錯誤。系統(tǒng)概要設(shè)計設(shè)計的原則1.標(biāo)準(zhǔn)化和規(guī)范化原則:制訂適合于本系統(tǒng)的分類編碼方案。本軟件目標(biāo)平臺為MicrosoftWindowsXP操作系統(tǒng),為實現(xiàn)系統(tǒng)的兼容,必須保證軟件開發(fā)過程中采用的開發(fā)平臺、應(yīng)用程序接口、開發(fā)技術(shù)符合Windows平臺標(biāo)準(zhǔn),同時要保證在系統(tǒng)的分析、設(shè)計、實現(xiàn)、測試、維護等階段中必須采取開放路線,遵循軟件工程的標(biāo)準(zhǔn)、規(guī)范。2.安全性原則:作為一款信息安全方面的軟件,軟件自身的安全性十分重要。要全面考慮各種非安全狀態(tài),保證程序和程序生成文件的安全,同時需要加強權(quán)限的控制,將軟件運行權(quán)限提升為管理員權(quán)限,以防止程序被非法啟動等等。3.健壯性原則:在程序設(shè)計過程中充分考慮用戶操作時正常狀態(tài)與非正常狀態(tài),確保在輸入異常情況下,程序能夠給用戶相應(yīng)提示并正常運行,在遇到錯誤時用戶可通過幫助文檔或聯(lián)網(wǎng)尋求幫助。項目規(guī)劃由于本系統(tǒng)所要實現(xiàn)的功能幾乎都要將改變的數(shù)據(jù)保存至數(shù)據(jù)庫,而本系統(tǒng)是應(yīng)用JSP編寫提供給會員和管理員的網(wǎng)頁,它的運行是要建立在有數(shù)據(jù)庫保存基礎(chǔ)上的。所以,數(shù)據(jù)庫的建立是尤為重要的,在該系統(tǒng)的系統(tǒng)架構(gòu)圖中,SQLServer位于整個系統(tǒng)架構(gòu)的底部,處于一個基礎(chǔ)的位置,需要為每個功能建立相關(guān)的表格存儲在數(shù)據(jù)庫中。本系統(tǒng)采用JDBC模式對數(shù)據(jù)庫進行連接。Servlet控制器的功能是重定向,根據(jù)用戶的輸入,分發(fā)事件給適當(dāng)?shù)念愄幚碚埱?。Servlet面向“請求”,JSP更加面向“響應(yīng)”,這更加符合本系統(tǒng)所要實現(xiàn)的應(yīng)用需求。所有客戶的HTTP請求都會發(fā)給servlet控制器,控制器來分派處理請求,重定向到相應(yīng)資源,處理完后分派視圖。ServletRequest接口提供一個方法RequestDispatcher,getRequestDispatcher(Stringpath)參數(shù)為請求被調(diào)度的目的地。調(diào)用RequestDispatcher的include()/forward()方法進行重定向??梢赃_到集中控制、提高系統(tǒng)可維護性、增進重用等效果。目前,JSP+JavaBean的組合成為了一種事實上最常見的JSP程序標(biāo)準(zhǔn),常用于制作動態(tài)網(wǎng)站。它通過Java虛擬機正確執(zhí)行。JavaBean在JSP程序中常用來封裝事務(wù)邏輯、數(shù)據(jù)庫操作等等,可以很好地實現(xiàn)業(yè)務(wù)邏輯和前臺程序的分離,使系統(tǒng)具有更好的健壯性、靈活性。用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用Java代碼創(chuàng)造的對象進行打包,并且其他開發(fā)者可以通過內(nèi)部JSP頁面、servlet、其他JavaBean、applet程序或者應(yīng)用來使用這些對象。用戶可以認為JavaBean提供了一種可以隨時隨地的復(fù)制和粘貼功能,而不用關(guān)心任何改變。酒店客房管理系統(tǒng)的系統(tǒng)架構(gòu)圖由圖4-1所示。圖4-1系統(tǒng)架構(gòu)圖本系統(tǒng)構(gòu)架主要分為前臺與后臺兩個部分,前臺的功能為普通客人或會員設(shè)計,后臺功能為酒店管理者設(shè)計。前臺可以實現(xiàn)普通用戶注冊為會員、會員登錄、會員留言、會員查看信息、會員空間功能,具有會員權(quán)限的用戶可以使用前臺的系統(tǒng)留言、查看信息、空間等功能,這些功能也會檢驗用戶是否登錄系統(tǒng),其中留言功能可以實現(xiàn)會員編輯留言并提交,查看信息包括查看酒店出售的菜品信息、客房信息,查看關(guān)于酒店動態(tài)的新聞信息、公告信息,可以對每個酒店出售的商品進行預(yù)訂操作,并在會員空間里可以查看該會員已預(yù)訂的客房或菜品,會員可以在會員空間里刪除自己的預(yù)訂信息或者重新預(yù)訂;后臺可以實現(xiàn)修改個人密碼、會員信息管理、菜品信息管理、訂菜信息管理、用餐信息管理、客房信息管理、預(yù)訂信息管理、入住信息管理、新聞信息管理、留言信息管理等功能,具有管理員權(quán)限的用戶登錄后臺管理后可以使用后臺的全部管理功能,可以修改自己的登錄密碼,可以刪除酒店會員信息改變會員用戶權(quán)限,可以添加或者刪除出售的客房信息或者菜品信息,可以對會員的客房預(yù)訂信息進行刪除操作或者安排入住,對會員的訂菜信息進行刪除或者用餐操作,按著會員號查看所有會員的預(yù)訂或者訂菜信息,刪除會員的留言信息,刪除酒店的新聞信息或者編輯新聞并提交。按照需求分析,規(guī)劃系統(tǒng)功能結(jié)構(gòu)如圖4-2所示。酒店客房管理系統(tǒng)酒店客房管理系統(tǒng)前臺后臺會員登錄會員注冊會員空間查看信息菜品管理客房信息菜品信息新聞公告客房管理修改密碼會員管理預(yù)訂管理入住用餐新聞留言取消預(yù)訂用餐詳細查看取消預(yù)訂入住詳細查看訂菜管理預(yù)訂管理圖4-2酒店客房系統(tǒng)功能結(jié)構(gòu)圖系統(tǒng)工作流程1.會員操作主要包括:編輯留言,查看酒店新聞信息,查看客房信息,選擇要入住的客房并預(yù)訂,提交預(yù)訂信息的同時交納押金,查看自己預(yù)定的菜品和房間并取消預(yù)訂。會員登錄時,主要進行選擇客房預(yù)訂的操作,其子系統(tǒng)流程圖如圖4-3所示。留言留言查看新聞查看客房信息預(yù)訂客房提交預(yù)訂信息交納押金查看菜品信息訂菜添加訂菜信息繳納現(xiàn)金查看預(yù)訂信息刪除預(yù)訂信息退出會員登錄圖4-3會員子系統(tǒng)流程圖2.管理員操作主要包括:修改個人密碼,刪除客房預(yù)訂,設(shè)定客房為入住,編輯新聞、留言信息,查看會員信息。管理員登錄后,可以對酒店的日??头窟\營進行管理,以及對新聞,留言等信息查看,進一步了解酒店經(jīng)營狀況。管理員子系統(tǒng)流程圖如圖4-4所示。添加新聞添加新聞刪除留言輸入客房信息修改個人密碼入住取消預(yù)訂刪除入住輸入菜品信息用餐取消訂菜按會員號查找預(yù)訂信息取消預(yù)訂管理員登錄退出圖4-4管理員子系統(tǒng)流程圖系統(tǒng)模塊劃分酒店客房管理系統(tǒng)是根據(jù)現(xiàn)代酒店服務(wù)行業(yè)的需求開發(fā)而成,通過系統(tǒng)把所有與酒店客房服務(wù)相關(guān)的數(shù)據(jù)統(tǒng)一管理,將酒店運營所需信息集成化,酒店管理者可以使用這樣一套方便的管理方式。本系統(tǒng)主要包括:用戶登錄模塊、管理員操作模塊、用戶操作模塊三個模塊。用戶登錄模塊用戶登錄模塊主要能夠完成:管理員登錄、會員登錄這兩個身份用戶的登錄。這兩種用戶可以基本完成對系統(tǒng)的信息化管理。只有輸入正確的用戶名和密碼才能登錄本系統(tǒng),保證了系統(tǒng)信息的安全性。登錄模塊,以管理員登陸為例,其時序圖如圖4-5所示。圖4-5登錄模塊時序圖管理員操作模塊管理員操作主要實現(xiàn),對用戶客房的管理,管理留言,編輯酒店新聞,保證前臺體現(xiàn)的用來做酒店廣告的信息,與酒店內(nèi)部資料一致。管理員操作模塊劃分為以下幾個部分:1.管理員修改個人密碼。管理員登錄后可修改自己的個人密碼。2.管理員刪除添加客房信息。3.管理員設(shè)置取消預(yù)訂客房,設(shè)置入住客房。4.管理員按會員號查看預(yù)訂客房信息,取消預(yù)訂,設(shè)置入住客房。5.管理員刪除入住信息。6.管理員刪除添加菜品信息。7.管理員設(shè)置取消預(yù)訂菜品,設(shè)置該菜品用餐。8.管理員按會員號查找訂菜信息,取消訂菜信息,設(shè)置用餐。9.管理員刪除用餐信息。10.管理員刪除會員信息。11.管理員編輯提交新聞信息,刪除新聞信息。12.管理員刪除酒店的留言。以管理員對訂菜用餐信息管理操作為例,其時序圖如圖4-6所示。圖4-6管理員子模塊時序圖會員操作模塊會員操作應(yīng)該主要實現(xiàn),提交系統(tǒng)留言、查看酒店新聞、查看酒店系統(tǒng)公告、查看客房、預(yù)訂客房并交納押金。會員操作模塊分為以下幾個部分設(shè)計:1.會員查看系統(tǒng)公告。2.會員查看酒店的新聞。3.會員編輯留言并提交。4.會員查看客房信息,預(yù)訂客房,交納押金。5.會員查看菜品信息,預(yù)訂菜品,交納現(xiàn)金。6.會員查看會員空間,查看自己的預(yù)訂信息,并刪除預(yù)訂。以會員使用系統(tǒng)留言功能提交留言操作為例,其時序圖如圖4-7所示。圖4-7會員子模塊時序圖系統(tǒng)UML類圖根據(jù)數(shù)據(jù)庫的表格以及每個表格屬性,用MyEclipse編寫相應(yīng)的類,類里編寫該類的set,get函數(shù)實現(xiàn)屬性值的設(shè)定,根據(jù)每個類要做的信息管理功能,寫出相應(yīng)的servlet類,完成對數(shù)據(jù)庫的增刪改查。完成系統(tǒng)調(diào)試后,生成UML圖,如圖4-8所示。圖4-8系統(tǒng)UML圖數(shù)據(jù)庫設(shè)計采用SQLServer作為本系統(tǒng)的數(shù)據(jù)庫。保存、保護和查看數(shù)據(jù)是數(shù)據(jù)庫的工作,所以底層的引擎以一種保持?jǐn)?shù)據(jù)的完整性和有效性的方式運作是非常重要的,這表明著關(guān)系數(shù)據(jù)庫管理系統(tǒng)必須檢查并拒絕任何無效數(shù)據(jù)進入無保護的實際數(shù)據(jù)庫,所以在數(shù)據(jù)庫端強制執(zhí)行數(shù)據(jù)完整性是非常必要的。本系統(tǒng)使用的數(shù)據(jù)庫具有很有效的數(shù)據(jù)保護功能,可以對數(shù)據(jù)安全有基礎(chǔ)的保證。數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計概念設(shè)計是指在數(shù)據(jù)分析的基礎(chǔ)上自底向上的建立整個系統(tǒng)的數(shù)據(jù)庫概念結(jié)構(gòu),從用戶的角度進行視圖設(shè)計,然后將視圖集成,最后對集成的結(jié)構(gòu)分析優(yōu)化得到最后結(jié)果。數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計采用實體—聯(lián)系(E-R)模型設(shè)計方法。E-R模型法的組成元素有:實體、屬性、聯(lián)系,E-R模型用E-R圖表示,是提示用戶工作環(huán)境中所涉及的事物,屬性則是對實體特性的描述。概念設(shè)計的目標(biāo)是產(chǎn)生反映企業(yè)組織信息要求的數(shù)據(jù)庫概念結(jié)構(gòu),即概念模式。概念模式是獨立于數(shù)據(jù)庫邏輯結(jié)構(gòu),獨立于支持?jǐn)?shù)據(jù)庫的DBMS,不依賴于計算機系統(tǒng)的。根據(jù)以上對數(shù)據(jù)庫的需求分析,并結(jié)合系統(tǒng)概念模型的特點及建立方法,建立E-R模型圖。會員信息實體E-R圖如圖4-9所示。會員會員登錄密碼登錄名姓名性別年齡編號圖4-9會員信息實體E-R圖管理員信息E-R圖如圖4-10所示。管理員管理員編號用戶名密碼圖4-10管理員信息實體E-R圖客房信息實體E-R圖如圖4-11所示??头靠头糠块g號面積簡介圖片圖片名類型日價格押金圖4-11客房信息實體E-R圖預(yù)訂信息實體E-R圖如圖4-12所示。預(yù)訂預(yù)訂房間號入住時間結(jié)束時間押金預(yù)訂時間會員ID編號圖4-12預(yù)訂信息實體E-R圖入住信息實體E-R圖如圖4-13所示。入住入住客房ID入住時間結(jié)束時間押金消費會員ID身份證號圖4-13入住信息實體E-R圖菜品信息實體E-R圖如圖4-14所示。菜品菜品菜品名價格圖片類型簡介圖4-14菜品信息實體E-R圖訂菜信息E-R圖如圖4-15所示。訂菜訂菜編號菜品號開始時間預(yù)訂時間消費會員號圖4-15訂菜信息實體E-R圖用餐信息E-R圖如圖4-16所示。用餐用餐菜品號編號開始時間會員ID消費圖4-16訂菜信息實體E-R圖新聞信息E-R圖如圖4-17所示。新聞新聞內(nèi)容編號時間標(biāo)題圖4-17新聞信息實體E-R圖留言信息E-R圖如圖4-18所示。留言留言內(nèi)容題目時間編號會員號圖4-18新聞信息實體E-R圖數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計酒店客房管理系統(tǒng)的系統(tǒng)數(shù)據(jù)庫名為db_jiudian,在數(shù)據(jù)庫中,為系統(tǒng)每個功能對應(yīng)的實體建立表格,本數(shù)據(jù)庫中包含10個表格。其數(shù)據(jù)庫表格的具體內(nèi)容是:1.管理員信息表t_admin(userId,userName,userPw):管理員信息表主要記錄了管理員的賬號信息,包括用戶名和密碼,結(jié)構(gòu)如表4-1所示。表4-1管理員信息表(t_admin)字段名字段含義類型約束條件userId編號int主鍵username用戶名varchar(50)Userpw密碼varchar(50)2.會員信息表t_user(id,loginname,loginpw,name,sex):會員信息表主要是記錄了注冊會員基本信息,包括姓名,性別,年齡等,結(jié)構(gòu)如表4-2所示。表4-2會員信息表(t_user)字段名字段含義類型約束條件id編號int主鍵loginname登錄名varchar(50)loginpw密碼varchar(50)name姓名varchar(50)sex性別varchar(50)age年齡varchar(50)3.留言信息表t_liuyan(id,title,content,shijian,user_id):留言信息表主要是記錄了留言的基本信息,包括題目,內(nèi)容,發(fā)布人等,結(jié)構(gòu)如表4-3所示。表4-3留言信息表(t_liuyan)字段名字段含義類型約束條件id編號varchar(50)主鍵title標(biāo)題varchar(50)content內(nèi)容varchar(5000)shijian發(fā)布時間varchar(50)user_id發(fā)布人varchar(50)4.新聞信息表t_news(id,title,content,shijian):新聞信息表記錄了酒店新聞的基本信息,包括題目,內(nèi)容,發(fā)布時間等,結(jié)構(gòu)如表4-4所示。表4-4新聞信息表(t_news)字段名字段含義類型約束條件id編號varchar(50)主鍵title標(biāo)題varchar(50)content內(nèi)容varchar(5000)shijian發(fā)布時間varchar(50)5.客房信息表t_kefang(id,fangjianhao,fangjianmianji,fangjianjianjie,fujian,fujianyuanshiming,kefangleixing,rijiage,del):客房信息表記錄了客房的基本信息,包括房間號,圖片,日價格,押金等,結(jié)構(gòu)如表4-5所示。4-5客房信息表(t_kefang)字段名字段含義類型約束條件id編號int主鍵fangjianhao房間號varchar(50)fangjianmianji面積varchar(50)fangjianjianjie簡介varchar(50)fujian圖片varchar(50)kefangleixing類型varchar(50)rijiage日價格varchar(50)6.預(yù)訂信息表t_yuding(id,kefang_id,kaishishijian,jieshushijian,yajin,zhifufangshi,yudingshijian,user_id):預(yù)訂信息表記錄了預(yù)訂客房的基本信息,包括該會員的信息,房間號,預(yù)定時間,入住時間,離店時間等,結(jié)構(gòu)如表4-6所示。表4-6預(yù)訂信息表(t_yuding)字段名字段含義類型約束條件id編號int主鍵user_id會員IDintkefang_id客房IDintkaishishijian入住時間varchar(50)jieshushijian離開時間varchar(50)yudingshijian預(yù)定時間varchar(50)yajin押金varchar(50)7.入住信息表t_ruzhu(id,kefang_id,user_id,shenfenzheng,kaishishijian,jieshushijian,yajin,feiyong):入住信息表記錄了入住的基本信息,包括入住時間,離開時間,身份證等,結(jié)構(gòu)如表4-7所示。表4-7入住信息表(t_ruzhu)字段名字段含義類型約束條件id編號varchar(50)主鍵user_id會員IDvarchar(50)kefang_id客房IDvarchar(50)kaishishijian入住時間varchar(50)jieshushijian離開時間varchar(50)shenfenzheng身份證號varchar(50)feiyong費用varchar(50)yajin押金varchar(50)8.菜品信息表t_caipin(id,caipinjianjie,caipinming,caipinjiage,del,tupian):菜品信息表記錄了菜品的基本信息,包括菜品名,簡介,類型,價格等,結(jié)構(gòu)如表4-8所示。表4-8菜品信息表(t_caipin)字段名字段含義類型約束條件id編號varchar(50)主鍵caipinjianjie菜品簡介varchar(500)caipinming菜品名varchar(50)caipinjiage菜品價格inttupian圖片varchar(50)9.訂菜信息表t_dingcai(id,caipin_id,kaishishijian,xiaofei,yudingshijian,user_id):訂菜信息表記錄了會員訂菜的基本信息,包括菜品編號,用餐時間,預(yù)定時間等,結(jié)構(gòu)如表4-9所示。表4-9訂菜信息表(t_dingcai)字段名字段含義類型約束條件id編號varchar(50)主鍵caipin_id菜品IDvarchar(50)kaishishijian用餐時間varchar(50)xiaofei消費intyudingshijian預(yù)定時間varchar(50)user_id會員IDvarchar(50)10.用餐信息表t_yongcan(id,caipin_id,kaishishijian,yudingshijian,user_id):用餐信息表記錄了會員用餐的基本信息,包括菜品編號,用餐時間,預(yù)定時間等,結(jié)構(gòu)如表4-10所示。表4-10用餐信息表(t_yongcan)字段名字段含義類型約束條件id編號varchar(50)主鍵caipin_id菜品IDvarchar(50)kaishishijian用餐時間varchar(50)yudingshijian預(yù)定時間varchar(50)user_id會員IDvarchar(50)系統(tǒng)實現(xiàn)在管理信息系統(tǒng)的生命周期中,經(jīng)過了需求分析、系統(tǒng)設(shè)計等階段之后,便開始了系統(tǒng)實施階段。在系統(tǒng)分析和設(shè)計階段,系統(tǒng)開發(fā)工作主要是集中在邏輯、功能和技術(shù)設(shè)計上,系統(tǒng)實施階段要繼承此前面各個階段的工作成果。將技術(shù)設(shè)計轉(zhuǎn)化為物理實現(xiàn),因此系統(tǒng)實施的成果是系統(tǒng)分析和設(shè)計階段的結(jié)晶。數(shù)據(jù)庫的連接原理采用JDBC連接數(shù)據(jù)庫的方式,只需在工程中導(dǎo)入對應(yīng)數(shù)據(jù)庫的Jar包,就可以方便的對數(shù)據(jù)庫進行連接,在程序中,用Class.forName()方法來加載驅(qū)動程序,在用DriverManager的getConnection()方法就可以創(chuàng)建一個數(shù)據(jù)庫連接。程序采用的是DAO模式來操作數(shù)據(jù)庫,DAO(DataAccessObject,數(shù)據(jù)訪問對象),是Java編程中的一種經(jīng)典模式,已被廣泛應(yīng)用,也是J2EE架構(gòu)中持久層框架的基礎(chǔ)知識,基于分層次式的軟件架構(gòu)來實現(xiàn)對數(shù)據(jù)庫的訪問操作。DAO模式的主要思想就是從抽象數(shù)據(jù)源獲取與操縱數(shù)據(jù)的方法。抽象數(shù)據(jù)的含義就是編寫應(yīng)用程序的程序員不必關(guān)心數(shù)據(jù)庫的物理位置,已經(jīng)是何種數(shù)據(jù)庫,只需使用封裝數(shù)據(jù)庫中表示記錄的數(shù)據(jù)對象即可。其思想如圖5-1所示。創(chuàng)建/使用創(chuàng)建/使用獲取/修改DataTransferObjectBusinessObjectDataAccessObject使用DataSource封裝圖5-1DAO模式類圖圖5-1中BussinessObject是業(yè)務(wù)對象,是使用DAO模式的客戶端;DataTransferObject數(shù)據(jù)傳輸對象,在應(yīng)用程序不同層次之間傳輸對象,在一個分布式應(yīng)用程序中,通??梢蕴岣哒淼男阅?;DataObjectAcces數(shù)據(jù)輸入/輸出對象封裝了對數(shù)據(jù)源的一些基本操作;DataSource指的是數(shù)據(jù)源??梢詮膱D中看出,DAO模式分離了業(yè)務(wù)邏輯和數(shù)據(jù)邏輯,用此編寫的軟件具有良好的層次式體系結(jié)構(gòu)。本系統(tǒng)為了方便數(shù)據(jù)庫的操作,主要使用DBContent的對象來接一個數(shù)據(jù)庫(建立一個類DBContent),關(guān)鍵代碼如下。publicDBContent(){StringCLASSFORNAME="com.microsoft.SQLServer.jdbc.SQLServerDriver";//連接數(shù)據(jù)庫的驅(qū)動Stringurl="jdbc:SQLServer://localhost:1433;databaseName=db_jiudian";Stringuser="sa";//連接數(shù)據(jù)庫的用戶名Stringpassword="12345";//連接數(shù)據(jù)庫的密碼try{Class.forName(CLASSFORNAME);con=DriverManager.getConnection(url,user,password);//加載數(shù)據(jù)庫的驅(qū)動stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);}catch(Exceptionex){ex.printStackTrace();} } 在程序需要連接數(shù)據(jù)庫的地方,只需要生成一個DBConnet的對象,就可以對數(shù)據(jù)庫進行連接并操作。系統(tǒng)登錄頁面實現(xiàn)為了保證系統(tǒng)的安全性,要先使用本系統(tǒng)必須先登陸到系統(tǒng)中,用戶需要正確的賬號和密碼登錄本系統(tǒng)。程序運行效果圖如圖5-2所示。圖5-2系統(tǒng)登陸頁面設(shè)計在登陸頁面輸入用戶名和密碼后,點擊提交按鈕,跳轉(zhuǎn)到登陸的service中,在該service中會對用戶名,密碼,驗證碼進行判斷,驗證通過進入對應(yīng)的頁面。關(guān)鍵代碼如下。publicStringlogin(StringuserName,StringuserPw,intuserType){Stringresult="no";Stringsql="fromTAdminwhereuserName=?anduserPw=?";Object[]con={userName,userPw};ListadminList=adminDAO.getHibernateTemplate().find(sql,con);if(adminList.size()==0){ result="no";}else{WebContextctx=WebContextFactory.get();HttpSessionsession=ctx.getSession();TAdminadmin=(TAdmin)adminList.get(0);session.setAttribute("userType",0);session.setAttribute("admin",admin);result="yes";}returnresult;}后臺功能模塊描述:系統(tǒng)后臺主頁面,左方頁面展示了管理員可操作的十大功能,進入相關(guān)的管理頁面可以鏈接到子菜單,并且用高亮黃色顯示,每個管理模塊下面都有相應(yīng)的子菜單。程序運行效果圖如圖5-3所示。圖5-3管理員主頁面在每個JSP頁面將會對相關(guān)用戶進行攔截操作,提醒用戶要先登錄才可以使用系統(tǒng),這樣可以提高安全性,防止用戶不經(jīng)過登陸頁面而進入任何子菜單頁面。注冊會員管理1.會員信息管理:管理員點擊左側(cè)的菜單“會員信息管理”,頁面跳轉(zhuǎn)到會員信息管理界面,調(diào)用后臺的servlet類查詢出所有的普通會員信息,并把這些信息封轉(zhuǎn)到數(shù)據(jù)集userList中,綁定到request對象,然后頁面跳轉(zhuǎn)到相應(yīng)的JSP,顯示出普通會員信息。程序效果圖如圖5-4所示。圖5-4注冊會員管理2.會員用戶刪除:先是點擊普通會員管理,頁面跳轉(zhuǎn)到普通會員管理界面,瀏覽所有的普通會員信息,點擊要刪除的普通會員,彈出的確定對話框,即可刪除該普通會員信息??头啃畔⒐芾?.添加客房信息:管理員輸入客房相關(guān)正確信息后點擊添加按鈕,如果是沒有輸入完整的客房信息,都會給出相應(yīng)的錯誤提示,不能錄入成功。輸入數(shù)據(jù)都通過form表單中定義的方法onsubmit="returncheckForm()"來檢查,checkForm()函數(shù)中是各種的校驗輸入數(shù)據(jù)的方式。關(guān)鍵代碼如下。publicvoidkefangAdd(HttpServletRequestreq,HttpServletResponseres){Stringid=String.valueOf(newDate().getTime());Stringfangjianhao=req.getParameter("fangjianhao");intfangjianmianji=Integer.parseInt(req.getParameter("fangjianmianji"));Stringfangjianjianjie=req.getParameter("fangjianjianjie");Stringfujian=req.getParameter("fujian");StringfujianYuanshiming=req.getParameter("fujianYuanshiming");Stringkefangleixing=req.getParameter("kefangleixing");intrijiage=Integer.parseInt(req.getParameter("rijiage"));Stringdel="no";if(liuService.panduan_fangjianhao(fangjianhao)==0){//房號不存在Stringsql="insertintot_kefangvalues(?,?,?,?,?,?,?,?,?)";Object[]params={id,fangjianhao,fangjianmianji,fangjianjianjie,fujian,fujianYuanshiming,kefangleixing,rijiage,del};DBmydb=newDB();mydb.doPstm(sql,params);mydb.closed();req.setAttribute("message","操作成功");req.setAttribute("path","kefang?type=kefangMana");}else{req.setAttribute("message","房號重復(fù),請重新輸入");req.setAttribute("path","kefang?type=kefangMana");}StringtargetURL="/common/success.jsp";dispatch(targetURL,req,res);}程序效果圖如圖5-5所示。圖5-5客房信息錄入2.客房信息管理:管理員點擊左側(cè)的菜單“客房信息管理”,頁面跳轉(zhuǎn)到客房信息管理界面,調(diào)用后臺的servlet類查詢出所有的客房信息,并把這些信息封轉(zhuǎn)到數(shù)據(jù)集合kefangList中,綁定到request對象,然后頁面跳轉(zhuǎn)到相應(yīng)的JSP,顯示出客房信息。程序效果圖如圖5-6所示。圖5-6客房信息管理頁面預(yù)訂信息管理1.預(yù)訂信息管理:管理員點擊左側(cè)的菜單“預(yù)訂信息管理”,頁面跳轉(zhuǎn)到預(yù)訂信息管理界面,調(diào)用后臺的serlvet類查詢出所有的預(yù)訂信息,并把這些信息封轉(zhuǎn)到數(shù)據(jù)集合yudingList中,綁定到request對象,然后頁面跳轉(zhuǎn)到相應(yīng)的JSP,顯示出預(yù)訂信息。點擊取消預(yù)定按鈕,可以取消對當(dāng)前客房的預(yù)訂,并且扣除5%的押金,點擊入住按鈕,可以完成對客房的入住操作。程序效果圖如圖5-7所示。圖5-7預(yù)訂信息管理頁面2.按會員號查找:管理員點擊左側(cè)的菜單“預(yù)訂信息管理”下的“按會員號查找”,頁面跳轉(zhuǎn)到按會員號查找管理界面,調(diào)用后臺的serlvet類按會員號查詢出相應(yīng)會員的預(yù)訂信息,并把這些信息封轉(zhuǎn)到數(shù)據(jù)集合List中,綁定到request對象,然后頁面跳轉(zhuǎn)到相應(yīng)的JSP,顯示出預(yù)訂信息。點擊取消預(yù)定按鈕,可以取消對當(dāng)前客房的預(yù)訂,并且扣除5%的押金,點擊入住按鈕,可以完成對客房的入住操作。關(guān)鍵代碼如下。publicvoidyudingSearch(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{ListyudingList1=newArrayList();Stringid=req.getParameter("id");Stringsql="select*fromt_yudingwhereuser_id=?";Object[]params={};DBmydb=newDB();try{mydb.doPstm(sql,params);ResultSetrs=mydb.getRs();while(rs.next()){Tyudingyuding=newTyuding();yuding.setId(rs.getString("user_id"));yuding.setkefang_id(rs.getString("id"));yuding.setKaishishijian(rs.getString("fangjianhao"));yuding.setJieshushijian(rs.getString("kaishishijian"));yuding.setYajin(rs.getInt("yajin"));yuding.setZhifufangshi(rs.getString("yudingshijian"));yudingList1.add(yuding);}rs.close();}catch(Exceptione){e.printStackTrace();}mydb.closed();req.getRequestDispatcher("admin/yuding/yudingSearch.jsp").forward(req,res);}程序效果圖如圖5-8所示。圖5-8按會員號查找頁面菜品信息管理1.添加菜品信息:管理員輸入菜品相關(guān)正確信息后點擊添加按鈕,如果是沒有輸入完整的菜品信息,都會給出相應(yīng)的錯誤提示,不能錄入成功。輸入數(shù)據(jù)都通過form表單中定義的方法onsubmit="returncheck()"來檢查,check()函數(shù)中是各種的校驗輸入數(shù)據(jù)的方式。關(guān)鍵代碼如下。publicvoidcaipinAdd(HttpServletRequestreq,HttpServletResponseres){Stringid=String.valueOf(newDate().getTime());Stringcaipinjianjie=req.getParameter("caipinjianjie");Stringcaipinming=req.getParameter("caipinming");intcaipinjiage=Integer.parseInt(req.getParameter("caipinjiage"));Stringdel="no";Stringtupian=req.getParameter("tupian"); if(liuService.panduan_caipinming(caipinming)==0){//菜品不存在 Stringsql="insertintot_caipinvalues(?,?,?,?,?,?)"; Object[]params={id,caipinjianjie,caipinming,caipinjiage,del,tupian}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("mess

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論