数据库课程设计餐厅点餐说明书_第1页
数据库课程设计餐厅点餐说明书_第2页
数据库课程设计餐厅点餐说明书_第3页
数据库课程设计餐厅点餐说明书_第4页
数据库课程设计餐厅点餐说明书_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要在深入研究中小餐饮企业工作流程的基础上,分析制约餐饮企业工作效率的各种因素,发现影响效率的主要因素是普遍使用手工登记菜谱的现象,本系统运用计算机系统来实现餐饮企业工作流的信息化管理,采用面向对象的开发方法以及c#语言,依靠visual studio2012作为开发工具,使用sql server 2008网络数据库存储数据。实现了客户点餐、客户订餐、收银管理、用户管理四大功能,解决餐饮企业中客户点餐速度慢、服务员登记不清晰、厨师配餐漏配、菜谱更新不及时且不直观、会员管理混乱的现象。关键词:餐饮点餐;visual studio;sql serve1系统简介1 1.1编写目的1 1.2编写背景1

2、 1.3任务概述12需求分析2 2.1需求调查22.1.1.餐馆的基本情况22.1.2用户对系统的要求2 2.2数据流程图32.2.1系统总体流程图32.2.2订餐业务流程图32.2.3功能模块图4 2.3数据字典42.3.1数据项42.3.2数据结构52.3.3数据流52.3.4数据存储52.3.5处理过程63 概念结构设计7 3.1实体e-r图7 3.2总体e-r图94逻辑结构设计10 4.1实体所对应的关系模式10 4.2数据库表105物理结构设计15 5.1关系模式存取方法选择15 5.2确定数据库的存储结构155.2.1确定数据的存放位置155.2.2数据库的系统配置166.系统主要

3、查询功能及sql语句17 6.1主要查询功能17 6.2 sql语句177系统实现23 7.1系统的功能模块图23 7.2部分程序代码23 7.3系统运行截图288设计小结32 8.1心得与体会32参考文献331系统简介1.1编写目的 本文档是餐厅点菜系统设计文档的组成部分,编写此文档的目的是:明确此系统的需求和要具体实现什么功能,用来指导后期的数据库脚本的开发。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。1.2编写背景本项目开发的软件是餐厅点菜系统软件。随着人民的生活水品不断提高,生活也越来越好。就喜欢出去吃饭,酒店等人员来往爆炸性增长。饭店对自身和宾客信息的管理,越来越难

4、。随着这方面的信息不断增长。人工的记忆管理的弊端越来越突显出来,自动化的管理,可以更好的。更方便、更有效的对饭店的日常的所有管理。增加工作效率。所以本系统就应运而生。本项目名称为饭店管理系统,系统就要与数据库交互。所以就要数据库,餐厅点菜系统的待开发的数据库名字为hotalmsdb。1.3任务概述餐厅点菜系统的目标是尽可能的简化人工的操作,实现自动化。以最少的人实现最大的工作。尽量做到达到人力于设备费用的节省,并且使软件处理数据的速度提高,软件的整个设计过程必须通过生产能力的提高,人员工作效率的提高等等使软件开发成本最小化。实现保证软件质量的前提下的资金投入的最小化来获利益的最大化。本系统提供

5、对员工的增删改,用户的增删改,菜的管理等饭店的基本日常管理。2需求分析2.1需求调查2.1.1.餐馆的基本情况顾客到餐馆自助点餐,每个餐桌上都配有点餐设备,点餐之后通过结账,等餐,吃饭。所以数据库中应有如下实体:订单信息:餐桌号,菜的编号,价格; 餐馆的菜单信息:菜的编号,菜名,价格,菜品简介、价格、图片、类型;管理员:姓名,登录系统密码。2.1.2用户对系统的要求1信息要求 (1)订单信息:餐桌号,菜的编号,价格。 (2)餐馆的菜单信息:菜名,价格。2处理要求 (1)当顾客订单信息发生改变时,能自行进行修改。比如某些顾客加菜时,顾客点餐信息就应该做相应的修改。 (2)当餐馆的菜单信息需要发生

6、变更时,管理员能对其进行修改。 (3)当顾客结账后,管理员能根据其订单通知厨房做菜,配送。 (4)顾客结账后等待并就餐。3安全性与完整性要求(1)安全性要求:系统应设置访问用户的标识以鉴别是否是合法用户,即是否为管理员,并要求合法用户设置其密码,保证用户身份不被盗用。(2)完整性要求: 各种数据间相互联系的正确性。 相同数据在不同记录中的一致性。2.2数据流程图用户登录用户名,密码角色是否正确根据角色判断厨师管理界面超级管理员界面收银员管理界面订餐管理界面点餐管理界面收银台具有所有权限的管理菜的种类管理用户管理职员管理2.2.1系统总体流程图图2.2.1系统总体流程图与服务器建立连接组装报文填

