版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE PAGE III毕业论文(设计) 题 目基于.NET的餐饮管理系统设计与实现 学生姓名 学 号 系 别 年 级 专 业 指导教师 职 称 教授 完成日期 摘 要随着信息技术在企业管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个企业要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。本文主要研究如何开发餐饮管理系统,解释了开发餐饮管理系统的必要性和重要性,系统的开发在.net平台上进行,结合后端的Sqlite数据库技术,用C#.net进行编码,开发出一个符合企业需要,比较实用的信息
2、管理系统。通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考许多资料,在指导老师的帮助下,详细分析了企业管理系统的几个主要设计阶段:需求分析、概要设计和详细设计,同时给出了系统实现的具体思想方案,并列举了实际工程中的实例创建过程、方法和效果。该系统开发由系统需求分析阶段、概念设计阶段、逻辑设计阶段、数据库实施阶段、系统调试和测试阶段、参考文献、附录等阶段组成。关键词:餐饮管理现代化,人工管理,功能模块,存储过程目 录 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 课题的提出、现状及研究意义 PAGEREF _Toc290809313 h 1 HYPERLINK l _Toc290809314 1.2 课题的研究内容 PAGEREF _Toc290809314 h 1 HYPERLINK l _Toc290809315 1.3 论文的章节安排 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 系统需求分析 PAGEREF _Toc290809319 h 7 HYPERLINK l _Toc290809320 3.1 系统需求分析 PAGEREF _Toc290809320 h 7 HYPERLINK l _Toc290809321 3.2 系统类图 PAGEREF
5、 _Toc290809321 h 7 HYPERLINK l _Toc290809322 3.3 系统用例图 PAGEREF _Toc290809322 h 7 HYPERLINK l _Toc290809323 4 系统设计 PAGEREF _Toc290809323 h 9 HYPERLINK l _Toc290809324 4.1 系统总体结构 PAGEREF _Toc290809324 h 9 HYPERLINK l _Toc290809325 4.2 系统详细设计 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 数据库设计 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 系统实现 PAGEREF _Toc290809331 h 13 HYPERLINK l _Toc290809332 5.1 系统数据库连接实现 PAGEREF _Toc290809332 h 13 HYPERLINK l _Toc290809333 5.3 登录模块实现 PAGEREF _Toc290809333 h 14 HYPERLINK l _Toc290809334 5.4 主窗体实现 PAGEREF _Toc290809334 h 17 HYPERLINK l _Toc290809335 5.5.4 功能实现的补充说明 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的餐饮管理系统设计与实现PAGE 281 绪论1.1 课题的提出、现状及研究意义近年来,随着人民的生活水平的不断提高,餐饮业的消费持续增长,竞争愈来愈激烈。然而,传统餐饮企业的日常运作还是靠人工管理,从原材料入库到客人点单,再到结账基本上由人工完成记录,这样做不仅耗费人力资源而且容易导致记录丢失或重复等错误,造成管理水平低下。XX酒店作为传统的餐饮企业也存在这些问题,进货,库存有人工管理,客人点单需服务员记录并送至厨房,客人结账由手工记录,人力耗费大,客人等待时间长,管理效率低下,这就迫切需要标准的、高效率的计算机管理方式引导其发展,通过计算机管理
10、该企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率。改革开放二十多年来,我国餐饮业发展迅猛,日新月异,各种风味特色,各种经营形式,各种组织结构的餐饮企业星罗棋布,但“竞争激烈,生意难作”也成了餐饮业的“流行脖。更新经营方式,拓展大众市场,建全餐饮业的“软硬”件设施,发展餐饮信息渠道是我国餐饮业应探索的主旋律。所以,社会化,科学化,集锦化21世纪的发展方向。当今世界已进入了在计算机信息管理领域中激烈竞争的时代,应用计算机已经变得十分普遍了,如同我们离不开的自行车、汽车一样。我们应该承认,谁掌握的知识多,信息量大,信息处理速度快,批量大,谁的效率就高,谁就能够在各种竞争中
11、立于不败之地。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。越来越多的管理人员意识到信息管理的重要性。所以说科学化是二十一世纪餐饮业的主流目前,国内的餐饮管理系统几种情况是:中国的软件系统大多源自管理信息系统(MIS),从部门业务需求的角度出发设计。管理信息系统设计的初衷是服务于学校内绝大多数的业务操作人员,将业务操作人员的重复性劳动予以初场户动化,即从管理理论抽象出理想化的业务管理模式,在基于该业务模式的摹础上实现低层次的数据处理或业务流程电子化。管理信息系统的设计,是根据中小型学校业务单元的需求来编写的,一般无
12、法满足多体制、多元化、多董组织结构的大型学校数据处理需求。与国外同类应用系统及解决方案相比较,目前中国的管理软件还有一些缺憾:第一,很多是从管理信息系统演变而来,虽然目前国内的管理软件已将模块功能扩展至学校管理或人才资本管理相关的整个业务领域,但系统在整体性、前瞻性和集成性方面仍有欠缺。1.2 课题的研究内容本课题是设计一个基于.NET的餐饮管理系统。本系统属于小型的餐饮管理系统,可以有效地对中小型餐厅消费进行管理,本系统应达到以下目标:系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。实现对餐厅顾客开台、点菜/加菜、账目查询和结账等操作。对用户输入的数据,进行严格的
13、数据检验,尽可能的避免人为错误。实现对消费账目自动结算。实现对消费的历史记录进行查询,支持模糊查询。系统应最大限度地实现易维护性和易操作性。1.3 论文的章节安排整篇论文是基于.NET为背景,从.NET的知识、体系结构等方面,介绍.NET的餐饮管理系统设计与开发实现。具体章节安排如下:第一章绪论阐明了论文课题的提出及其意义,以及本课题研究内容。第二章主要介绍了研究本课题的涉及到的技术和个性技术的特征、功能和应用领域。第三章介绍系统的需求分析,并重点分析了系统功能需求分析以及系统的UML图等。第四章介绍系统设计,并对系统的数据库设计进行的详细分析。第五章进行系统实现设计的分析,包括部分界面分析和
14、部分代码说明。第六章是结束语。总结论文及设计所做的主要及取得的成果,并对系统和.NET下一步要做的进行了分析。2 相关技术介绍2.1 CC#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windo
15、ws网络框架的主角。 Visual Studio.NET从一开始就是为XML Web服务创建的开发环境。通过允许应用程序通过Internet沟通和共享数据,XML Web服务使业务能够从Internet转换为用于集成和传送它们的核心商业价值的真正平台。Visual Studio.NET和XML Web服务提供简单,灵活和基于标准的模型。允许开发人员从新的和现有的代码汇编应用程序,而与平台,编程语言或对象模型无关。而.NET Framework是一个新的开发平台,它为局域网 (LAN) 和 Internet 上的分布式企业应用提供了一致和有效的支持。 .NET Framework由两个主要部分组
16、成:CLR(通用语言运行时, Common Language Runtime)和一组统一的类库,包括ASP.NET、ADO.NET、Windows Forms和其他能力。C# (C sharp) 是微软对这一问题的解决方案。C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML 网络服务,从
17、而使它们可以由任何语言在任何操作系统上通过Internet进行调用。.NET是 Microsoft XML .NET 平台。XML .NET 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML .NET 并将这些服务集成在一起之所需。C#是一个语言,.net是一个平台,上面支持用C#或者VBdotNet写代码。 另外,C#不但可以开发基于.net的应用程序,也可以开发基于WinForm的程序,这就是区别。 若是单纯以概念来说,你可以把.net当做一个工作平台一般,它是一个开发环境的基底,提供你
18、开发Windows、Web、Mobile、XML.等应用程式一个共通的平台,若是要了解深一点,则再去了解其运作的相关机制那是有助于你利用它来开发.C#和.NET主要是应用在网际网路. C#(读做C-sharp)编程语言是由微软公司的Anders Hejlsberg和 Scott Willamette领导的开发小组专门为.NET平台设计的语言,它可以使程序员移植到.NET上。这种移植对于广大的程序员来说是比较容易的,因为C#从C,C+和Java发展而来,它采用了这三种语言最优秀的特点,并加入了它自己的特性。C#是事件的驱动的,完全面向对象的可视化编程语言,我们可以使用集成开发环境来编写C#程序。
19、使用IDE,程序员可以方便的建立,运行,测试和调试C#程序,这就将开发一个可用程序的时间减少到不用IDE开发时所用时间的一小部分。使用IDE迅速建立一个应用程序的过程称为快速反映开发。 . NET 是 Microsoft 的 XML Web 服务平台。不论操作系统或编程语言有何差别,XML Web 服务能使应用程序在 Internet 上传输和共享数据。 Microsoft .NET 平台包含广泛的产品系列,它们都是基于 XML 和 Internet 行业标准构建,提供从开发、管理、使用到体验 XML Web 服务的每一方面。XML Web 服务将成为您今天正在使用的 Microsoft 的应
20、用程序、工具和服务器的一部分 并且将要打造出全新的产品以满足您所有业务需求。 更具体地说,Microsoft 正在五个方面创建 .NET 平台,即工具、服务器、XML Web 服务、客户端和 .NET 体验。C#2.0新特性:1、 泛型:在我看来,泛型就是通过将数据类型参数化从而实现了代码的更为灵活的复用,泛型的出现使得C#能够使用同一段代码来操作多种数据类型。泛型无疑是C#2.0最重大的改进,它的出现赋予了C#代码更强的类型安全,更好的复用,更高的效率和更清晰的约束。 2、 匿名方法:匿名方法允许我们将代码直接与委托实例相关联,使委托实例化工作更加直观和方便。在我看来,这只是C#又多了一种语
21、法格式而已,不再像以前必须将方法名传给委托实例,而是又多了一种选择。 3、 迭代器:迭代器允许我们更加方便的编写用于foreach语句的类型。在我看来,迭代器的出现只不过是改进了1.0中不便的可用foreach语句类型的编写限制,简化了一些接口。 4、 局部类型:局部类型允许我们将一个类的代码分别写在不同的cs文件中。最典型的应用就是使用VS2005创建Form文件时,VS会自动将系统生成的代码与用户代码分开。局部类型通过partial关键字来声明。 5、 空属类型:空属类型是一种像int,一样可以为空的变量类型。本质上是一种泛型的应用,是System .Nullable的一种类型实例化。 6
22、、 静态类:静态类是只用于包含静态成员的类型,它既不能实例化,亦不能被继承。2.2 .SQL SERVER简介SQLite,是一款轻型的数据库,是遵守ACID的关系型 HYPERLINK /view/68446.htm t _blank 数据库管理系统,它的设计目标是 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 操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的 HYPERLINK /view/68446.htm t _blank 数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个 HYPERLINK /view/707803.htm t _blank Alpha版本诞生于2000年5月。 至今已经有13个年头,SQLite也迎来了一个版本 SQLite
24、 3已经发布。Sqlite 数据引擎是本企业数据管理解决方案的核心。同时它还支持 HYPERLINK /view/709594.htm t _blank 事务处理功能等等。也有人说它象Microsoft的Access,有时候真的觉得有点象,但是事实上它们区别很大。比如SQLite 支持跨平台,操作简单,能够使用很多语言直接创建数据库,而不象Access一样需要Office的支持。如果是个很小型的应用,或者想做 HYPERLINK /view/55.htm t _blank 嵌入式开发,没有合适的 HYPERLINK /view/7809.htm t _blank 数据库系统,那么都可以考虑使用
25、SQLite。3 系统需求分析3.1 系统需求分析作为餐饮管理系统,首先需要具有餐饮管理员可以运用系统来进行登记的功能。在进行登记后,餐饮管理员就可以登录了,在登录以后可以对现有的信息的查看、修改等。由于餐饮管理系统是信息管理系统,利用计算机网络的巨大潜在力量、数据信息的理念,从而减少人、物及财等方面上的消耗,完成合理的资源分配。其开发的功能主要包括:本课题是设计一个基于.NET的餐饮管理系统。确的餐饮管理依据与辅助决策数据。3.2 系统类图4 系统设计4.1 系统总体结构根据以上对餐饮管理系统的功能需求分析。现对餐饮管理系统分析。 4.2 系统详细设计不管是管理员还是普通餐饮管理员登录系统都
26、要进行正确的判断后,才能登入到系统,登录活动图如图4-2所示:图4-2 系统登录活动图4.3 数据库设计4.3.1 概念设计5 系统实现5.1 系统数据库连接实现在系统开发过程中,采用三层架构模式开发,因为要多处涉及到对数据库的连接,如果这些连接都在各个C#.NET程序中去实现,那样将会非常繁琐,代码重复量比较大,因此,为了简化这些连接操作,在开发时设计了一个可重用的类SQLiteHelper.cs,把对数据库的操作都封装在在这个类中,需要用到时生成对象调用便可,其流程图如图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、 / 参数数组 / 返回受影响的行数 public static int ExecuteNonQuery(string sql, params SQLiteParameter param) /创建连接字符串 using (SQLiteConnection con = new SQLiteConnection(str) /创建执行sql语句对象 using (SQLiteCommand cmd = new SQLiteCommand(sql, con) con.Open();/打开数据库 cmd.Parameters.AddRange(param);/添加参数列表 return cmd.Exec
29、uteNonQuery();/执行命令 / / 此方法用来返回首行首列 / / sql语句 / 参数数组 / 返回值为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(); / / 此方法用来返回每一行数据 / / sql语句 / 参数可变数组 / 返回值为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 登录模块实现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) /如果登录成功则在消息窗口显现登录成功的状态并且等待一分钟后显示主窗体 msgDiv1.MsgDivShow(msg, 1, Bind); else msgDiv1.MsgDivShow(msg, 1); void Bind() this.DialogResult = System.Windows.Forms.DialogResult.OK;/登录成功后设置当前登录窗口的返回值状态 /方法验证登录时的帐号和密码是否为空 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 主窗体实现主窗体主要由以下代码来实现: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();/清空 /根据包间的id和删除标识,查询该包间所有的餐桌 DeskInfoBLL dkBll = new DeskInfoBLL(); List list = dkBll.GetAllDeskByRoomIdAndDelFlag(room.RoomId,delFlag); for (int i = 0; i list.Count; i+) if (listi.DeskState=0)/判断餐桌的状态是0 lv.Items.Add(listi.DeskName, 0); else if (listi.DeskState = 1)/判断餐桌的状态是1 lv.Items.Add(
43、listi.DeskName, 1); else if (listi.DeskState=2)/判断餐桌的状态是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) /窗体加载的时候第一个问题就是去数据库中查询所有
44、的房间类型,根据房间类型动态加载TblPage控件, LoadRoomByDelFlag(0);/此方法在上面 /获取房间的类型 TabPage tb = tclInfo.TabPages0; /根据房间类型的编号获取该房间内所有的餐桌编号 LoadDeskByRoomIdDelFlag(tb,0); tclInfo.SelectedIndexChanged += new EventHandler(tclInfo_SelectedIndexChanged); /窗体关闭刷新数据 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) /选项内容更改时候发生 / 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)/餐桌状态有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)/餐桌状态有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)/餐桌状态有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 功能实现的补充说明该模块是主要是对该系统的功能实现做补充。主要由以下功能图5-17,详细见系统源码:6 结束语经过这次开发基于.NET的餐饮管理系统系统的设计与实现的毕业设计,使我对.NET有较深的认识及
55、体会。在本开发系统时,由于是本人初次接触有关.NET领域;在知识、经验方面都存在着太多的不足。另外,在开发的整个过程中,时间也较仓促。因此,该系统必然会存在很多不足。因为对整个学校的管理模式不够了解及对整个系统的流程不够熟悉,在需求分析阶段用户的需求未能做到完全满足,如系统还没做到请假信息的管理,不能从考核信息中得出考核工资等等。在系统功能上,还有部分问题是我还没有考虑到的,所以本系统还有继续开发一定空间。不过,我觉得学习一种新的技术能学习到运用此技术开发出一个有意义的系统是不容易的,这同时也使我增强对知识的渴望和追求的欲望。在整个软件的设计开发过程中真实感受到设计开发的长期和艰辛,同时也获得设计开发的经验和感受,首先就是始终要有对项目开发的兴趣、爱好、激情和积极追求的思维;其
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二手房协议购房
- 分家协议范本2025
- 2024版二手房房屋买卖合同协议15篇
- 工作领域2 新居住项目产品与价格策70课件讲解
- 2023年酒店、厨房设备用品项目融资计划书
- 2023年消化系统用药项目融资计划书
- 2023年全自动金属带锯床超精密加工机床项目融资计划书
- 【虎啸】2024年虎啸年度洞察报告-3C家电行业
- 机械制图考试题+答案
- 广东省茂名市高州市2023-2024学年八年级上学期期末考试数学试卷(含答案)
- 国家开放大学《C语言程序设计》章节测试参考答案
- GB∕T 16754-2021 机械安全 急停功能 设计原则
- 中国美术学院学士学位论文规范化要求
- 中国美食英文介绍ppt课件
- 语文课外阅读兴趣小组活动记录
- 幼儿园大班教案《中国茶》含反思
- 九年级物理第十六章《电压和电阻》复习课教案
- 影响机械加工表面质量的因素及采取的措施
- 人工关节置换技术管理制度、质量保障措施、风险评估及应急预案资料
- 浅谈窝工、停工、赶工索赔方式方法探讨
- 舞台灯光施工方案
评论
0/150
提交评论