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 二 图片验证码的识别” ...
随机推荐
- 关于oracle中to_char和to_date的用法
一.24小时的形式显示出来要用HH24 select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual; select to_date('200 ...
- linux文件权限表示及用户权限管理
UNIX/Linux下关于文件执行权限的表示和查看想必是最熟悉不过的,然而你是否真正了解用户文件的权限标识和用户的权限呢? 实际上文件权限标识不仅仅只有U, G, O 11 10 9 8 7 6 5 ...
- 教你用Ossim平台检测网络的Shellcode攻击
教你用Ossim平台检测网络的Shellcode攻击行为 教程: http://www.tudou.com/programs/view/-hxTm0q1tDY/ 以下是视频截图: 更多视频内容: 本文 ...
- JavaScript实现类的private、protected、public、static以及继承
JavaScript中的类 JavaScript实际上是一种弱类型语言,与C++和Java等语言不同.因此,在JavaScript中,没有强调类(class)这一概念,但实际运用中,类还是很重要的,比 ...
- php 连接mongodb 增查改删操作
查询 <?php $m=new MongoClient('mongodb://admin:admin@localhost:27017/admin'); $db=$m->hndb; $cc= ...
- 解决PHP在IE中下载文件,中文文件名乱码问题
if( stripos($_SERVER['HTTP_USER_AGENT'], 'MSIE')!==false ) $filename = urlencode( $filename ); // 输入 ...
- ---ps 命令
ps 的命令真复杂啊! 值得注意的是选项的 -e e 这两个是不同的 -e的选项和x的意思相当 而e 的意思是改变显示栏目内容了 我个人用单字母的比较多 ps f -eo pid,uid,gid,us ...
- Add Binary <leetcode>
Given two binary strings, return their sum (also a binary string). For example,a = "11"b = ...
- 使用Jquery解析xml的两种方法
第一种方案(最稳妥): 先将String格式的xml转换为xml对象,然后再用Jquery解析xml对象 var returnDataXml = parseXML(returnData); var p ...
- js 构造函数
//构造函数 //使自己的对象多次复制,同时实例根据设置的访问等级可以访问其内部的属性和方法 //当对象被实例化后,构造函数会立即执行它所包含的任何代码 function myObject(ms ...