管理信息化信息化知識軟件工程學(xué)_第1頁
管理信息化信息化知識軟件工程學(xué)_第2頁
管理信息化信息化知識軟件工程學(xué)_第3頁
管理信息化信息化知識軟件工程學(xué)_第4頁
管理信息化信息化知識軟件工程學(xué)_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

管理信息化信息化知識軟件工程學(xué){管理信息化信息化知識}軟件工程學(xué)院系信科院專業(yè)計算機(jī)科學(xué)與技術(shù)班級13級計科一班學(xué)號學(xué)生姓名陳勇李闖郭亞嶺劉剛2014年1月摘要度化,規(guī)范化,科學(xué)化。除及自動結(jié)賬。分工明細(xì),安全保密。此系統(tǒng)采用Java開發(fā),使用MicrosoftOfficeAccess數(shù)據(jù)庫。繼承Java的“WriteOnce,RunAnywhere”的優(yōu)統(tǒng)界面友好,操作簡單,較易實用。關(guān)鍵詞:酒店管理系統(tǒng);功能模塊;Java;目錄第1章緒論11.1研究背景11.2系統(tǒng)簡介1第2章可行性研究與系統(tǒng)開發(fā)計劃32.1可行性分析32.2系統(tǒng)開發(fā)計劃32.2.1系統(tǒng)項目概述和實施計劃42.2.2Gantt圖4第3章系統(tǒng)分析63.1需求分析63.1.1數(shù)據(jù)庫需求分析63.1.2功能需求分析73.2系統(tǒng)目標(biāo)9第4章系統(tǒng)設(shè)計114.1系統(tǒng)結(jié)構(gòu)設(shè)計114.2系統(tǒng)功能設(shè)計134.3數(shù)據(jù)庫設(shè)計304.3.1數(shù)據(jù)庫概要設(shè)計304.3.2數(shù)據(jù)庫詳細(xì)設(shè)計354.4主要模塊設(shè)計394.4.1主界面1(登陸界面)設(shè)計:394.4.2主界面2(操作員界面)設(shè)計:404.4.3主界面3(管理員管理)設(shè)計:414.4.4分割面板的設(shè)計:414.4.5取系統(tǒng)時間模塊設(shè)計:424.4.6身份選擇434.4.7正則表達(dá)式454.4.8獲取系統(tǒng)當(dāng)天時間的類45第5章系統(tǒng)具體實現(xiàn)485.1歡迎界面實現(xiàn):485.2登陸界面實現(xiàn)505.3管理員界面實現(xiàn)535.4操作員界面實現(xiàn)555.5系統(tǒng)功能實現(xiàn)575.5.1日結(jié)賬功能575.5.2月結(jié)賬和年結(jié)賬605.5.3菜單管理605.6本系統(tǒng)的一些特色方法60第6章系統(tǒng)軟件測試646.1測試方法646.2測試用例646.3測試總結(jié)66總結(jié)語67參考文獻(xiàn)68第1章緒論1.1研究背景“民以食為天,隨著人民生活水平的不斷提高,餐飲業(yè)在服務(wù)業(yè)中的地位一些人為因素造成的不可避免的錯誤,已經(jīng)成為我們餐飲經(jīng)營者思考的問題。眾多,有條件的酒店或賓館采用自主開發(fā)或委托軟件開發(fā)商開發(fā)出的專用軟件,礎(chǔ),結(jié)合酒店前臺管理的需要進(jìn)行擴(kuò)展性而開發(fā)的一套酒店管理系統(tǒng)。1.2系統(tǒng)簡介一.該系統(tǒng)采用面向?qū)ο笤O(shè)計方法,面向管理員和操作員兩個操作對象。單明了,操作方便,大大提高了操作效率。二.本系統(tǒng)主要實現(xiàn)以下幾個功能:11)應(yīng)的點(diǎn)菜及簽單。2)自動結(jié)賬,即在客人消費(fèi)之后,對其消費(fèi)進(jìn)行匯總結(jié)賬。3)態(tài)經(jīng)營模式,根據(jù)時期、季節(jié)來實時更換菜品種類。4)業(yè)記錄進(jìn)行查詢匯總。5)密碼的修改。6)超級管理,設(shè)計一名超級管理員可以對所有管理員進(jìn)行管理。7)幫助中心,針對本系統(tǒng)的所有操作輔以文檔加以說明。8)退出,即退出系統(tǒng),防止操作不慎關(guān)閉了操作對話框。三.其次系統(tǒng)設(shè)置:1.在用戶登錄系統(tǒng)時進(jìn)行身份驗證,只允許合法用戶進(jìn)入系統(tǒng)。2.即時的權(quán)限分配功能,允許管理員即時對用戶的權(quán)限進(jìn)行分配,充分保證了系統(tǒng)運(yùn)行的安全性。34.?dāng)?shù)據(jù)庫的備份功能,保證了數(shù)據(jù)的安全。2第2章可行性研究與系統(tǒng)開發(fā)計劃2.1可行性分析1.競爭可行性:由于現(xiàn)在的人工管理已經(jīng)難以滿足餐飲業(yè)發(fā)展的需要,廣大引入計算機(jī)軟件管理系統(tǒng)以提高本身的競爭力。2.技術(shù)可行性:根據(jù)餐飲業(yè)的特點(diǎn)和實際情況,酒店管理系統(tǒng)以餐飲業(yè)務(wù)為系統(tǒng)順利運(yùn)行。3.經(jīng)濟(jì)可行性:在以往的人工管理模式中,餐飲業(yè)為了擴(kuò)大自己的經(jīng)營不得設(shè)置,降低成本的同時又不影響增加本身的擴(kuò)張。4.查看業(yè)務(wù)情況等。Windows的圖形用戶界面,而該系統(tǒng)是大家熟2.2系統(tǒng)開發(fā)計劃3軟件開發(fā)方式:采用面向?qū)ο蠹夹g(shù)面向?qū)ο蠓椒ㄊ抢贸橄?、封裝等機(jī)制,發(fā)點(diǎn)開發(fā)我們的系統(tǒng),得到了更好的思維方式。2.2.1系統(tǒng)項目概述和實施計劃系統(tǒng)項目概述:我們本系統(tǒng)的主要內(nèi)容是用java語言編寫一個酒店管理系統(tǒng)的軟件,它可來提高自己的競爭力。為了完成本系統(tǒng)的編寫,我們組的成員應(yīng)該具有一定的java語言功底,能該提交的東西有:java程序、打包文件、數(shù)據(jù)庫相應(yīng)的文檔說明。系統(tǒng)實施計劃員又怎么能夠被一個或兩個超級管理員來進(jìn)行管理。42.2.2Gantt圖Gantt圖(又稱橫道圖)是安排工程進(jìn)度計劃的簡單工具。用Gantt圖描述工程每個子任務(wù)的進(jìn)度安排,并描述工程各項任務(wù)之間在時間上的并行與串行關(guān)系,該方法簡單了然。鑒于GanttGantt圖來安排的并行關(guān)系和串行關(guān)系,達(dá)到了簡單易懂、一目了然的目的。任務(wù)負(fù)責(zé)人10月11月12月123412341234需求分析郭亞嶺測試計劃郭亞嶺概要設(shè)計郭亞嶺詳細(xì)設(shè)計劉剛編碼劉剛模塊測試陳勇集成測試陳勇5驗收測試?yán)铌J文檔書寫李闖*:1,2,3,4表示每個月的第幾個星期6第3章系統(tǒng)分析3.1需求分析3.1.1數(shù)據(jù)庫需求分析數(shù)據(jù)庫中各個數(shù)據(jù)項的關(guān)系,同時將相應(yīng)條目進(jìn)行分類匯總,加入到相應(yīng)表中,這將為系統(tǒng)的設(shè)計打基礎(chǔ)。在數(shù)據(jù)庫分析階段要做到兩點(diǎn):1)應(yīng)用系統(tǒng)用戶所需要操作的數(shù)據(jù)決定在數(shù)據(jù)庫中存儲什么數(shù)據(jù)。2)應(yīng)用系統(tǒng)用戶要求對數(shù)據(jù)進(jìn)行什么樣的處理,理清數(shù)據(jù)庫中各個數(shù)據(jù)項的關(guān)系。以下幾類:菜品信息:包括序號、編號、名稱、助記碼、菜系、單位、單價。臺號管理:包括序號、臺號、座位號。消費(fèi)單:編號、消費(fèi)臺號、消費(fèi)時間、消費(fèi)金額、操作用戶。賬務(wù)信息:編號、臺號、開臺時間、消費(fèi)金額,點(diǎn)菜記錄。用戶信息:序號、姓名、性別、出生日期、登陸密碼、身份證號、身份7級別。圖,以便于數(shù)據(jù)的庫的建立和數(shù)據(jù)的分析,如下:圖3-1數(shù)據(jù)庫實體關(guān)系圖3.1.2功能需求分析員操作界面。1.歡迎界面:由于我們所做的軟件是一個和sql數(shù)據(jù)庫進(jìn)行連接的桌面程界面。在這個界面下,我們通過一個可視的界面來顯示程序已經(jīng)啟動,同時,8忙等的狀況。2.登陸界面:主要有登錄名文本框、登陸密碼文本框、記住密碼按鈕、操入密碼就可以進(jìn)入系統(tǒng),進(jìn)行操作。3.操作員界面:此界面主要針對操作員,功能有臺號管理、開單管理、菜操作員修改自身密碼等。具體功能如下:操作員可以對客人的要求做出回應(yīng)即開單、簽單和收費(fèi)。開單即為誤出現(xiàn)。9操作員可以對臺號管理,為客人分配餐臺。同時,可以根據(jù)酒店的發(fā)展?fàn)顩r,添加刪除餐臺的數(shù)量,修改餐臺的座位數(shù)等。操作員還可以對菜品、菜系進(jìn)行管理,即增添或刪除菜品、菜系。單價。菜系信息包括:序號、菜系名稱。操作員可以實現(xiàn)智能點(diǎn)菜,即對點(diǎn)菜功能,用戶可以選擇使用菜品編號或菜品助記碼進(jìn)行點(diǎn)菜,提高了操作員的工作效率。操作員可以修改自身密碼。退出系統(tǒng)。4.管理員界面:此界面只針對管理員,主要負(fù)責(zé)賬務(wù)的匯總查詢,以及對幫助,退出五大項。每個大功能下又有幾個子菜單構(gòu)成,將管理員的操作細(xì)化,效率,同時豐富了該系統(tǒng)的功能。賬務(wù)管理:包括日結(jié)賬、月結(jié)賬、年結(jié)賬,每張賬單上的信息包括從而來調(diào)整經(jīng)營策略,來提高經(jīng)濟(jì)效益。菜品管理:菜品管理、菜系管理,主要負(fù)責(zé)對菜品菜系的添加、刪理。10用戶管理:用戶管理、修改密碼、系統(tǒng)維護(hù),負(fù)責(zé)對操作員的添加、的人員調(diào)配、及人事管理。讓酒店的管理更加科學(xué)化。幫助:版本信息、幫助中心、幫助文檔,主要提供本系統(tǒng)操作的具體說明。讓系統(tǒng)用戶能盡快入手系統(tǒng),增強(qiáng)系統(tǒng)的可使用性。退出:退出系統(tǒng)。3.2系統(tǒng)目標(biāo)系統(tǒng)的必要性。確。任務(wù)。因此我們將其做的盡量簡單。的維護(hù),所以其功能相對復(fù)雜。響到全局部署。11依據(jù)上述描述的特點(diǎn),本系統(tǒng)需要實現(xiàn)下列目標(biāo):人性化的系統(tǒng)提示可視化的系統(tǒng)加載過程系統(tǒng)角色層次分明;身份不同,操作不同級別不同,權(quán)限不同人員不同,結(jié)果不同操作簡單方便,界面簡潔大方;人性化的系統(tǒng)使用方式;方便、快捷的開臺點(diǎn)菜功能;智能化定位菜品的功能;自動結(jié)賬功能;按開臺和商品實現(xiàn)的日結(jié)賬功能;按日消費(fèi)額匯總統(tǒng)計實現(xiàn)的月結(jié)賬功能;按日營業(yè)額實現(xiàn)的年結(jié)賬功能;按消費(fèi)情況,顯示酒店盈虧情況;動態(tài)獲取系統(tǒng)時間,提高人員的時間概念實現(xiàn)系統(tǒng)的科學(xué)化管理;充分降低人為錯誤帶來的損失;系統(tǒng)運(yùn)行穩(wěn)定、安全可靠;12第4章系統(tǒng)設(shè)計4.1系統(tǒng)結(jié)構(gòu)設(shè)計a)系統(tǒng)結(jié)構(gòu)圖4-1系統(tǒng)結(jié)構(gòu)圖管理員的數(shù)據(jù)匯聚圖管酒店管理系統(tǒng)

