step by step 之餐饮管理系统二
昨天写了餐饮管理系统的相关需求,得到了园友的一些好的建议,感到很高兴,确实写的也不全面,现在补充一下需要的业务,这次主要做的主要是前台收银系统,所以业务主要集中在前台点菜收银这块,而后面数据管理这块则暂时先不考虑。
至于像权限,不同的组门应该有不同的权限不同级别的员工也有相应的权限,比如收银员只有9折的打折权限,而收银主管则可以打折到8.5折,而经理可以打折到8折。至于一个园友说的前景,希望系统可以应用在中小型的餐饮,都说民以食为天,特别是现在社会发展如此快,人民对生活水平的需求越来越高,她们不仅仅满足于吃饱,更在乎餐厅的环境,而一个拥有好环境的餐厅不仅仅指餐厅装饰是多么的华丽,当然还包括像管理系统这样的软件环境,它代表的是一种先进的管理水平,现在全国各地每年都有好多新餐厅开张或改装,而且它们也越来越认可信息技术在管理中的重要作用,以前像手持点菜宝,PDA到现在的O2O技术的应用,现在像手机或IPad等平板硬件都已经应用的越来越普遍。所以说前景还是比较看好的,只有使用方便,个性化以及很好的用户体验,肯定会有一席之地。好,开始今天的系统概要设计。
第一部分 引言
一、编写目的
本文档是系统的总体设计和实现说明,记录了整个系统实现上的技术实现的考虑,以需求说明为依据,同时作为系统要求的控制依据。
二、背景
说明:名称: RMS(Restaurant manage system)
开发:LZ
本系统将实现真实情况下客人从进入餐厅到吃完饭后结账离开时一系统流程。帮助餐厅高效管理,提前员工工作效率。实现无纸化管理。
数据库:sqlser2008R2
数据库设计工具:Power Designer 15 + 设计表导出工具
代码开发环境:VS2012,主要使用WINForm + wpf设计界面。
三、定义
暂无
四、参考资料
《CLR via C#》
《.NET组件程序设计》
《C#程序开发范例宝典》
《First Head 设计模式》
《大话设计模式》
第二部分 总体设计
一、系统流程与基本概念
本系统采用典型的C/S来实现,不同的客户端通过网络连接到数据库服务器来访问或操作数据。如下图所示:
功能的模块划分如下图所示:
二、功能需求
1、开始界面设计
a.系统启动后首先运行的是欢迎界面,在启动的过程中会显示相关的初始化进度,并且显示各初始化模块的名称,启动完成后进入登录界面,此界面与QQ相似,用户名能够保存之前保存过的用户名,能够实现模糊查询用户名。输入错误的用户名或密码会有相应的错误提示。
b.系统退出可以提示不直接退出与直接退出两种,不直接退出就是相当于锁定系统,只要再次输入密码就可以登入系统。
c.系统有统一的界面风格,统一的logo.有统一的信息提示框。
2、台桌界面
a.输入正确的用户名与密码后进入台桌显示界面,界面会根据不同的状态显示不同的颜色来标识,能够根据不同的条件实现台桌的查询,如位置像包厢,大厅,状态像空台,已上菜或结账,当台桌状态是已上菜时,单击时会显示它对应的菜品与金额,双击后直接进入此台桌已点菜界面。空台则直接进入到点菜界面。
b.台桌界面能够显示台桌名称并且可以根据不同的配置来设置。能够有相应的颜色标识来标识台桌的状态。
3、点菜界面
a.当客人需要点菜或加菜时,可以进入到点菜界面进入操作,界面上能够根据类型来显示餐厅所有的菜品,可以根据菜品代码和拼音码进行点菜,点菜界面同时能显示已点菜的记录,选中要修改的菜品,可以个性它的数量,上菜模式,发送到厨房,或整单发送到厨房,可以删除已点菜,对已点菜记录可以根据类型进行排序,系统能够自动算出已点菜数量,金额等相关信息。
4、已发送菜界面
a.对于已经发送到厨房的菜品,就不能删除了,只有通过退菜来操作,退菜时一定输入数量,当然数量不能大于已点菜数量,当客人要加菜时,则可以跳转到点菜界面再点菜然后再发送,客人想加快上菜速度,则可以点催菜操作,会打印单子到厨房。
b.客人可以转台,比如有A台到B台,特殊情况下可以拼台。
5、结账
a.当客人要结帐时,可以操作打折,赠送等操作,前提是此菜品能够打折,能够赠送。打折的类型根据配置可能有不同的情况。
b.结账界面能够显示所有金额,可以选择支付方式,如现金还是银行卡,能够自动算出像打折,赠送以及签单等相应金额。
c.结账时能够打印所有菜品的信息,显示名称,数量,金额,收银员名称,打印时间等信息。
d.结完账后实现翻台操作,一个完整流程结束。
6、其他
a.餐厅有相应的餐段,比如是午餐还是晚餐,这个根据时间来由系统自动识别,对于大型的餐厅,还有不同的餐牌,如是中餐还是西餐。
b.客人类型有散客与团队等。
c.菜品还在套餐与非套餐。
d.打印菜品的格式。
第三部分 接口设计
系统采用Ado.net连接数据库来实现对数据的操作,复杂的操作使用存储过程,简单的数据库操作可以不使用存储过程,使用xml或其他像INI存储一些配置相关方面的信息。对用户密码等敏感信息使用md5加密技术,所有的界面继承同一个父界面,所有的错误或异常能够捕抓到到记录到日志文件或表中并将提示返回给用户,提示信息应该是友好的,不是看不懂的一些信息。
1、模块设计
之前也一直想要不要重复创轮子,前面也说了,主要是练练手,所以不使用第三方的控件,像日志记录控件log4net,微软的enterPrise都是不错的选择,像控件库telerik那么炫,但是为了加深学习,还是不使用这些非常优秀的控件。
a.解决方案名称: RMS,命名空间名称也以这开头。
b. 数据访问层:DataAccess
c.自定义控件:UserControls,所有的自定义控件放这个项目里面
d.业务层:Business,所有相关的业务处理放这里。
c.数据层:Entities,存储所有的实体类,每个实体类实现Insert,update以及Delete方法。
d.日志:Logger,存放日志相关的项目。
e.Common:所有通用类存放在此项目中。
f.UI文件夹:UI相关的文件放此文件夹中,UI下面放Resources以及Operations和FORM相关子文件夹,分别存放资源相关以及窗体和对应的操作类。
下次写数据库表设计,这次先到这,主要是概要,详细设计会以模块一个一个地介绍,然后再合起来写一个完整的详细设计文档。
step by step 之餐饮管理系统二的更多相关文章
- step byt step之餐饮管理系统一
之前写过2015年的工作计划,其中有一项就是写一套管理系统,一来可以练练手,二来可以加强自己的学习,三来可以多园友多交流,共同进步.所以从今天开始把写系统的过程记录下来.先需求分析开始. 第一部分 引 ...
- e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (二) 图片验证码的识别
上一篇文章讲了“e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step 一 京东 商品搜索 ...
- Step by step Dynamics CRM 2011升级到Dynamics CRM 2013
原创地址:http://www.cnblogs.com/jfzhu/p/4018153.html 转载请注明出处 (一)检查Customizations 从2011升级到2013有一些legacy f ...
- SQL Server 维护计划实现数据库备份(Step by Step)(转)
SQL Server 维护计划实现数据库备份(Step by Step) 一.前言 SQL Server 备份和还原全攻略,里面包括了通过SSMS操作还原各种备份文件的图形指导,SQL Server ...
- 转载自~浮云比翼:Step by Step:Linux C多线程编程入门(基本API及多线程的同步与互斥)
Step by Step:Linux C多线程编程入门(基本API及多线程的同步与互斥) 介绍:什么是线程,线程的优点是什么 线程在Unix系统下,通常被称为轻量级的进程,线程虽然不是进程,但却可 ...
- WPF Step By Step 自定义模板
WPF Step By Step 自定义模板 回顾 上一篇,我们简单介绍了几个基本的控件,本节我们将讲解每个控件的样式的自定义和数据模板的自定义,我们会结合项目中的具体的要求和场景来分析,给出我们实现 ...
- WPF Step By Step 系列 - 开篇 ·
WPF Step By Step 系列 - 开篇 公司最近要去我去整理出一个完整的WPF培训的教程,我刚好将自己学习WPF的过程和经验总结整理成笔记的方式来讲述,这里就不按照书上面的东西来说了,书本上 ...
- 数论之高次同余方程(Baby Step Giant Step + 拓展BSGS)
什么叫高次同余方程?说白了就是解决这样一个问题: A^x=B(mod C),求最小的x值. baby step giant step算法 题目条件:C是素数(事实上,A与C互质就可以.为什么?在BSG ...
- e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (三) SqlServer数据库的访问
上一篇文章“e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step 二 图片验证码的识别” ...
随机推荐
- HDFS--(HA)初始化与启动
1.启动zk 2.启动journalnode: hadoop-daemons.sh start journalnode 3.格式化zkfc--让在zookeeper中生成ha节点 ...
- 升级正版win10及保持yosemite双操
因为有同事升级了正版的win10,心头长草了,本来x230的win7就是正版,现在win10可以免费升级,为何不做? 为此跑了2趟lenovo的维修站,诸多限制,最终决定自己搞定.据说,需要恢复到原厂 ...
- 解决【win10管理员已阻止程序运行】问题时有感
今天在安装loadrunner11的时候点击setup弹出以下报错 然后试了很多方法,从网上找了各种解决方案:修改UAC.修改本地组策略,均未解决ps:本人电脑是win10家庭中文版. 研究了半天未果 ...
- ArcGIS for Flex中引入google map作底图
上篇文章到在ArcGIS View中引入google map,这里讲ArcGIS for Flex中引入google map作底图. 同样道理,以google map作底图,需要编写继承自TiledM ...
- bash操作小结
刚开始学写bash脚本,发现有很多需要注意的细节问题,在这里记录一下便于记忆: 1. help test 帮助 2. bash提供的数组数据结构,它是以数字为下标的,和C语言从0开始的下一样 参考 ...
- UVa10806 Dijkstra,Dijkstra-费用网络流
Problem, in short Given a weighed, undirected graph, find the shortest path from S to T and back wit ...
- mac 使用技巧 (实时更新)
一.部分快捷键. 这个在网上有一大堆,不过笔者认为,还是应该看个人习惯和使用环境吧.如果用得顺手,那就是快捷键,如果用得不顺手,那应该称其为“辅助键”吧. 下面介绍几个常用的快捷键: 1.截图. 屏幕 ...
- c# winform TreeView NODE(节点) 重命名或获取节点修改后的值
在程序开发过程中我们经常用到treeview,还经常要修改节点的名字.节点名字修改后还想及时更新数据库.这时问题就来了,怎样获取NODE(节点)更新后的值呢?本人试了很多方法最终分析出treeview ...
- java8中hashMap
摘自:http://www.importnew.com/20386.html 简介 Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMa ...
- Unity IoC Container创建对象过程
Unity是微软P&P推出的一个开源的IoC框架,最新的官方版本是2.0.Unity之前的版本建立在一个称为ObjectBuild的组件上,熟悉EnterLib的读者,相信对ObjectBui ...