酒店管理系統(tǒng)個人總結(jié)報告.doc_第1頁
酒店管理系統(tǒng)個人總結(jié)報告.doc_第2頁
酒店管理系統(tǒng)個人總結(jié)報告.doc_第3頁
酒店管理系統(tǒng)個人總結(jié)報告.doc_第4頁
酒店管理系統(tǒng)個人總結(jié)報告.doc_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

內(nèi)蒙古工業(yè)大學(xué)信息 工 程 學(xué) 院課 程 設(shè) 計設(shè)計題目: Java程序設(shè)計課程設(shè)計 -酒店管理系統(tǒng) 系 別 信息工程系 班級 軟件08-1 學(xué)生姓名 古海峰 學(xué)號 20 18 24 29號 指導(dǎo)教師 楊弘平、費雅潔 職稱 副教授、教授 起止日期:2011 年 7月13日起至 2011年 7月 25日止內(nèi)蒙古工業(yè)大學(xué)信息 工 程 學(xué) 院課程設(shè)計任務(wù)書課程設(shè)計題目: Java程序設(shè)計課程設(shè)計 -酒店管理系統(tǒng) 系 別 信息工程系 班級 軟件08-1 學(xué)生姓名 古海峰 學(xué)號 20 18 24 29號 指導(dǎo)教師 楊弘平、費雅潔 職稱 副教授、教授 課程設(shè)計進行地點: 實訓(xùn)F 任 務(wù) 下 達 時 間: 2011 年 6 月 13 日起止日期: 2011 年 7月 13 日起至 2011年 7月 25 日止教研室主任 楊弘平 2011年 7月 12 日批準(zhǔn)II1.設(shè)計的原始資料及依據(jù)通過課程設(shè)計使學(xué)生進一步加深對課程內(nèi)容的理解,利用程序設(shè)計的基本思想進行程序的開發(fā),進一步掌握編程方法和技巧,提高學(xué)生用程序的思想來解決實際問題的能力。2設(shè)計的主要內(nèi)容及要求本小組設(shè)計題目:酒店管理管理系統(tǒng)需要完成的功能: 前臺服務(wù):開臺點菜、添加菜品、結(jié)賬 后臺管理:維護臺號、維護菜系、維護菜品 結(jié)賬報表:日結(jié)賬報表、月結(jié)賬報表、年結(jié)賬報表 系統(tǒng)安全:修改密碼、用戶管理 數(shù)據(jù)庫的創(chuàng)建、登陸界面3.對設(shè)計說明書撰寫內(nèi)容、格式、字?jǐn)?shù)的要求 學(xué)生應(yīng)撰寫的內(nèi)容為:中文摘要和關(guān)鍵詞、目錄、正文、參考文獻等。課程設(shè)計說明書(論文)的結(jié)構(gòu)及各部分內(nèi)容要求可參照沈陽工程學(xué)院畢業(yè)設(shè)計(論文)撰寫規(guī)范執(zhí)行。應(yīng)做到文理通順,內(nèi)容正確完整,書寫工整,裝訂整齊。 裝訂格式封面、任務(wù)書、成績評審意見表、摘要和關(guān)鍵詞、目錄、正文、結(jié)論、致謝、參考文獻。 課程設(shè)計說明書(論文)是體現(xiàn)和總結(jié)課程設(shè)計成果的載體,一般不應(yīng)少于3000字。打印時采用A4紙,頁邊距均為20mm,正文采用宋體小四號字,行間距18磅。文中大標(biāo)題采用黑體小三號字,一級節(jié)標(biāo)題采用黑體四號字,二級節(jié)標(biāo)題采用黑體小四號字,三級節(jié)標(biāo)題采用黑體小四號字,表題與圖題采用宋體五號字。4. 設(shè)計完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求 課程設(shè)計任務(wù)書 課程設(shè)計報告 設(shè)計成品(光盤)5.時間進度安排順序階段日期計 劃 完 成 內(nèi) 容備注1第16周第1天查閱資料,充分解讀題目內(nèi)容,小組分工,確定每個人的具體任務(wù)。1天2第16周第2天數(shù)據(jù)庫設(shè)計及登陸界面的實現(xiàn)。1天3第16周第3,4,5天,第17周第1天編制程序,單元測試。4天4第17周第2,3天程序整合,綜合調(diào)試。2天5第17周第4天答辯。1天6第17周第5天撰寫課程設(shè)計報告。1天6.主要參考資料(文獻)1 耿祥義.JAVA2 實用教程.北京:清華大學(xué)出版社,20062 朱仲杰.JAVA2 全方位學(xué)習(xí).北京:機械工業(yè)出版社,2006 3 張思民.JAVA程序設(shè)計實踐教程.北京:清華大學(xué)出版社,20064 湯一平.Java 語言程序設(shè)計.北京:科學(xué)出版社,20065 劉藝.Java 程序設(shè)計大學(xué)教程. 北京:機械工業(yè)出版社,20066 耿祥義.Java課程設(shè)計.北京:清華大學(xué)出版社,20037 Sharon Zakhour. Java教程. 北京:人民郵電出版社,2007 沈陽工程學(xué)院 課程設(shè)計成績評定表系(部): 信息工程系 班級: 學(xué)生姓名:指 導(dǎo) 教 師 評 審 意 見評價內(nèi)容具 體 要 求權(quán)重評 分加權(quán)分調(diào)研論證能獨立查閱文獻,收集資料;能制定課程設(shè)計方案和日程安排。0.15432工作能力態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能夠獨立完成設(shè)計工作, 0.25432工作量按期圓滿完成規(guī)定的設(shè)計任務(wù),工作量飽滿,難度適宜。0.25432說明書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊全,圖表完備,書寫工整規(guī)范。0.55432指導(dǎo)教師評審成績(加權(quán)分合計乘以8) 分加權(quán)分合計指 導(dǎo) 教 師 簽 名: 年 月 日評 閱 教 師 評 審 意 見評價內(nèi)容具 體 要 求權(quán)重評 分加權(quán)分查閱文獻查閱文獻有一定廣泛性;有綜合歸納資料的能力0.25432工作量工作量飽滿,難度適中。0.55432說明書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊全,圖表完備,書寫工整規(guī)范。0.35432評閱教師評審成績(加權(quán)分合計乘以4)分加權(quán)分合計評 閱 教 師 簽 名: 年 月 日答 辯 小 組 評 審 意 見評價內(nèi)容具 體 要 求權(quán)重評 分加權(quán)分學(xué)生匯報匯報準(zhǔn)備充分,思路清晰;語言表達準(zhǔn)確,概念清楚,論點正確,有層次,有重點,基本上反映了所完成任務(wù)的全部內(nèi)容;時間符合要求。0.55432答 辯思路清晰;回答問題有理論依據(jù),基本概念清楚;主要問題回答準(zhǔn)確,深入,有說服力。0.55432答辯小組評審成績(加權(quán)分合計乘以8)分加權(quán)分合計答辯小組教師簽名: 年 月 日課 程 設(shè) 計 總 評 成 績分V沈陽工程學(xué)院課程設(shè)計報告 摘 要摘 要隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已被人們深刻認(rèn)識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。作為計算機應(yīng)用的一部分,使用計算機對酒店進行管理,具有手工管理無法比擬的優(yōu)點。例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、成本低等。這些優(yōu)點能夠極大地提高酒店管理的效率,也是酒店的科學(xué)化、正規(guī)化管理和與世界接軌的重要條件。因此,開發(fā)這樣一套酒店管理系統(tǒng)已成為很有必要的事情。JAVA是一門很優(yōu)秀的編程語言,具有面向?qū)ο?、與平臺無關(guān)、安全、穩(wěn)定和多線程等特點,是目前軟件設(shè)計中極為健壯的編程語言。JAVA不僅可以用來開發(fā)大型的應(yīng)用程序。而且特別適合Internet的應(yīng)用開發(fā)。JAVA確實具備“一次寫成,處處運行”的特點,JAVA以成為網(wǎng)絡(luò)時代最重要的編程語言之一。本報告中介紹了用JAVA語言實現(xiàn)酒店管理系統(tǒng)的全部過程。本次課程設(shè)計是配合JAVA程序設(shè)計課程,幫助學(xué)生深入學(xué)習(xí)掌握J(rèn)AVA語言,熟練運用這個工具來編寫的。通過課程設(shè)計各個項目的綜合訓(xùn)練,培養(yǎng)學(xué)生實際分析問題、編程和動手能力、提高學(xué)生的綜合素質(zhì)。本課程設(shè)計嘗試使用一些較生動的示例和設(shè)計項目,激發(fā)學(xué)生學(xué)習(xí)興趣,引導(dǎo)學(xué)生主動學(xué)習(xí),正確理解、接受需要重點掌握的知識點,為參加項目開發(fā)及更深入學(xué)習(xí)做好準(zhǔn)備。本次課程設(shè)計主要是用JAVA和MySQL數(shù)據(jù)庫實現(xiàn)酒店管理系統(tǒng),其系統(tǒng)主要完成以下功能模塊:前臺服務(wù):主要實現(xiàn)開臺點菜、添加菜品和結(jié)賬;后臺管理:主要實現(xiàn)臺號維護、菜系維護、菜品維護;結(jié)賬報表:主要實現(xiàn)日結(jié)賬報表、月結(jié)賬報表和年結(jié)賬報表;系統(tǒng)安全:主要實現(xiàn)修改密碼以及用戶管理;另外還有數(shù)據(jù)庫的創(chuàng)建、登陸界面。關(guān)鍵詞 酒店管理系統(tǒng),JAVA,MySQLI沈陽工程學(xué)院課程設(shè)計報告 目 錄目 錄摘 要I第1章 緒 論- 1 -第2章 系統(tǒng)功能介紹- 2 -2.1系統(tǒng)功能總框圖- 2 -2.2 模塊功能介紹- 2 -2.2.1 用戶登錄模塊介紹- 2 -2.2.2 前臺服務(wù)功能介紹- 3 -2.2.3 后臺服務(wù)模塊介紹- 3 -2.2.4 結(jié)賬報表模塊介紹- 5 -2.2.5 系統(tǒng)安全模塊介紹- 7 -2.3 組內(nèi)任務(wù)分工- 8 -第3章 數(shù)據(jù)庫設(shè)計- 10 -第4章 系統(tǒng)功能實現(xiàn)- 14 -4.1 公共模塊設(shè)計- 14 -4.1.1 編寫數(shù)據(jù)庫連接類- 14 -4.2 登陸模塊設(shè)計- 14 -4.3 前臺服務(wù)模塊設(shè)計- 15 -4.4 后臺管理模塊設(shè)計- 17 -4.4.1菜系管理- 17 -4.4.2 菜品管理- 18 -4.4.3 臺號管理- 18 -4.5 結(jié)賬報表模塊設(shè)計- 19 -4.5.1 結(jié)賬報表工作區(qū)技術(shù)分析- 19 -4.5.2 日結(jié)賬報表工作區(qū)的實現(xiàn)過程- 20 -4.5.3 月結(jié)賬報表工作區(qū)的實現(xiàn)過程- 21 -4.5.4 年結(jié)賬報表工作區(qū)的實現(xiàn)過程- 23 -4.6 系統(tǒng)安全模塊設(shè)計- 24 -結(jié) 論- 26 -致 謝- 27 -參考文獻- 28 - VII沈陽工程學(xué)院課程設(shè)計報告 第1章 緒 論第1章 緒 論世界的發(fā)展,社會的進步,人們的物質(zhì)生活和精神生活都得到了很大的飛躍,人們以前的意識里就是所謂的人工管理??墒侨祟愒谶M步、國家在進步、世界在進步,那么必然會帶來新的產(chǎn)物,由前一個階段向后一階段過度。隨著電子電子計算機技術(shù)的進步,為各行各業(yè)的自動化管理打開了方便之門。在新的條件下,有必要實現(xiàn)酒店的自動化管理,提高酒店工作人員的效率。本系統(tǒng)從對酒店的核心業(yè)務(wù)前臺服務(wù)出發(fā),著眼于為酒店管理創(chuàng)造自動化的辦公環(huán)境而開發(fā) 在計算機飛速發(fā)展的今天,將計算機這一信息處理利器應(yīng)用于酒店的日常管理已是勢必所然,而且這也將為酒店管理帶來前所未有的改變,它可以帶來意想不到的效益,同時也會為酒店的飛速發(fā)展提供無限潛力。采用計算機管理信息系統(tǒng)已成為企業(yè)、酒店管理科學(xué)化和現(xiàn)代化的重要標(biāo)志,它給酒店管理帶來了明顯的經(jīng)濟效益和社會效益。主要體現(xiàn)在:極大的提高了管理人員和工作人員的工作效率,大大減少了以往入出存流程繁瑣、雜亂、周期長的弊端。減少的出錯率,更大程度避免了不必要的誤差,使酒店管理正規(guī)化、標(biāo)準(zhǔn)化、社會化?;诰频旯芾淼娜孀詣踊梢詼p少前臺服務(wù)、后臺管理及結(jié)賬報表管理中的漏洞,可以節(jié)約不少管理開支,增加企業(yè)收入。這樣可使酒店有更大的發(fā)展空間,被人們和社會所認(rèn)同,在社會上有它的位置和地位。對于前臺服務(wù)的操作自動化和信息化,全面提高了公司管理的水平,讓工作人員很容易的實現(xiàn)開臺、點菜以及結(jié)賬的查詢和管理。對于報表結(jié)算的管理,更明確和準(zhǔn)確化,既保證了酒店日常運營的準(zhǔn)確,又利于管理者進行統(tǒng)計和查詢。對于后臺管理,很方便的提供臺號、菜系以及菜品的添加刪除,可以方便的對酒店的運營進行管理。具體信息的處理有強大的數(shù)據(jù)庫做后盾,它里面保存大量且重要的信息,實現(xiàn)了酒店管理的數(shù)據(jù)化,因為現(xiàn)在可以說是數(shù)據(jù)的時代,其實就是所謂的信息時代。 隨著我國改革開放的不斷深入,經(jīng)濟飛速的發(fā)展,酒店要想生存、發(fā)展,要想在激烈的市場競爭中立于不敗之地,沒有現(xiàn)代化的管理是萬萬不行的,酒店管理的全面自動化、信息化則是其中極其重要的部分。為了酒店管理自動化的步伐,提高酒店管理業(yè)務(wù)處理效率,建酒店管理系統(tǒng)已變得十分重要。酒店管理已經(jīng)成為現(xiàn)在的發(fā)展趨勢,目前為止,酒店采用自動化管理的很少,還有大部分采用人工管理,不過就是比較正規(guī)化,改善了以前的人工管理的部分缺點??墒窃诤艽蟪潭壬喜]有解決問題,因為社會目前的發(fā)展對它們的要求僅限于此,但是就目前的社會發(fā)展趨勢看,社會在不斷的發(fā)展,而且向全面自動話靠攏,那么酒店管理系統(tǒng)就將成為一大亮點,是社會發(fā)展的必然產(chǎn)物。因此開發(fā)一個標(biāo)準(zhǔn)化的酒店管理系統(tǒng)是很有必要的,而且JAVA是一種面向?qū)ο蟮?、無平臺的編程語言,具有很大的發(fā)展空間,用它編寫酒店管理系統(tǒng)可以更體現(xiàn)出酒店管理的優(yōu)勢。- 1 -沈陽工程學(xué)院課程設(shè)計報告 第2章 系統(tǒng)功能介紹第2章 系統(tǒng)功能介紹2.1系統(tǒng)功能總框圖 酒店管理系統(tǒng)的功能結(jié)構(gòu)圖如圖2.1所示。圖2.1 酒店管理系統(tǒng)功能模塊2.2 模塊功能介紹2.2.1 用戶登錄模塊介紹用戶登錄模塊是每個軟件應(yīng)用軟件都不可或缺的部分,其主要功能是保證用戶數(shù)據(jù)安全,同時用戶登錄窗口也是用戶看到的第一個系統(tǒng)界面,因此,一個設(shè)計優(yōu)秀的用戶登錄窗口,將有效的提高用戶對系統(tǒng)的第一印象。本系統(tǒng)的用戶登錄界面如圖2.2所示。用戶登錄窗口的設(shè)計優(yōu)秀與否,主要包括以下幾個方面:圖2.2 用戶登錄界面2.2.2 前臺服務(wù)功能介紹酒店管理系統(tǒng)的主窗體效果如圖2.2所示。窗體的中間部分用來顯示當(dāng)前的開臺點菜信息,窗體的下方用來操作該系統(tǒng),例如開臺點菜,自動結(jié)賬,臺號、菜系管理,營業(yè)報表等。單擊圖2.2中右下方的“菜品管理”按鈕,將打開菜品管理對話框,該對話框用來維護菜品信息,包括名稱、助記碼、菜系、單位和單價。其中助記碼用來在點菜時快速獲取菜品信息(建議設(shè)置為菜品名稱的首字母,例如將菜品“紅燒牛肉面”的助記碼為“hsnrm”)。同理單擊圖2.2中右下方的菜系管理、臺號管理將分別顯示所對應(yīng)的菜系管理對話框和臺號管理對話框。單擊圖2.2中右下方的“日結(jié)賬”按鈕,將打開“日結(jié)賬”對話框,該對話框用來統(tǒng)計指定日期的銷售情況,包括日營業(yè)額和各個商品的日營業(yè)額。同理單擊“月結(jié)賬”、“年結(jié)賬”按鈕,將分別顯示出對應(yīng)的“月結(jié)賬”、“年結(jié)賬”對話框。圖2.2酒店管理系統(tǒng)主窗體2.2.3 后臺服務(wù)模塊介紹本系統(tǒng)的后臺服務(wù)模塊包含有3個小模塊,分別為菜品管理,菜系管理和臺號管理,每個小模塊又分為若干功能。后臺管理模塊如圖2.3所示。圖2.3 后臺管理模塊菜品管理是對整個酒店的菜單進行的管理,所提供的功能包括菜品的查詢,添加和刪除功能,其中菜品的查詢功能為系統(tǒng)自動查詢,并且在添加或者刪除菜品后自動刷新真?zhèn)€菜品表,并把信息重新顯示在表單中,如圖2.4所示。圖2.4菜品管理菜系管理模塊包括了對整個酒店所有菜系的查詢,添加和刪除功能,同時菜系的查詢功能為自動查詢,如圖2.5所示。圖2.5 菜系管理臺號管理包含的功能有臺號的查詢,添加和修改功能,如圖2.6所示。圖2.6 臺號管理2.2.4 結(jié)賬報表模塊介紹本系統(tǒng)提供提供了三種方式的結(jié)賬報表,分別是日結(jié)帳號報表、月結(jié)賬報表和年結(jié)賬報表,在結(jié)賬報表的工作區(qū)中提供了打開這三種結(jié)賬 功能的按鈕,如圖2.7所示。圖2.7 結(jié)賬報表工作區(qū)日結(jié)賬功能提供了對一日營業(yè)情況的統(tǒng)計,包括日開臺數(shù)、各個餐臺的消費金額、菜品的消費情況、各個菜品的日銷售情況,以及日營業(yè)額等,如圖2.8所示。圖2.8 日結(jié)賬報表月結(jié)帳報表功能提供對一個月營業(yè)情況情況的統(tǒng)計,包括日開臺總數(shù)、日總營業(yè)額、日開臺的平均消費額、日開臺的最大和最小消費額,以及當(dāng)月的總開臺數(shù)、月總營業(yè)額、以及一個月中的日平均營業(yè)額、一月中開臺的最大和最小消費額,如圖2.9所示。圖2.9 月結(jié)賬報表年結(jié)賬報表功能提供了對一年營業(yè)情況的統(tǒng)計,包括一年中每天的營業(yè)額、每月的營業(yè)額、每月同一日的總營業(yè)額,以及一年的營業(yè)額,如圖2.10所示。圖2.10 年結(jié)賬報表2.2.5 系統(tǒng)安全模塊介紹在本模塊里所實現(xiàn)的三種功能分別是:修改密碼、用戶管理和推出系統(tǒng)。在系統(tǒng)安全工作區(qū)提供了這三種功能的按鈕。如果所示。圖2.6系統(tǒng)安全工作區(qū)修改密碼功能是對舊密碼的修改。如圖所示。圖2.7修改密碼功能用戶管理功能提供了對用戶和管理員的查詢、添加、修改和刪除的實現(xiàn)。 圖2.8用戶管理功能2.3 組內(nèi)任務(wù)分工組內(nèi)分工如表2.1所示。表2.1 組內(nèi)分工表 全體成員任務(wù)組長學(xué)號:20姓名:杜黎明學(xué)號:18姓名:溫周洋學(xué)號:24姓名:胡金龍學(xué)號:29姓名:郭瀟陽數(shù)據(jù)庫設(shè)計登陸界面設(shè)計前臺服務(wù)模塊設(shè)計后臺服務(wù)模塊設(shè)計結(jié)賬報表模塊設(shè)計系統(tǒng)安全模塊設(shè)計程序測試XVI沈陽工程學(xué)院課程設(shè)計報告 第3章 數(shù)據(jù)庫設(shè)計第3章 數(shù)據(jù)庫設(shè)計在開發(fā)應(yīng)用程序時,對數(shù)據(jù)庫的操作時必不可少的。而一個數(shù)據(jù)庫的設(shè)計優(yōu)秀與否,將直接影響到開發(fā)進度和性能。所以對數(shù)據(jù)庫的設(shè)計就顯得尤為重要。數(shù)據(jù)庫的設(shè)計要根據(jù)程序的需求及其功能制定。如果在開發(fā)軟件之前不能很好的設(shè)計數(shù)據(jù)庫,在開發(fā)過程中將反復(fù)修改數(shù)據(jù)庫,必將嚴(yán)重影響到開發(fā)進度。3.1 數(shù)據(jù)庫需求分析酒店管理系統(tǒng)的需求包括開臺點菜功能、智能化獲取菜品功能、自動結(jié)賬功能、營業(yè)額報表共跟功能等。在這些功能設(shè)計到的數(shù)據(jù)表包括臺號表、菜品表、消費單表;為了使系統(tǒng)更加完美,還需要為菜品分類,即需要用到菜系表;為了實現(xiàn)菜品的日銷售情況統(tǒng)計,還需要建立一個消費項目表,用來記錄消費單消費的菜品。3.2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫設(shè)計是系統(tǒng)設(shè)計過程中的重要組成部分,它通過管理系統(tǒng)的整體的整體需求而指定的,數(shù)據(jù)庫設(shè)計的好壞直接影響到系統(tǒng)的后期開發(fā)。下面對本系統(tǒng)中具有代表性的數(shù)據(jù)庫設(shè)計進行詳細說明。餐臺和菜系在本系統(tǒng)中最簡單的實體,在本系統(tǒng)中用來描述餐臺信息的只有臺號和座位數(shù),而描述菜系的主要是名稱。餐臺信息表的E-R圖如圖3.1所示,菜系信息表的E-R圖如圖3.2所示 圖3.1 餐臺信息表E-R圖 圖3.2 菜系信息表E-R圖在描述菜品尸體時,加入了助記碼,目的是為了實現(xiàn)智能化獲取菜品功能,通過這一功能系統(tǒng)操作員可以快速獲取顧客所點的菜品信息、菜品信息表的E-R圖如圖3.3所示。圖3.3 菜品信息表E-R圖 消費單用來記錄每次消費的相關(guān)信息,例如消費時使用的餐臺、開臺時間、消費金額等。消費單信息表E-R圖如圖3.4所示。圖3.4消費單信息表E-R圖消費項目用來記錄每個消費單消費的菜品,記錄的主要信息由所屬消費單、消費菜品的名稱、消費數(shù)量、消費額。消費項目信息表的E-R圖如圖3.5所示。圖3.5消費項目信息表E-R圖將各個實體E-R圖進行合并后即可得到整個系統(tǒng)的整體E-R圖如圖3.6所示。圖3.6 系統(tǒng)整體E-R圖3.3 數(shù)據(jù)庫表的設(shè)計針對本系統(tǒng)的特點,在對所搜集的數(shù)據(jù)進行規(guī)范化之后,定義了如下六張表格,分別是用戶信息表、餐臺表,菜品表,菜系表,消費單表,消費項目表。通過對這六張表格的操作可以較好地完成系統(tǒng)設(shè)計的各項功能,六張表格之間有著不同程度的聯(lián)系。表3.1 用戶信息表(user)字段名稱數(shù)據(jù)類型長 度備 注loginNamevarchar21用戶登錄名,做主鍵loginPasswordvarchar21用戶登錄密碼typechar1用戶類型namevarchar21用戶姓名sexchar2用戶性別ageint用戶年齡telvarchar20用戶電話createTimetimestamp創(chuàng)建用戶時間表3.2 餐臺表 desk字段名稱數(shù)據(jù)類型長 度備 注idvarchar8餐臺號,做主鍵countint座位數(shù)量表3.3 菜品表 menu字段名稱數(shù)據(jù)類型長 度備 注idvarchar8菜品編號,做主鍵sortIdint菜系編號,與菜系表中菜系編號外鍵關(guān)聯(lián)namevarchar30菜品名稱codevarchar10菜品助記碼unitvarchar4菜品單位unitPricefloat菜品單價表3.4 消費項目表 orderItem字段名稱數(shù)據(jù)類型長 度備 注idint消費項目編號,做主鍵orderFormIdvarchar15消費單編號,與消費單中消費單編號外鍵關(guān)聯(lián)menuIdvarchar10菜品編號,與菜品表中菜品編號外鍵關(guān)聯(lián)amountint消費數(shù)量totalfloat消費額表3.5 菜系表 sort字段名稱數(shù)據(jù)類型長 度備 注idint菜系編號,做主鍵namevarchar50菜系名稱表3.6 消費單表 orderForm字段名稱數(shù)據(jù)類型長 度備 注idvarchar15消費單編號,做主鍵deskIdvarchar8餐臺編號,與餐臺表餐臺編號外鍵關(guān)聯(lián)dateTimetime開臺時間moneyfloat消費金額userIdvarchar21操作用戶XX沈陽工程學(xué)院課程設(shè)計報告 第4章 系統(tǒng)功能實現(xiàn)第4章 系統(tǒng)功能實現(xiàn)4.1 公共模塊設(shè)計4.1.1 編寫數(shù)據(jù)庫連接類數(shù)據(jù)庫連接類負責(zé)加載數(shù)據(jù)庫驅(qū)動程序,以及創(chuàng)建和關(guān)閉數(shù)據(jù)庫連接,為了最大程度的應(yīng)用每個已經(jīng)創(chuàng)建的數(shù)據(jù)庫連接。首先在數(shù)據(jù)庫連接類中編寫加載數(shù)據(jù)庫驅(qū)動程序的代碼,通常情況下將其放在靜態(tài)代碼塊中,這樣的好處是只要該類第一次被加載時執(zhí)行加載數(shù)據(jù)庫啟動的動作,避免了反復(fù)加載數(shù)據(jù)庫驅(qū)動程序,從而提高了軟件的性能。具體代碼如下:statictryClass.forName(com.mysql.jdbc.Driver);catch(Exception e)e.printStackTrace();然后編寫用來創(chuàng)建和關(guān)閉數(shù)據(jù)庫連接的方法,這里將定義兩個方法,一個用于創(chuàng)建數(shù)據(jù)庫的連接,一個用與將數(shù)據(jù)庫連接關(guān)閉。具體代碼如下:public Connection getConnection() throws SQLException, ClassNotFoundExceptionconn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/db_Manager,root,root); return conn; public void close_All(Connection conn,Statement stmt,ResultSet rs) try if(rs!=null) rs.close(); else if(stmt!=null) stmt.close(); else if(conn!=null) conn.close(); catch (SQLException ex) e.printStackTrace(); 4.2 登陸模塊設(shè)計用戶登錄模塊是用戶使用軟件時看到的第一個系統(tǒng)界面,因此對于用戶登錄界面的設(shè)計需要美觀大方。本系統(tǒng)的開發(fā)工具是使用NetBeans7.0,首先創(chuàng)建用于用戶登陸界面的窗體,為窗體設(shè)置標(biāo)題、大小等信息,并添加一個分層窗體,然后將一個JLabel對象設(shè)置成整個窗體的最底層,并為其設(shè)置背景圖片。為了達到整個窗體美觀的效果,在設(shè)計過程中,將界面的按鈕也同樣添加圖片背景。在用戶第一次使用本系統(tǒng)時,數(shù)據(jù)庫中將不存在系統(tǒng)管理員。在這種情況下,系統(tǒng)提供一個默認(rèn)的用戶供用戶登錄后添加其他用戶。在用戶使用系統(tǒng)時,填寫完用戶名和密碼后點擊登錄按鈕,或者單擊鍵盤的確定鍵時,系統(tǒng)通過檢測用戶名和密碼合法后即可登錄本系統(tǒng),實現(xiàn)登錄的具體代碼如下:private void mouseLogin(java.awt.event.MouseEvent evt) /GEN-FIRST:event_mouseLogin /鼠標(biāo)點擊登錄 this.check(); /GEN-LAST:event_mouseLoginprivate void KeyLogin(java.awt.event.KeyEvent evt) /GEN-FIRST:event_KeyLogin System.out.println(evt.getKeyChar(); if(evt.getKeyCode()=KeyEvent.VK_ENTER) this.check(); /GEN-LAST:event_KeyLogin public void check() String name=,password=; name = jTextField1.getText(); username = name; password = String.valueOf(jPasswordField1.getPassword(); if(name.split().length1) javax.swing.JOptionPane.showMessageDialog(this, 違法的用戶名!,警告, JOptionPane.WARNING_MESSAGE); LoginData ld = new LoginData(); if(ld.check(name, password) this.dispose(); new MainFrame().showFrame(); else javax.swing.JOptionPane.showMessageDialog(this, 用戶名或者密碼錯誤nt請從新輸入!,警告, JOptionPane.WARNING_MESSAGE); 4.3 前臺服務(wù)模塊設(shè)計開臺簽單工作區(qū)是本系統(tǒng)最常用的工作區(qū)如圖4.1所示,所以需要將該工作區(qū)設(shè)計的更加人性化和智能化。例如,在獲取欲添加的菜品時,既可以通過菜品編號獲得,又可以通過才頻頻助記碼獲得,并且菜品的默認(rèn)數(shù)量為一個等。圖4.1 開臺簽單工作區(qū)在開臺簽單工作區(qū)設(shè)計中,首先為“臺號”下拉列表框添加事件監(jiān)聽器,用來處理開臺或點菜的相關(guān)信息。如果選中的臺號尚未開臺,則取消“開臺列表”中的選定行,并清空“簽單列表”中的所有行;如果選中的臺號已經(jīng)開臺,并且在“開臺列表”中尚未選中,則選中“開臺列表”中的該臺號,并刷新“簽單列表”中的菜品信息,既顯示為當(dāng)前選中臺號所點的菜品。然后開發(fā)智能化獲取菜品功能,通過為文本框添加鍵盤事件監(jiān)聽器實現(xiàn)。當(dāng)用戶在文本框進行輸入時,同時判斷輸入的是商品編號,還是商品助記碼,并按指定條件查詢符合條件的菜品,如果存在符合條件的菜品,則獲取第一個符合條件的菜品,并顯示菜品的名稱和單位,負責(zé)將菜品名稱和單位設(shè)置為空。具體代碼如下:String input = jTextField2.getText().trim(); Vector vector = null; if (input.length() 0) if (jRadioButton2.isSelected() getMenuName gmn = new getMenuName(); vector = gmn.returnName(input); if (vector.size() 0) vector = (Vector) vector.get(0); else vector = null; else if (jRadioButton1.isSelected() /按編號查詢 getMenuName gmn = new getMenuName(); vector = gmn.returnNameById(input); if (vector.size() 0) vector = (Vector) vector.get(0); 在新添加的菜品的前方唯有一個NEW標(biāo)記,確定點菜結(jié)束后單擊“簽單”按鈕,將取消所有新添加菜品前方的NEW標(biāo)記。在未取消NEW標(biāo)記的情況下合約選中后單擊“取消”按鈕取消該菜品,如果該餐臺只點了該菜品,取消該菜品后同時取消該餐臺的開臺信息;如果該餐臺已經(jīng)點了其他菜品,并且取消后不是最后點的菜品,還需要修改所點菜品的序號。結(jié)賬功能設(shè)計,結(jié)賬功能是作為酒店管理系統(tǒng)中一個重要的組成部分。結(jié)賬功能的設(shè)計需要在用戶選擇相應(yīng)的臺號后就將選中的臺號的消費金額顯示在結(jié)賬工作區(qū)中(如圖4.2所示),因此需要為開臺列表添加表格別選擇時間,既當(dāng)表格被選中時顯示臺號消費金額。在結(jié)賬功能區(qū),為了方便用戶結(jié)賬計算金額的方便,需要為實付金額文本框添加鍵盤監(jiān)聽時間,當(dāng)用戶輸入實付金額以后即可計算出找零金額并顯示出來。當(dāng)點擊結(jié)賬后,當(dāng)前臺號就已經(jīng)完成結(jié)單,則需要在開臺列表中將選中的臺號刪除,并相連刪除簽單列表中選中臺號所點的所有菜品。 圖4.2 結(jié)賬工作區(qū)4.4 后臺管理模塊設(shè)計后臺管理模塊提供了3個子模塊,分別為菜品管理、菜系管理和臺號管理。菜品管理是對整個酒店的所有菜品進行的管理,菜系管理是對酒店的菜系進行管理,臺號管理是對酒店的桌號進行管理。4.4.1菜系管理在該子模塊中,有兩個需要注意的問題。添加菜系時獲取菜系的編號。在添加菜系時,只需要輸入所要添加菜系的名稱而無需輸入菜系的編號,而菜系的編號是通過對當(dāng)前數(shù)據(jù)表中的菜系編號進行檢索,用當(dāng)前數(shù)據(jù)表中最后一項數(shù)據(jù)的菜系編號自加一來實現(xiàn)的,然后和菜系名稱一起插入數(shù)據(jù)表中。刪除菜系時對菜品表中的操作菜品表中的菜系編號和菜系表中的菜系編號是外鍵關(guān)聯(lián)的,當(dāng)刪除菜系表中的數(shù)據(jù)時,如果不對菜品表中的菜系編號進行處理的話是會拋出異常的,而當(dāng)刪除菜系表中數(shù)據(jù)時又不能刪除菜品表中與之相關(guān)的所有數(shù)據(jù),因此只能對菜品表中相關(guān)的數(shù)據(jù)進行修改,使其菜系編號對應(yīng)于菜系表中菜系名稱為“未分類”的編號。其主要代碼如下所示:/刪除菜系之前對菜品進行修改=GetStatement gs = new GetStatement();String sql = delete from sort where name= + sortName + ;String sql2 = select id from sort where name=未分類;ResultSet rs = gs.return_statement().executeQuery(sql2);String id=;while(rs.next()id=rs.getString(id);String sql1 = update menu set sortId=+id+ where sortId=(select id from sort where name=+ sortName + );gs.return_statement().execute(sql1);gs.return_statement().execute(sql);同時要注意的是菜系表中菜系名稱為“未分類”的數(shù)據(jù)項是不能被刪除的。4.4.2 菜品管理菜品管理子模塊包含有菜品的添加和刪除功能,在該子模塊中,難點在與添加菜品過程中對所添加信息的判斷。添加菜品過程中,菜品的所有字段都不能為空,而且ID,NAME,CODE這3個字段在數(shù)據(jù)庫中必須是唯一的,所以在添加過程中必須加以控制。下面僅以ID字段說明,其他字段都與之類似,控制流程如圖4.4.2.1所示。圖4.4.2.1 字段控制流程圖4.4.3 臺號管理臺號管理子模塊的功能寶庫臺號的查詢,添加和修改功能。臺號的查詢分為有關(guān)鍵字查詢和無關(guān)鍵字查詢。當(dāng)執(zhí)行有關(guān)鍵字查詢是,系統(tǒng)只查詢SORT表中COUNT與輸入的作為數(shù)相同的臺號。當(dāng)執(zhí)行無關(guān)鍵字查詢時,系統(tǒng)將查詢整個SORT表中的數(shù)據(jù)項,關(guān)鍵代碼如下:/查詢SORT表關(guān)鍵代碼=public class selectSorts public void selectSorts() public ResultSet returnResultSet() throws ClassNotFoundException, SQLException GetStatement gs = new GetStatement(); String sql = select * from sort ; ResultSet rs = null; rs = gs.return_statement().executeQuery(sql); return rs; public ResultSet returnResultSet(String s) throws ClassNotFoundException, SQLException GetStatement gs = new GetStatement(); String sql = select * from sort + where name=+s+; ResultSet rs = null; rs = gs.return_statement().executeQuery(sql); return rs; 在添加和修改臺號的過程中,同樣要對所添加或修改的信息進行進行判斷。在添加臺號過程中,臺號不能為空,而且座位數(shù)量也不能為空。在修改臺號過程中,臺號編號不能為空,而且必須是在數(shù)據(jù)表中存在的臺號,并且座位數(shù)也不能為空,其控制流程類似與菜品管理過程中的字段控制流程。4.5 結(jié)賬報表模塊設(shè)計結(jié)賬報表模塊提供了三種方式的結(jié)賬報表,分別是日結(jié)賬、月結(jié)賬和年結(jié)賬。日結(jié)賬提供了對一日營業(yè)額營業(yè)的統(tǒng)計,月結(jié)賬提供了對一月營業(yè)額的統(tǒng)計,年結(jié)賬提供了對一年營業(yè)額的統(tǒng)計。4.5.1 結(jié)賬報表工作區(qū)技術(shù)分析在實現(xiàn)結(jié)賬報表功能時,有兩個技術(shù)要點。對日期有效性的控制。在實現(xiàn)日結(jié)賬功能時,無論用戶修改了統(tǒng)計日期的年度和月份,都要影響到日下拉菜單列表框中的可選項,包括大月(31天)和小月(30天)的變化,以及2月份在平年(28天)和閏年(29天)的變化,如果不能正確處理這些變化,將導(dǎo)致系統(tǒng)無法正常運行。其實在實現(xiàn)月結(jié)賬報表和年結(jié)賬報表時也會設(shè)計到這個問題,只是在系統(tǒng)界面上不會明顯的體會到。解決該問題的大體思路是通過年度和月份下拉列表框加事件監(jiān)聽器,實現(xiàn)對日下拉列表框添加事件監(jiān)聽器,實現(xiàn)對日下拉列表框可選項的控制。對統(tǒng)計表格的控制。當(dāng)系統(tǒng)界面不能顯示出所有統(tǒng)計記錄時,只需要將表格放到滾動面板中,這個辦法對系統(tǒng)界面不能顯示出統(tǒng)計記錄的所有行有效,因為在移動垂直滾動條時,表格的列名并不會隨之滾動,即表格的列名永遠是可見的;但是當(dāng)系統(tǒng)界面不能顯示出統(tǒng)計記錄的所有列時,這個辦法就不是很好了,因為在移動水平滾動條的時,表格的所有列都會隨之滾動,導(dǎo)致最左側(cè)的一列或者幾列不可見。而表格最左側(cè)的一列或者是幾列通常情況下也希望是永遠可見的,即不會隨著滾動條的移動而滾動。解決該問題的大體思路是實現(xiàn)兩個表格,一個表格用來顯示最左側(cè)希望永遠可見的一列或者幾列,另一個表格用來顯示其他列,然后將兩個表格并列顯示。4.5.2 日結(jié)賬報表工作區(qū)的實現(xiàn)過程日結(jié)賬報表使用的主要數(shù)據(jù)表有orderform(消費單表)。初始化對話框首先解決在實現(xiàn)日結(jié)賬報表功能時候初始化窗體的功能,主要是日期的有效性問題,需要從數(shù)據(jù)庫中查找有效的日期,即點過菜的日期。然后將找到的有效日期顯示在結(jié)賬報表下拉列表菜單中。如圖4.1所示。圖4.1日結(jié)賬報表日期顯示由于在數(shù)據(jù)中存在許多非常重復(fù)的日期數(shù)據(jù),所以本模塊才用了TreeSet集合來存入分別從數(shù)據(jù)庫中獲取的年份、月份和日。這樣就避免了重復(fù)數(shù)據(jù)的出現(xiàn)。使得年份、月份和日期下拉列表框中只顯示出數(shù)據(jù)庫中已存在的日期,即開過臺的日期。主要代碼如下所示:/獲取數(shù)據(jù)庫中所有的不重復(fù)的日期,并排序-GetDate getDate = new GetDate();ResultSet rs = getDate.getDate();Set years = new TreeSet();/點過菜的所有年Set days = new TreeSet();/點過菜的所有日String months = 01,02,03,04,05,06,07,08,09,10,11,12;for(;rs.next();) String date = rs.getString(orderFormId); String year = date.substring(0, 4); String day = date.substring(6,8); years.add(year); days.add(day);其次要解決的問題是使下拉列表顯示的日期與當(dāng)前日期相吻合,如果當(dāng)前日期開過臺。主要代碼如下所示。/獲取當(dāng)前年月日-Today today = new Today();int currentYear = today.getYEAR();int currentMonth = today.getMONTH();int currentday = today.getDAY();.下拉列表中添加項目/設(shè)置選擇的是當(dāng)前日期-String currentMonthTemp = String.valueOf(currentMonth);if(currentMonth10) currentMonthTemp = 0 + currentMonthTemp; yearComboBox.setSelectedIt

溫馨提示

  • 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

提交評論