ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:325.05KB ,
资源ID:4576849      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4576849.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C#餐饮管理系统详细设计含所有窗体代码.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C#餐饮管理系统详细设计含所有窗体代码.docx

1、C#餐饮管理系统详细设计含所有窗体代码餐饮管理系统1。1开发背景近几年来,计算机网络、分布技术日趋成熟,随着科技的发展,餐饮业的竞争也越来越激烈.想在这样竞争激烈的环境下生存,就必须运用科学的管理思想与先进的管理方法,使点餐与管理一体化。这样不仅提高了工作效率,也避免了以前手工作业的麻烦,从而使管理者能够准确、有效地管理餐饮。因此,餐饮业的管理者更希望从科学的管理中取得竞争的优势,在竞争激烈的商业市场中取胜。1。2系统分析1。2。1 需求分析通过与XXX餐饮公司的沟通和需求分析,要求系统具体以下功能:系统操作简单,界面友好规范、完善的基础信息设置;支持多人操作,要求有权限分配功能;为了方便用户

2、,要求系同支持模糊查询;实现对消费账目自动结算.1。2。2可行性分析1引言(1)编写目的以文件的形式给企业的决策层提供项目实施的参考依据,其中包括项目存在的风险、项目需要的投资和能够收获的最大效益。(2)背景 XXX餐饮公司是一家以餐饮经营为主的私营企业.为了完善管理制度、增强企业的竞争力、实现信息化管理,公司决定开发餐饮管理系统。2可行性研究的前提(1)要求餐饮管理系统必须提供桌台信息、菜品信息和人事档案信息的基础设置;强大的查询功能和消费管理功能;可以分不同权限、不同用户对该系统进行操作。另外,该系统还必须保证数据的安全性、完整性和准确性.(2)目标餐饮管理系统的目标是实现企业的信息化管理

3、,节约人力、物力、财力等资源,提高餐饮行业的服务效率并提升企业市场竞争力。(3)条件、假定和限制为实现企业的信息化管理,必须对才做人员进行培训,而且将原有的菜品、桌台、人事档案等信息转换为信息化数据,需要操作员花费大量时间和精力来完成,为不影响企业的正常运行,餐饮管理系统必须在两个月的时间内交付用户使用。系统分析人员需要两个内到位,用户需要4天时间确认需求分析文档。去除其中可能出现的问题,例如用户可能临时有事,占用5天时间确认需求分析。那么程序开发人员需要在一个月零19天的时间内进行系统设计、程序编码、系统测试、程序调试和程序的打包工作.其间,还包括员工每周的休息时间.(4)评价尺度根据用户的

4、要求,项目主要以桌台信息、菜品信息和查询统计功能为主,对于认识档案和消费信息应该及时准确地保存,并提供相应的查询和统计。3投资及效益分析(1)支出根据系统的规模及项目的开发周期(两个月),公司决定投入7个人。为此,公司将直接支付10万元的工资及各种福利待遇。在项目安装及调试阶段,用户培训、员工出差等费用支出需要2万元.在项目维护阶段预计需要投入3万元的资金.累计项目投入需要15万元资金.(2)收益用户提供项目资金35万元.对于项目运行后进行的改动,采取协商的原则根据改动规模额外提供资金。因此从投资与收益的效益比上看,公司可以获得20万元的利润。项目完成后,会给公司提供资源储备,包括技术、经验的

5、累积,其后在开发类似的项目时,可以极大地缩短项目开发周期。4结论根据上面的分析,在技术上不会存在问题,因此项目延期的可能性很小。在效益上公司投入7个人、两个月的时间获利20万元,效益比较可观。在公司今后发展上可以储备项目开发的经验和资源.因此认为该项目可以开发。1。3系统设计1.3。1系统目标本系统属于小型的餐饮管理系统,可以有效地对中小型餐厅消费进行管理。本系统应达到以下目标:系统采用人机交互的方式,界面美观有好,信息查询灵活、方便,数据存储安全可考;实现对餐厅客户开台、点菜/加菜、账目查询和结账等操作;对用户数的数据进行严格的数据检验,尽可能地避免人为错误;实现对消费账目自动结算;实现对消

