《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于C/S結(jié)構(gòu)的小型餐飲管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
基于C/S結(jié)構(gòu)的小型餐飲管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
來源:微型機(jī)與應(yīng)用2013年第22期
王新宇
(南京旅游職業(yè)學(xué)院, 江蘇 南京211100)
摘要: 為使酒店管理(信息工程)專業(yè)的學(xué)生掌握設(shè)計(jì)和實(shí)現(xiàn)旅游信息管理系統(tǒng)的方法,對酒店餐飲管理工作的業(yè)務(wù)流程進(jìn)行了分析,并在此基礎(chǔ)上設(shè)計(jì)了可供學(xué)生在管理信息系統(tǒng)設(shè)計(jì)課程中使用的餐飲管理系統(tǒng)設(shè)計(jì)方案,。通過教學(xué)實(shí)踐證明,,該小型餐飲管理系統(tǒng)完全可以滿足教學(xué)需求,,并且具有一定的實(shí)用價(jià)值,可以在中小型酒店餐飲部使用。
Abstract:
Key words :

摘  要: 為使酒店管理(信息工程)專業(yè)的學(xué)生掌握設(shè)計(jì)和實(shí)現(xiàn)旅游信息管理系統(tǒng)的方法,對酒店餐飲管理工作的業(yè)務(wù)流程進(jìn)行了分析,并在此基礎(chǔ)上設(shè)計(jì)了可供學(xué)生在管理信息系統(tǒng)設(shè)計(jì)課程中使用的餐飲管理系統(tǒng)設(shè)計(jì)方案,。通過教學(xué)實(shí)踐證明,該小型餐飲管理系統(tǒng)完全可以滿足教學(xué)需求,,并且具有一定的實(shí)用價(jià)值,,可以在中小型酒店餐飲部使用。
關(guān)鍵詞:餐飲信息管理系統(tǒng),;C/S模式,;酒店信息管理

    現(xiàn)代酒店是指向各類旅游者提供食、宿,、行,、娛、購等綜合服務(wù),,具有涉外性質(zhì)的商業(yè)性的公共場所,。餐飲部是酒店組織機(jī)構(gòu)中的重要組成部分。餐飲部經(jīng)營點(diǎn)多,,管轄范圍廣,,分工細(xì),員工人數(shù)多(約占酒店員工的三分之一),,人員文化程度和年齡層次差異大。要將這樣一個(gè)復(fù)雜的部門管理好,,必須建立合理有效的組織網(wǎng)絡(luò),,并進(jìn)行科學(xué)分工,明確職責(zé),,使各部門人員各司其職,,以保證餐飲部的正常運(yùn)轉(zhuǎn)[1],。餐飲管理系統(tǒng)是餐飲部不可缺少的部分,它對酒店及餐飲部的管理者都至關(guān)重要,。
    酒店管理信息系統(tǒng)一直是我院酒店信息管理專業(yè)學(xué)生的核心課程之一,,但在這門課的項(xiàng)目實(shí)踐過程中,只是讓學(xué)生熟練使用某種酒店信息管理軟件,,其主要原因是成品酒店管理軟件不可能提供源代碼,,故無法在代碼的基礎(chǔ)上進(jìn)行講解,而只能講解一些軟件設(shè)計(jì)基本理論,,課程比較枯燥,。對于酒店信息管理專業(yè)的學(xué)生來說,如果只是停留在簡單的軟件應(yīng)用層次上,,對于學(xué)生能力的培養(yǎng)顯然是不夠的,,這個(gè)專業(yè)要求學(xué)生具備一定的軟件開發(fā)能力,另外,,學(xué)生在修完高級(jí)程序設(shè)計(jì)和數(shù)據(jù)庫應(yīng)用的課程后,,也需要結(jié)合一個(gè)實(shí)際的小型信息管理系統(tǒng),在源代碼的基礎(chǔ)上,,對照源程序進(jìn)行項(xiàng)目課程的實(shí)踐學(xué)習(xí),。為此,本文對酒店餐飲管理工作的業(yè)務(wù)流程進(jìn)行了分析,,在此基礎(chǔ)上,,設(shè)計(jì)了可供學(xué)生在管理信息系統(tǒng)設(shè)計(jì)課程中使用的餐飲管理系統(tǒng)設(shè)計(jì)方案。通過教學(xué)實(shí)踐證明,,該小型餐飲管理系統(tǒng)完全可以滿足教學(xué)需求,,并且具有一定的實(shí)用價(jià)值,可以在中小型酒店餐飲部使用,。
    目前軟件開發(fā)的體系結(jié)構(gòu)主要為C/S模式和B/S模式,。在C/S模式中,客戶機(jī)與服務(wù)器相連,,客戶端執(zhí)行前臺(tái)操作任務(wù),,負(fù)責(zé)用戶交互、采集用戶錄入數(shù)據(jù)以及將數(shù)據(jù)傳遞給服務(wù)器,;而服務(wù)器負(fù)責(zé)接收客戶端傳來的數(shù)據(jù),,并對數(shù)據(jù)進(jìn)行處理,訪問數(shù)據(jù)庫,,處理客戶端的操作要求,。在B/S模式中,用瀏覽器代替了客戶端程序,與傳統(tǒng)的C/S 模式不同,瀏覽器不直接與數(shù)據(jù)庫相連,,而是增加了中間層,,瀏覽器通過中間層服務(wù)器與數(shù)據(jù)庫服務(wù)器相連,。
    基于B/S模式的應(yīng)用程序在過去幾年非常流行[2-3],因其把所有的應(yīng)用程序都放在一個(gè)服務(wù)器上,便于管理和維護(hù),,軟件升級(jí)也十分方便,,但缺點(diǎn)是它們不能提供豐富的用戶交互功能,對于一些非常復(fù)雜的“重型”應(yīng)用程序,,用B/S模式有些不方便,,一般傾向于用C/S模式。根據(jù)餐飲管理業(yè)務(wù)的特點(diǎn),,本系統(tǒng)采用了C/S模式,。
