酒店点餐系统开发详解

——系统分析

一个好的系统,必须要进行完善而且全面的系统分析。系统分析做好了,那就能够指导项目良好地发展下去。当然,系统分析需要以需求分析为基础,不过,在本项目中并未做仔细的需求分析,故在此不谈。

在本项目中,我们之所以能够有计划地进行下去,的确也是缘于良好的系统分析,如若省略这一步直接编程,那难度必然加大,以至于在编程过程中又不得不回过头来进行系统分析,此时必然拖慢进度,打乱整个系统逻辑,其最终的成品也充满变数。我曾经做过而且到现在仍未完成的一个项目,这是我做的第一个有界面的较大的项目,以前也只是用C写些小程序,在DOS中显示些字符而已。这个项目已经进行了1年半了,版本也修改了几次,甚至是版本号回退,功能也是几经添加、修改,最后成了一个“烂尾楼”。之所以会出现这种情况,其一在于自己对MFC这套东西不太熟悉;其二就是没有做好系统分析。连系统应该具有些什么功能都没搞清楚,模块之间的联系也没分清,又怎么能做出一个好的系统呢?这绝对不是写一个算法就完事的小程序,项目成功进行下去的关键是弄清楚要做什么,而不是怎么做。至于怎么做,在刚开始时则不用太在意,因为俗语有云:没有做不到,只有想不到。这句话是有道理的。

进入正题。首先,我们得确定使用这个系统的用户应该有顾客、厨师、管理员(包括收银员,只是其权限有限制)。顾客和管理员应该是系统数据的起点,由他们做出相应的操作,然后系统进行处理;厨师则为系统数据的终点,因为最终的任务分配情况是反映到厨师身上的。整个系统的关键任务就是保证顾客所点菜品能够由厨师完成,系统保证能将做菜任务准确无误地传达给厨师。从而所得顶层数据流图如下:

进一步拆解顶层数据流图:顾客通过顾客(点餐)终端进行点菜操作,管理员则是通过系统管理端进行管理,厨师则是按厨师(任务分配)终端的分配要求去做菜的。故得到第一层数据流图如下:

为了使数据流图简单、明了,故省去了三大模块通信的具体流动过程,我将在下一节内容中将三者的通信过程单独进行讲解。

好了,至此整个系统初具“胎形”,下面应该构造其“内脏”了。

顾客终端需要做些什么呢?点菜?这当然是最基本的。还应该有什么呢?对了,我们还可以加上一个评分的功能,这样才能知道某厨师的哪道菜比较受欢迎,并为顾客提供一些选择上的建议。当然,评分是可以省略的。得到第二层——点评菜品 数据流图如下:

然后就是系统管理了。系统管理所要做的包括:账户管理、菜品管理、厨师管理、收银、销售统计,我并未将登录操作包括其中,因为这并非重点。得到第二层——系统管理 数据流图如下:

似乎还缺点什么,对了,还没有加入表呢。把各部分所涉及的表加入数据流图中就完成点餐系统的数据流图了。具体如下:

最后,把各表的结构图贴出来,为了简单,本系统只将所涉及的关键属性加入表中,你完全可以根据需要向其中加入一些附加的属性,下面为各表结构:

1、管理员表:

2、菜品表:

3、厨师表:

4、点菜表:

5、做菜表:

6、销售统计表:

7、拿手菜表(做菜表视图):

数据库关系图如下:

源代码下载地址:http://download.csdn.net/source/2406335 标题有误,请见谅...