7、写信息选餐前台的订餐界面服务器数据库后台管理界面订餐界面点餐界面2.2.2订餐业务流程图图2.2.2订餐业务流程图2.2.3功能模块图本系统有点餐、订餐功能,模块图如图2.2.3编号客人就餐点餐订餐菜单结账加菜就餐菜。编号菜单结账配送图2.2.3功能模块图2.3数据字典2.3.1数据项表1菜单数据字典属性名存储代码类型长度备注菜名foodnamechar50所有菜的菜名价格pricefloat4菜的价格菜的编号foodidint4菜的编号菜的类型foodtypeidint4菜的类型图片pictureimage2菜图片表2用户数据字典属性名存储代码类型长度备注用户编号useridint4用户的编

8、号用户名usernamechar10用户的用户名用户密码userpasswordchar20用户的密码表3订单数据字典属性名存储代码类型长度备注订单类型booktypeidint4订单的类型订单的编号accountidint4订单的编号价格moneyfloat4菜的价格时间timesdatetime2订单时间2.3.2数据结构表2.3.2数据结构表数据结构名组成菜单信息菜的编号,菜名,价格订单信息订单类型,订单的编号,价格,时间用户信息用户编号,用户名,用户密码2.3.3数据流表2.3.3数据流表数据流名数据流来源数据流去向组成点餐信息顾客订单表订单信息处理信息订单表经理订单信息结算信息收银员

9、订单表已处理信息查询信息菜单表经理菜单信息修改信息用户菜单表已修改信息2.3.4数据存储表2.3.4数据存储表数据存储名说明输入的数据流输出的数据流组成订单表顾客点餐的订单表订单信息已处理信息订单信息订单信息已处理信息菜单表餐馆所有菜的信息菜单信息已修改信息菜单信息菜单信息已修改信息2.3.5处理过程表2.3.5处理过程表处理过程名输入数据流输出数据流录入订单信息订单表订单表查询菜单信息菜单表订单表结算菜单信息订单表订单表修改菜单信息菜单表菜单表3 概念结构设计3.1实体e-r图1.经理实体用户名密码经理编号图3.1.1经理实体属性e-r图联系方式身份证号厨师编号员工名性别年龄2.厨师实体图3

10、.1.2厨师实体属性e-r图3.菜单实体数量类型餐单编号名称价格图片图3.1.3餐单实体属性e-r图4.收银员实体用户名密码收银员编号图3.1.4收银员实体e-r图3.2总体e-r图n点餐顾客m查看餐单1n厨师1n结账收银员图3.2总体e-r图4逻辑结构设计4.1实体所对应的关系模式用户(userid、username、userpassword、usertypeid) 员工(employeesid、employeesname、sex、age、identitycard、tel、usertypeid) 员工类型(employeesid、employeesname)收入(accountid、mone

11、y、bookdinnerid、userid、times、booktypeid)菜单(foodid、foodname、price、picture、foodtypeid、number) 菜单类型(foodtypeid、foodtypename) 订餐(bookid、booktime、eattime、address、tel、booktypeid)出餐(launchid、employeesid、booktypeid、foodid、time)点餐(choose id、times、sourceid、booktypeid) 来源(sourceid、sourcenumber) 订餐类型(booktypeid、

12、booktypename)4.2数据库表表4.2.1数据库的简要说明表名简要说明dbo.accounts收入表,在此存放账单信息dbo.books订餐表,在此存放订餐信息dbo.booktypes点出餐类型表,在此存放点出餐类型的信息dbo.chooses点餐表,在此存放点餐信息dbo.detaileds点餐详细表,在此存放订单信息dbo.employees厨师信息表,在此存放厨师信息dbo.foods菜单表,在此存放菜单信息dbo.foodtypes菜单类型表,在此存放菜单类型信息dbo.launchs出餐表,在此存放出餐信息dbo.sources来源表,在此存放订单来源餐桌信息dbo.us

13、ers用户表,在此存放用户信息dbo.usertypes用户类型表,在此存放用户类型信息表4.2.2 users(用户表)字段名说明类型可空备注userid用户idint否主键,自增username用户名nvarchar(10)否唯一约束userpassword密码nvarchar(20)否usertypeid员工表的idint否外键-关联员工表主键表4.2.3 employees(厨师表)字段名说明类型可空备注employeesid员工idint否主键,自增employeesname姓名nvarchar(20)否sex性别bit否age年龄int否identitycard身份证号nvarch

