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

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

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

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

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

     設數據庫有兩張表:tb_dishbaseinfo(菜肴基本信息表)和tb_dishtype(菜肴類型表),分別如表1、表2所示。
    其中,表2中的DishTypeName字段,可以是冷盤、鍋仔、湯羹、飲料、酒等名稱。


  算法思想是:
  (1)先執(zhí)行SQL語句,讀取菜肴基本信息表和菜肴類型表,通過內連接,得到菜肴編號、菜肴名稱、菜肴類型名稱,并將數據放入數據集,供前臺程序處理。
     (2)生成一個樹節(jié)點,先令其為空,用于顯示菜肴信息的控件為TreeView控件(命名為tvfood)。然后對從數據庫中讀取的數據集進行循環(huán)處理:判斷當前的菜肴類型,如果tvfood樹節(jié)點中沒有該類型,則新添加一個根節(jié)點(菜肴類型),并在新的根節(jié)點下增加子節(jié)點(菜肴名稱);如有該類型,則無需建立新根節(jié)點,直接在當前根節(jié)點下增加子節(jié)點。
    樹型菜單實現代碼如下:
     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 存儲過程
 前臺程序訪問數據庫時,如果是簡單的業(yè)務操作,盡量利用一條SQL語句完成;如果是需要多條SQL語句的比較復雜的業(yè)務操作,一般認為要通過MySQL的存儲過程來完成,以提高效率[3,5]。存儲過程SP(Stored Procedure)是由一些直接存儲和執(zhí)行的定制過程或函數組成,有了存儲過程就可以實現復雜的SQL操作,從而可以完成單條(或少量幾條)SQL語句無法完成的業(yè)務操作。存儲過程集中完成多條SQL語句,在數據庫端直接執(zhí)行完成,可以節(jié)省數據在網絡上反復傳輸的時間,從而獲得更快的速度,提高業(yè)務處理效率。另外,存儲過程可以實現數據庫回滾等操作,提高了數據的安全性和程序的健壯性。餐飲管理系統(tǒng)中有不少復雜的業(yè)務,有些操作在失敗的情況下需要進行回滾操作,故本系統(tǒng)在數據庫設計時引入存儲過程。
    例如,清空當天的營業(yè)數據,并將其復制到歷史表的存儲過程代碼如下:
    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;
    本文根據小型餐飲店的實際情況,從教學的需要出發(fā),設計并實現了基于C/S架構的餐飲管理系統(tǒng)。整個系統(tǒng)實現了餐飲業(yè)務流程過程中的基本功能,達到設計目的。結合源代碼講解旅游管理信息系統(tǒng),提高了學生的學習興趣;學生自己動手編程,又進一步鍛煉了編程能力。投入課堂教學4年以來,教學效果良好。
    如今平板電腦等移動設備逐漸用于前臺點菜,而本文中的餐飲管理系統(tǒng)不支持移動設備,所以,今后需要進一步研究在本系統(tǒng)中增加移動設備遠程點菜的功能。
參考文獻
[1] 郭敏文.餐飲部運行與管理[M].北京:旅游教育出版社,2005.
[2] NAGEL C, EVJEN B, GLYNN J. C#高級編程[M].李銘,譯.北京:清華大學出版社,2006.
[3] 王新宇,陳婕. 基于工作過程的“旅游管理軟件開發(fā)技術”課程教學設計——以“小型客房管理系統(tǒng)”學習情境
設計為例[J].電子商務,2012(7):78-80.
[4] 陳婕. 酒店管理信息系統(tǒng)中“房態(tài)圖”的設計和實現[J].軟件導刊,2011,10(11):122-124.
[5] KOFLER M. MySQL 5權威指南[M].北京:人民郵電出版社,2008.
[6] 唐政.C#項目開發(fā)全程實錄[M]. 北京:清華大學出版社,2008.
[7] 李丹,曹小佳.電子病歷信息管理系統(tǒng)的設計與實現[J].微型機與應用, 2013,32(1):11-13.

此內容為AET網站原創(chuàng),未經授權禁止轉載。