版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PAGE PAGE III畢業(yè)論文(設計) 題 目基于.NET的餐飲管理系統(tǒng)設計與實現(xiàn) 學生姓名 學 號 系 別 年 級 專 業(yè) 指導教師 職 稱 教授 完成日期 摘 要隨著信息技術在企業(yè)管理上越來越深入而廣泛的應用,管理信息系統(tǒng)的實施在技術上已逐步成熟。管理信息系統(tǒng)是一個不斷發(fā)展的新型學科,任何一個企業(yè)要生存要發(fā)展,要高效率地把內部活動有機地組織起來,就必須建立與自身特點相適應的管理信息系統(tǒng)。本文主要研究如何開發(fā)餐飲管理系統(tǒng),解釋了開發(fā)餐飲管理系統(tǒng)的必要性和重要性,系統(tǒng)的開發(fā)在.net平臺上進行,結合后端的Sqlite數(shù)據(jù)庫技術,用C#.net進行編碼,開發(fā)出一個符合企業(yè)需要,比較實用的信息
2、管理系統(tǒng)。通過對計算機硬件和軟件解決方案的論證,對應用領域進行調查分析,參考許多資料,在指導老師的幫助下,詳細分析了企業(yè)管理系統(tǒng)的幾個主要設計階段:需求分析、概要設計和詳細設計,同時給出了系統(tǒng)實現(xiàn)的具體思想方案,并列舉了實際工程中的實例創(chuàng)建過程、方法和效果。該系統(tǒng)開發(fā)由系統(tǒng)需求分析階段、概念設計階段、邏輯設計階段、數(shù)據(jù)庫實施階段、系統(tǒng)調試和測試階段、參考文獻、附錄等階段組成。關鍵詞:餐飲管理現(xiàn)代化,人工管理,功能模塊,存儲過程目 錄 TOC o 1-3 h z u HYPERLINK l _Toc290809311 摘 要 PAGEREF _Toc290809311 h I HYPERLINK
3、 l _Toc290809312 1 緒論 PAGEREF _Toc290809312 h 1 HYPERLINK l _Toc290809313 1.1 課題的提出、現(xiàn)狀及研究意義 PAGEREF _Toc290809313 h 1 HYPERLINK l _Toc290809314 1.2 課題的研究內容 PAGEREF _Toc290809314 h 1 HYPERLINK l _Toc290809315 1.3 論文的章節(jié)安排 PAGEREF _Toc290809315 h 2 HYPERLINK l _Toc290809316 2 相關技術介紹 PAGEREF _Toc2908093
4、16 h 3 HYPERLINK l _Toc290809317 2.1 C# 簡介 PAGEREF _Toc290809317 h 3 HYPERLINK l _Toc290809318 2.2 SQLITE簡介 PAGEREF _Toc290809318 h 5 HYPERLINK l _Toc290809319 3 系統(tǒng)需求分析 PAGEREF _Toc290809319 h 7 HYPERLINK l _Toc290809320 3.1 系統(tǒng)需求分析 PAGEREF _Toc290809320 h 7 HYPERLINK l _Toc290809321 3.2 系統(tǒng)類圖 PAGEREF
5、 _Toc290809321 h 7 HYPERLINK l _Toc290809322 3.3 系統(tǒng)用例圖 PAGEREF _Toc290809322 h 7 HYPERLINK l _Toc290809323 4 系統(tǒng)設計 PAGEREF _Toc290809323 h 9 HYPERLINK l _Toc290809324 4.1 系統(tǒng)總體結構 PAGEREF _Toc290809324 h 9 HYPERLINK l _Toc290809325 4.2 系統(tǒng)詳細設計 PAGEREF _Toc290809325 h 9 HYPERLINK l _Toc290809326 4.2.1進賬管
6、理模塊詳細設計 PAGEREF _Toc290809326 h 9 HYPERLINK l _Toc290809327 4.2.2 員工管理模塊詳細設計 PAGEREF _Toc290809327 h 10 HYPERLINK l _Toc290809328 4.3 數(shù)據(jù)庫設計 PAGEREF _Toc290809328 h 11 HYPERLINK l _Toc290809329 4.3.1 概念設計 PAGEREF _Toc290809329 h 11 HYPERLINK l _Toc290809330 4.3.2 邏輯設計 PAGEREF _Toc290809330 h 12 HYPER
7、LINK l _Toc290809331 5 系統(tǒng)實現(xiàn) PAGEREF _Toc290809331 h 13 HYPERLINK l _Toc290809332 5.1 系統(tǒng)數(shù)據(jù)庫連接實現(xiàn) PAGEREF _Toc290809332 h 13 HYPERLINK l _Toc290809333 5.3 登錄模塊實現(xiàn) PAGEREF _Toc290809333 h 14 HYPERLINK l _Toc290809334 5.4 主窗體實現(xiàn) PAGEREF _Toc290809334 h 17 HYPERLINK l _Toc290809335 5.5.4 功能實現(xiàn)的補充說明 PAGEREF _
8、Toc290809335 h 25 HYPERLINK l _Toc290809336 6 結束語 PAGEREF _Toc290809336 h 26 HYPERLINK l _Toc290809337 6.1 主要 PAGEREF _Toc290809337 h 27 HYPERLINK l _Toc290809338 6.2 進一步改進的方向 PAGEREF _Toc290809338 h 27 HYPERLINK l _Toc290809339 參考文獻 PAGEREF _Toc290809339 h 29 HYPERLINK l _Toc290809340 致 謝 PAGEREF _
9、Toc290809340 h 30基于.NET的餐飲管理系統(tǒng)設計與實現(xiàn)PAGE 281 緒論1.1 課題的提出、現(xiàn)狀及研究意義近年來,隨著人民的生活水平的不斷提高,餐飲業(yè)的消費持續(xù)增長,競爭愈來愈激烈。然而,傳統(tǒng)餐飲企業(yè)的日常運作還是靠人工管理,從原材料入庫到客人點單,再到結賬基本上由人工完成記錄,這樣做不僅耗費人力資源而且容易導致記錄丟失或重復等錯誤,造成管理水平低下。XX酒店作為傳統(tǒng)的餐飲企業(yè)也存在這些問題,進貨,庫存有人工管理,客人點單需服務員記錄并送至廚房,客人結賬由手工記錄,人力耗費大,客人等待時間長,管理效率低下,這就迫切需要標準的、高效率的計算機管理方式引導其發(fā)展,通過計算機管理
10、該企業(yè)的日常運作,給管理者以決策參考的模型,來不斷完善管理水平,提高工作效率。改革開放二十多年來,我國餐飲業(yè)發(fā)展迅猛,日新月異,各種風味特色,各種經營形式,各種組織結構的餐飲企業(yè)星羅棋布,但“競爭激烈,生意難作”也成了餐飲業(yè)的“流行脖。更新經營方式,拓展大眾市場,建全餐飲業(yè)的“軟硬”件設施,發(fā)展餐飲信息渠道是我國餐飲業(yè)應探索的主旋律。所以,社會化,科學化,集錦化21世紀的發(fā)展方向。當今世界已進入了在計算機信息管理領域中激烈競爭的時代,應用計算機已經變得十分普遍了,如同我們離不開的自行車、汽車一樣。我們應該承認,誰掌握的知識多,信息量大,信息處理速度快,批量大,誰的效率就高,誰就能夠在各種競爭中
11、立于不敗之地。隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越來越重要的作用。越來越多的管理人員意識到信息管理的重要性。所以說科學化是二十一世紀餐飲業(yè)的主流目前,國內的餐飲管理系統(tǒng)幾種情況是:中國的軟件系統(tǒng)大多源自管理信息系統(tǒng)(MIS),從部門業(yè)務需求的角度出發(fā)設計。管理信息系統(tǒng)設計的初衷是服務于學校內絕大多數(shù)的業(yè)務操作人員,將業(yè)務操作人員的重復性勞動予以初場戶動化,即從管理理論抽象出理想化的業(yè)務管理模式,在基于該業(yè)務模式的摹礎上實現(xiàn)低層次的數(shù)據(jù)處理或業(yè)務流程電子化。管理信息系統(tǒng)的設計,是根據(jù)中小型學校業(yè)務單元的需求來編寫的,一般無
12、法滿足多體制、多元化、多董組織結構的大型學校數(shù)據(jù)處理需求。與國外同類應用系統(tǒng)及解決方案相比較,目前中國的管理軟件還有一些缺憾:第一,很多是從管理信息系統(tǒng)演變而來,雖然目前國內的管理軟件已將模塊功能擴展至學校管理或人才資本管理相關的整個業(yè)務領域,但系統(tǒng)在整體性、前瞻性和集成性方面仍有欠缺。1.2 課題的研究內容本課題是設計一個基于.NET的餐飲管理系統(tǒng)。本系統(tǒng)屬于小型的餐飲管理系統(tǒng),可以有效地對中小型餐廳消費進行管理,本系統(tǒng)應達到以下目標:系統(tǒng)采用人機交互的方式,界面美觀友好,信息查詢靈活、方便,數(shù)據(jù)存儲安全可靠。實現(xiàn)對餐廳顧客開臺、點菜/加菜、賬目查詢和結賬等操作。對用戶輸入的數(shù)據(jù),進行嚴格的
13、數(shù)據(jù)檢驗,盡可能的避免人為錯誤。實現(xiàn)對消費賬目自動結算。實現(xiàn)對消費的歷史記錄進行查詢,支持模糊查詢。系統(tǒng)應最大限度地實現(xiàn)易維護性和易操作性。1.3 論文的章節(jié)安排整篇論文是基于.NET為背景,從.NET的知識、體系結構等方面,介紹.NET的餐飲管理系統(tǒng)設計與開發(fā)實現(xiàn)。具體章節(jié)安排如下:第一章緒論闡明了論文課題的提出及其意義,以及本課題研究內容。第二章主要介紹了研究本課題的涉及到的技術和個性技術的特征、功能和應用領域。第三章介紹系統(tǒng)的需求分析,并重點分析了系統(tǒng)功能需求分析以及系統(tǒng)的UML圖等。第四章介紹系統(tǒng)設計,并對系統(tǒng)的數(shù)據(jù)庫設計進行的詳細分析。第五章進行系統(tǒng)實現(xiàn)設計的分析,包括部分界面分析和
14、部分代碼說明。第六章是結束語。總結論文及設計所做的主要及取得的成果,并對系統(tǒng)和.NET下一步要做的進行了分析。2 相關技術介紹2.1 CC#是微軟公司發(fā)布的一種面向對象的、運行于.NET Framework之上的高級程序設計語言。并定于在微軟職業(yè)開發(fā)者論壇(PDC)上登臺亮相。C#是微軟公司研究員Anders Hejlsberg的最新成果。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運行的過程。但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點,與COM(組件對象模型)是直接集成的,而且它是微軟公司.NET windo
15、ws網(wǎng)絡框架的主角。 Visual Studio.NET從一開始就是為XML Web服務創(chuàng)建的開發(fā)環(huán)境。通過允許應用程序通過Internet溝通和共享數(shù)據(jù),XML Web服務使業(yè)務能夠從Internet轉換為用于集成和傳送它們的核心商業(yè)價值的真正平臺。Visual Studio.NET和XML Web服務提供簡單,靈活和基于標準的模型。允許開發(fā)人員從新的和現(xiàn)有的代碼匯編應用程序,而與平臺,編程語言或對象模型無關。而.NET Framework是一個新的開發(fā)平臺,它為局域網(wǎng) (LAN) 和 Internet 上的分布式企業(yè)應用提供了一致和有效的支持。 .NET Framework由兩個主要部分組
16、成:CLR(通用語言運行時, Common Language Runtime)和一組統(tǒng)一的類庫,包括ASP.NET、ADO.NET、Windows Forms和其他能力。C# (C sharp) 是微軟對這一問題的解決方案。C#是一種最新的、面向對象的編程語言。它使得程序員可以快速地編寫各種基于Microsoft .NET平臺的應用程序,Microsoft .NET提供了一系列的工具和服務來最大程度地開發(fā)利用計算與通訊領域。正是由于C#面向對象的卓越設計,使它成為構建各類組件的理想之選無論是高級的商業(yè)對象還是系統(tǒng)級的應用程序。使用簡單的C#語言結構,這些組件可以方便的轉化為XML 網(wǎng)絡服務,從
17、而使它們可以由任何語言在任何操作系統(tǒng)上通過Internet進行調用。.NET是 Microsoft XML .NET 平臺。XML .NET 允許應用程序通過 Internet 進行通訊和共享數(shù)據(jù),而不管所采用的是哪種操作系統(tǒng)、設備或編程語言。Microsoft .NET 平臺提供創(chuàng)建 XML .NET 并將這些服務集成在一起之所需。C#是一個語言,.net是一個平臺,上面支持用C#或者VBdotNet寫代碼。 另外,C#不但可以開發(fā)基于.net的應用程序,也可以開發(fā)基于WinForm的程序,這就是區(qū)別。 若是單純以概念來說,你可以把.net當做一個工作平臺一般,它是一個開發(fā)環(huán)境的基底,提供你
18、開發(fā)Windows、Web、Mobile、XML.等應用程式一個共通的平臺,若是要了解深一點,則再去了解其運作的相關機制那是有助于你利用它來開發(fā).C#和.NET主要是應用在網(wǎng)際網(wǎng)路. C#(讀做C-sharp)編程語言是由微軟公司的Anders Hejlsberg和 Scott Willamette領導的開發(fā)小組專門為.NET平臺設計的語言,它可以使程序員移植到.NET上。這種移植對于廣大的程序員來說是比較容易的,因為C#從C,C+和Java發(fā)展而來,它采用了這三種語言最優(yōu)秀的特點,并加入了它自己的特性。C#是事件的驅動的,完全面向對象的可視化編程語言,我們可以使用集成開發(fā)環(huán)境來編寫C#程序。
19、使用IDE,程序員可以方便的建立,運行,測試和調試C#程序,這就將開發(fā)一個可用程序的時間減少到不用IDE開發(fā)時所用時間的一小部分。使用IDE迅速建立一個應用程序的過程稱為快速反映開發(fā)。 . NET 是 Microsoft 的 XML Web 服務平臺。不論操作系統(tǒng)或編程語言有何差別,XML Web 服務能使應用程序在 Internet 上傳輸和共享數(shù)據(jù)。 Microsoft .NET 平臺包含廣泛的產品系列,它們都是基于 XML 和 Internet 行業(yè)標準構建,提供從開發(fā)、管理、使用到體驗 XML Web 服務的每一方面。XML Web 服務將成為您今天正在使用的 Microsoft 的應
20、用程序、工具和服務器的一部分 并且將要打造出全新的產品以滿足您所有業(yè)務需求。 更具體地說,Microsoft 正在五個方面創(chuàng)建 .NET 平臺,即工具、服務器、XML Web 服務、客戶端和 .NET 體驗。C#2.0新特性:1、 泛型:在我看來,泛型就是通過將數(shù)據(jù)類型參數(shù)化從而實現(xiàn)了代碼的更為靈活的復用,泛型的出現(xiàn)使得C#能夠使用同一段代碼來操作多種數(shù)據(jù)類型。泛型無疑是C#2.0最重大的改進,它的出現(xiàn)賦予了C#代碼更強的類型安全,更好的復用,更高的效率和更清晰的約束。 2、 匿名方法:匿名方法允許我們將代碼直接與委托實例相關聯(lián),使委托實例化工作更加直觀和方便。在我看來,這只是C#又多了一種語
21、法格式而已,不再像以前必須將方法名傳給委托實例,而是又多了一種選擇。 3、 迭代器:迭代器允許我們更加方便的編寫用于foreach語句的類型。在我看來,迭代器的出現(xiàn)只不過是改進了1.0中不便的可用foreach語句類型的編寫限制,簡化了一些接口。 4、 局部類型:局部類型允許我們將一個類的代碼分別寫在不同的cs文件中。最典型的應用就是使用VS2005創(chuàng)建Form文件時,VS會自動將系統(tǒng)生成的代碼與用戶代碼分開。局部類型通過partial關鍵字來聲明。 5、 空屬類型:空屬類型是一種像int,一樣可以為空的變量類型。本質上是一種泛型的應用,是System .Nullable的一種類型實例化。 6
22、、 靜態(tài)類:靜態(tài)類是只用于包含靜態(tài)成員的類型,它既不能實例化,亦不能被繼承。2.2 .SQL SERVER簡介SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關系型 HYPERLINK /view/68446.htm t _blank 數(shù)據(jù)庫管理系統(tǒng),它的設計目標是 HYPERLINK /view/30741.htm t _blank 嵌入式的,而且目前已經在很多 HYPERLINK /view/4085543.htm t _blank 嵌入式產品中使用了它,它占用資源非常的低,在 HYPERLINK /view/2778983.htm t _blank 嵌入式設備中,可能只需要幾百K的內存
23、就夠了。它能夠支持Windows/Linux/Unix等等主流的 HYPERLINK /view/880.htm t _blank 操作系統(tǒng),同時能夠跟很多程序語言相結合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的 HYPERLINK /view/68446.htm t _blank 數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個 HYPERLINK /view/707803.htm t _blank Alpha版本誕生于2000年5月。 至今已經有13個年頭,SQLite也迎來了一個版本 SQLite
24、 3已經發(fā)布。Sqlite 數(shù)據(jù)引擎是本企業(yè)數(shù)據(jù)管理解決方案的核心。同時它還支持 HYPERLINK /view/709594.htm t _blank 事務處理功能等等。也有人說它象Microsoft的Access,有時候真的覺得有點象,但是事實上它們區(qū)別很大。比如SQLite 支持跨平臺,操作簡單,能夠使用很多語言直接創(chuàng)建數(shù)據(jù)庫,而不象Access一樣需要Office的支持。如果是個很小型的應用,或者想做 HYPERLINK /view/55.htm t _blank 嵌入式開發(fā),沒有合適的 HYPERLINK /view/7809.htm t _blank 數(shù)據(jù)庫系統(tǒng),那么都可以考慮使用
25、SQLite。3 系統(tǒng)需求分析3.1 系統(tǒng)需求分析作為餐飲管理系統(tǒng),首先需要具有餐飲管理員可以運用系統(tǒng)來進行登記的功能。在進行登記后,餐飲管理員就可以登錄了,在登錄以后可以對現(xiàn)有的信息的查看、修改等。由于餐飲管理系統(tǒng)是信息管理系統(tǒng),利用計算機網(wǎng)絡的巨大潛在力量、數(shù)據(jù)信息的理念,從而減少人、物及財?shù)确矫嫔系南?,完成合理的資源分配。其開發(fā)的功能主要包括:本課題是設計一個基于.NET的餐飲管理系統(tǒng)。確的餐飲管理依據(jù)與輔助決策數(shù)據(jù)。3.2 系統(tǒng)類圖4 系統(tǒng)設計4.1 系統(tǒng)總體結構根據(jù)以上對餐飲管理系統(tǒng)的功能需求分析?,F(xiàn)對餐飲管理系統(tǒng)分析。 4.2 系統(tǒng)詳細設計不管是管理員還是普通餐飲管理員登錄系統(tǒng)都
26、要進行正確的判斷后,才能登入到系統(tǒng),登錄活動圖如圖4-2所示:圖4-2 系統(tǒng)登錄活動圖4.3 數(shù)據(jù)庫設計4.3.1 概念設計5 系統(tǒng)實現(xiàn)5.1 系統(tǒng)數(shù)據(jù)庫連接實現(xiàn)在系統(tǒng)開發(fā)過程中,采用三層架構模式開發(fā),因為要多處涉及到對數(shù)據(jù)庫的連接,如果這些連接都在各個C#.NET程序中去實現(xiàn),那樣將會非常繁瑣,代碼重復量比較大,因此,為了簡化這些連接操作,在開發(fā)時設計了一個可重用的類SQLiteHelper.cs,把對數(shù)據(jù)庫的操作都封裝在在這個類中,需要用到時生成對象調用便可,其流程圖如圖5-1所示。其中SQLiteHelper.cs文件的主要代碼由如下所示:using System;using Syste
27、m.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SQLite;using System.Configuration;namespace Catering.DAL public class SQLiteHelper private static readonly string str = ConfigurationManager.ConnectionStringsconStr.ConnectionString; / / 此方法用來做增刪改 / / sql語句
28、 / 參數(shù)數(shù)組 / 返回受影響的行數(shù) public static int ExecuteNonQuery(string sql, params SQLiteParameter param) /創(chuàng)建連接字符串 using (SQLiteConnection con = new SQLiteConnection(str) /創(chuàng)建執(zhí)行sql語句對象 using (SQLiteCommand cmd = new SQLiteCommand(sql, con) con.Open();/打開數(shù)據(jù)庫 cmd.Parameters.AddRange(param);/添加參數(shù)列表 return cmd.Exec
29、uteNonQuery();/執(zhí)行命令 / / 此方法用來返回首行首列 / / sql語句 / 參數(shù)數(shù)組 / 返回值為object類型 public static object ExecuteScalar(string sql, params SQLiteParameter param) using (SQLiteConnection con = new SQLiteConnection(str) using (SQLiteCommand cmd = new SQLiteCommand(sql, con) con.Open(); cmd.Parameters.AddRange(param);
30、return cmd.ExecuteScalar(); / / 此方法用來返回每一行數(shù)據(jù) / / sql語句 / 參數(shù)可變數(shù)組 / 返回值為SQLiteDataReader類型 public static SQLiteDataReader ExecuteReader(string sql, params SQLiteParameter param) SQLiteConnection con = new SQLiteConnection(str); using (SQLiteCommand cmd = new SQLiteCommand(sql, con) cmd.Parameters.AddR
31、ange(param); try con.Open(); return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection); catch (Exception ex) con.Close(); con.Dispose(); throw ex; / / 此方法用來返回整個表 / / sql語句 / 返回值為Datable類型 public static DataTable ExecuteDateTable(string sql, params SQLiteParameter param) DataTable dt = ne
32、w DataTable(); using (SQLiteConnection con = new SQLiteConnection(str) using (SQLiteCommand cmd = new SQLiteCommand(sql, con) cmd.Parameters.AddRange(param); using (SQLiteDataAdapter sda = new SQLiteDataAdapter(cmd) /sda.SelectCommand.Parameters.AddRange(param); sda.Fill(dt); return dt; 5.3 登錄模塊實現(xiàn)us
33、ing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Catering.Model;using Catering.BLL;namespace Catering public partial class FrmLogin : Form public FrmLogin() InitializeCo
34、mponent(); private void btnLogin_Click(object sender, EventArgs e) /帳號和密碼不為空 /帳號 和密碼 類型 string name = txtLoginName.Text.Trim(); /帳號 string pwd = txtPwd.Text.Trim();/密碼 string msg;/要顯示的信息 UserInfo per;/對象 if (CheckInput(name, pwd)/調方法判斷帳號和密碼是否為空 UserInfoBLL bll = new UserInfoBLL(); /調用bll方法驗證帳號和密碼是否正
35、確 if (bll.IsLogin(name, pwd, out msg, out per) /如果登錄成功則在消息窗口顯現(xiàn)登錄成功的狀態(tài)并且等待一分鐘后顯示主窗體 msgDiv1.MsgDivShow(msg, 1, Bind); else msgDiv1.MsgDivShow(msg, 1); void Bind() this.DialogResult = System.Windows.Forms.DialogResult.OK;/登錄成功后設置當前登錄窗口的返回值狀態(tài) /方法驗證登錄時的帳號和密碼是否為空 private bool CheckInput(string name, stri
36、ng pwd) if (string.IsNullOrEmpty(name) msgDiv1.MsgDivShow(帳號不能為空, 1); return false; if (string.IsNullOrEmpty(pwd) msgDiv1.MsgDivShow(密碼不能為空, 1); return false; return true; 登錄界面如圖:5.4 主窗體實現(xiàn)主窗體主要由以下代碼來實現(xiàn):using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using
37、System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Catering.BLL;using Catering.Model;namespace Catering public partial class FrmMain : Form public FrmMain() InitializeComponent(); / / 獲取所有的包間類型 / / 未刪除的標識 0 刪除標識是1 private void LoadRoomByDelFlag(int delFlag) RoomInfoB
38、LL roomBll = new RoomInfoBLL(); List list = roomBll.GetAllRoomByDelFlag(delFlag); for (int i =list.Count-1 ; i =0 ; i-) TabPage tp= new TabPage(); tp.Tag = listi;/每個對象綁定到該控件的tag屬性中 tp.Text = listi.RoomName; /并且為該控件 ListView lv = new ListView(); /設置ListView控件顯示樣式- lv.Dock = DockStyle.Fill; lv.LargeIm
39、ageList = imageList1; lv.View = View.LargeIcon; lv.BackColor = Color.White; lv.ItemSelectionChanged += new ListViewItemSelectionChangedEventHandler(Listview_ItemSelectionChanged);/為每個listview控件注冊一個選項值改變的事件 /為TblPage控件添加ListView控件 tp.Controls.Add(lv); /為tclInfo控件添加TabPate控件 tclInfo.TabPages.Add(tp);
40、/顯示當前餐桌的點菜內容 void Listview_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) if (e.IsSelected) DeskInfo desk= e.Item.Tag as DeskInfo; ROrderDeskBLL rdBll = new ROrderDeskBLL(); int orderId = rdBll.GetOrderIdByDeskId(desk.DeskId);/餐桌編號 ROrderInfoProductBLL bllORderProduct =
41、 new ROrderInfoProductBLL(); List list = bllORderProduct.GetProductOrderInfo(orderId); dgvPro.AutoGenerateColumns = false;/禁止自動添加列 dgvPro.DataSource = list;/加載菜單 private void LoadDeskByRoomIdDelFlag(TabPage tp, int delFlag) RoomInfo room = tp.Tag as RoomInfo; ListView lv= tp.Controls0 as ListView; l
42、v.Clear();/清空 /根據(jù)包間的id和刪除標識,查詢該包間所有的餐桌 DeskInfoBLL dkBll = new DeskInfoBLL(); List list = dkBll.GetAllDeskByRoomIdAndDelFlag(room.RoomId,delFlag); for (int i = 0; i list.Count; i+) if (listi.DeskState=0)/判斷餐桌的狀態(tài)是0 lv.Items.Add(listi.DeskName, 0); else if (listi.DeskState = 1)/判斷餐桌的狀態(tài)是1 lv.Items.Add(
43、listi.DeskName, 1); else if (listi.DeskState=2)/判斷餐桌的狀態(tài)是2 lv.Items.Add(listi.DeskName, 2); lv.Itemsi.Tag = listi; public event EventHandler evt; public event EventHandler evtFrmMoney; public event EventHandler evtBalance; private void FrmMain_Load(object sender, EventArgs e) /窗體加載的時候第一個問題就是去數(shù)據(jù)庫中查詢所有
44、的房間類型,根據(jù)房間類型動態(tài)加載TblPage控件, LoadRoomByDelFlag(0);/此方法在上面 /獲取房間的類型 TabPage tb = tclInfo.TabPages0; /根據(jù)房間類型的編號獲取該房間內所有的餐桌編號 LoadDeskByRoomIdDelFlag(tb,0); tclInfo.SelectedIndexChanged += new EventHandler(tclInfo_SelectedIndexChanged); /窗體關閉刷新數(shù)據(jù) void Frm_Closing(object sender, FormClosingEventArgs e) /
45、lv.Items.Clear(); TabPage tp= tclInfo.SelectedTab; LoadDeskByRoomIdDelFlag(tp,0); / / TabControl控件的選中項值改變事件 / void tclInfo_SelectedIndexChanged(object sender, EventArgs e) /選項內容更改時候發(fā)生 / TabControl tbInfo = sender as TabControl;/ TabPage tp= tclInfo.TabPagestclInfo.SelectedIndex; /ListView lv = tp.Co
46、ntrols0 as ListView; /lv.Items.Clear(); LoadDeskByRoomIdDelFlag(tp, 0); /會員管理 private void tsslBtnMember1_Click(object sender, EventArgs e) /顯示會員窗口 FrmMember frmMember = new FrmMember(); frmMember.ShowDialog(); /商品管理 private void tsslBtnCommodity1_Click(object sender, EventArgs e) FrmCommodity fcd =
47、 new FrmCommodity(); fcd.ShowDialog(); /房間管理 private void tsslBtnRoom1_Click(object sender, EventArgs e) FrmRoom fr = new FrmRoom(); fr.ShowDialog(); /顧客開單 private void tsslBtnBilling1_Click(object sender, EventArgs e) TabPage tp = tclInfo.SelectedTab; ListView lv = tp.Controls0 as ListView; if (lv.
48、SelectedItems.Count 0) ListViewItem lvItem = lv.SelectedItems0;/獲取當前選中項 DeskInfo desk = lvItem.Tag as DeskInfo;/獲取tag屬性中的餐桌對象 if (desk.DeskState = 0)/餐桌狀態(tài)有0-空閑-1-開單-2-開桌 FrmBilling fb = new FrmBilling(); this.evt += new EventHandler(fb.SetValues); fb.FormClosing += new FormClosingEventHandler(Frm_Cl
49、osing); if (this.evt != null) FrmEventArgs fea = new FrmEventArgs(); fea.Name = tp.Text; fea.Obj = desk;/lvItem; fea.Money = (tp.Tag as RoomInfo).RoomMinimunConsume.ToString(); this.evt(this, fea); fb.ShowDialog(); / this.FBilling.ShowDialog();/顯示開單窗體 else MessageBox.Show(請選擇為開桌或者未開單的餐桌); else Messa
50、geBox.Show(請選擇餐桌); /增加消費 private void tsslBtnConsumption1_Click(object sender, EventArgs e) TabPage tp = tclInfo.SelectedTab; ListView lv = tp.Controls0 as ListView; if (lv.SelectedItems.Count 0) ListViewItem lvItem = lv.SelectedItems0;/獲取當前選中項 DeskInfo desk = lvItem.Tag as DeskInfo;/獲取tag屬性中的餐桌對象 i
51、f (desk.DeskState = 1)/餐桌狀態(tài)有0-空閑-1-開單-2-開桌 FrmAddMoney fam = new FrmAddMoney(); this.evtFrmMoney += new EventHandler(fam.SetValues); fam.FormClosing += new FormClosingEventHandler(Frm_Closing); if (this.evtFrmMoney != null) FrmEventArgs fea = new FrmEventArgs(); fea.Obj = desk; this.evtFrmMoney(this
52、, fea); fam.ShowDialog(); /this.FAM.ShowDialog(); else MessageBox.Show(請選擇開單或者開桌的餐桌); else MessageBox.Show(請選擇餐桌); /結賬 private void tsslBtnCheckOut1_Click(object sender, EventArgs e) TabPage tp = tclInfo.SelectedTab; ListView lv = tp.Controls0 as ListView; if (lv.SelectedItems.Count 0)/大于0證明有選中的項 Li
53、stViewItem lvItem = lv.SelectedItems0;/獲取當前選中項 DeskInfo desk = lvItem.Tag as DeskInfo;/獲取tag屬性中的餐桌對象 if (desk.DeskState = 1)/餐桌狀態(tài)有0-空閑-1-開單-2-開桌 FrmBalance fal = new FrmBalance(); this.evtBalance += new EventHandler(fal.SetValues); fal.FormClosing += new FormClosingEventHandler(Frm_Closing); if (thi
54、s.evtBalance != null) FrmEventArgs fea = new FrmEventArgs(); fea.Obj = desk; this.evtBalance(this, fea); fal.ShowDialog(); else MessageBox.Show(請選擇開單的餐桌); else MessageBox.Show(請選擇餐桌); 主窗體界面如圖:5.5.4 功能實現(xiàn)的補充說明該模塊是主要是對該系統(tǒng)的功能實現(xiàn)做補充。主要由以下功能圖5-17,詳細見系統(tǒng)源碼:6 結束語經過這次開發(fā)基于.NET的餐飲管理系統(tǒng)系統(tǒng)的設計與實現(xiàn)的畢業(yè)設計,使我對.NET有較深的認識及
55、體會。在本開發(fā)系統(tǒng)時,由于是本人初次接觸有關.NET領域;在知識、經驗方面都存在著太多的不足。另外,在開發(fā)的整個過程中,時間也較倉促。因此,該系統(tǒng)必然會存在很多不足。因為對整個學校的管理模式不夠了解及對整個系統(tǒng)的流程不夠熟悉,在需求分析階段用戶的需求未能做到完全滿足,如系統(tǒng)還沒做到請假信息的管理,不能從考核信息中得出考核工資等等。在系統(tǒng)功能上,還有部分問題是我還沒有考慮到的,所以本系統(tǒng)還有繼續(xù)開發(fā)一定空間。不過,我覺得學習一種新的技術能學習到運用此技術開發(fā)出一個有意義的系統(tǒng)是不容易的,這同時也使我增強對知識的渴望和追求的欲望。在整個軟件的設計開發(fā)過程中真實感受到設計開發(fā)的長期和艱辛,同時也獲得設計開發(fā)的經驗和感受,首先就是始終要有對項目開發(fā)的興趣、愛好、激情和積極追求的思維;其
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手房協(xié)議購房
- 分家協(xié)議范本2025
- 2024版二手房房屋買賣合同協(xié)議15篇
- 工作領域2 新居住項目產品與價格策70課件講解
- 2023年酒店、廚房設備用品項目融資計劃書
- 2023年消化系統(tǒng)用藥項目融資計劃書
- 2023年全自動金屬帶鋸床超精密加工機床項目融資計劃書
- 【虎嘯】2024年虎嘯年度洞察報告-3C家電行業(yè)
- 機械制圖考試題+答案
- 廣東省茂名市高州市2023-2024學年八年級上學期期末考試數(shù)學試卷(含答案)
- GB∕T 16754-2021 機械安全 急停功能 設計原則
- 中國美術學院學士學位論文規(guī)范化要求
- 中國美食英文介紹ppt課件
- 語文課外閱讀興趣小組活動記錄
- 幼兒園大班教案《中國茶》含反思
- 九年級物理第十六章《電壓和電阻》復習課教案
- 影響機械加工表面質量的因素及采取的措施
- 人工關節(jié)置換技術管理制度、質量保障措施、風險評估及應急預案資料
- 淺談窩工、停工、趕工索賠方式方法探討
- 舞臺燈光施工方案
- 中國石拱橋課件正稿
評論
0/150
提交評論