餐饮服务管理系统数据库课程设计_第1页
餐饮服务管理系统数据库课程设计_第2页
餐饮服务管理系统数据库课程设计_第3页
餐饮服务管理系统数据库课程设计_第4页
餐饮服务管理系统数据库课程设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、上海应用技术学院课程设计任务书课程名称数据库原理及应用课程设计设计题目餐饮服务管理系统设计时间2015年 7 月 6 日 2015 年7月 17日系(院)计算机科学与信息工程学院专业网络工程班级一、 课程设计任务(条件)、具体技术参数(指标)通过两周的课程设计,要求学生加深对数据库技术相关理论的理解,增强动手能力,掌握使用现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整性约束,对数据库中数据进行查询,更改等操作)的方法;具体应用方面,要求学生对SQL语言要有较深入的了解和掌握,结合高级语言编程,以小组协作方式完成一个应用系统的设计。本次课程设计包含两大部分内容:设计

2、软件和设计报告。其中设计软件在题目验收时由指导教师检查,具体内容不同,系统要求不同;设计报告作为书面材料提交。二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)1、每个小组提交设计的数据库和应用程序相关文档,每位同学提交一份课程设计报告,内容要包含设计题目、设计目的、需求分析、系统功能描述、系统E-R图、关系模式设计、各数据库表的建立(代码)、系统各功能实现(代码)、系统功能评价等。2、课程设计报告电子版排版顺序: 任务书 目录 正文 附录。3、每个同学要针对自己完成的系统功能,写出对设计技术的分析、对系统的测试、在编码和调试过程中遇到的问题和解决方法等。4、课程设计

3、报告最后写出本次设计的心得体会。三、课程设计工作进度计划1、课程设计第1周第1天:分组、小组任务分工、讨论系统功能2、第1周第2天:需求分析,资料准备等3、第1周第3天-第5天:概念设计、逻辑设计、物理设计、界面设计4、第2周第1天-第3天:编程和测试,撰写设计报告5、第2周第4天-第5天:课程设计检查,小组答辩,个人提交设计报告四、主要参考资料1、数据库原理及应用 雷景生主编 清华大学出版社 2012,1, 第一版 请同学按照以上格式再填写2-3本参考书,或参考资料所属网址指导教师(签名): 教研室主任(签名): 2015年7月 17 日 2015 年 7月 17 日目 录1概述11.1餐饮

4、管理系统的目标11.2开发环境及工具11.3小组分工22需求分析32.1问题陈述32.2功能需求32.3系统总体功能模块图33概念结构设计53.1设计思想53.2系统总E-R图63.3局部ER图73.4实体属性的描述84逻辑结构设计114.1关系模式114.2建表逻辑设计115物理结构设计135.1数据流图135.1.1总体数据流图135.1.2分功能数据数据流图155.2数据字典165.2.1数据项165.2.2数据结构165.2.3数据流175.2.4数据存储175.2.5处理过程176数据库实施196.1界面设计196.1.1登录界面设计196.1.2登录界面主要代码196.1.3主界面

5、设计216.1.4主界面对应代码216.2桌台信息管理246.2.1桌台管理模块页面设计246.2.2桌台管理主要代码266.3菜单管理设计336.3.1菜单管理界面设计336.3.2菜单管理功能主要代码346.4数据的存储与表的设计376.4.1菜单的数据存储376.4.2桌台信息数据存储377结束语398参考文献40参考文献411 概述近年来,随着人民的生活水平的不断提高,餐饮业的消费持续增长,竞争愈来愈激烈。然而,传统餐饮企业的日常运作还是靠人工管理,从原材料入库到客人点单,再到结账基本上由人工完成记录,这样做不仅耗费人力资源而且容易导致记录丢失或重复等错误,造成管理水平低下。这就迫切需

6、要标准的、高效率的计算机管理方式引导其发展,通过计算机管理该企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率。本系统选择目前市场上价格比较低廉的数据库服务器产品: sql server2005及配套的平台Windows XP。而前台开发工具采用.NET,语言用C#,利用其可视化的开发环境、丰富的控件资源,快速开发出了餐饮管理信息系统应用程序。1.1 餐饮管理系统的目标面对服务行业的高速发展和餐饮企业信息发展的过程中出现的各种情况,本系统应达到以下目标:l 系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。l 实现对餐厅顾客开台、点菜/加菜、账