6、费的历史记录进行查询、支持模糊查询;系统应最大限度地实现易维护性和易操作性.1.3。2 系统功能结构餐饮管理系统功能结构如图1_1所示。图1_1 系统功能结构图1.3.3业务逻辑编码规则遵守程序编码规则所开发的程序,代码清晰、整洁、方便阅读,并可以提高程序的可读性,真正做到“见名知意.本节哦哪个数据库设计和程序编码两个方面介绍程序开发中的编码规则。1数据库对象命名规则(1)数据库命名规则数据库命名以字母db开头(小写),后面加数据库相关英文单词或缩写。下面将举例说明,如表1_1所示。表1_1 数据库命名数据库名称描述db_MrCy餐饮管理系统数据库(2)数据表命名规则数据表命名以字母tb开头(

7、小写),后面加数据库相关英文单词或缩写和数据表名,多个单词间用“_分隔。下面将举例说明,如表1_2所示。表1_2 数据表命名数据表名称描述tb_food点菜信息表tb_foodtype菜品类别信息表(3)字段命名规则字段一律采用英文单词或词组(可利用翻译软件)命名,如找不到专业的英文单词或词组,可以用相同意义的英文单词或词组代替。下面将举例说明,表1_3为桌台信息表中的部分字段。表1_3 字段命名数据表名称描述RoomName桌台名称RoomJC桌台位置RoomZT桌台状态2业务编码规则(1)桌台编号桌台的ID编号是餐饮管理系统中桌台的唯一标识,不同的桌台可以通过该编号来区分。该编号是个字增序

8、号,从数字1开始。例如1、2、3。(2)食品类别编号食品类别编号用于区分食品的不同类别,不同的食品种类可以通过该编号来区分。该编号是个字增序号,从数字1开始.例如1、2、3。(3)员工编号员工编号用于区分各个员工的信息,不同的员工可以通过该编号来区分(即使员工名称相同)。该编号是个字增序号,从数字1开始。例如1、2、3.1.3.4系统预览餐饮管理系统由多个窗体组成,下面仅列出几个典型窗体,主窗体模块如图1_2所示,主要功能是连接系统功能菜单、显示所有桌台和现实系统当前状态.图1_2 主窗体模块点菜模块如图1_3所示,主要功能是为顾客点菜.图1_3 点/加菜模块开台模块如图1_4所示,主要功能是

9、实现对指定的桌台进行开台操作。图1_4 开台模块运行结果结账模块如图1_5所示,主要功能是对指定的桌台进行结账操作,同时,清空结账桌台的所有消费信息。图1_5 结账模块运行结果1。3.5业务流程图餐饮管理系统的业务流程图如图1_6所示.图1_6 餐饮管理系统的业务流程图1.4数据库设计1。4。1 数据库概要说明在本系统中,采用的是SQL Server2008数据库,用来存储商品信息、桌台信息、员工信息、操作员信息等。这里将数据库命名为db_MrCy,其中包含了6张数据表,用于存储不同的信息,如图1_7所示。图1_7 数据库结构1.4.2 数据库概念设计通过对数据库进行的需求分析、业务流程设计及

10、系统功能结构的确定,规划出系统中使用的数据库实体对象及实体E-R图.由于商品的种类很多,因此需要对商品进行分类,这样就可以对商品分门别类地进行存储,在查询时可以根据商品类别进行查询,商品信息实体ER图如图1_8所示.在数据库中建立一个商品类型信息表,用于存储商品的所有类别信息,商品类别信息实体E-R图如图1_9所示。图1_8 商品信息实体E-R图图19 商品类别信息实体ER图当顾客进行消费时,顾客会根据自己的需求消费不同的商品,系统将顾客消费的所有信息存储到数据表中,以便顾客结账时查询,在数据库中建立一个顾客消费信息表用于存储顾客的消费记录。顾客消费信息实体ER图图如1_10所示.1_10 顾

11、客消费信息实体E-R图餐厅中会有多个桌台供顾客选择,每个桌台会有不同的信息。例如,大厅01号桌被顾客使用,顾客人数为5人等,方便操作员对桌台的操作,在数据库中建立一个桌台信息表用于存储所有桌台的详细信息。桌台信息实体ER图如图1_11所示.图6_11 桌台信息实体E-R图为了对系统进行不同的管理,需要为系统建立管理用户.这些用户通过登录模块登录系统,登录成功之后会根据不同的权限对不同的功能模块进行管理,在数据库中建立一个用户信息表,用于存储登录用户信息。用户信息实体ER图如图1_12所示.图1_12 用户信息实体ER图在餐饮行业中,餐厅服务员起着及其重要的作用,但是由于服务人员数众多,如果不进