14、ar(18)否tel联系方式nvarchar(11)否usertypeid员工类型idint否外键-关联员工类型表的主键表4.2.4 usertypes(用户类型表)字段名说明类型可空备注usertypeididint否主键,自增usertypename类型名nvarchar(10)否表4.2.5 accounts(收入表)字段名说明类型可空备注accountid收入idint否主键,自增money收入金额float否orderid点餐表的idint否userid员工表的idint否外键-关联员工表主键times时间datetime否booktypeid判断点出餐int否外键-关联点出餐类型表

15、主键表4.2.6 foods(菜单表)字段名说明类型可空备注foodid菜idint否主键,自增foodname某菜的名字nvarchar(50)否price价格float否picture图片image是foodtypeid食物的类型idint否外键关联食物表的主键number统计某菜的数量int是explain菜简介nvarchar(100)是表4.2.7 foodtypes(菜单类型表)字段名说明类型可空备注foodtypeid食物idint否主键,自增foodtypename食物类型名nvarchar(50)否表4.2.8 books(订餐表)字段名说明类型可空备注bookid点餐idi

16、nt否主键,自增booktime订餐时间datatime否eattime订餐消费时间 datatime否address订餐人的地址nvarcahr(50)否tel订餐人的联系方式nvarchar(50)否booktypeid点出餐idint否外键关联点出餐表主键表4.2.9 launchs(出餐表)字段名说明类型可空备注launchid菜表的idint否主键自增employeesid员工的idint否外建关联员工表主键booktypeid点出餐的idint否外键关联点出餐表主键foodid食物idint否外键关联食物表主键time时间datetime否orderid点餐表idint否表4.2.

17、10 chooses(点餐表)字段名说明类型可空备注chooseid点餐的idint否主键,自增times点餐的时间datatime否自动获取sourceid桌子的编号int否外键关联来源表主键booktypeid点出餐的idint否外键关联点出餐表主键表4.2.11 detaileds(点餐详细表)字段名说明类型可空备注detailedid点餐详细表的idint否外建关联点餐表主键foodid菜的idint否外建关联菜表食物主键number数量int否orderid点餐表idint否booktypeid点出餐的idint否外键关联点出餐表主键表4.2.12 sources来源表(点餐时的来源

18、)字段名说明类型可空备注sourceid来源的idint否主键自增sourcename桌子来源的编号nvarchar(10)否表4.2.13 booktypes(点出餐类型表)字段名说明类型可空备注booktypeididint否主键自增booktypename点出餐的类型nvarchar(10)否5物理结构设计5.1关系模式存取方法选择数据库是多用户共享的系统,对同一个关系要建立多条存储路径才能满足多用户的多种应用要求,物理结构设计的任务之一是根据关系数据管理系统支持的存取方法确定选择哪些存取方法,本次设计采用b+树索引存取方法,根据应用要求确定对关系的哪些属性列建立索引,对哪些属性列建立组