理統(tǒng)員

計賬4-2管理員數(shù)據(jù)匯聚圖操作員的數(shù)據(jù)匯聚圖4-3操作員數(shù)據(jù)匯聚圖4.2系統(tǒng)功能設(shè)計1)根據(jù)系統(tǒng)功能需求,構(gòu)造出數(shù)據(jù)流程圖:操作員的數(shù)據(jù)流圖:134-4操作員數(shù)據(jù)流程圖管理員的數(shù)據(jù)流圖4-5管理員數(shù)據(jù)流程圖系統(tǒng)的總體數(shù)據(jù)流圖14管理員操操作員操4-6系統(tǒng)總體數(shù)據(jù)流程圖數(shù)據(jù)源數(shù)據(jù)處理數(shù)據(jù)流2)具體功能實現(xiàn)界面15a)歡迎使用酒店管理系統(tǒng),友好界面如下:4-7歡迎界面圖b)進(jìn)入登陸界面,選擇登陸身份,系統(tǒng)會根據(jù)身份的不同加載相應(yīng)數(shù)據(jù)庫中用如下:4-8身份選擇單選按鈕面板圖4-9登陸界面圖c)操作員功能:操作員可以對客人的要求做出回應(yīng)即開單、簽單和收費(fèi)。開單即為客人主界面如圖所示:4-10操作員界面圖為了對進(jìn)入系統(tǒng)的用戶提供一些系統(tǒng)消息和操作信息,我們在操作員界圖:4-11系統(tǒng)信息提示圖同時為了操作提高操作員的結(jié)賬效率,我們提供了簡單的操結(jié)賬面板。如圖:4-12結(jié)賬面板圖為了完成智能點(diǎn)菜的功能,我們構(gòu)建了一個基于助記碼查詢和編號查詢的點(diǎn)菜面板如下圖:4-13智能點(diǎn)菜面板圖操作員可以對臺號進(jìn)行管理、同時為客人選擇餐臺,點(diǎn)擊臺號管理可以16進(jìn)入管理界面,如下圖:4-14臺號界面圖操作員還可以對菜品、菜系進(jìn)行管理,即增添或刪除菜品、菜系。在材理按鈕進(jìn)入菜品管理子界面,選擇菜品管理或菜系管理,如圖:4-15選擇界面圖點(diǎn)擊菜品管理進(jìn)入以下主界面,如圖:4-16菜品界面圖點(diǎn)擊菜系管理進(jìn)入以下主界面,如圖:4-17菜系界面圖操作員可以修改自身密碼,點(diǎn)擊修改密碼進(jìn)入以下界面,如圖4-18修改密碼界面圖操作完結(jié)后可以退出,如圖:4-19退出界面圖d)系統(tǒng)幫助文檔:在操作員首次使用本系統(tǒng)時,可能有些陌生,不知如何下手。鑒于此種管理工作中,如圖:4-20系統(tǒng)使用幫助文檔e)管理員功能賬務(wù)管理:對一段時間的營業(yè)記錄進(jìn)行匯總、查詢,包括日結(jié)賬、月結(jié)賬、年結(jié)賬。每張賬單上的信息包括日期、編號、臺號、開臺時間、消費(fèi)金額、點(diǎn)菜記錄。管理面板如下:4-21管理員面板17首先進(jìn)行賬目管理的說明:如下是賬目管理的選項卡:點(diǎn)擊日結(jié)賬,界面如下:4-22日結(jié)賬界面圖點(diǎn)擊月結(jié)賬,界面如下:4-23月結(jié)賬界面圖點(diǎn)擊年結(jié)賬,界面如下:4-24年結(jié)賬界面圖菜品管理:菜品管理、菜系管理,主要負(fù)責(zé)對菜品菜系的添加、刪除。根據(jù)現(xiàn)實狀況及時更改菜譜。4-25菜單管理界面圖4-26菜品管理界面4-27菜系管理界面用戶管理:用戶管理、修改密碼、系統(tǒng)維護(hù),負(fù)責(zé)對操作員的添加、刪須的活動而且是設(shè)計的繼續(xù)和提高。點(diǎn)擊用戶管理,進(jìn)入以下界面進(jìn)行選擇,如圖:4-28用戶管理界面圖點(diǎn)擊用戶管理,對操作員進(jìn)行添加、刪除,界面如圖:4-29操作員管理界面圖18點(diǎn)擊修改密碼,界面如下:4-30修改密碼界面圖界面如下:4-31維護(hù)界面圖幫助:版本信息、幫助中心、幫助文檔,主要提供本系統(tǒng)操作的具體說明。點(diǎn)擊幫助選項卡,顯示幫助選型,界面如下:4-32幫助界面圖點(diǎn)擊幫助中心,界面如下:4-33幫助中心界面圖點(diǎn)擊幫助文檔,界面如下:4=34幫助文檔界面圖退出:包含系統(tǒng)的版本信息、退出系統(tǒng)等功能。版本信息界面如下:4-35退出界面圖退出系統(tǒng)界面如下:4-36退出界面圖數(shù)據(jù)丟失。時間提示和管理員信息提示框:4.3數(shù)據(jù)庫設(shè)計在開發(fā)應(yīng)用程序時,對數(shù)據(jù)庫的操作是必不可少的,而一個數(shù)據(jù)庫的設(shè)計優(yōu)19設(shè)計數(shù)據(jù)庫,在開發(fā)過程中反復(fù)修改數(shù)據(jù)庫,這將嚴(yán)重影響軟件的開發(fā)進(jìn)度。4.3.1數(shù)據(jù)庫概要設(shè)計1)數(shù)據(jù)庫中的表及表中字段:本系統(tǒng)中使用到的數(shù)據(jù)表主要有管理員表、操作員表、菜系表、菜品表、統(tǒng)計表、開單表,由這五個表組成了名為DrinkeryManage的數(shù)據(jù)庫。操作員表主號;管理員表中的字段包括:管理員姓名,管理員編號等;日統(tǒng)計表中字段為:開單日期等;年消費(fèi)表中字段為:年消費(fèi)菜單開單、消費(fèi)菜單開單時間等。在開發(fā)酒店管理系統(tǒng)時,餐臺和菜系在系統(tǒng)中是最簡單的實體,在本系統(tǒng)中用來描述餐臺信息的只有臺號和座位號,而描述菜系的主要是名稱。餐臺表(tb_desk)的E-R圖如下:菜系表(tb_sort)的E-R圖如下:這一功能,系統(tǒng)操作員可以快速獲取到顧客點(diǎn)的菜品,菜品表(tb_menu)的E-R圖如下:費(fèi)金額等。消費(fèi)單表(tb_order_form)的E-R圖如下所示:20消費(fèi)項目表(tb_order_item)用來記錄每個消費(fèi)單消費(fèi)的菜品,記錄的主要信E-R圖如下圖所示:綜合上述表格,得出了酒店管理系統(tǒng)的數(shù)據(jù)庫模型圖(view)如下:單表。2)數(shù)據(jù)源的連接(1)編寫數(shù)據(jù)庫連接類hreadLocal類,將已經(jīng)創(chuàng)建的數(shù)據(jù)庫連接保存在ThreadLocal對象里。首先,在數(shù)據(jù)庫連接類中定義一些常量,包括連接數(shù)據(jù)庫使用的驅(qū)動程序、連接數(shù)據(jù)庫的路徑、連接數(shù)據(jù)庫使用的用戶名和密碼,并且定義了一個ThreadLocal類的對象,用來保存已經(jīng)創(chuàng)建的數(shù)據(jù)庫連接,具體代碼如下:privatestaticfinalStringDRIVERCLASS="..SQLServerDriver";privatestaticfinalStringURL="jdbc:microsoft:sqlserver://:1433;DatabaseName=db_DrinkeryManage";privatestaticfinalStringUSERNAME="sa";privatestaticfinalStringPASSWORD="dinne";privatestaticfinalThreadLocal<Connection>threadLocal=newThreadLocal<Connection>();避免了反復(fù)加載數(shù)據(jù)庫驅(qū)動程序,從而提高軟件的功能。具體代碼如下:static//通過靜態(tài)方法加載數(shù)據(jù)庫驅(qū)動21{try{(DRIVERCLASS).newInstance();//加載數(shù)據(jù)庫驅(qū)動}catch(Exceptione){e.printStackTrace();}}ThreadLocal類的對象中獲取數(shù)據(jù)庫連接,然后判讀是否可以在可用體代碼如下:publicclassJDBC{privatestaticfinalStringDRIVERCLASS="..SQLServerDriver";privatestaticfinalStringURL="jdbc:microsoft:sqlserver://:1433;DatabaseName=db_DrinkeryManage";privatestaticfinalStringUSERNAME="sa";privatestaticfinalStringPASSWORD="dinne";privatestaticfinalThreadLocal<Connection>threadLocal=newThreadLocal<Connection>();static{//通過靜態(tài)方法加載數(shù)據(jù)庫驅(qū)動try{(DRIVERCLASS).newInstance();//加載數(shù)據(jù)庫驅(qū)動}catch(Exceptione)22{e.printStackTrace();}}publicstaticConnectiongetConnection(){//創(chuàng)建數(shù)據(jù)庫連接的方法Connectionconn=();//從線程中獲得數(shù)據(jù)庫連接if(conn==null){//沒有可用的數(shù)據(jù)庫連接try{conn=(URL,USERNAME,PASSWORD);//創(chuàng)建新的數(shù)據(jù)庫連接(conn);//將數(shù)據(jù)庫連接保存到線程中}catch(SQLExceptione){e.printStackTrace();}}returnconn;}publicstaticbooleancloseConnection()//關(guān)閉數(shù)據(jù)庫連接的方法{booleanisClosed=true;Connectionconn=();//從線程中獲得數(shù)據(jù)庫連接(null);//清空線程中的數(shù)據(jù)庫連接if(conn!=null){//數(shù)據(jù)庫連接可用try{();//關(guān)閉數(shù)據(jù)庫連接}catch(SQLExceptione)