12、行相应的信息记录,可能管理起来会非常困难。因此,需要对服务人员的详细信息进行记录。在数据库中建立一个志愿信息表用于存储所有服务人员的信息.支援信息实体E-R图图如1_13所示。图1_13 职员信息实体ER图1。4。3数据库逻辑设计根据设计好的ER图在数据库中创建各表,系统数据库中各表的结构如下.1tb_Food(商品信息表)tb_Food表用于保存所有商品信息,该表的结构如表1_4所示。表1_4 商品信息表字段名称数据类型字段大小说明IDint1系统编号foodtychar10类别编号foodnumchar10商品代号foodnamevarchar50商品名称foodpricedecimal9

13、商品价格2tb_FoodType(商品类别信息表)tb_FoodType表用于保存商品类别信息,该表的结构如表1_5所示。表1_5 商品类别信息表字段名称数据类型字段大小说明IDint4系统编号foodtypevarchar50商品类别名称3tb_GuestFood(顾客消费信息表)tb_GuestFood表用于保存顾客的消费信息,该表结构如表1_6所示。表1_6 顾客消费信息表字段名称数据类型字段大小说明IDint4系统编号foodnumchar10商品代号foodnamevarchar50商品名称foodsumchar10消费数量foodallpricedecimal9商品价格waiter

14、namevarchar50操作员姓名beizhuvarchar50备注zhuotaichar10消费桌台datatimevarchar50消费时间4tb_Room(桌台信息表)tb_Room表用于保存所有桌台信息,该表结构如表1_7所示。字段名称数据类型字段大小说明IDint4系统编号RoomNamechar10桌台名称RoomJCchar10桌台简称RommBJFdecimal9桌台包间费RoomWZchar10桌台位置RoomSZTchar10桌台状态RoomTypechar10桌台类型RoomBZvarchar50桌台备注RoomQTvarchar50桌台其他信息GuestNamevar

15、char50顾客姓名zhangdanDatevarchar50开台时间Numint4顾客人数WaiterNamevarchar50操作员姓名5tb_User(用户信息表)tb_User表用于保存所有系统用户信息,该表结构如表1_8所示.表1_8 用户信息表字段名称数据类型字段大小说明IDint4系统编号UseNamevarchar50用户登录名UserPwdvarchar50用户登录密码powerchar10用户权限6tb_Writer(职员信息表)tb_Writer表用于保存所有职员信息,该表结构如表1_9所示。表1_9 职员信息表字段名称数据类型字段大小说明IDint4系统编号Waiter

16、Namevarchar50职员姓名CardNumvarchar50身份证号码WaiterNumchar10职员编号Sexchar10性别Agechar10年龄Telvarchar50电话1。5 公共类设计为了节省系统资源,实现代码重用,可以在系统中设计一些公共类。本系统中创建了一个DBConn公共类,该类封装了用于连接数据库的方法。由于此类对数据库进行操作,所以需要引入一个命名空间,其主要代码如下:自定义方法CyCon用于连接数据库,此方法返回一个SqlConnection对象,主要代码如下:1。6 系统登录模块设计1。6。1系统登录模块概述为了使系统的安全性得到保障,大多数系统都开发登录模块

17、。只有通过登录模块,才能对登录用户进行验证,只有系统的合法用户才可以进入系统的主界面。登录模块运行结果如图1_14所示。图1_14 登录模块运行结果1.6。2 系统登录模块技术分析运行本系统的登录模块,用户只需要输入用户名和密码,单击“登录”按钮进行验证。登录模块以登录的用户和密码作为搜索条件,在数据库中进行查询。使用SqlDataReader对象的HasRows属性判断登录用户名和密码是否正确.下面介绍SqlDataReader对象的HasRows属性.HasRows属性用于获取一个bool型的值,该值指示SqlDataReader是否包含一行或多行,语法如下:public override

18、 bool HasRowsget;属性值:如果SqlDataReader包含一行或多行,则为true;否则为false。例如,验证登录用户名和密码是否正确,可以通过以下代码实现:1。6.3 系统登录模块实现过程该模块需要使用的数据表示:tb_User系统登录模块的具体实现步骤如下:(1)新建一个Windows窗体,命名为frmLogin.cs,主要用于实现系统的登录功能,该窗体用的主要主要空间表如表110所示。表1_10 登录窗体用到的主要控件控件类型控件ID主要属性设置用途txtName无输入登录用户名txtPwdPasswordChar属性设置为*输入登录用户密码btnSubmitText