7、目查询和结账等操作。l 对用户输入的数据,进行严格的数据检验,尽可能的避免人为错误。l 实现对消费账目自动结算。l 实现对消费的历史记录进行查询,支持模糊查询。l 系统应最大限度地实现易维护性和易操作性1.2 开发环境及工具数据库环境选择SQL server 2005中文版;前台编程语言使用C#语言来编写。开发环境使用Windows xp 系统。1.3 小组分工:员工管理模块、用户管理模块:辅助功能设计、结账模块:桌台管理模块、菜单管理模块:消费查询模块、点餐加餐模块2 需求分析问题陈述、系统需完成的功能;系统总体功能模块图,即描述每一个功能所完成的任务情况。个人完成部分数据流图或数据字典。2

8、.1 问题陈述随着餐饮业的不断发展,餐饮管理系统的内容对于餐饮业的决策者和管理者来说都非常重要。本系统主要包括桌台显示、消费查询、人事档案管理及权限等极大部分功能,具有良好的用户接口,使用方便;具有完善的查询,对于维护系统起到了辅助决策的作用,能及时、方便的进行查询修改删除等维护性操作。2.2 功能需求餐饮管理系统中主要包括对以下几种功能:基础信息模块,开台消费,辅助工具模块,系统维护模块,系统设置模块,登录退出模块。基础信息模块:包括员工管理功能,可以进行员工信息的增加,删除,查询,修改的功能;桌台信息管理:包括对桌台信息的增加,删除,查询,修改的功能。开台消费模块:开台、取消开台、点菜加菜

9、、消费查询、结账等功能。辅助功能模块:直接调用日历,记事本,计算器的功能,方便用户使用。系统维护模块:数据库备份与恢复系统设置模块:锁定系统、用户设置,对于用户信息进行增加,删除,查询,修改。登录退出模块:用户的登录与退出。2.3 系统总体功能模块图餐饮管理系统 基础信息开台消费辅助工具系统维护系统设置退 出桌台信息管理员工信息管理菜单修改开台单点菜加菜消费查询结账日历记事本计算器备份数据库恢复数据库系统锁定用户管理退出登录3 概念结构设计设计思想、系统总ER图。 个人完成部分的局部ER图,要有实体属性的描述。3.1 设计思想餐饮管理系统的设计思想应该包含以下几个功能模块:基础信息模块:包括员

10、工管理功能,可以进行员工信息的增加,删除,查询,修改的功能;桌台信息管理:包括对桌台信息的增加,删除,查询,修改的功能。开台消费模块:开台、取消开台、点菜加菜、消费查询、结账等功能。辅助功能模块:直接调用日历,记事本,计算器的功能,方便用户使用。系统维护模块:数据库备份与恢复系统设置模块:锁定系统、用户设置,对于用户信息进行增加,删除,查询,修改。登录退出模块:用户的登录与退出。3.2 系统总E-R图顾客订餐服务员系统管理管理桌台桌台系统管理员1nmmnm顾客订单1餐饮管理系统E-R图结账账单票据1菜单信息服务员信息mmn管理员账户信息mm13.3 局部ER图经理桌台信息的增、删、改、查更新后

11、的桌台1N服务员开台顾客NN1服务桌台管理的E-R图经理菜单信息的增、删、改、查更新后的菜单1N服务员开台顾客NN1服务点菜订单信息11菜单信息管理的E-R图3.4 实体属性的描述桌台(桌台编号、桌台名称、桌台简称、桌台包间费、桌台位置、桌台状态、桌台类型、桌台备注、桌台其他信息、)桌台备注桌台简称桌台桌台名称 桌台编号 桌台其他信息 桌台类型桌台状态桌台位置桌台位置桌台包间费服务员(服务员编号. 服务员姓名、身份证号码、性别、年龄、电话)服务员姓名 年龄性别服务员姓名服务员身份证号码 电话 用户(用户ID、用户登录名、用户登录密码、

12、用户权限)用户登录密码  用户登录名用户ID用户权限用户顾客实体E-R图菜肴(菜品编号,菜品名称,菜品类别,菜品价格)菜品类别 菜品名称菜品编号 菜品价格菜肴4 逻辑结构设计完成E-R图转换为关系模式,分析关系模式是否符合一定级别的范式要求,不符合的话需要进行模式分解。紫颜色字体内容为可选。4.1 关系模式桌台(桌台编号、桌台名称、桌台简称、桌台包间费、桌台位置、桌台状态、桌台类型、桌台备注、桌台其他信息、顾客姓名、开台时间、顾客人数、操作员姓名)结账(消费桌台、菜品代号、菜品名称、消费数量、菜品价格、操作员姓名、备注、消费时间)订餐(菜品类别编号、菜品

13、代号、菜品名称、菜品价格)类别(类别编号、菜品类别名称)职员(职员编号. 职员姓名、身份证号码、性别、年龄、电话)系统管理(用户ID、用户登录名、用户登录密码、用户权限)4.2 建表逻辑设计表-dbo.tb_food表-dbo.tb_GuestFood 表-dbo.tb_Room表-dbo.tb.User表-dbo.tb_Waiter5 物理结构设计(1) 确定数据存放位置、系统配置等。个人承担模块所所涉及的表结构、各属性名称、数据类型、约束等的说明。5.1 数据流图5.1.1 总体数据流图系统管理员服务员餐饮管理系统收银、账单信息菜单信息商品信息信息桌台信息顶层数据流图系统管理员服务员打印账