{23isClosed=false;e.printStackTrace();}}returnisClosed;}}4.3.2數(shù)據(jù)庫詳細(xì)設(shè)計對數(shù)據(jù)庫的操作包括:查詢、添加、修改和刪除,其中查詢是通過executeQuery(Stringsql)方法執(zhí)行SQL語句實現(xiàn)的。在本系統(tǒng)中共提供了4的指定值和查詢指定記錄的方法,以及用來添加、修改和刪除記錄的方法。用戶表結(jié)構(gòu):用戶姓名、密碼、性別、用戶類型、身份證號碼、出生日期表4-1操作員表(tb_user)列名類別備注用戶編號(id)整型(int)主鍵用戶姓名(name)字符型(varchar)性別(sex)字符型(char)出生日期(birthday)Date型(datetime)身份證號碼(id_card)字符型(varchar)用戶密碼(password)字符型(varchar)用戶狀態(tài)字符型(char)表4-2管理員表(tb_owner)列名類別備注用戶編號(id)整型(int)主鍵用戶姓名(name)字符型(varchar)24性別(sex)字符型(char)出生日期(birthday)Date型(datetime)身份證號碼(id_card)字符型(varchar)用戶密碼(password)字符型(varchar)用戶狀態(tài)(freeze)字符型(char)菜品結(jié)構(gòu):編號、菜品名、所屬菜系、助記碼、單價表4-3菜品表(tb_menu)列名類別備注編號(num)整數(shù)型主鍵所屬菜系(sort_id)整型(int)外鍵菜品名(name)字符型(varchar)助記碼(code)字符型(varchar)單位(unit)字符型(varchar)單價(unit_price)整型(int)狀態(tài)(state)字符型(char)菜系表結(jié)構(gòu):編號、菜系名表4-4菜系表(tb_sort)列名類別備注編號(id)整數(shù)型(int)主鍵菜系名(name)字符型(varchar)開單結(jié)構(gòu):開單操作員、消費(fèi)金額、消費(fèi)菜品列表、消費(fèi)編號、消費(fèi)日期。表4-5消費(fèi)單表(tb_order_form)列名類別備注編號(num)字符型(char)主鍵餐臺號(desk_num)字符型(varchar)25消費(fèi)日期Date型(datetime)允許為空消費(fèi)金額整數(shù)型(int)操作員編號整型(int)統(tǒng)計表(日統(tǒng)計、月統(tǒng)計、年統(tǒng)計):消費(fèi)金額、消費(fèi)單編號、消費(fèi)單數(shù)目表4-6消費(fèi)項目表(tb_order_item)列名類別備注編號(id)整數(shù)型(int)主鍵所屬消費(fèi)單編號(order_form_num)字符型(char)菜品(menu_num)字符型(char)消費(fèi)數(shù)量(amount)整型(int)消費(fèi)金額(total)整型(int)sql2005在sql中,截圖如下:4.4主要模塊設(shè)計下面對系統(tǒng)的主要模塊做簡要描述:4.4.1主界面1(登陸界面)設(shè)計:4.4.2主界面2(操作員界面)設(shè)計:26開單操作員餐臺管理查詢修改菜品、簽單4.4.3主界面3(管理員管理)設(shè)計:4.4.4分割面板的設(shè)計:在開臺簽單工作區(qū)中使用了分割面板,這樣系統(tǒng)操作員可以根據(jù)實際需要,/折疊的分隔條,分隔條上得小標(biāo)記(黑實體三角)將分隔條移動到分割面板的最左側(cè)或最右側(cè),單擊另一個則使分隔條恢復(fù)到原位置。關(guān)于分隔條的代碼設(shè)計如下:finalJSplitPanesplitPane=newJSplitPane();//創(chuàng)建分割面版對象(_SPLIT);//設(shè)置為水平分割27(269);//設(shè)置面版默認(rèn)的分割位置(10);//設(shè)置分割條的寬度(true);//設(shè)置為支持快速展開/折疊分割條(newTitledBorder(null,"",_JUSTIFICATION,_POSITION,null,null));//設(shè)置面版邊框getContentPane().add(splitPane,);//將分割面版添加到上級容器中finalJPanelleftPanel=newJPanel();//創(chuàng)建放于分割面版左側(cè)的普通面版對象(newBorderLayout());//設(shè)置面板的布局管理器4.4.5取系統(tǒng)時間模塊設(shè)計:將它們分到不同的區(qū)域以滿足不同使用者的需要。為了實現(xiàn)獲取系統(tǒng)當(dāng)前時間,我們定義一個Time類來完成此功能。classTimeextendsThread{//創(chuàng)建內(nèi)部類publicvoidrun(){//重構(gòu)父類的方法while(true){Datedate=newDate();//創(chuàng)建日期對象(().substring(11,19));//獲取當(dāng)前時間并顯示到時間標(biāo)簽中try{(1000);//令線程休眠1秒}catch(InterruptedExceptione){e.printStackTrace();}}}28}4.4.6身份選擇面原本的樣貌;退出按鈕用來直接退出本系統(tǒng)。輸入項目:選擇用戶名和密碼。工作。如圖3-6有,其實現(xiàn)的主要代碼如下:JRadioButtonjr1=newJRadioButton("管理員");jr1.setOpaque(true);jr1.setActionCommand("1");JRadioButtonjr2=newJRadioButton("操作員");jr2.setOpaque(true);jr2.setActionCommand("0");(jr1);(jr2);(jr1,gro1);(jr2,gro);jr1.setContentAreaFilled(false);//設(shè)置不繪制按鈕的內(nèi)容區(qū)域