19、属性设置为“登录”登录btnCancelText属性设置为“取消”取消(2)由于餐饮系统使用Microsoft SQL Server 2012作为后台数据库,因为先要引用命名空间,以便在程序操作数据库,关键代码如下:单击“登录按钮之后,登录模块首先判断是否输入了用户名和密码,如果没有输入用户名和密码将弹出提示框,提示用户输入登录系统的用户名和密码;如果输入了用户名和密码,系统将判断输入的用户名和密码是否正确,关键代码如下:当用户输入用户名和密码之后,还可以按Enter键登录系统,实现的原理是:在输入密码的文本框的KeyPress事件下,判断是否按了Enter键,如果按了Enter键就会激发“登

20、录”按钮的Click事件,关键代码如下:单击“取消”按钮,退出系统登录,关键代码如下:1。7开台模块设计1.7.1 开台模块概述当顾客要进行消费时,首先要看一下是否还有可用的桌台,如果还有空闲的桌台,那么就要为顾客开台,只有在开台之后,才能为顾客点菜、查询和结账。所以开台模块在整个系统中是非常重要的.开台模块用于对指定的桌台进行开台操作,此功能是通过“开台”窗体实现的,如图1_15所示。图1_15 开台单窗体1.7.2 开台模块技术分析在某个桌台上选择其中右键菜单中的“开台”命令,将根据该桌台的名称弹出相应的开台单窗体,在开台单窗体中用户可以对桌台编号、帐单日期、顾客名称、用餐人数、服务员和备

21、注进行录入或更改。数据录入或修改完毕后,单击“保存”按钮完成开台单的操作。在开发此模块时,主要用到了数据库的更新技术,例如,将姓名为小吕的年龄修改为28,可以使用下面的代码实现:Update tb_ls set age=28 where name=小吕1。7。3 开台模块实现过程本模块使用的数据表示:tb_Room、tb_Waiter(1)新建一个Windows窗体,命名为frmOpen.cs,主要用于实现对指定的桌台进行开台操作的功能,该窗体用到的主要控件如表1_12所示。表1_12 开台单窗体中用到的主要控件控件类型控件ID主要属性设置用途txtNameText属性设置为Guest输入顾客

22、姓名txtNum无输入用餐人数txtBZ无输入开台单备注cbNum无选择开台的桌台号cbWaiter无选择开单的服务员groupBox1无控制布局dateTimePicker1无选择日期btnSaveText属性设置为“保存”保存btnExitText属性设置为“退出”退出(2)首先建立两个公共变量一边程序汇总调用,关键代码如下:在窗体加载时,将数据库中所有的桌台信息和职员信息检索出来显示在ComboBox控件中,关键代码如下:(3)在“用餐人数文本框中输入用餐人数,此数据必须保证为大于0的数字,关键代码如下:(4)当数据输入完毕之后,单击“保存”按钮即可对指定的桌台进行开台操作,关键代码如下

23、:1。8 点/加菜模块设计1。8。1 点/加菜模块概述为顾客选好桌台,并且开台之后,会根据顾客的需要点菜或购买茶水研究之类的消费品,在点/加菜模块中会显示餐厅特有的一些菜系,用户可以对不同的菜系进行选择.点/加菜模块运行结果如图1_16所示.图1_16 点/加菜模块运行结果1.8。2 点/加菜模块技术分析系统点/加菜模块主要利用TreeView控件显示所有的菜系,利用DataGridView控件显示顾客消费的所有信息,当单击某个菜系时,右侧将出现此菜系的所有详细信息,选择菜系后单击“保存按钮完成对指定桌台的点菜操作.1。8。3 点/加菜模块实现过程本模块使用的数据表:tb_Food、tb_Wa

24、iter、tb_Room、tb_GuestFood点/加菜模块的具体实现步骤如下:(1)新建一个Windows窗体,命名为frmDC。cs,主要用于实现系统的点菜功能,该窗体用到的主要控件如表1_14所示。表1_14 点/加菜窗体中用到的主要控件控件类型控件ID主要属性设置用途tvFood无显示餐厅所有菜系txtNumEnabled属性设置为false显示某个菜系的编号txtNameEnabled属性设置为false显示某个菜系的名称txtPriceEnabled属性设置为false显示某个菜系的单价txtPNumText属性设置为1输入某个菜系的数量txtAllPriceEnabled属性设