14、单票据查询顾客订单顾客菜单记录人事管理财务管理菜单管理增、删、改员工表 财务记录菜单记录  菜单信息处理菜单记录 结账订单票据 总菜单信息顾客安排桌台顾客信息账单记录 桌台信息桌台记录  点餐顾客菜单信息找零收银餐饮管理系统数据流图5.1.2 分功能数据数据流图服务员查询顾客订单顾客菜单记录 结账 顾客安排桌台桌台信息桌台记录桌台信息管理数据流图系统管理员菜单管理增、删、改菜单记录 菜单信息处理菜单记录 菜单管理数据流图5.2 数据字典5.2.1 数据项桌台信息:编号数据项名

15、数据项含义说明数据类型长度与其他数据项的关系是否可以为空1RoomID桌台编号int4主键不2RoomName桌台名称char10不3RoomJC桌台简称char10不4RoomBJF桌台包间费decimal9不5RoomWZ桌台位置char10不6RoomZT桌台状态char10不7RoomType桌台类型char10不8RoomBZ桌台备注varchar509RoomQT桌台其他信息varchar5010GuestName顾客姓名varchar5011zhangdanDate开台时间datetime12Num顾客人数Int4不13WaiterName操作员姓名Varchar50不菜单管理编

16、号数据项名数据项含义说明数据类型长度与其他数据项的关系是否可以为空1foodnum商品代号char10主键不2foodname商品名称varchar50不3foodsum消费数量char10不4foodallprice商品价格decimal9不5waitername操作员姓名varchar50不6beizhu备注varchar507zhuotai消费桌台char10不8datatime消费时间datetime不5.2.2 数据结构编号数据结构名属 性1菜品信息类别编号,菜品代号,菜品名称,菜品价格2菜品类别菜品类别编号, 菜品类别名称3顾客消费顾客编号,菜品代号,菜品名称,消费数量,菜品价格,

17、操作员姓名,备注,消费桌台,消费时间4桌台安排桌台编号,桌台名称,桌台简称,桌台包间费,桌台位置,桌台状态,桌台类型,桌台备注,桌台其他信息,顾客姓名,开台时间,顾客人数,操作员姓名5职员职员编号,职员姓名,身份证号码,性别,年龄,电话 5.2.3 数据流编号数据流名输 入输 出1变更菜品信息新菜品信息菜品记录2查询菜品信息菜品信息菜品记录3变更人事信息变更人事信息人事记录4变更菜单信息变更菜单信息菜单总信息5变更财务信息新的账单信息账单记录6顾客信息顾客信息桌台记录7顾客所订菜单顾客所订菜单菜单记录8结账金额账单记录5.2.4 数据存储数据存储名输入数据流输出数据流变更人事变更人事信息人事记

18、录变更菜单变更菜单信息菜单总信息变更财务新的账单信息账单记录顾客信息顾客信息桌台记录顾客所订菜单顾客所订菜单菜单记录结账金额账单记录5.2.5 处理过程处理过程名输入数据流输出数据流查询人事信息+桌台信息+账单+菜单人事信息+桌台信息+账单+菜单增、删、改人事信息+桌台信息+账单+菜单人事信息+桌台信息+账单+菜单更新人事信息+桌台信息+账单+菜单人事信息+桌台信息+账单+菜单用户权限认证用户名,密码,身份系统主菜单6 数据库实施界面设计、建表、数据输入、应用程序设计与调试等、数据库运行与维护(数据库安全性完整性的控制、数据库备份)等。报告中可以先展示系统登录和主界面,重点写个人承担的内容,可