1 系統(tǒng)功能設(shè)計(jì)
    (1)桌臺(tái)基本信息
    該模塊用于設(shè)置、保存所有桌臺(tái)的信息,,包括桌臺(tái)名稱,、桌臺(tái)位置、桌臺(tái)狀態(tài),、桌臺(tái)類型等信息,。
    (2)桌臺(tái)狀態(tài)
    該模塊實(shí)際上顯示的是餐飲桌態(tài)圖(類似于酒店客房部的“房態(tài)圖”[3-4]),可以使用餐廳平面布局圖的形式顯示桌態(tài),,操作員根據(jù)不同的圖標(biāo)狀態(tài),,可以觀察到某桌是否可用,確定可用后,,即可直接在圖上選定餐桌進(jìn)行開臺(tái)作業(yè),如圖1所示,。

    (4)點(diǎn)單
    如圖3所示,在開臺(tái)結(jié)束后進(jìn)行“點(diǎn)單”操作,,操作員記錄客人所需的菜名和數(shù)量,,然后保存到數(shù)據(jù)庫,相關(guān)數(shù)據(jù)供結(jié)賬時(shí)使用,。
    (5)結(jié)帳
 圖4為客人就餐結(jié)束后結(jié)賬的設(shè)計(jì)界面,。收銀員列出清單供客人核對,客人確認(rèn)后,,錄入支付的金額,,計(jì)算所付款是否需要找零,提示找零數(shù)量,。

    (6)職員信息
    該模塊可以輸入和查詢桌臺(tái)服務(wù)生的基本情況,,主要包括員工代碼、姓名,、性別,、聯(lián)系電話等基本信息。
    (7)消費(fèi)查詢
    主要為客人提供消費(fèi)查詢,,并可打印出消費(fèi)清單,。
    (8)菜肴設(shè)置
    該模塊用于增加、設(shè)置,、保存所有可提供的菜肴信息,。
    (9)系統(tǒng)設(shè)置
    設(shè)置系統(tǒng)用戶的不同權(quán)限、備份數(shù)據(jù)庫等,。
    (10)報(bào)表
    提供營業(yè)收入日報(bào)表(部門),、營業(yè)收入?yún)R總表、營業(yè)收入?yún)R總明細(xì)表,、營業(yè)明細(xì)表(組),、繳款明細(xì)表(班)、繳款匯總表,、日客流量分析表,、日營業(yè)報(bào)表、當(dāng)日交款表,、賬項(xiàng)明細(xì)表,、各站點(diǎn)收銀報(bào)表、營業(yè)匯總表,、成本分析報(bào)表,、折扣一覽表等,供主管核對,。
2 數(shù)據(jù)庫管理系統(tǒng)的選擇
   在開發(fā)管理信息系統(tǒng)的應(yīng)用程序時(shí),,對數(shù)據(jù)庫的操作是必不可少的,所以先要選擇一個(gè)合適的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品,。對于學(xué)校來說,,選用的數(shù)據(jù)庫最好是免費(fèi)的,這樣可以節(jié)約學(xué)校的經(jīng)費(fèi),。本系統(tǒng)選用了MySQL作為數(shù)據(jù)庫,,MySQL是使用最廣泛的開源數(shù)據(jù)庫系統(tǒng),其突出的優(yōu)點(diǎn)包括[3,5]:
 (1)適用面廣,,可在多種操作系統(tǒng)上運(yùn)行,。
 (2)性能優(yōu)異,運(yùn)行穩(wěn)定,。使用MySQL的成功案例很多,,另外MySQL對硬件性能的要求也不苛刻,完全可以在一般的教師機(jī)上運(yùn)行,。
 (3)性價(jià)比高,。MySQL是一個(gè)開源軟件產(chǎn)品,一般非商業(yè)項(xiàng)目使用MySQL數(shù)據(jù)庫,,均可以免費(fèi)使用,。
