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 二 图片验证码的识别” ...
随机推荐
- 11.tftp和nfs服务器
宿主机产生嵌入式软件的机器 运行程序的是目标机上运行 基于网络的下载 目标机通过tftp下载到目标机 1. 安装tftp依赖xinetd [root@cfm880 Packages]# rpm -iv ...
- SQL注入原理
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一 部分程序员在编写代码的时候,没有对用户输入数据的合法性 ...
- mybaties中在xml中map添加一个list中的判断
if (uIds.size() > 0) { map.put("uIds", uIds); } else { map.put("uIds", null); ...
- 动态规划 - 最长递增子序列(LIS)
最长递增子序列是动态规划中经典的问题,详细如下: 在一个已知的序列{a1,a2,...,an}中,取出若干数组组成新的序列{ai1,ai2,...,aim},其中下标i1,i2,...,im保持递增, ...
- 了解 JavaScript 应用程序中的内存泄漏
简介 当处理 JavaScript 这样的脚本语言时,很容易忘记每个对象.类.字符串.数字和方法都需要分配和保留内存.语言和运行时的垃圾回收器隐藏了内存分配和释放的具体细节. 许多功能无需考虑内存管理 ...
- NHibernate系列文章三:简单的增删改查询
摘要 上一篇文章只完成了简单的NHibernate安装.配置和连接数据库.这篇文章介绍怎样实现最简单的数据库读写操作. 1. 重构ISessionFactory生成过程 将生成ISessionFact ...
- MySQL 5.7 深度解析: 半同步复制技术
复制架构衍生史 在谈这个特性之前,我们先来看看MySQL的复制架构衍生史. MySQL的复制分为四种: 普通的replication,异步同步. 搭建简单,使用非常广泛,从mysql诞生之初,就产生了 ...
- 红星美凯龙CEO车建新的圆融和霸气
待人接物中车建新有许多习惯,与别人一起行走时,走在靠马路的一边:吃饭时最好的菜留给客人.他说,做人往往就在细节中,别小看一个举动,无意中就会感染别人.和别人在一起,你要时时刻刻先考虑对方. 细节上体察 ...
- 十步图解CSS的position
CSS的positon,我想做为一个Web制作者来说都有碰到过,但至于对其是否真正的了解呢?那我就不也说了,至少我自己并不非常的了解其内核的运行.今天在Learn CSS Positioning in ...
- js 字符串转化成数字
方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有 ...