版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 河南工業(yè)職業(yè)技術(shù)學(xué)院</p><p><b> 畢業(yè)設(shè)計(jì)任務(wù)書</b></p><p> 類 別: 三年制高職 </p><p> 專 業(yè): 軟件技術(shù) </p><p> 班 級(jí): 軟件1301 </p><p>
2、 姓 名: 高杰 </p><p> 畢業(yè)設(shè)計(jì)題目: 酒店管理系統(tǒng) </p><p> 指導(dǎo)教師姓名: 姜燕 </p><p> 負(fù)責(zé)人簽字: </p><p> 年 月 日</p><p><b&
3、gt; 摘要</b></p><p> 旅游和科技化的浪潮使得酒店和餐飲行業(yè)發(fā)展的如火如荼,如何以方便、快捷、經(jīng)濟(jì)的方式來對(duì)該行業(yè)進(jìn)行有效管理是一個(gè)重要問題,隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,在社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。也使得軟件成了解決問題的有效途徑。</p><p> 酒店管理系統(tǒng)以方便、快捷、費(fèi)用低的優(yōu)點(diǎn)正慢慢地進(jìn)入人們的生活,將傳統(tǒng)的酒店管
4、理方式徹底的解脫出來,提高效率,減輕工人人員以往繁忙的工作,減小出錯(cuò)的概率。本系統(tǒng)從滿足客戶的需求角度出發(fā),實(shí)現(xiàn)了酒店管理的基本流程。系統(tǒng)的主要功能包括前臺(tái)服務(wù)、后臺(tái)管理、銷售統(tǒng)計(jì)、系統(tǒng)安全、人員管理、初始化系統(tǒng)等等。用戶在酒店消費(fèi)的時(shí)候所要等待的時(shí)間就會(huì)大大的減少,操作員能夠很方便的對(duì)用戶信息的登記和對(duì)用餐狀態(tài)的的管理,從而實(shí)現(xiàn)了酒店管理系統(tǒng)高效、準(zhǔn)確的特點(diǎn)。</p><p> 本論文全面介紹了酒店管理系統(tǒng)設(shè)
5、計(jì)的過程,系統(tǒng)是利用MyEclipse 7.0作為數(shù)據(jù)庫前端開發(fā)工具, SQL Server 2005為后臺(tái)數(shù)據(jù)庫,主要采用Windows XP/Windows 7作為操作系統(tǒng),采用java為開發(fā)語言,本著易實(shí)用性,擴(kuò)展性,可移植性的原則,采用c/s模式開發(fā) ,實(shí)現(xiàn)酒店管理信息化的發(fā)展需求。</p><p> 關(guān)鍵詞: 數(shù)據(jù)庫SQL Server2005;MyEclipse 7.0;酒店管理系統(tǒng)。</p&
6、gt;<p><b> 目 錄</b></p><p> 第一章 系統(tǒng)概述 -------------------------------------------- 1</p><p> 1.1 開發(fā)背景 -----------------------------------------1</p><p> 1.
7、2 開發(fā)語言簡(jiǎn)介-----------------------------------</p><p> 1.3 系統(tǒng)簡(jiǎn)介 -----------------------------------------</p><p> 第二章 可行性分析-----------------------------------------</p><p> 2.
8、1 技術(shù)可行性-----------------------------------------</p><p> 2.2 管理可行性-----------------------------------------</p><p> 2.3 經(jīng)濟(jì)可行性-----------------------------------------</p><p>
9、; 第三章 系統(tǒng)需求分析--------------------------------------</p><p> 3.1 項(xiàng)目規(guī)劃----------------------------------------- </p><p> 3.2 系統(tǒng)功能結(jié)構(gòu)--------------------------------------</p><p&g
10、t; 3.3 用例圖設(shè)計(jì)-----------------------------------------</p><p> 第四章 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-----------------------------------</p><p> 4.1 設(shè)計(jì)目標(biāo)----------------------------------------- </p><p&
11、gt; 4.2 開發(fā)運(yùn)行環(huán)境-------------------------------------</p><p> 4.3 數(shù)據(jù)庫設(shè)計(jì)-----------------------------------------</p><p> 4.3.1 數(shù)據(jù)庫表的概要-------------------------------</p><p> 4
12、.3.2 主要數(shù)據(jù)表結(jié)構(gòu)-------------------------------</p><p> 4.4 功能模塊的實(shí)現(xiàn)------------------------------------</p><p> 4.4.1文件架構(gòu)---------------------------</p><p> 4.4.2 登錄和系統(tǒng)界面----------
13、-----------------</p><p> 4.4.3 數(shù)據(jù)庫連接---------------------------</p><p> 4.4.3前臺(tái)服務(wù)模塊---------------------------</p><p> a 開臺(tái)查看實(shí)現(xiàn)---------------------------</p><p>
14、b點(diǎn)菜與簽單實(shí)現(xiàn)--------------------------- </p><p> c 自動(dòng)結(jié)賬實(shí)現(xiàn)---------------------------</p><p> 第五章 總結(jié)-----------------------------------------</p><p> 參考文獻(xiàn)--------------------------
15、---------------</p><p><b> 系統(tǒng)概述</b></p><p><b> 開發(fā)背景</b></p><p> 隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,信息時(shí)代的到來,信息改變了我們這個(gè)社會(huì)。各類行業(yè)在日常經(jīng)營(yíng)管理各個(gè)方面也在悄悄地走向規(guī)范化和網(wǎng)絡(luò)化。酒店管理的信息化程度體現(xiàn)在將計(jì)算機(jī)及網(wǎng)絡(luò)與信息技術(shù)應(yīng)用
16、于經(jīng)營(yíng)與管理,以現(xiàn)代化工具代替?zhèn)鹘y(tǒng)手工作業(yè)。無疑,使用網(wǎng)絡(luò)信息化管理使酒店管理更先進(jìn)、更高效、更科學(xué),信息交流更迅速。</p><p> 酒店管理系統(tǒng)是典型的信息管理系統(tǒng)的一部份,而且是必不可少的一部份。其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起簡(jiǎn)潔且資料一致性和完整性強(qiáng)、資料安全性好的數(shù)據(jù)庫。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。</p>&
17、lt;p> 酒店管理系統(tǒng)是酒店經(jīng)營(yíng)管理中不可缺少的部分,它的內(nèi)容對(duì)于經(jīng)營(yíng)的決策者和管理者來說都至關(guān)重要,所以客房管理系統(tǒng)、信息管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄巍5恢币詠砣藗兪褂脗鹘y(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多弊端,如:效率低、保密性差,容易出現(xiàn)差錯(cuò)等,且對(duì)于查詢維護(hù)等極為不方便。在當(dāng)今時(shí)代,這些完全可以改用計(jì)算機(jī)來代替人的手工操作。</p><p> 作為計(jì)算機(jī)及
18、網(wǎng)絡(luò)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)客房信息進(jìn)行管理,具有手工管理所無法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高客房經(jīng)營(yíng)管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。且辦事效率也是決定收入的一個(gè)關(guān)鍵因素。</p><p> 因此,我們組決定選擇酒店管理系統(tǒng)作為本人的畢業(yè)設(shè)計(jì),力求開發(fā)出一套界面友好,使用簡(jiǎn)單的適用于各中、小規(guī)模的酒店
19、管理系統(tǒng)。</p><p><b> 開發(fā)語言簡(jiǎn)介</b></p><p> Java語言其實(shí)最早是誕生于1991年, sun公司最初為一些消費(fèi)性電子產(chǎn)品而設(shè)計(jì)的一個(gè)通用環(huán)境,后來逐步完善廣泛應(yīng)用與Internet,桌面系統(tǒng)等各個(gè)領(lǐng)域,在開發(fā)方面具有以下優(yōu)勢(shì):</p><p> a:軟件的需求分析:可將用戶的需求進(jìn)行動(dòng)態(tài)的、可視化描述,以
20、提供設(shè)計(jì)者更加直觀的要求。而用戶的需求是各色各樣 的,不受地區(qū)、行業(yè)部門,愛好的影響,都可以用Java語言描述清楚。</p><p> b:軟件的開發(fā)方法:由于Java語言的面向目標(biāo)的特性, 所以完全可以用O-O的技術(shù)與方法來開發(fā),這是符合最新的軟件開發(fā)規(guī)范要求的 。</p><p> c:Java語言的動(dòng)畫效果遠(yuǎn)比GUI技術(shù)更加逼真,尤其是利用WWW提供的巨大動(dòng)畫資源空間,可以共享全
21、世界的動(dòng)態(tài)畫面的 資源 。</p><p> 軟件產(chǎn)品用java語言開發(fā)的軟件可以具有可視化,可聽化 ,可操作化的效果,這要比電視,電影的效果更為理想,因 為它可以做到"即時(shí)、交互、動(dòng)畫與動(dòng)作 ",要它停就停 ,要它繼續(xù)就繼續(xù) ,而這是在電影與電視播放過程中難以做到 的。本系統(tǒng)在選擇java語言原因之一它還具有其跨平臺(tái)性,可移植性,安全性,健壯性。充分考慮跨系統(tǒng)平臺(tái)和安全因素,這對(duì)于產(chǎn)品應(yīng)用
22、和市場(chǎng)化需求有很大作用。</p><p><b> 1.3系統(tǒng)簡(jiǎn)介</b></p><p> 現(xiàn)代化的酒店組織龐大、服務(wù)項(xiàng)目多、信息量大,要想提高勞動(dòng)生產(chǎn)、降低成本、提高服務(wù)質(zhì)量和管理水平,進(jìn)而促進(jìn)經(jīng)濟(jì)效益,必須借助計(jì)算機(jī)來進(jìn)行現(xiàn)代化的信息管理。酒店管理系統(tǒng)正是為此而設(shè)計(jì)的。優(yōu)秀的酒店客房管理系統(tǒng)操作方便,靈活性好,系統(tǒng)安全性高,運(yùn)行穩(wěn)定。這也是我所設(shè)計(jì)本程序的目
23、的之一。本產(chǎn)品采用的C/S模式開發(fā),主要考慮界面的友好性,且運(yùn)行于客戶端有效的降低服務(wù)器和客戶端之間的運(yùn)算量,節(jié)省了時(shí)間。本系統(tǒng)包括銷售統(tǒng)計(jì),后臺(tái)管理,人員管理,初始化系統(tǒng),和系統(tǒng)安全 五個(gè)模塊。并與sql2005數(shù)據(jù)庫應(yīng)用相結(jié)合。</p><p> 第二章 可行性分析</p><p> 2.1 技術(shù)可行性</p><p> 編寫語言:采用Java語言進(jìn)行
24、編寫。Java是一種安全的、穩(wěn)定的、簡(jiǎn)單的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性(例如沒有宏 和模版,不允許多重繼承)。Java操作簡(jiǎn)單和運(yùn)行效率高,以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性,編程的支持成為開發(fā)的首選語言。由于對(duì)Java技術(shù)比較熟練,對(duì)于系統(tǒng)較為簡(jiǎn)單的,但基本功能較為完善的酒店管理系統(tǒng)來說是基本沒有問題的。</p><p>
25、 編程平臺(tái):編程平臺(tái)采用myeclicps7.0.它已被證明是一個(gè)極其強(qiáng)大和成功的開發(fā)平臺(tái),其成熟穩(wěn)定能夠充分保證軟件設(shè)計(jì)的順利進(jìn)行。</p><p> 數(shù)據(jù)庫:數(shù)據(jù)庫采用微軟的SQL Server 2005,雖然該數(shù)據(jù)庫版本不是最新的,但其工作穩(wěn)定,功能強(qiáng)大,資源耗費(fèi)較少,所以能夠充分滿足目前的需要。</p><p> 以上所用技術(shù)都是成熟的,先進(jìn)的,穩(wěn)定的。因此,開發(fā)本系統(tǒng)在技術(shù)上
26、是可行的。</p><p><b> 管理可行性</b></p><p> 由于本系統(tǒng)功能比較簡(jiǎn)單,對(duì)于工作人員不存在太大難度。管理員權(quán)限明確,系統(tǒng)管理員擁有維護(hù)數(shù)據(jù)庫系統(tǒng)的權(quán)限,對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行添加、刪除、更新等操作界面友好簡(jiǎn)單可操作性強(qiáng)。因此,本系統(tǒng)在管理上是可行的。</p><p> 在本系統(tǒng)的運(yùn)營(yíng)階段,使用系統(tǒng)的工作人員,除了
27、需要具備在Windows平臺(tái)上使用個(gè)人電腦的知識(shí),并不需要特別的技術(shù)能力。</p><p> 本系統(tǒng)充分結(jié)合實(shí)際酒店中餐飲營(yíng)銷方式,操作實(shí)際易于接受,適用性強(qiáng) 。在銷售統(tǒng)計(jì)模塊中分別對(duì)年,月,日銷售模塊進(jìn)行全面統(tǒng)計(jì),有利于改善優(yōu)化管理服務(wù)。</p><p><b> 2.3經(jīng)濟(jì)可行性</b></p><p> 經(jīng)濟(jì)上主要考慮本系統(tǒng)帶來的效
28、益是否大于開發(fā)本系統(tǒng)的成本,采用自動(dòng)化的信息管理減少了人員的使用,對(duì)信息進(jìn)行充分統(tǒng)計(jì),方便管理,為決策著進(jìn)行更好決策做出依據(jù),提高經(jīng)濟(jì)效益,由于本系統(tǒng)的開發(fā)以課程設(shè)計(jì)為依托,參與人員的目的以學(xué)習(xí)為主,投入成本比較小。另外,系統(tǒng)管理員和業(yè)務(wù)員都擁有計(jì)算機(jī)的專業(yè)知識(shí),酒店前臺(tái)工作人員和管理人員不需要經(jīng)過培訓(xùn)即可操作本軟件。這樣可以為開發(fā)本系統(tǒng)節(jié)升資金。減少后期資源浪費(fèi)。因此,開發(fā)本系統(tǒng)在經(jīng)濟(jì)是可行的。</p><p>
29、; 綜上所述,開發(fā)本系統(tǒng),在經(jīng)濟(jì)上、技術(shù)上、管理上都是可行的。</p><p> 第三章 系統(tǒng)需求分析</p><p><b> 3.1 項(xiàng)目規(guī)劃</b></p><p> 通過項(xiàng)目組考察與調(diào)研,系統(tǒng)整理所有資料,并對(duì)這些資料從整體和局部進(jìn)行分析,最后決定在本系統(tǒng)中包含如下6大功能模塊。</p><p> 前
30、臺(tái)服務(wù):該模塊主要包括開臺(tái)點(diǎn)菜,維護(hù)菜品,簽單,結(jié)賬等功能,其中維護(hù)菜品功能包括添加和取消菜品,能夠取消菜品的前提條件是尚未簽單,即處于開單狀態(tài),結(jié)賬時(shí)則要求所有商品都要簽單,否則不允許結(jié)賬。</p><p> 后臺(tái)管理:該模塊主要包括臺(tái)號(hào)管理,菜系管理和菜品管理功能,其中菜系用來對(duì)菜品進(jìn)行分類。</p><p> 銷售統(tǒng)計(jì):該模塊主要用來分段統(tǒng)計(jì)營(yíng)業(yè)額,可以按日,月,年進(jìn)行統(tǒng)計(jì),其中
31、日統(tǒng)計(jì)是按照消費(fèi)單和銷售的商品統(tǒng)計(jì)銷售額,月統(tǒng)計(jì)是按照日期和每日的銷售額統(tǒng)計(jì)銷售額,年統(tǒng)計(jì)是按照日期和月份統(tǒng)計(jì)銷售額。</p><p> 系統(tǒng)安全:該模塊主要包括交接班,鎖定系統(tǒng)和修改密碼功能,其中交接班功能在操作員換崗時(shí)使用,鎖定系統(tǒng)在操作員臨時(shí)離開時(shí)使用。</p><p> 人員管理:該模塊主要包括檔案管理,管理員管理和操作權(quán)限管理功能,其中管理員管理功能用來管理系統(tǒng)的操作員,權(quán)限
32、管理功能用來管理系統(tǒng)操作員具有的操作權(quán)限。</p><p> 初始化系統(tǒng):該功能用來對(duì)系統(tǒng)進(jìn)行初始化,初始化后系統(tǒng)數(shù)據(jù)將全部被刪除。</p><p><b> 系統(tǒng)功能結(jié)構(gòu)</b></p><p> 該介紹以超級(jí)管理員的角色從整理結(jié)構(gòu)來介紹各個(gè)功能模塊的使用方法。首先進(jìn)入登錄界面用超級(jí)管理員權(quán)限登錄,超級(jí)管理員擁有后臺(tái)管理,銷售統(tǒng)計(jì),系統(tǒng)
33、安全,人員管理,前臺(tái)管理,初始化系統(tǒng)權(quán)限,分別可以對(duì)管理員賦予各種權(quán)限,并且對(duì)臺(tái)號(hào),菜品種類進(jìn)行設(shè)定分類,還可以進(jìn)行銷售統(tǒng)計(jì)和初始化系統(tǒng)(初始化后系統(tǒng)數(shù)據(jù)將被全部刪除)。下圖為整體功能</p><p> 3.3 用例圖設(shè)計(jì)</p><p><b> a:前臺(tái)服務(wù)分析</b></p><p><b> b:后臺(tái)管理分析</
34、b></p><p><b> c:銷售統(tǒng)計(jì)</b></p><p><b> d:系統(tǒng)安全</b></p><p><b> e:人員管理</b></p><p><b> f:初始系統(tǒng)化</b></p><p>&
35、lt;b> 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)</b></p><p><b> 4.1設(shè)計(jì)目標(biāo)</b></p><p> 根據(jù)餐飲行業(yè)的特點(diǎn)和實(shí)際情況,本系統(tǒng)以餐飲業(yè)務(wù)為基礎(chǔ),突出前臺(tái)管理,重視營(yíng)業(yè)數(shù)據(jù)分析等功能,從專業(yè)角度出發(fā),努力為餐飲管理者提供科學(xué)有效的管理模式和數(shù)據(jù)分析功能。力求開發(fā)出一款簡(jiǎn)單,使用的酒店管理系統(tǒng),令其適合于眾多餐飲企業(yè)的需求,同時(shí)該系統(tǒng)
36、還要具有一定的人性化和智能化的特點(diǎn),以保證軟件有易學(xué)易用的特點(diǎn),界面設(shè)計(jì)還要簡(jiǎn)介大方,以便常用功能的操作。</p><p><b> 4.2開發(fā)運(yùn)行環(huán)境</b></p><p> 本系統(tǒng)運(yùn)行時(shí)需要以下條件。</p><p><b> 硬件平臺(tái):</b></p><p> cpu:pentiu
37、m 41.8GHz</p><p> 內(nèi)存:256MB以上</p><p> 操作系統(tǒng):windows xp/windows 2000/windows 2003/windows 7</p><p> 數(shù)據(jù)庫:Sql Server 2005</p><p> 開發(fā)工具包:JDK Version1.6</p><p&g
38、t;<b> 4.3數(shù)據(jù)庫的設(shè)計(jì)</b></p><p> 本系統(tǒng)的底層數(shù)據(jù)庫采用的sql server2005數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫名稱為db_DrinkeryManage。在數(shù)據(jù)庫中共包含7個(gè)數(shù)據(jù)庫表和三個(gè)視圖。下面是對(duì)各表的概要說明及具體及結(jié)構(gòu)。</p><p> 4.3.1 數(shù)據(jù)庫表的概要</p><p> 該樹形結(jié)構(gòu)圖顯示了數(shù)據(jù)
39、庫系統(tǒng)的所有數(shù)據(jù)表。</p><p><b> 主要數(shù)據(jù)表結(jié)構(gòu)</b></p><p> tb_desk臺(tái)號(hào)表,用于保存餐臺(tái)信息,表結(jié)構(gòu)如下所示</p><p> tb_sort 菜系表 用于保存菜系信息,表結(jié)構(gòu)如下所示</p><p> tb_menu菜品表,用于保存菜品信息,表結(jié)構(gòu)如下所示</p>
40、<p> tb_record 檔案表,用于保存檔案信息,表結(jié)構(gòu)如下所示</p><p> tb_manager管理員表,用于保存系統(tǒng)管理員信息,表結(jié)構(gòu)如下所示</p><p> tb_order_form消費(fèi)單表用于保存消費(fèi)單信息,表結(jié)構(gòu)如下所示</p><p> tb_order_item消費(fèi)項(xiàng)目表用于保存每個(gè)消費(fèi)單具體包含的消費(fèi)項(xiàng)目信息,表
41、結(jié)構(gòu)如下所示</p><p> 4.4功能模塊的實(shí)現(xiàn)</p><p> 系統(tǒng)根據(jù)酒店管理中餐飲行業(yè)的特點(diǎn),共有六個(gè)模塊組成,在此本人將以前臺(tái)服務(wù)模塊為例,詳細(xì)的闡述系統(tǒng)實(shí)現(xiàn)的主要思想,和設(shè)計(jì)邏輯, </p><p><b> 4.4.1文件架構(gòu)</b></p><p> 寫代碼之前,通常將系統(tǒng)的文件夾架構(gòu)做一整體
42、規(guī)劃,主要目的對(duì)文件進(jìn)行分類管理,以便在開發(fā)和維護(hù)中迅速查找,同時(shí)也對(duì)系統(tǒng)起到分層作用</p><p> 以文件架構(gòu)為基礎(chǔ),整體設(shè)計(jì)出功能架構(gòu)圖,如下所示。</p><p> 4.4.2 登錄和系統(tǒng)界面</p><p> 采用swing技術(shù)設(shè)計(jì)出登陸窗體,主要有登錄名框,密碼框,和兩個(gè)按鈕組成,界面友好簡(jiǎn)潔,</p><p> 系統(tǒng)主
43、窗體設(shè)計(jì)以容器,面板方式嵌套組合,主要本著簡(jiǎn)單易懂,界面友好為原則,充分體現(xiàn)操作性實(shí)用性的特點(diǎn)。</p><p> 4.4.3 數(shù)據(jù)庫連接</p><p> 采用myeclicps和sqlserver2005的連接方式,在使用數(shù)據(jù)庫之前應(yīng)注意以下問題,安裝數(shù)據(jù)庫驅(qū)動(dòng)應(yīng)為1.2版本以上,而且要確保TCP/IP端口協(xié)議開啟。</p><p> 創(chuàng)建5個(gè)私有靜態(tài)變量
44、加載和連接數(shù)據(jù)庫,其中threadlocal用來保存已經(jīng)創(chuàng)建的數(shù)據(jù)庫連接。</p><p> private static final String DRIVERCLASS = "com.microsoft.sqlserver.jdbc.SQLServerDriver";</p><p> private static final String URL = &quo
45、t;jdbc:sqlserver://127.0.0.1:1433;DatabaseName=db_DrinkeryManage";</p><p> private static final String USERNAME = "sa";</p><p> private static final String PASSWORD = "sa&q
46、uot;;</p><p> 此處為加載數(shù)據(jù)庫驅(qū)動(dòng):</p><p> private static final ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>();</p><p> static {// 在靜態(tài)代碼塊中加載數(shù)據(jù)庫驅(qū)動(dòng)</p>
47、;<p><b> try {</b></p><p> Class.forName(DRIVERCLASS).newInstance();// 加載數(shù)據(jù)庫驅(qū)動(dòng)</p><p> } catch (Exception e) {</p><p> e.printStackTrace();}}</p><p
48、> 此處連接數(shù)據(jù)庫方法:</p><p> public static Connection getConnection() {// 創(chuàng)建數(shù)據(jù)庫連接的方法</p><p> Connection conn = threadLocal.get();// 從線程中獲得數(shù)據(jù)庫連接</p><p> if (conn == null) {// 沒有可用的數(shù)據(jù)庫
49、連接</p><p><b> try {</b></p><p> conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);// 創(chuàng)建新的數(shù)據(jù)庫連接</p><p> threadLocal.set(conn);// 將數(shù)據(jù)庫連接保存到線程中</p><
50、p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p> return conn;// 返回?cái)?shù)據(jù)庫連接</p>&
51、lt;p><b> }</b></p><p><b> 此處為關(guān)閉數(shù)據(jù)庫:</b></p><p> public static boolean closeConnection() {// 關(guān)閉數(shù)據(jù)庫連接的方法</p><p> boolean isClosed = true;// 默認(rèn)關(guān)閉成功</p
52、><p> Connection conn = threadLocal.get();// 從線程中獲得數(shù)據(jù)庫連接</p><p> if (conn != null) {// 數(shù)據(jù)庫連接可用</p><p> threadLocal.set(null);// 清空線程中的數(shù)據(jù)庫連接</p><p><b> try {</
53、b></p><p> conn.close();// 關(guān)閉數(shù)據(jù)庫連接</p><p> } catch (SQLException e) {</p><p> isClosed = false;// 關(guān)閉失敗</p><p> e.printStackTrace();</p><p><b>
54、 }</b></p><p><b> }</b></p><p> return isClosed;// 返回關(guān)閉結(jié)果</p><p><b> }</b></p><p> 4.4.3前臺(tái)服務(wù)模塊</p><p> 前臺(tái)服務(wù)模塊主要分為,開臺(tái)簽單,
55、點(diǎn)菜簽單,自動(dòng)結(jié)賬功能,以人性化,簡(jiǎn)易化為原則,增加了系統(tǒng)的可操作性,例如,開臺(tái)點(diǎn)菜功能中有助記碼可方便前臺(tái)進(jìn)行快捷輸入菜品名稱,如紅燒肉助記碼為hsr,輸入一個(gè)或全部字母即可出來菜品名。用自動(dòng)結(jié)帳功能系統(tǒng)可自動(dòng)顯示應(yīng)付金額和要找金額。從而避免因忙碌和繁雜的事物和數(shù)據(jù)造成的過失。</p><p><b> a 開臺(tái)查看實(shí)現(xiàn)</b></p><p> 在客戶需要服
56、務(wù)時(shí)選中所開臺(tái)號(hào),然后點(diǎn)開單即可進(jìn)行點(diǎn)菜等服務(wù)操作,主窗體上部顯示簽單列表,開臺(tái)列表,分別對(duì)臺(tái)號(hào),和賬單進(jìn)行顯示,在主界面中圖示如下</p><p> 當(dāng)在“臺(tái)號(hào)”下拉框中選中已經(jīng)開臺(tái)的臺(tái)號(hào)時(shí),開臺(tái)列表中該臺(tái)號(hào)所在的行也將被選中,同時(shí)在簽單列表中將列出該餐臺(tái)消費(fèi)的所有項(xiàng)目,效果如上圖所示。</p><p> 如果在“臺(tái)號(hào)”下拉框中選中尚未開臺(tái)的臺(tái)號(hào)時(shí),在開臺(tái)列表中將不選中任何行,并且在
57、簽單列表中將沒有任何項(xiàng)目,</p><p> 實(shí)現(xiàn)“臺(tái)號(hào)”代碼如下:</p><p> final JLabel numLabel = new JLabel(); // 創(chuàng)建“臺(tái)號(hào)”標(biāo)簽</p><p> numLabel.setText("臺(tái)號(hào):"); // 設(shè)置標(biāo)簽文本</p><p> orderDishes
58、Panel.add(numLabel);</p><p> numComboBox = new JComboBox(); // 創(chuàng)建臺(tái)號(hào)選擇框</p><p> numComboBox.setNextFocusableComponent(codeTextField); // 設(shè)置下一個(gè)將要獲得焦點(diǎn)的組件</p><p> initNumComboBox();
59、// 初始化臺(tái)號(hào)選擇框</p><p> numComboBox.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent e) {</p><p> int rowCount = rightTable.getRowCount(); //
60、獲得已開臺(tái)數(shù)</p><p> if (rowCount == 0) // 沒有開臺(tái)</p><p> return; // 不執(zhí)行任何操作</p><p> Object selectedDeskNum = numComboBox.getSelectedItem(); // 獲得“臺(tái)號(hào)”選擇框中的選中項(xiàng)</p><p> int n
61、eedSelectedRow = -1; // 默認(rèn)選中的臺(tái)號(hào)未開臺(tái)</p><p> for (int row = 0; row < rowCount; row++) { </p><p> // 查看選中的臺(tái)號(hào)是否已經(jīng)開臺(tái)</p><p> if (selectedDeskNum.equals(rightTable.getValueAt(row, 1
62、))) { // 已經(jīng)開臺(tái)</p><p> needSelectedRow = row; // 保存其在“開臺(tái)列表” 中的所在行</p><p> break; // 跳出循環(huán)</p><p><b> }</b></p><p><b> }</b><
63、;/p><p> if (needSelectedRow == -1) { // 選中的臺(tái)號(hào)尚未開臺(tái),即將要開臺(tái)</p><p> rightTable.clearSelection(); // 取消選擇“開臺(tái)列表”中的選中行</p><p> leftTableDataV.removeAllElements(); // 清空“簽單列表”中的所有行</p&g
64、t;<p> leftTableModel.setDataVector(leftTableDataV,</p><p> leftTableColumnV); // 刷新“簽單列表”表格模型的數(shù)據(jù)</p><p> } else { // 選中的臺(tái)號(hào)已經(jīng)開臺(tái),即將要添加消費(fèi)項(xiàng)目</p><p> rightTable.setRowSelecti
65、onInterval(needSelectedRow);// 在“開臺(tái)列表”中選中該臺(tái)號(hào)</p><p> leftTableDataV.removeAllElements(); // 清空“簽單列表”中的現(xiàn)有項(xiàng)目</p><p> leftTableDataV.addAll(itemOfDeskV.get(needSelectedRow)); // 向“簽單列表”添加新選中餐臺(tái)的消費(fèi)
66、項(xiàng)目</p><p> leftTableModel.setDataVector(leftTableDataV,</p><p> leftTableColumnV); // 刷新“簽單列表”表格模型的數(shù)據(jù)</p><p> leftTable.setRowSelectionInterval(0); // 選中“簽單列表”中的第一行</p>&l
67、t;p><b> }</b></p><p><b> }</b></p><p> b 點(diǎn)菜與簽單實(shí)現(xiàn) </p><p> 選中要點(diǎn)的餐臺(tái)后即可進(jìn)行點(diǎn)菜,系統(tǒng)支持兩種方式點(diǎn)菜:一種是通過菜品的 記助碼,這種樣式的優(yōu)點(diǎn)在于快速獲取菜品名稱,另一種方式通過菜品的編號(hào)輸入后自動(dòng)顯示菜品名到商品名稱框里。<
68、;/p><p> 其系統(tǒng)圖中顯示如下所示</p><p> 獲取菜品功能是通過文本框添加鍵盤事件監(jiān)聽器實(shí)現(xiàn)的,代碼如下:</p><p> codeTextField.addKeyListener(new KeyAdapter() {</p><p> public void keyTyped(KeyEvent e) {// 通過鍵盤監(jiān)聽
69、器實(shí)現(xiàn)控制文本框的輸入內(nèi)容</p><p> if ("abcdefghijklmnopqrstuvwxyz0123456789".indexOf(e</p><p> .getKeyChar()) < 0)// 只允許輸入字母和數(shù)字</p><p> e.consume();// 銷毀此次鍵盤事件</p><p&
70、gt;<b> }</b></p><p> public void keyReleased(KeyEvent e) {// 通過鍵盤監(jiān)聽器實(shí)現(xiàn)智能獲取菜品</p><p> if (e.getKeyCode() == KeyEvent.VK_ENTER) {// 按下回車鍵</p><p> makeOutAnInvoice();//
71、 開單</p><p><b> } else {</b></p><p> String input = codeTextField.getText();// 獲得輸入內(nèi)容</p><p> Vector menuV = null;// 符合條件的菜品</p><p> if (input.length() &
72、gt; 0) {// 確認(rèn)輸入了內(nèi)容</p><p> if (codeRadioButton.isSelected()) {// 按助記碼查詢</p><p> Vector menusV = dao.sMenuByCode(input);// 查詢符合條件的菜品</p><p> if (menusV.size() > 0) {// 存在符合條件的菜
73、品</p><p> menuV = (Vector) menusV.get(0);// 獲得第一個(gè)符合條件的菜品</p><p> menuV.remove(0);// 移除菜品的序號(hào)</p><p><b> }</b></p><p> } else {// 按編號(hào)查詢</p><p&g
74、t; if (input.length() == 9)// 確認(rèn)編號(hào)是否為9位</p><p> menuV = dao.sMenuByNum(input);// 查詢符合條件的菜品</p><p><b> }</b></p><p><b> }</b></p><p> if (me
75、nuV == null) {// 不存在符合條件的菜品</p><p> nameTextField.setText(null);// 設(shè)置“商品名稱”文本框?yàn)榭?lt;/p><p> unitTextField.setText(null);// 設(shè)置“單位”文本框?yàn)榭?lt;/p><p> priceTextField.setText(null);// 設(shè)置“單價(jià)”
76、文本框?yàn)榭?lt;/p><p> } else {// 存在符合條件的菜品</p><p> nameTextField.setText(menuV.get(2).toString());// 設(shè)置“商品名稱”文本框?yàn)榉蠗l件的菜品名稱</p><p> unitTextField.setText(menuV.get(4).toString());// 設(shè)置“單位
77、”文本框?yàn)榉蠗l件的菜品單位</p><p> priceTextField.setText(menuV.get(5).toString());// 設(shè)置“單價(jià)”文本框?yàn)榉蠗l件的菜品單價(jià)</p><p><b> }</b></p><p><b> }</b></p><p><b&
78、gt; }</b></p><p><b> });</b></p><p> orderDishesPanel.add(codeTextField);</p><p><b> 注解:</b></p><p> consume():該方法用于銷毀此次事件,如果此次事件是向一個(gè)
79、文本框中輸入一個(gè)字符,則取消次輸入。</p><p> e,getKeyCode()==KeyEventVK_ENTER:該段代碼用來判斷此處事件是用戶按下Enter鍵觸發(fā)的,如果是則返回true;否則返回false。</p><p> 默認(rèn)情況下點(diǎn)才數(shù)量為1,如果不需要修改點(diǎn)菜數(shù)量,通過菜品助記碼或編號(hào)獲得菜品后直接單擊回車就開單成功從而方面用戶操作。</p><
80、p> 確定多點(diǎn)菜品和數(shù)量后,也可以通過單擊“開單“按鈕完成開單工作,簽單列表中的新開單菜品前會(huì)有一個(gè)“NEW”標(biāo)記,</p><p> 確定消費(fèi)“簽單列表”中所有菜品后,需要單擊“簽單“按鈕取消所有菜品前所有菜品的“NEW”標(biāo)記實(shí)現(xiàn)“簽單”。</p><p><b> c自動(dòng)結(jié)賬實(shí)現(xiàn)</b></p><p> 該功能自動(dòng)計(jì)算“簽單
81、列表“中消費(fèi)金額,在“實(shí)收金額”文本框中輸入已收金額,系統(tǒng)自動(dòng)計(jì)算應(yīng)找金額,避免因忙碌繁雜而引起的錯(cuò)誤結(jié)算。</p><p> 在結(jié)賬之前一定要確保所有菜品已經(jīng)簽單,否則將彈出提示信息,并且要保證實(shí)收金額不小于消費(fèi)金額。實(shí)現(xiàn)結(jié)賬代碼如下:</p><p> final JButton checkOutButton = new JButton();</p><p>
82、; checkOutButton.setText("結(jié) 賬");</p><p> checkOutButton.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent e) {</p><p> int selec
83、tedRow = rightTable.getSelectedRow();</p><p> if (selectedRow < 0) {// 未選中任何餐臺(tái)</p><p> JOptionPane.showMessageDialog(null, "請(qǐng)選擇要結(jié)賬的餐臺(tái)!", "友情提示",</p><p> JO
84、ptionPane.INFORMATION_MESSAGE);// 彈出提示</p><p><b> return;</b></p><p><b> }</b></p><p> int rowCount = leftTable.getRowCount();// 獲得結(jié)賬餐臺(tái)的點(diǎn)菜數(shù)量</p>&l
85、t;p> if (leftTable.getValueAt(rowCount - 1, 0).equals("NEW")) {// 存在未簽單菜品</p><p> JOptionPane.showMessageDialog(null, "請(qǐng)先確定未簽單商品的處理方式!",</p><p> "友情提示", JOpti
86、onPane.INFORMATION_MESSAGE);// 彈出提示</p><p><b> return;</b></p><p><b> }</b></p><p> int expenditure = Integer.valueOf(expenditureTextField</p><
87、p> .getText());// 獲得消費(fèi)金額</p><p> int realWages = Integer.valueOf(realWagesTextField.getText());// 獲得實(shí)收金額</p><p> if (realWages < expenditure) {// 查看實(shí)收金額是否小于消費(fèi)金額</p><p> if
88、 (realWages == 0)// 未輸入實(shí)收金額</p><p> JOptionPane.showMessageDialog(null, "請(qǐng)輸入實(shí)收金額!", "友情提示",</p><p> JOptionPane.INFORMATION_MESSAGE);// 彈出提示</p><p><b>
89、else</b></p><p> // 實(shí)收金額小于消費(fèi)金額</p><p> JOptionPane.showMessageDialog(null, "實(shí)收金額不能小于消費(fèi)金額!",</p><p> "友情提示", JOptionPane.INFORMATION_MESSAGE);// 彈出提示<
90、/p><p> realWagesTextField.requestFocus();// 為“實(shí)收金額”文本框請(qǐng)求獲得焦點(diǎn)</p><p><b> return;</b></p><p><b> }</b></p><p> changeTextField.setText((realWage
91、s - expenditure) + "");// 計(jì)算并設(shè)置“找零金額”</p><p> String[] orderFormData = {</p><p><b> getNum(),</b></p><p> rightTable.getValueAt(selectedRow, 1).toString(),&
92、lt;/p><p> Today.getDate() + " "</p><p> + rightTable.getValueAt(selectedRow, 2),</p><p> expenditureTextField.getText(),</p><p> TipWizardFrame.this.manager
93、V.get(0).toString() };// 組織消費(fèi)單信息</p><p> dao.iOrderForm(orderFormData);// 持久化到數(shù)據(jù)庫</p><p> String[] orderItemData = new String[4];// 用來存儲(chǔ)消費(fèi)項(xiàng)目信息</p><p> orderItemData[0] = dao.sOrd
94、erFormOfMaxId();// 獲得消費(fèi)單編號(hào)</p><p> for (int row = 0; row < rowCount; row++) {// 通過循環(huán)持久化消費(fèi)項(xiàng)目信息</p><p> orderItemData[1] = leftTable.getValueAt(row, 2).toString();// 獲得菜品編號(hào)</p><p&g
95、t; orderItemData[2] = leftTable.getValueAt(row, 5).toString();// 獲得菜品數(shù)量</p><p> orderItemData[3] = leftTable.getValueAt(row, 7).toString();// 獲得菜品消費(fèi)金額</p><p> dao.iOrderItem(orderItemData);//
96、 持久化到數(shù)據(jù)庫</p><p><b> }</b></p><p> JOptionPane.showMessageDialog(null, rightTable.getValueAt(</p><p> selectedRow, 1)</p><p> + " 結(jié)賬完成!", "
97、;友情提示", JOptionPane.INFORMATION_MESSAGE);// 彈出提示</p><p><b> //</b></p><p> rightTableModel.removeRow(selectedRow);// 從“開臺(tái)列表”中移除結(jié)賬餐臺(tái)</p><p> leftTableDataV.remove
98、AllElements();// 清空“簽單列表”</p><p> leftTableModel.setDataVector(leftTableDataV, leftTableColumnV);// 刷新“簽單列表”</p><p> realWagesTextField.setText("0");// 清空“實(shí)收金額”文本框</p><p&g
99、t; changeTextField.setText("0");// 清空“找零金額”文本框</p><p> itemOfDeskV.remove(selectedRow);// 從數(shù)據(jù)集中移除結(jié)賬餐臺(tái)</p><p><b> }</b></p><p><b> });</b></p
100、><p><b> 第五章 總結(jié)</b></p><p> 前臺(tái)服務(wù)模塊作為酒店管理系統(tǒng)中為客戶服務(wù)的主要模塊,設(shè)計(jì)思想體現(xiàn)了整個(gè)系統(tǒng)分層分類的特點(diǎn)。以開單,點(diǎn)菜,簽單,結(jié)賬的流程來展現(xiàn)酒店管理中餐飲服務(wù),操作簡(jiǎn)單,易于上手,銷售統(tǒng)計(jì),后臺(tái)管理,人員管理等模塊更為管理員的使用提供了,安全,便捷的幫助。在系統(tǒng)的設(shè)計(jì)于實(shí)現(xiàn)中,組員之間互相探討認(rèn)真總結(jié)在程序過程中的錯(cuò)誤。
101、設(shè)計(jì)之初,我們希望通過一起合作,共同來用自己的所學(xué)寫出有一份作品。真正體驗(yàn)整個(gè)系統(tǒng)流程的編寫。為以后就業(yè)有所幫助。事實(shí)上對(duì)于我個(gè)人而言獲得遠(yuǎn)非如此,從全面,細(xì)節(jié)中感受到軟件開發(fā)的復(fù)雜和意義,也學(xué)會(huì)了如何運(yùn)用所學(xué)與實(shí)際應(yīng)用結(jié)合。</p><p> 三年的求學(xué)使我和同學(xué)學(xué)會(huì)用交流解決問題,用交流去互助合作,相信在也會(huì)在我的工作中讓我受益匪淺。在此感謝我的指導(dǎo)老師姜燕老師,從入學(xué)一直指引我們走向編程之路,并在java
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)----酒店管理系統(tǒng)
- 酒店管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 酒店管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 酒店管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 酒店管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 酒店管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-酒店酒店管理系統(tǒng)論文
- 酒店前臺(tái)管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 酒店管理系統(tǒng)畢業(yè)設(shè)計(jì)x
- 畢業(yè)設(shè)計(jì)(論文)-酒店管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)---酒店信息管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)酒店管理系統(tǒng)論文
- 畢業(yè)設(shè)計(jì)----酒店管理信息系統(tǒng)
- 畢業(yè)設(shè)計(jì)--- 酒店管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)--酒店管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)酒店客房預(yù)定管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)--酒店網(wǎng)上管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 酒店客房管理系統(tǒng)—畢業(yè)設(shè)計(jì)
- 酒店客房預(yù)定管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于java的酒店管理系統(tǒng)畢業(yè)設(shè)計(jì)論文
評(píng)論
0/150
提交評(píng)論