3 前臺(tái)開發(fā)語言
    前臺(tái)開發(fā)工具選用微軟的C#,,選用C#的原因主要有[2,5-6]:
    (1)C#是一種相當(dāng)新的編程語言,吸取了C++,、JAVA等語言的優(yōu)點(diǎn),,并擯棄了它們的缺點(diǎn),是微軟多年來最重要的新技術(shù)之一,,不但可以開發(fā)C/S模式的程序,,也可以方便地開發(fā)B/S模式的程序[7]。
    (2)近年來,,開源開發(fā)環(huán)境MonoDevlop可以很方便地把C#從Windows下移植到Linux等平臺(tái),,實(shí)現(xiàn)了跨平臺(tái)應(yīng)用。今后如有需要,該餐飲管理系統(tǒng)可以移植到Linux平臺(tái),。
    (3)本酒店信息專業(yè)的高級(jí)程序設(shè)計(jì)課程采用C#
語言作為教學(xué)語言,,通過一個(gè)學(xué)期的學(xué)習(xí),學(xué)生可以用C#編寫一些簡單的程序,,在掌握了C#語言的基礎(chǔ)上,,使用C#作為前臺(tái)開發(fā)工具可以節(jié)省學(xué)習(xí)的時(shí)間。
    (4)從經(jīng)濟(jì)方面考慮,,因?yàn)槲④洖槭褂肅#的學(xué)生們提供學(xué)習(xí)版的C#(Visual C# Express),,可以免費(fèi)使用,另外,,MonoDevlop和SharpDevlop也可以免費(fèi)獲得,,這樣可以節(jié)約一大筆經(jīng)費(fèi),同時(shí)還可以使用正版的開發(fā)軟件,,既經(jīng)濟(jì)又實(shí)惠,。
4 關(guān)鍵技術(shù)
4.1 樹型菜單的實(shí)現(xiàn)

     設(shè)數(shù)據(jù)庫有兩張表:tb_dishbaseinfo(菜肴基本信息表)和tb_dishtype(菜肴類型表),分別如表1,、表2所示,。
    其中,表2中的DishTypeName字段,,可以是冷盤,、鍋?zhàn)小?、飲料,、酒等名稱。


  算法思想是:
  (1)先執(zhí)行SQL語句,,讀取菜肴基本信息表和菜肴類型表,,通過內(nèi)連接,得到菜肴編號(hào)、菜肴名稱,、菜肴類型名稱,,并將數(shù)據(jù)放入數(shù)據(jù)集,供前臺(tái)程序處理,。
     (2)生成一個(gè)樹節(jié)點(diǎn),,先令其為空,用于顯示菜肴信息的控件為TreeView控件(命名為tvfood),。然后對從數(shù)據(jù)庫中讀取的數(shù)據(jù)集進(jìn)行循環(huán)處理:判斷當(dāng)前的菜肴類型,如果tvfood樹節(jié)點(diǎn)中沒有該類型,,則新添加一個(gè)根節(jié)點(diǎn)(菜肴類型),并在新的根節(jié)點(diǎn)下增加子節(jié)點(diǎn)(菜肴名稱),;如有該類型,則無需建立新根節(jié)點(diǎn),,直接在當(dāng)前根節(jié)點(diǎn)下增加子節(jié)點(diǎn),。
    樹型菜單實(shí)現(xiàn)代碼如下:
     string sqlstr = "select tb_dishbaseinfo.dishid,tb_dishbaseinfo.dishname,"+
          "tb_dishtype.dishtypename"+
          " from tb_dishbaseinfo join tb_dishtype on tb_dishbaseinfo.dishtypeID"+
          "=tb_dishtype.dishtypeid";
     string temp="";
  TreeNode newnode=null;
  tvfood.Nodes.Clear();
  MySqlConnection conn =MySqlCon();
  conn.Open();
  MySqlCommand cmd = new MySqlCommand(sqlstr,conn);
  MySqlDataReader rdb = cmd.ExecuteReader();
  while(rdb.Read()){
        if(temp!=rdb["dishtypename"].ToString()){
             temp=rdb["dishtypename"].ToString();
             newnode = tvfood.Nodes.Add(temp);
             newnode.Nodes.Add(rdb["dishID"].ToString(),rdb
                ["dishname"].ToString());
           }
              else
        newnode.Nodes.Add(rdb["dishID"].ToString(), rdb
                ["dishname"].ToString());
   }
     cmd.Dispose();
     rdb.Dispose();
     conn.Dispose();