19、合索引,对哪些列建立唯一索引。在本次设计中,一共有三个关系,分别是users(用户表)、employees厨师表、usertypes(用户类型表)、accounts(收入表)、foods(菜单表)foodtypes(食物类型表)、books(订餐表)、launchs(出餐表)、chooses(点餐表)、detail(点餐详细表)、source(来源表(点餐时的来源)、booktypes(点出餐类型表)在这12个表中都用主键id作为唯一索引进行相关的操作。5.2确定数据库的存储结构确定数据库的物理结构主要是指确定数据的存放位置和存储结构,包括确定关系、索引、聚簇、日志、备份等的存储结构,确定系统

20、配置等。确定数据的存放位置和存储结构要综合考虑存取时间,存储空间利用率和和维护代价三方面的因素。这三个方面常常是相互矛盾的,因此需要进行权衡,选择一个这种方案。5.2.1确定数据的存放位置为了提高系统性能,应该根据应用情况将数据的易变部分与稳定部分,经常存取部分和存取频率较低的部分分开存放,本系统由于12个表都是要经常存取的,因此将其都放在一起,具体位置如下。行数据文件存放位置:c:programfilesmicrosoftsqlservermssql10.mssqlservermssqldata日志文件存放位置:c:programfilesmicrosoftsqlservermssql10.

21、mssqlservermssqldata5.2.2数据库的系统配置关系数据库管理系统铲平一般都提供了一些系统配置变量和存储分配参数,供设计人员和数据库管理员对数据库进行物理优化,出事情况下,系统都为这些变量赋予了合理的默认值,但是这些值不一定适合每一种应用环境,在进行物理设计时需要重新对这些变量赋值,以改善系统的性能。表5.2.2本系统数据库的系统配置逻辑名称文件类型文件组初始大小(mb)自动增长hotalmsdb行数据primary3增量为 1 mb,不限制增长hotalmsdb_log日志不适用1增量为 10,增长的最大值限制为 2097152 mb 6.系统主要查询功能及sql语句6.1

22、主要查询功能订单信息查询 private void select_click(object sender, eventargs e) p = 0; incomeopt incomeopt=new incomeopt(); if (cbotype.text = 点餐) dgvselect.datasource=incomeopt.getselectfooddian(cbodesk.selectedvalue.tostring(); else dgvselect.datasource=incomeopt.getselectfoodding(cbonumber.text); for (int i =

23、 0; i 0) comd.commandtext = select foodid from foods where foodname=+food.foodname+; tran.commit(); catch (exception ex) tran.rollback(); throw ex; finally conn.close(); 7系统实现餐厅点菜系统菜品管理基本信息管理点餐管理订餐管理用户管理职 位 管 理用户信息管理退 出登 陆注 册员工管理点餐信息管理订餐信息管理菜种类管理收银台登 陆注 册退 出7.1系统的功能模块图图7.1.1系统的功能模块图7.2部分程序代码1.用户登陆代码

24、 private void btnlogin_click(object sender, eventargs e) using (sqlconnection con = new sqlconnection(constr) try sqlcommand cmd = new sqlcommand(); cmd.connection = con; cmd.commandtext = select userid from users where + username=username and userpassword=userpassword and usertypeid=usertypeid; sql

25、parameter s1 = cmd.parameters.add(username, sqldbtype.nvarchar); s1.value = txtusername.text; sqlparameter s2 = cmd.parameters.add(userpassword, sqldbtype.nchar); s2.value = txtpassword.text; sqlparameter s3 = cmd.parameters.add(usertypeid, sqldbtype.int); s3.value = int.parse(coboptionligion.select

26、edvalue.tostring(); con.open(); int count = convert.toint32(cmd.executescalar(); if (count 0) globalinfo.login = int.parse(coboptionligion.selectedvalue.tostring(); globalinfo.userid = count; globalinfo.loginname = txtusername.text; this.close(); else messagebox.show(用户名或密码错误!); catch (exception exe

27、) messagebox.show(exe.message); finally con.close(); 2.连接数据库代码 private void btnlogin_click(object sender, eventargs e) using (sqlconnection con = new sqlconnection(constr) try sqlcommand cmd = new sqlcommand(); cmd.connection = con; cmd.commandtext = select userid from users where + username=usernam

28、e and userpassword=userpassword and usertypeid=usertypeid; sqlparameter s1 = cmd.parameters.add(username, sqldbtype.nvarchar); s1.value = txtusername.text; sqlparameter s2 = cmd.parameters.add(userpassword, sqldbtype.nchar); s2.value = txtpassword.text; sqlparameter s3 = cmd.parameters.add(usertypei

29、d, sqldbtype.int); s3.value = int.parse(coboptionligion.selectedvalue.tostring(); con.open(); int count = convert.toint32(cmd.executescalar(); if (count 0) globalinfo.login=int.parse(coboptionligion.selectedvalue.tostring(); globalinfo.userid = count; globalinfo.loginname = txtusername.text; this.cl

30、ose(); else messagebox.show(用户名或密码错误!); catch (exception exe) messagebox.show(exe.message); finally con.close(); 3.服务器连接代码 public class connect static string ip = configurationmanager.appsettingsip; /设置ip static string port = configurationmanager.appsettingsport; /设置端口 public package sendadd(list li

31、stfood) package package = new package(); /报文中存放着实体集合和mark标记 package.listfood = listfood; package.mack = mack.add; package.address = userinfo.address; package.eattime = userinfo.eattime; package.tel = userinfo.tel; tcpclient client = new tcpclient(ip, int.parse(port); /与服务器建立连接 networkstream ns = cli

32、ent.getstream(); /接收网络流 iformatter formatter = new binaryformatter(); /定义格式化器 formatter.serialize(ns, package); /序列化网络流、发送报文给服务 package package1 = (package)formatter.deserialize(ns); ns.close(); return package1; 7.3系统运行截图1.用户登陆界面图7.3.1用户登陆界面2.用户主界面图7.3.2用户主界面3.职位管理界面图7.3.3职位管理界面4.员工管理界面图7.3.4员工管理界面5.员工任务分配界面图7.3.5员工任务分配界面6.收银台界面图7.3.6收银台界面7.添加菜谱界面图7.3.7添加菜谱界面8.点餐、订餐界面图7.3.8点餐、订餐界面9.服务器界面图7.3.9服务器界面8设计小结8.1心得与体会 本次课程设计主要是利用数据库的基本知识和c#编程语言的知识和方法,对系统进行了功能需求分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论