19、以包括-数据库中的表、视图、存储过程(如果使用)的结构和定义(可以用SQL脚本提供)、表间关系、界面和代码段、测试用例和结果等。6.1 界面设计6.1.1 登录界面设计6.1.2 登录界面主要代码namespace MrCy public partial class frmLogin : Form public frmLogin() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) txtName.Focus(); private void txtPwd_KeyPress(object send

20、er, KeyPressEventArgs e) if (e.KeyChar = 13) btnSubmit_Click(sender, e); private void btnSubmit_Click(object sender, EventArgs e) if (txtName.Text = "") MessageBox.Show("请输入用户名", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); else if (txtPwd.Text = "") M

21、essageBox.Show("请输入密码", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); else SqlConnection conn = BaseClass.DBConn.CyCon(); conn.Open(); SqlCommand cmd = new SqlCommand("select count(*) from tb_User where UserName='" + txtName.Text + "' and UserPwd=

22、9;" + txtPwd.Text + "'", conn); int i = Convert.ToInt32(cmd.ExecuteScalar(); if (i > 0) cmd = new SqlCommand("select * from tb_User where UserName='" + txtName.Text + "'", conn); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); string UserPower =

23、 sdr"power".ToString().Trim(); conn.Close(); Main main = new Main(); main.power = UserPower; main.Names = txtName.Text; main.Times = DateTime.Now.ToShortDateString(); main.Show(); this.Hide(); else MessageBox.Show("用户名或密码错误"); private void btnConcel_Click(object sender, EventArgs

24、 e) if (MessageBox.Show("确定退出系统吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) = DialogResult.OK) Application.Exit(); 6.1.3 主界面设计6.1.4 主界面对应代码 private void Main_Load(object sender, EventArgs e) switch (power) case "0": toolStripStatusLabel5.Text = "

25、超级管理员" break; case "1": toolStripStatusLabel5.Text = "经理" break; case "2": toolStripStatusLabel5.Text = "服务员" break; toolStripStatusLabel2.Text = Names; toolStripStatusLabel8.Text = Times; if (power = "2") button1.Enabled = false; button4.Enable

26、d = false; button5.Enabled = false; if (power = "1") button4.Enabled = false; button5.Enabled = false; listView1.Height = 0; listView2.Height = 0; private void button1_Click(object sender, EventArgs e) listView2.Height = 480; listView1.Height = 0; listView2.Clear(); listView2.Items.Add(&qu

27、ot;桌台信息", 9); listView2.Items.Add("职员信息", 18); listView2.Items.Add("菜单修改", 19); private void AddItems(string rzt) string rName = sdr"RoomName".ToString().Trim(); if (rzt = "使用") if (rName.Substring(0, rName.IndexOf("-") = "大厅") listVie

28、w1.Items.Add(sdr"RoomName".ToString(), 1); else listView1.Items.Add(sdr"RoomName".ToString(), 3); else if (rName.Substring(0, rName.IndexOf("-") = "大厅") listView1.Items.Add(sdr"RoomName".ToString(), 0); else listView1.Items.Add(sdr"RoomName"

29、;.ToString(), 2); private void frmMain_Activated(object sender, EventArgs e) listView1.Items.Clear(); SqlConnection conn = BaseClass.DBConn.CyCon(); conn.Open(); SqlCommand cmd = new SqlCommand("select * from tb_Room", conn); sdr = cmd.ExecuteReader(); while (sdr.Read() string zt = sdr&quo

30、t;RoomZT".ToString().Trim(); AddItems(zt); conn.Close(); private void button2_Click(object sender, EventArgs e) listView1.Height = 480; listView2.Height = 0; frmMain_Activated(sender,e); private void button3_Click(object sender, EventArgs e) listView2.Height = 480; listView1.Height = 0; listVie

31、w2.Clear(); listView2.Items.Add("日历", 13); listView2.Items.Add("记事本", 10); listView2.Items.Add("计算器", 11); private void button4_Click(object sender, EventArgs e) listView2.Height = 480; listView1.Height = 0; listView2.Clear(); listView2.Items.Add("系统备份", 16);

32、listView2.Items.Add("系统恢复", 15); private void button5_Click(object sender, EventArgs e) listView2.Height = 480; listView1.Height = 0; listView2.Clear(); listView2.Items.Add("锁定系统", 14); listView2.Items.Add("用户管理", 15); private void button6_Click(object sender, EventArgs

33、 e) if (MessageBox.Show("确定退出登录吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) = DialogResult.OK) this.Hide(); frmLogin fms = new frmLogin(); fms.Show(); private void listView1_DoubleClick(object sender, EventArgs e) frmDetails details = new frmDetails(); detai

34、ls.TableName = listView1.SelectedItems0.SubItems0.Text; details.ShowDialog(); private void listView2_DoubleClick(object sender, EventArgs e) if (listView2.SelectedItems0.SubItems0.Text = "桌台信息") Desks mDes = new Desks(); mDes.ShowDialog(); if (listView2.SelectedItems0.SubItems0.Text = &quo

35、t;职员信息") Staff zy = new Staff(); zy.ShowDialog(); if (listView2.SelectedItems0.SubItems0.Text = "菜单修改") cdAlter cd = new cdAlter(); cd.ShowDialog(); if (listView2.SelectedItems0.SubItems0.Text = "系统备份") frmBF bf = new frmBF(); bf.ShowDialog(); if (listView2.SelectedItems0.Su

36、bItems0.Text = "系统恢复") frmHF hf = new frmHF(); hf.ShowDialog(); if (listView2.SelectedItems0.SubItems0.Text = "用户管理") userAlter usa = new userAlter(); usa.ShowDialog(); if (listView2.SelectedItems0.SubItems0.Text = "日历") frmCalender rl = new frmCalender(); rl.ShowDialog

37、(); if (listView2.SelectedItems0.SubItems0.Text = "记事本") System.Diagnostics.Process.Start("notepad.exe"); if (listView2.SelectedItems0.SubItems0.Text = "计算器") System.Diagnostics.Process.Start("calc.exe"); if (listView2.SelectedItems0.SubItems0.Text = "锁定系

38、统") frmLock sd = new frmLock(); sd.ShowDialog(); 6.2 桌台信息管理6.2.1 桌台管理模块页面设计桌台信息管理开台桌台信息6.2.2 桌台管理主要代码桌台管理public partial class Desks : Form public Desks() InitializeComponent(); private void Desks_Load(object sender, EventArgs e)/初始化界面,将要显示的文字插入combobox控件 comboBox1.Items.Insert(0,"使用")

39、; comboBox1.Items.Insert(1, "待用"); comboBox2.Items.Insert(0, "大厅"); comboBox2.Items.Insert(1, "包房"); Bind(); private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)/创建单元单击事件,返回单元格的值 textBox1.Text = dataGridView1.SelectedCells0.Value.ToString();

40、textBox2.Text = dataGridView1.SelectedCells1.Value.ToString(); textBox3.Text = dataGridView1.SelectedCells2.Value.ToString(); comboBox2.Text = dataGridView1.SelectedCells3.Value.ToString(); comboBox1.Text = dataGridView1.SelectedCells4.Value.ToString(); textBox6.Text = dataGridView1.SelectedCells5.V

41、alue.ToString(); private void Bind()/将此查询过程写成方法,方便调用 SqlConnection conn = BaseClass.DBConn.CyCon(); SqlDataAdapter sda = new SqlDataAdapter("select RoomName,RoomJC,RoomBJF,RoomWZ,RoomZT,RoomBZ,ID from tb_Room order by ID desc", conn); DataSet ds = new DataSet(); sda.Fill(ds); dataGridView1

42、.DataSource = ds.Tables0; private void button1_Click(object sender, EventArgs e)/添加和修改按钮 SqlConnection conn = BaseClass.DBConn.CyCon(); conn.Open(); if (textBox1.Text.ToString().Trim() != "" && textBox2.Text.ToString().Trim() != "" && comboBox2.Text.ToString().Tri

43、m() != "") SqlCommand cmd = new SqlCommand("select count(*) from tb_Room where RoomName='" + textBox1.Text + "'", conn); int i = Convert.ToInt32(cmd.ExecuteScalar(); if (i > 0) cmd = new SqlCommand("update tb_Room set RoomName='" + textBox1.Text

44、 + "',RoomJC='" + textBox2.Text + "',RoomBJF='" + textBox3.Text + "',RoomWZ='" + comboBox2.Text + "',RoomZT='" + comboBox1.Text + "',RoomBZ='" + textBox6.Text + "' where ID='" + dataGridView1.SelectedCells6.Value.ToString() + "'&qu

温馨提示

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

评论

0/150

提交评论