jr1.setBorderPainted(false);//不繪制單選按鈕的邊框

jr2.setContentAreaFilled(false);//設(shè)置不繪制按鈕的內(nèi)容區(qū)域

jr2.setBorderPainted(false);//不繪制單選按鈕的邊框

jr1.setSelected(true);//設(shè)置操作員為默認(rèn)登錄用戶

jr1.addActionListener(newActionListener()//管理員單選按鈕監(jiān)聽

{publicvoidactionPerformed(ActionEvente)throwsNullPointerException29{VectoruserNameV=Dao1.getInstance().sUserNameOfNotFreeze();//加載管理員數(shù)據(jù)庫表VectoruserNameV1=().sUserNameOfNotFreeze();//加載操作員數(shù)據(jù)庫表flag=e.getActionCommand().toString();//判斷選擇的是操作員還是管理員if(()==0){("TSoft");}else{for(inti=0;i<userNameV1.size();i++){(userNameV1.get(i));}for(inti=0;i<();i++){((i));}for(intj=0;j<();j++){((j));}}}});jr2.addActionListener(newActionListener()//操作員單選按鈕添加監(jiān)聽事件{publicvoidactionPerformed(ActionEvente)throwsNullPointerException{VectoruserNameV=().sUserNameOfNotFreeze();//加載操作員數(shù)據(jù)表

VectoruserNameV1=Dao1.getInstance().sUserNameOfNotFreeze();//加載管理員數(shù)據(jù)表

flag=e.getActionCommand().toString();if(()==0)30{("TSoft");}else{for(inti=0;i<userNameV1.size();i++){(userNameV1.get(i));}for(inti=0;i<();i++){((i));}for(intj=0;j<();j++){((j));}}}});4.4.7正則表達(dá)式式,所以本系統(tǒng)提供了一個可重用的利用正則表達(dá)式來驗證數(shù)據(jù)合法性的方法,booleantruefalse時表示驗證未通過,數(shù)據(jù)不合法。使用代碼如下:publicclassValidate{31publicstaticbooleanexecute(Stringrule,Stringcontent){Patternpattern=(rule);//利用驗證規(guī)則創(chuàng)建Pattern對象Matchermatcher=(content);//利用驗證內(nèi)容獲得Matcher對象return();//返回驗證結(jié)果}}具體實現(xiàn)代碼如下:import.;import.;publicclassValidate{publicstaticbooleanexecute(Stringrule,Stringcontent){Patternpattern=(rule);//利用驗證規(guī)則創(chuàng)建Pattern對象Matchermatcher=(content);//利用驗證內(nèi)容獲得Matcher對象return();//返回驗證結(jié)果}}4.4.8獲取系統(tǒng)當(dāng)天時間的類以我們在本系統(tǒng)中,書寫了一個系統(tǒng)時間類,從主機(jī)獲取時間。主要代碼如下:publicclassToday{privatestaticfinalCalendarNOW=();privatestaticfinalintYEAR=();privatestaticfinalintMONTH=()+1;privatestaticfinalintDAY=(_OF_MONTH);privatestaticfinalintWEEK=(_OF_WEEK);32privatestaticfinalintHOUR=(_OF_DAY);privatestaticfinalintMINUTE=();privatestaticfinalintSECOND=();//publicstaticStringgetDate()//獲取系統(tǒng)額日期{returnYEAR+"-"+MONTH+"-"+DAY;}publicstaticStringgetDateOfNum()//獲取系統(tǒng)的文本格式{Stringy=YEAR+"";Stringm=MONTH+"";Stringd=DAY+"";if(MONTH<10)m="0"+MONTH;if(DAY<10)d="0"+DAY;returny+m+d;}publicstaticStringgetDateOfShow(){returnYEAR+"年"+MONTH+"月"+DAY+"日";}publicstaticStringgetDayOfWeek(){StringdayOfWeek="";

switch(WEEK){

case1:dayOfWeek="星期日";break;case2:dayOfWeek="星期一";break;case3:33dayOfWeek="星期二";break;case4:dayOfWeek="星期三";break;case5:dayOfWeek="星期四";break;case6:dayOfWeek="星期五";case7:dayOfWeek="星期六";break;}returndayOfWeek;}publicstaticStringgetTime(){returnHOUR+":"+MINUTE+":"+SECOND;}publicstaticvoidmain(String[]args){.println(());}publicstaticintgetYEAR()//獲取年份{returnYEAR;}publicstaticintgetDAY()//獲取當(dāng)前是那一天{returnDAY;}publicstaticintgetMONTH()//獲取當(dāng)前月份34{returnMONTH;}}35第5章系統(tǒng)具體實現(xiàn)鑒于現(xiàn)有軟硬件環(huán)境,我決定采用Client/Server體系結(jié)構(gòu)進(jìn)行軟件開發(fā)。開發(fā)軟件采用。5-1系統(tǒng)功能模塊圖5.1歡迎界面實現(xiàn):歡迎界面設(shè)計:由于本系統(tǒng)采用了sql2005來作為后臺數(shù)據(jù)庫的設(shè)計方案,示系統(tǒng)的加載情況。讓用戶清楚看到系統(tǒng)的實時情況。界面效果如圖3-4。下面簡單介紹附上界面的實現(xiàn)代碼:5-2系統(tǒng)加載圖publicclassWeleFrameextendsJFrame{/**變量聲明*/publicWeleFrame(){/*窗口繪制部分代碼*/setUndecorated(true);//去除登錄界面的邊框體finalMPanelpanel=newMPanel(().getResource("wele1.jpg"));//加載界面圖片的載入getContentPane().add(panel,);getContentPane().add(progressbar,);36Toolkittoolkit=();DimensionscreenSize=();setLocation((-448)/2,(-280)/2);}publicstaticvoidmain(Stringargs[]){(newRunnable()//獲取系統(tǒng)的顯示主題{publicvoidrun(){try{(());}catch(Exceptionexception){();}}});Try//加載歡迎界面{(());wel=newWeleFrame();(true);}catch(Exceptione){e.printStackTrace();}for(inti=0;i<=100;i++)//設(shè)置進(jìn)度條的顯示數(shù)據(jù){try37{(10);}catch(InterruptedExceptione){e.printStackTrace();}(i);}(false);}}5.2登陸界面實現(xiàn)登錄界面將有效的提高用戶對系統(tǒng)的第一印象。用戶登錄窗口的設(shè)計優(yōu)秀與否,主要包括以下幾個方面:美觀大方簡單易懂安全性高使用方便功能明確要使用戶登錄界面美觀大方,就離不開對圖片的使用,但是JPanel類并不支持繪制背景圖片的功能,即將組件繪制到圖片的上方。我們想到,可以通過重寫JPanel類的paintComponent(Graphicsg)方法,實現(xiàn)支持繪制背景圖片的功能。5-3登陸界面38主要代碼如下:publicclassMPanelextendsJPanel{privatestaticfinallongserialVersionUID=1L;privateImageIconimageIcon;//聲明一個圖片對象publicMPanel(URLimgUrl){super();//繼承父類的構(gòu)造方法setLayout(newGridBagLayout());//將布局管理器修改為網(wǎng)格組布局imageIcon=newImageIcon(imgUrl);//根據(jù)傳入的URL創(chuàng)建ImageIcon對象setSize((),());//設(shè)置面板與圖片等大}protectedvoidpaintComponent(Graphicsg){//重寫JPanel類的paintComponent()方法(g);//調(diào)用JPanel類的paintComponent()方法Imageimage=();//通過ImageIcon對象獲得Image對象g.drawImage(image,0,0,null);//繪制Image對象,即將圖片繪制到面板中}}通過繼承JPanel類得到的MPanel圖片了。這樣,在設(shè)計用戶登錄界面時,我們就可以使用MPanel類來創(chuàng)建背景面板,加載進(jìn)我們選好的圖片,使得登錄界面美觀大方。395.3管理員界面實現(xiàn)下又有幾個子菜單構(gòu)成,豐富了該系統(tǒng)的功能。措施來增加自己酒店的吸引力,最終實現(xiàn)利潤最大化。出來管理員可以及時看到。用戶管理:管理員可以在這里管理操作員的信息,實現(xiàn)了操作員的增、刪、用方法。這樣可以盡快地熟悉本系統(tǒng)的操作方法。退出系統(tǒng):其下有兩個按鈕:版本信息和退出按鈕。這兩個按鈕使用簡單,一個查看信息,另一個用來選擇是否要退出本系統(tǒng)。5-4管理員界面40美觀,操作更快捷,其窗體圖3-18。下面是該窗體的基本構(gòu)建方法:publicclassTipWizardFrame1extendsJFrame{publicTipWizardFrame1(finalVectoruser,Stringusernames)throwsNullPointerException{}//構(gòu)造方法privateJTabbedPanecreateNavigationPanel(finalVectoruser){}//創(chuàng)建導(dǎo)航面板privateJButtoncreateFrameButton(StringfName,Stringcname){}//創(chuàng)建選項卡中得面板privatevoidupdateBackImage(){}//設(shè)置背景圖片privatefinalclassFrameListenerextendsComponentAdapter{}//窗體監(jiān)聽器protectedfinalclassopenFrameActionextendsAbstractAction{}//創(chuàng)建動態(tài)的按鈕classTimeextendsThread{}//時間顯示線程static{try{(());}catch(Exceptione){e.printStackTrace();}

}

}JTabbedPane選項卡使用BevelBorder幫助、和退出系統(tǒng)的選項卡。效果如下圖:5-5導(dǎo)航欄關(guān)鍵代碼如下:ImageIconaccount=newImageIcon("res/");41ImageIconmenus=newImageIcon("res/");ImageIconemployee=newImageIcon("res/");ImageIconhelp=newImageIcon("res/");ImageIconexits=newImageIcon("res/");(newFont("",,14));("賬目管理",account,baseManagePanel,"賬目管理");("菜單管理",menus,depotManagePanel,"菜單管理");("用戶管理",employee,stockManagePanel,"用戶管理");("幫助",help,sellManagePanel,"幫助");("退出系統(tǒng)",exits,searchStatisticPanel,"退出系統(tǒng)");returntabbedPane;5.4操作員界面實現(xiàn)整。開單:操作員可以根據(jù)客戶選擇的臺號以及點(diǎn)的菜進(jìn)行開單簽單、結(jié)賬、然后此臺號可以被重新使用。以刪除。系予以刪除。座位數(shù)進(jìn)行修改。幫助文檔:該文檔里的內(nèi)容有助于操作員及時明白自己的工作職責(zé)。退出系統(tǒng)按鈕:點(diǎn)擊此按鈕可以選擇是否要退出本系統(tǒng)。425-6操作員界面本系統(tǒng)操作員主界面分為5區(qū)、后臺管理工作區(qū)和系統(tǒng)安全提示區(qū)。如下是該類中一些方法:publicclassTipWizardFrameextendsJFrame{Publicstaticvoidmain(Stringargs[]){}PublicTipWizardFrame(finalVectorusr,Stringuser){}PrivatevoidmakeOutAnInvoice(){}PrivateStringgetNum(){}PrivatevoidinitNumComboBox(){}Privatevoida(JLabeldClueOnLabel){}ClassTimeextendsThread(){}}5.5系統(tǒng)功能實現(xiàn)5.5.1日結(jié)賬功能現(xiàn)方法:a)界面繪制:super();setModal(true);//設(shè)置對話框模式為“有模式(有模式:即在該窗口打開時,不允許其他窗口運(yùn)行)setTitle("日結(jié)賬");setSize(860,620);//設(shè)置窗體大小Toolkitkit=();Dimensionscreensize=();intWidth=;intHeight=;43intxx=(Width-890)/2;intyy=(Height-600)/2;setLocation(xx,yy);finalJButtonsubmitButton=newJButton();//確定按鈕finalJPanelpanel=newJPanel();getContentPane().add(panel,);intyear=();intmonth=();intday=();yearComboBox=newJComboBox();(10);StringminDatetime=();if(minDatetime==null){(year);}else{intminYear=((0,4));for(inty=minYear;y<=year;y++){(y);}}(year);judgeLeapYear(year);