酒店点餐系统开发详解(二)相关推荐

  1. 酒店点餐系统开发详解(五)

    酒店点餐系统开发详解(五) --任务分配设计 本系统从公平的角度,采取"先来先服务"原则为厨师分配做菜任务,但是顾客在点菜时可能出现指定了某个厨师做某道菜的情况,所以本系统针对未指 ...

  2. 酒店点餐系统开发详解(四)

    酒店点餐系统开发详解(四) --数据库模块设计 在本系统中每个模块与数据库的一系列查询.插入.删除等操作是通过类CDatabaseOperation进行的,所有的数据库操作都封装在这个类中.数据库功能 ...

  3. 酒店点餐系统开发详解(三)

    酒店点餐系统开发详解(三) --通信模块设计 注:本系统通信实现采用CSocket类 在上一节的数据流图中可以看到顾客(点餐)终端和厨师(任务分配)终端之间有数据的流动,这看起来好像二者是直接进行的通 ...

  4. 酒店点餐系统开发详解(一)

    酒店点餐系统开发详解 --前言 信息管理系统老师让我们分组做一个信息管理系统,以让我们熟悉一下项目开发的过程,并以此锻炼自己的能力.说实话,刚开始做的时候也感觉很没底,因为我不知道这个项目最终能否成功 ...

  5. 酒店点餐系统开发详解(六)

    酒店点餐系统开发详解(六) --疑难解决 在本系统的详细设计过程中遇到了很多的麻烦,经过分析.思考和网上搜索等方式将所有问题均给一一化解了,现与大家分享以共勉. 1.CDataGrid的使用 之所以使 ...

  6. EasyPR中文开源车牌识别系统 开发详解

     在上篇文档中作者已经简单的介绍了EasyPR,现在在本文档中详细的介绍EasyPR的开发过程. 正如淘宝诞生于一个购买来的LAMP系统,EasyPR也有它诞生的原型,起源于CSDN的taotao ...

  7. Android openGl开发详解(二)

    https://zhuanlan.zhihu.com/p/35192609 Android openGl开发详解(二)--通过SurfaceView,TextureView,GlSurfaceView ...

  8. 13.56M读卡器开发详解二(RC522驱动程序)

    13.56M读卡器开发详解二 1. 硬件接口介绍 根据上一篇的介绍,小编使用了RC522的SPI口通信方式和51单片机进行通信.硬件接口设计此处不再附图.只是将接口配置列写如下: sbit  spi_ ...

  9. Android openGl开发详解(二)——通过SurfaceView,TextureView,GlSurfaceView显示相机预览(附Demo)

    最近公司在做自定义相机这一块,之前使用的是第三方,后来需求变更,第三方不支持添加动态贴纸,所以只能自己扩展.当然网上有很多例子,但是关于添加动态贴纸的例子几乎找不到,反正我是没找到(欲哭无泪).当然, ...

最新文章

  1. android:layout_gravity和android:gravity的区别
  2. QNX6.5编译libcurl
  3. 2013江苏计算机二级vfp试题,2013年3月全国计算机二级VFP真题
  4. ORACLE 10g EXPDP,IMPDP使用方法
  5. windows中使用mysql配置my.ini时的坑
  6. 闲鱼:3月24日至3月30日冻结涉欺诈用户1.8万个
  7. Python3.x连接MySQL数据库,SQL语句使用方法
  8. mysql 在update中实现子查询的方式
  9. android mmkv使用_Android:MMKV 组件入门
  10. 利用浏览器另存为将网页内容保存为word
  11. python爬虫英文单词_利用PYTHON 爬虫爬出自己的英语单词库
  12. 一个女人应该如何生活
  13. 电动汽车换电池要多少钱?各品牌电池更换费用大起底!
  14. 二维数组在c语言中的作用,C语言中的二维数组
  15. Talk | 清华大学陈晓宇苏黎世联邦理工黄嘉伟 :基于实际应用的强化学习
  16. android互动设计师,站酷(设计师互动平台)
  17. 推荐几款目前最热门的前端框架
  18. 版权(copyright) 和 许可(license) 的区别
  19. 达克效应 邓宁·克鲁格心理效应
  20. 【IMRaD】如何“科学地”写一篇科学研究论文

热门文章

  1. TQ2440 移植问题
  2. 基于 gma 的栅格数据格式转换:以netCDF(.nc)与GTiff(.tif)文件互转为例
  3. 陈志列:科技产业更要有“中国创造”
  4. xorm reverse
  5. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java基于2023最新SSM计算机毕业设计选题大全(附源码+LW)之JAVA的社区疫情防控管理信息系统的设计与实现khjit
  6. 山东大学matlab在哪,山东大学在哪?
  7. 基于微信小程序学生课程考勤系统后端SSM可升级SpringBoot
  8. CAS操作确保原子性
  9. 计量经济学第1章计算机,周曙东教授计量经济学第1章.ppt
  10. 相同内容多个html如何合并单元格,合并具有相同内容HTML的单元格