25、置为false显示点菜后的总价格txtRemark无输入备注信息cbWaiter无选择职员btnSaveText属性设置为“保存保存btnDeleteText属性设置为“删除”删除btnExitText属性设置为“退出”退出dgvFoodsColumns属性中添加7列用于显示已经点过的菜系的信息(2)首先建立一个公共变量RName,用于接收指定桌台的名称,关键代码如下:在窗体加载时,程序首先从数据库中检索出所有菜系名称并显示在TreeView控件中,以便用户选择,关键代码如下:当用户双击某个菜系使,将在右侧显示该菜系的详细信息,以便用户能够准确选择,关键代码如下:为了保证消费商品数量文本框中的

26、数据必须为数字,在文本框的KeyPresss事件中添加代码控件输入数据的类型,关键代码如下:为了保证消费商品的数量时,该商品的总价格会随之改变,实现的方法是在TextBox控件的TextChanged事件中添加代码,关键代码如下:自定义一个GetData方法,用于显示所有的点菜信息,关键代码如下:当点菜完毕后,单击“保存按钮可以对顾客消费的菜系进行保存,以便在结账时对消费金额进行查询,关键代码如下:如果顾客点菜之后想退掉某个菜,就可以在显示所有消费信息的dataGridView1控件中欲删除的商品,单击“删除”按钮,即可将菜退掉,关键代码如下:1。9 结账模块设计1。9。1 结账模块概述顾客消

27、费完毕后,需要对顾客消费清单进行统计,即计算出消费的总额,这些都是通过结账模块实现额。结账模块主要功能是当顾客每次消费时将顾客消费的项目添加到数据库中,在用户结账时通过对数据库的查询,检索出顾客本次消费的商品名称及价格,然后计算出总额,如图1_19所示。图1_19 顾客结账如果输入的金额小于消费的金额,单击“结账按钮结账,将弹出“金额不足的提示信息,如图1_20所示;如果在“收银文本框中输入了错误的数据,将弹出图1_21所示的提示信息。图1_20 金额不足提示信息图1_21 提示输入的数据必须为数字1。9。2 结账模块技术分析本系统的结账模块,首先从数据库中将顾客消费的所有项目检索出来显示到D

28、ataGridView控件上,以方便管理员校对消费金额,然后通过程序计算后将顾客消费的总额显示出来,当顾客结账时,输入顾客支付的金额,会出现相应的余额,以方便管理员为顾客退还余额.在开发此模块式,主要用到SUM聚合函数以桌台名称为搜索条件,查询出消费的总额。 SUM聚合函数用于返回表达式中所有值得和,或只返回DISTINCT值。SUM只能用于数字列。空值将被忽略。语法如下: SUM ( ALL | DISTINCT expression)ALL:对所有的值进行聚合函数运算,ALL是默认设置.DISTINCT:指定SUM返回唯一值的和。EXPRESS:是常量、列火函数,或者是算术、按位与字符串等

29、运算符的任意组合。Express是精确数字或近似数字数据类型分类(bit数据类型除外)的表达式,不允许使用聚合函数和子查询。1。9。3 结账模块实现过程本模块使用的数据表:tb_GuestFood、tb_Room。结账模块的具体实现步骤如下:(1)新建一个Windows窗体,命名为frmJZ。cs,主要用于实现对指定的桌台进行结账操作的功能,该窗体用到的主要控件如表1_15所示。略(2)引用建立两个公共变量,分别用于接收住窗体模块中传递的桌台名称及根据名称查询消费的总额,关键代码如下:当窗体加载时,首先显示结账的桌台名称,然后通过桌台名称检索出消费的所有账目显示到DataGridView控件上,最后将查询出消费的总金额显示到Label控件上,关键代码如下:在输入顾客支付金额文本框的KeyPress事件下面添加代码,判断文本框中是否输入了正确的数据,关键代码如下:当管理员在“收银文本框中输入顾客支付的金额后,系统将自动计算出退还顾客的金额,管家代码如下:当顾客支付了消费金额后,单击“结账”按钮完成对顾客

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1