(yearComboBox);finalJLabelyearLabel=newJLabel();("年");(yearLabel);monthComboBox=newJComboBox();

(12);for(intm=1;m<13;m++)44{(m);}(month);finalJLabelmonthLabel=newJLabel();("月");(monthLabel);dayComboBox=newJComboBox();(10);intdays=daysOfMonth[month];for(intd=1;d<=days;d++){(d);}(day);(dayComboBox);finalJLabeldayLabel=newJLabel();("日");(dayLabel);b)事件監(jiān)聽(下面以一個確定按鈕為例):(newActionListener(){publicvoidactionPerformed(ActionEvente){();intyear=(Integer)();intmonth=(Integer)();intday=(Integer)();intcolumnCount=();VectororderFormV=(year+"-"+month+"-"+day);for(introw=0;row<();row++){45VectorrowV=newVector();//表格行對象VectororderForm=(Vector)(row);//消費(fèi)單對象StringorderFormNum=(1).toString();(orderFormNum);//編號((2));//臺號((3).toString().substring(11,19));//開臺時間((4));//消費(fèi)金額for(intcolumn=4;column<columnCount;column++){("——");//商品消費(fèi)數(shù)量,默認(rèn)未消費(fèi)}VectororderItemV=(orderFormNum);for(inti=0;i<();i++){VectororderItem=(Vector)(i);//消費(fèi)項目對象StringmenuName=(3).toString();for(intcolumn=4;column<columnCount;column++){if((column).equals(menuName)){intamount=(Integer)(4);if((column).toString().equals("——"))(column,amount);else(column,(Integer)(column)+amount);break;}}}(rowV);}VectortotalV=newVector();("總計");46("——");("——");introwCount=();for(intcolumn=3;column<columnCount;column++){inttotal=0;for(introw=0;row<rowCount;row++){Objectvalue=(row).get(column);if(!("——"))total+=(Integer)value;}(total);}(totalV);ContainercontentPane=getContentPane();(1);(newFixedColumnTablePanel(tableColumnV,tableValueV,4),);(contentPane);}});5.5.2月結(jié)賬和年結(jié)賬結(jié)賬比日結(jié)賬少了一個限制條件“具體的日期。47根據(jù)具體的方法有所不同。這里不再陳述。5.5.3菜單管理本系統(tǒng)在獲得用戶的輸入內(nèi)容時,經(jīng)常需要驗證用戶的輸入數(shù)據(jù)的合法性,booleantruefalse時表示驗證未通過,數(shù)據(jù)不合法。具體代碼如下:publicclassValidate{publicstaticbooleanexecute(Stringrule,Stringcontent){Patternpattern=(rule);//利用驗證規(guī)則創(chuàng)建Pattern對象Matchermatcher=(content);//利用驗證內(nèi)容獲得Matcher對象return();//返回驗證結(jié)果}}5.6本系統(tǒng)的一些特色方法同時實現(xiàn)這兩個愿望呢?48細(xì)節(jié)之處,讓系統(tǒng)更加完善。下面我們以操作員管理為例,具體陳述我們在每個功能鍵中如何實現(xiàn)目標(biāo)。來提示用戶重新輸入。5-7操作員管理提示再例如:操作員和管理員的出生年月,當(dāng)輸入1753年一月一日以前的數(shù)據(jù)則提示如下:5-7友情提示實現(xiàn)上述連個功能的代碼如下:if((values[2].pareTo("1753-1-1"))<0){Stringinfos[]={"出生日期輸入錯誤!","正確格式為:日期應(yīng)在1753-1-1以后"};(null,infos,"友情提示",_MESSAGE);("");();return;}下面我們對“添加按鈕功能的實現(xiàn)代碼來具體講解如何實現(xiàn)用戶管理這個界面的人性化和科學(xué)化:(newActionListener(){publicvoidactionPerformed(ActionEvente){49Stringvalues[]=newString[6];values[0]=().toString();values[1]=(()?"男":"女");values[2]=();values[3]=().toString();values[4]=().toString();values[5]="正常";if(values[0].length()>4)//對輸入的姓名長度作正則驗證{(null,"姓名最多只能為4個漢字!","友情提示",_MESSAGE);("");();return;//如果不正確,返回到輸入對話框,重新輸入}if(!("[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}",values[2])){Stringinfos[]={"出生日

溫馨提示

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

評論

0/150

提交評論