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