4.2 存儲(chǔ)過程
 前臺(tái)程序訪問數(shù)據(jù)庫時(shí),如果是簡單的業(yè)務(wù)操作,,盡量利用一條SQL語句完成,;如果是需要多條SQL語句的比較復(fù)雜的業(yè)務(wù)操作,一般認(rèn)為要通過MySQL的存儲(chǔ)過程來完成,,以提高效率[3,,5]。存儲(chǔ)過程SP(Stored Procedure)是由一些直接存儲(chǔ)和執(zhí)行的定制過程或函數(shù)組成,有了存儲(chǔ)過程就可以實(shí)現(xiàn)復(fù)雜的SQL操作,,從而可以完成單條(或少量幾條)SQL語句無法完成的業(yè)務(wù)操作,。存儲(chǔ)過程集中完成多條SQL語句,在數(shù)據(jù)庫端直接執(zhí)行完成,,可以節(jié)省數(shù)據(jù)在網(wǎng)絡(luò)上反復(fù)傳輸?shù)臅r(shí)間,,從而獲得更快的速度,提高業(yè)務(wù)處理效率,。另外,,存儲(chǔ)過程可以實(shí)現(xiàn)數(shù)據(jù)庫回滾等操作,提高了數(shù)據(jù)的安全性和程序的健壯性,。餐飲管理系統(tǒng)中有不少復(fù)雜的業(yè)務(wù),,有些操作在失敗的情況下需要進(jìn)行回滾操作,故本系統(tǒng)在數(shù)據(jù)庫設(shè)計(jì)時(shí)引入存儲(chǔ)過程,。
    例如,,清空當(dāng)天的營業(yè)數(shù)據(jù),并將其復(fù)制到歷史表的存儲(chǔ)過程代碼如下:
    CREATE DEFINER=′root′@′localhost′PROCEDURE

          ′SP_Clear′(out v_msg varchar(1))
     BEGIN
         declare v_error integer default 0;
         declare continue handler for sqlexception set v_error=1;
         set autocommit = 0;
         start transaction;
         insert into tb_history_bill select * from tb_bill;
         delete from tb_bill;
         if v_error = 1 then
            rollback;
          else
              commit;
         end if;  
         set autocommit = 1;
     END;
    本文根據(jù)小型餐飲店的實(shí)際情況,,從教學(xué)的需要出發(fā),,設(shè)計(jì)并實(shí)現(xiàn)了基于C/S架構(gòu)的餐飲管理系統(tǒng)。整個(gè)系統(tǒng)實(shí)現(xiàn)了餐飲業(yè)務(wù)流程過程中的基本功能,達(dá)到設(shè)計(jì)目的,。結(jié)合源代碼講解旅游管理信息系統(tǒng),,提高了學(xué)生的學(xué)習(xí)興趣;學(xué)生自己動(dòng)手編程,,又進(jìn)一步鍛煉了編程能力,。投入課堂教學(xué)4年以來,教學(xué)效果良好,。
    如今平板電腦等移動(dòng)設(shè)備逐漸用于前臺(tái)點(diǎn)菜,,而本文中的餐飲管理系統(tǒng)不支持移動(dòng)設(shè)備,所以,,今后需要進(jìn)一步研究在本系統(tǒng)中增加移動(dòng)設(shè)備遠(yuǎn)程點(diǎn)菜的功能,。
參考文獻(xiàn)
[1] 郭敏文.餐飲部運(yùn)行與管理[M].北京:旅游教育出版社,2005.
[2] NAGEL C, EVJEN B, GLYNN J. C#高級(jí)編程[M].李銘,譯.北京:清華大學(xué)出版社,2006.
[3] 王新宇,陳婕. 基于工作過程的“旅游管理軟件開發(fā)技術(shù)”課程教學(xué)設(shè)計(jì)——以“小型客房管理系統(tǒng)”學(xué)習(xí)情境
設(shè)計(jì)為例[J].電子商務(wù),2012(7):78-80.
[4] 陳婕. 酒店管理信息系統(tǒng)中“房態(tài)圖”的設(shè)計(jì)和實(shí)現(xiàn)[J].軟件導(dǎo)刊,2011,10(11):122-124.
[5] KOFLER M. MySQL 5權(quán)威指南[M].北京:人民郵電出版社,2008.
[6] 唐政.C#項(xiàng)目開發(fā)全程實(shí)錄[M]. 北京:清華大學(xué)出版社,2008.
[7] 李丹,曹小佳.電子病歷信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用, 2013,32(1):11-13.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。