版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、点菜系统详细设计目 录一 概述1二 详细设计说明书22.1 引言22.2总体设计3 2.2.1 软件总体结构3 2.2.2 软件数据结构42.3程序描述6 2.3.1 高层控制流程图6 2.3.2 登录模块72.3.3 退出模块72.3.4 菜单修改模块82.3.5 菜单分类模块212.3.6 菜单打印模块(用于厨房)222.3.7信息管理模块232.3.8 厨房库存管理模块272.3.9 结账模块292.4运行环境31三 实验体会32四 参考文献33一 概述概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。根据软件工程的原理:(1)用分阶段的生存周期计划进行严格的管理;(2)坚持进
2、行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)软件工程结果应能清楚地审查;(6)开发小组的人员应该少而精;(7)承认不断改进软件工程实践的必要性;对软件进行开发,在开发完之后还要根据相关的维护原则对软件进行定期维护,这样才能提高软件使用周期,才算好软件。实验目的是为了加深和巩固对软件工程理论的认识和理解,掌握使用软件工程思想开发软件设计的基本步骤、思想和方法。熟练运用软件开发过程中的设计工具以及明确他们的应用范围和方法,提高软件开发的效率、可用性等。锻炼、提高应用软件工程思想及基本理论解决实际问题的能力和实际动手操作能力、创新能力以及查阅技术文献以及编写文档的能力,更
3、加锻炼了团队协作能力。本系统的设计模拟的是餐饮企业中顾客点菜及菜单、库存管理的内容:1、服务员信息的管理:查询、增、删、改2、菜谱信息的管理:查询、增、删、改3、厨师信息的管理:查询、增、删、改4、菜单信息管理(1)、餐桌点菜:服务员按照用户需求为其点菜并提交菜单给厨房(2)、点菜信息分类。(3)、做菜管理:可以获得自己的待做菜单,并对已做的菜进行标记(4)、上菜管理:对已上菜和待上菜进行管理(5)、修改菜单管理:退菜、加菜。 5、库存管理: (1)、查看库存清单。 (2)、修改库存清单。 (3)、产生库存报表。6、结帐服务:审核菜单,协助顾客结帐二 详细设计说明书1 引言11编写目的根据需求
4、规格说明书、概要设计说明书,在仔细考虑讨论之后,我们对点菜系统软件的功能划分、数据结构、软件总体结构的实现有了进一步的想法。我们将这些想法记录下来,作为详细设计说明书,为进一步设计软件、编写代码打下基础。12背景 近些年餐饮行业蓬勃发展,规模也逐渐增大,但却没有相应地重视点菜系统,餐厅企业经常遇到顾客抱怨上菜速度慢、漏菜、丢单、 漏单,餐厅的成本很难控制等问题,加之都市生活节奏的加快,消费者在外出就餐时,就有了更高的要求。为了解决这些问题,企业可采用无线点菜系统,无需无碳复写的纸张耗材, 很短时间内便可完成,大大缩短了上菜时间,同时也提高了翻台率。 服务员始终不离客人视线,服务更周到更及时,并
5、且避免了跑单漏单现象; 使用pda无线通讯,不必往返传送单子,减少了服务员的工作量,降低服务员的劳动强度,相应地节省了劳动力; 避免因服务员来回跑动产生的忙乱现象,大大提升服务品质和服务形象,为营造高档就餐环境创造良好条件,吸引更多的顾客就餐; 按照菜品原料构成控制成本。总之无线点菜系统可有效的提高工作效率,提高服务质量,将低运营成本,提升企业形象。本系统专为具有一定规模和经济条件的餐饮企业设计。通过集成从顾客点菜、上菜到结帐等一系列功能,为每个环节明确分工,并通过可视化的软件支持,有效减小了人为差错的概率,代之以高效、便捷、准确的数字化服务系统,使餐饮企业的管理更加规范化。 1.3定义ord
6、er in hotel system 简写成 oihs1.4任务概要1.4.1 点菜系统应该达到以下要求: 1、时间经济性。优化逻辑设计与物理设计,使系统运行效率高,反映速度快。 2、可靠性。能有较强的容错能力。 3、可理解性。用户容易理解和使用该系统。 4、可维护性和适应性。系统应易于修改、易于扩充、易于维护,能够适应业务不断发展变化的需要。 5、可用性。目标系统功能齐全,能够完全满足业务需求。 6、安全保密性。保证系统的物理安全、数据存储和存取的安全与保密、数据传输的安全与保密,做好使用人员的授权管理。1.4.2条件与限制出于安全的考虑,点菜系统对信息的保护手段仅限于低级阶段,以及提供数据
7、文件的备份,比较简单,安全性能有待进一步完善。2 软件总体设计2.1软件总体结构(用层次方框图表示) 2.2数据结构(数据库应用,可用microsoft sql server实现)(1)数据库中存储结构1、表名:服务员信息表列名数据类型长度允许空编号int8姓名char20性别char1年龄smallint2参加工作时间datetime8备注varchar502、表名:厨师信息表列名数据类型长度允许空编号int8姓名char20性别char1年龄smallint2参加工作时间datetime8状态smallint1备注varchar503、表名:菜谱信息表列名数据类型长度允许空分类标志smal
8、lint1编号int4名称char30价格bigint2主厨师char20辅厨师char20第二辅厨师char20备注varchar504、表名:库存(食材)清单信息表列名数据类型长度允许空编号int4名称char30价格bigint2数量bigint10主要供应者char20次要供应者char20备注varchar505、表名:点菜菜单信息表(即汇总的菜单表项)列名数据类型长度允许空服务员编号int8餐桌编号int4点菜时间datetime8菜名varchar30分类标志smallint1价格bigint2做菜标志smallint1上菜标志smallint1催菜次数smallint1备注va
9、rchar50(2)程序中的数据结构class orderpublic:int waiternum8; /服务员编号int tablenum4; /餐桌编号int ordertime8; /点菜时间char warning50; /备注struct char dishname30; /菜名,可以根据菜名和分类标志找到菜的价格 int sortnum; /0表示菜,1表示主食,2表示酒水饮料 int tag_cook; /0表示未做菜,1表示已做菜 int tag_give; /0表示未上菜,1表示以上菜 int tag_hurry; /表示催菜次数*dish;int length; /点菜数量
10、/此处加实现的成员函数int pda_key; /pda按键标志(即修改菜单类型),0表示点菜,1表示加菜,2表示删菜,3表示催菜,4表示做完菜,5表示上完菜3 程序描述3.1高层控制流程图3.2登陆模块(建立连接)l 功能进入点菜系统与数据库、服务器建立连接l 输入项目用户按键输入输入服务员编号、餐桌编号、点菜日期l 程序逻辑 do 输入服务员和餐桌编号以及点菜日期if编号正确且日期正确then与数据库和服务器连接else发出“错误信息”endif测试要点: 数据库连接情况:正常情况,数据库文件缺少,外部系统异常。 系统设置获取:正常情况,外部系统异常。 对用户输入的响应:合法输入,能够正常
11、调用子模块; 非法输入,系统能否辨别,并做出响应(提出警告); 子模块的异常状况,系统能否及时作出响应。3.3退出模块(断开连接)l 功能断开点菜系统与数据库、服务器的连接l 输入项目退出标志l 程序逻辑 测试要点:对退出系统的响应:合法输入,能够正常退出; 不合法输入,输出警告信息。3.4、菜单修改模块l 功能(1) 按键进行点菜,建立菜单(2) 途中进行加菜,修改菜单(3) 途中进行删菜,修改菜单(4) 途中进行催菜(5) 数据库的调用和更改、保存,以修改数据库中的汇总菜单信息l 输入项目按键输入修改类型(点菜、加菜、上菜等),点或删的菜的分类标志(0-菜,1-主食,2-酒水饮料)和菜名l
12、 程序逻辑do 输入修改菜单类型if 输入“点菜”项 then 建立菜单修改数据库汇总菜单信息else if输入“加菜”项 then 进行菜单的加菜修改修改数据库汇总菜单信息(加菜)else if输入“删菜”项 then 进行菜单的删菜修改修改数据库汇总菜单信息(删菜)else if输入“催菜”项 then 进行菜单的催菜修改修改数据库汇总菜单信息(催菜标志) else if输入“做菜”项 then 进行菜单的做菜修改修改数据库汇总菜单信息(做菜标志) else if输入“上菜”项 then 进行菜单的上菜修改修改数据库汇总菜单信息(上菜标志)end if 3.4.1子模块:建立菜单(点菜)
13、程序逻辑do 初始化菜单 服务员编号赋值 餐桌编号赋值 点菜日期赋值while 没点完菜 do 输入点的每道菜分类标志、菜名和备注将点菜分类标志、菜名和备注赋值给菜单相应项每道菜的上菜、做菜、催菜标志均初始化为0菜单指针length+end while 3.4.2子模块:加菜 程序逻辑do 输入餐桌编号 找到相应菜单while 没加完菜 do 输入加的每道菜分类标志、菜名和备注将加菜分类标志、菜名和备注赋值给菜单新增相应项每道新菜的上菜、做菜、催菜标志均初始化为0菜单指针length+end while3.4.3子模块:删菜 程序逻辑do 输入餐桌编号 找到相应菜单while 没删完菜 do
14、输入要删的每道菜分类标志、菜名找到相应菜单项,将此菜单项之后的菜单项依次前移覆盖菜单指针length-end while3.4.4子模块:催菜 程序逻辑do 输入餐桌编号 找到相应菜单 length2=0while 还有菜单项 do if 此项上菜标志为0 then if 此项做菜标志为0 then 此项的催菜标志tag_hurry+2 else 催菜标志tag_hurry+1 length2+ end while3.4.5子模块:做完菜 程序逻辑do 输入餐桌编号 找到相应菜单while 没改完 do 输入已做菜的分类标志、菜名给此菜单项做完菜标志tag_cook赋1end while3.4
15、.6子模块:上完菜 程序逻辑do 输入餐桌编号 找到相应菜单while 没改完 do 输入已上菜的分类标志、菜名给此菜单项上完菜标志tag_give赋1end while3.4.7子模块:修改汇总菜单信息 程序逻辑if 修改菜单类型为点菜 then 修改数据库汇总菜单(点菜)else if修改菜单类型为加菜 then 修改数据库汇总菜单(加菜)else if修改菜单类型为删菜 then 修改数据库汇总菜单(删菜)else if修改菜单类型为催菜 then 修改数据库汇总菜单(催菜) else if修改菜单类型为做完菜 then 修改数据库汇总菜单(做菜) else if修改菜单类型为上完菜 t
16、hen 修改数据库汇总菜单(上菜)end if测试要点:数据库连接情况:正常连接对学生留言信息的响应:合法输入:可以正常运行此模块,并提交给系统非法输入:不能正常运行该模块系统自动辨别作出相应提示(提出报警) 3.4.7.1子模块:修改汇总菜单信息-点菜修改 程序逻辑if 没有连接数据库 then 连接数据库end iflength2=0while length2length do 数据库中新建菜单项查询菜谱相应项(通过分类标志和菜名),找到价格给菜单项赋值菜单指针length2+end whiledo 保存数据库 断开数据库end3.4.7.2子模块:修改汇总菜单信息-加菜修改 程序逻辑if
17、 没有连接数据库 then 连接数据库end ifwhile 没加完菜 do 通过桌号在数据库中找到菜单,新建菜单项查询菜谱相应项(通过分类标志和菜名),找到价格给菜单项赋值end whiledo 保存数据库 断开数据库end3.4.7.3子模块:修改汇总菜单信息-删菜修改 程序逻辑if 没有连接数据库 then 连接数据库end ifwhile 没删完菜 do 通过桌号、菜名、分类标志在数据库中找到菜单及菜单项删除此菜单项,释放空间end whiledo 保存数据库 断开数据库end3.4.7.4子模块:修改汇总菜单信息-催菜修改 程序逻辑if 没有连接数据库 then 连接数据库end i
18、fwhile 没催完菜 do 通过桌号在数据库中找到菜单,修改其还未上菜的菜单项催菜标志 在所有未上的菜中找催菜标志最大的(不分桌号)进行催菜end whiledo 保存数据库 断开数据库end3.4.7.5子模块:修改汇总菜单信息-做完菜修改 程序逻辑if 没有连接数据库 then 连接数据库end ifwhile 没改完 do 通过桌号、菜名、分类标志在数据库中找到菜单及菜单项 修改做完菜标志tag_cook=1end whiledo 保存数据库 断开数据库end3.4.7.6子模块:修改汇总菜单信息-上完菜修改 程序逻辑if 没有连接数据库 then 连接数据库end ifwhile 没
19、改完 do 通过桌号、菜名、分类标志在数据库中找到菜单及菜单项 修改做完菜标志tag_give=1end whiledo 保存数据库 断开数据库end3.5、菜单分类模块 l 功能将点菜菜单项分类为:菜、主食、酒水饮料,以便于以后的打印。l 程序逻辑 length3=0 while 还有菜单项 do if 此菜的分类标志为0 then 插入菜单1 else if此菜的分类标志为1 then 插入菜单2 else 插入菜单3 length3+ end while 3.6、菜单打印模块(用于厨房)l 功能对分类的菜单进行打印。l 程序逻辑do 输入打印命令输入“打印”输入要打印的菜单分类标志(菜、
20、主食或酒水) 打印餐桌编号、此菜单分类标志 length3=0 while 还有菜单项 do 打印此菜单项(包括菜名和备注) length3+ end while 3.7、信息管理模块l 功能对该校服务员、厨师、菜谱信息进行管理 (1)信息的查询 (2)信息的增加 (3)信息的删除 (4)信息的修改(5)数据库的调用和更改、保存l 程序逻辑do 输入信息管理类型flag if 是服务员信息管理 do 处理服务员信息else if 是厨师信息管理 do 处理厨师信息else if 是菜谱信息管理 do 处理菜谱信息 end if以服务员信息管理为例子,设计如下:do 输入处理类型flag2 if
21、 是查询信息do 查询信息else if 是增加信息do 增加信息else if 是删除信息 do 删除信息 else if 是更改信息 do 更改信息 end if(1) 查询子模块if 没有连接数据库 then 连接数据库do 输入服务员编号 if 合法 do 输出包括姓名,参加工作时间等的相关信息 else 输出错误提示 end if do 断开数据库 end(2) 增加信息子模块if 没有连接数据库 then 连接数据库do 新建数据项并初始化输入新增服务员信息 if 合法 do 为数据项赋值 else 输出错误提示 end if do 断开数据库 end(3) 删除信息子模块if 没
22、有连接数据库 then 连接数据库do 输入要删除的服务员编号 if 合法 do 删除此数据项的相关信息 else 输出错误提示 end if do 断开数据库 end(4) 更改信息子模块if 没有连接数据库 then 连接数据库do 输入要更改信息的服务员编号 找到响应数据项输入更改后的信息 if 合法 do 为数据项赋新值 else 输出错误提示 end if do 断开数据库 end3.8、厨房库存管理模块l 功能(1) 数据库的调用和更改、保存,以查看或修改厨房库存清单;(2) 产生定货报表。l 程序逻辑if 没有连接数据库 then 连接数据库do 查看库存清单 根据汇总菜单更新库
23、存清单产生定货报表并打印 do 断开数据库 end(1) 更新库存清单 while 还有菜单项 do 根据菜名找到相应的食谱项,查到食材 while 还有食材 do 根据食材名找到库存清单中的相应项 改变此项数量m-=use(use为用量) end while(2)产生定货报表 do 初始化定货报表while 还有数据项 do if 此食材数量mbasici(basici为此食材基准量) then将此食材项填入报表,且需要量为r=basici-m end while3.9、结账模块l 功能 对用户菜单结算、打单。l 输入项目 输入结帐命令和餐桌编号l 程序逻辑do 输入结帐命令和餐桌编号 连接
24、数据库 调出此桌菜单 sum=0 length2=0while 还有菜单项 do sum+=此道菜价格菜单指针length2+end while do打印餐桌编号、服务员编号、日期和总计sum length3=0 while 还有菜单项 do 打印此菜单项(包括菜名和价格) length3+ end while do 库存管理 从数据库里删除此菜单,断开数据库end4运行环境推荐本系统使用如下配置:硬件:客户机基于p4 1.8g的客户机,128m内存 硬件:交换机100 m 硬件:打印机任意硬件:pda无线pda软件:操作系统(客户机)windows 2000 professional和win
25、dows xp软件:操作系统(服务器)windows 2000 server软件:数据库服务器mysql数据库协议:网络tcp/ip基于本开发小组的能力和学习程序设计语言的经验,我们决定采用c+语言作为本系统的开发语言。c+是十分灵活的程序设计语言,总体具有封装、继承和多态的特性。c+是支持面向对象的程序设计方法,特别适合于中型和大型的软件开发项目,从开发时间、费用到软件的重用性、可扩充性、可维护性和可靠性等方面,c+均具有很大的优越性,而且运行速度快,效率高。同时,c+又是c语言的一个超集,这就使得许多c代码不经修改就可被c+编译通过,有利于软件的可重用性。在类中合理安排数据和对数据的处理,
26、信息隐藏的特性,便于软件的实现。c+是功能十分强大的程序设计语言,在页面、视图、网络编程、简单编程领域都有十分重要的应用,所以本系统决定采用c+进行开发。三 实验体会一、本开发小组根据软件工程生命周期的步骤,即定义分析、可行性研究、需求分析、总体设计、详细设计、编码和单元测试、综合测试(以及将来的维护过程)这几个阶段,对点菜系统(oihs)进行了开发。在开发过程中我们深刻了解到软件工程导论的重要性,只有根据软件工程导论所提到的一系列原理和开发原则进行软件开发,才能减少无用功,提高工作效率,开发出好的软件;二、本点菜系统实现的功能有信息的管理、菜单修改、库存管理、结帐服务等,运用的开发工具为c+
27、程序设计语言,涉及内容有界面设计、pda无线网络编程、数据库的应用以及c+应用编程。在了解及应用软件的过程中,我们小组成员上网查阅了相关资料和书籍,对c+的编程方法有了更深一层的认识,对我们以后的学习工作都有一定的帮助。另外,小组成员在开发时,进行频繁地讨论、踊跃提出自己的观点和想法,对于我们的能力是一种锻炼;而且小组也培养了良好的团队精神和互助精神,这些在开发过程中得到的锻炼和体会都使我们受益匪浅;三、虽然这个点菜系统是一个小的系统,但只有从这些小的项目中就利用软件工程学的知识,这样可以开发在系统设计和实现中我们可以总结很多经验和教训。本小组按照瀑布开发模型来开发项目。参考文献1张海藩软件工程导论(第四版)。清华大学出版社。2003。2萨师煊,王珊数据库系统概论(第三版)。高等教育出版社。2000。tgkqcwa3ptgz7r4i30ka1dkaghn3xtkknbycudxqa7fhyi2chhi92tgkqcwa3ptgshls50clmtwn60eo8wgqv7xav2ohum32wgeauwydiawgmer4i30ka1dkaghn3xtkknb
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论