大型数据库课程设计报告餐饮管理系统毕业论文.doc_第1页
大型数据库课程设计报告餐饮管理系统毕业论文.doc_第2页
大型数据库课程设计报告餐饮管理系统毕业论文.doc_第3页
大型数据库课程设计报告餐饮管理系统毕业论文.doc_第4页
大型数据库课程设计报告餐饮管理系统毕业论文.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

数学与计算机学院课程设计说明书课 程 名 称: 大型数据库-课程设计 题 目: 餐饮管理系统 年级/专业/班: 计算机科学与技术 1目 录 摘 要11 引 言11.1 问题的提出11.2网络化11.3任务与分析12 需求分析22.1用户功能22.2 管理员功能32.3数据分析概念模型分析43总体设计53.1系统业务流程分析53.2 系统功能结构64详细设计74.1 数据库设计74.2 系统主要功能模块设计与实现12结 论32致 谢33参考文献34摘 要随着我国市场经济的快速发展,各行业都呈现出生机勃勃的发展景象,其中餐饮业的发展尤为突出。近两年来已呈现出高速发展的态势。但在快速发展的同时,餐饮业在日常经营管理中仍普遍采用手工管理方式,整体科技含量低。随着餐饮企业规模和数量的不断增长,手工管理模式无论是在工作效率、人员成本还是提供决策信息方面都已难以适应现代化经营管理的要求,因此制约了整个餐饮业的规模化发展和整体服务水平的提升。有效的管理成为了一个难题,为能有效的解决这些问题提高企业的经济效益,在这些中小型饭店中采用工作流技术,结合饭店绿色管理内容,实施计算机管理信息系统不视为一条有效的解决途径。本论文主要针对中小型饭店餐饮管理中的一些问题,将其与计算机信息管理系统结合起来,实现中小型饭店管理信息计算机化、系统化,将中小型饭店管理中的工作流转化成比较科学化、规范化的业务流程,使管理基础数据更加准确化,管理人员摆脱了事务性工作,转而从事管理专业工作,为经营决策提供了快捷和强大的数据支持。把计算机用于餐饮企业管理,可在很大程度上提高管理者分析和决策的科学性,提高经营管职水平,带来更多的顾客,使企业取得更好的经济效益。关键词:计算机信息管理系统 中小型饭店 餐饮管理1 引 言 1.1 问题的提出 民以食为天,随着人民生活水平的提高,餐饮业在服务行业中占有越来越重要的地位。努力在当前餐饮行业日趋激烈的竞争中脱颖而出,已成为每位餐饮业经营者所追求的目标。经过多年发展,餐饮管理已经逐渐由定性管理,进入到重视定量管理的科学阶段。众所周知,在定量管理的具体实现方法和手段方面,最有效的工具就是电脑管理。传统的手工操作管理存在着许多无法避免的问题,该系统将能大大的降低许多问题,减轻人力与物力。1.2网络化 网络化就是通过计算机的网络来实现不同区域的不同用户来实现对报刊的订阅,这样也便于管理者对报刊的管理,显得更加方便。1.3任务与分析本软件能在很大程度上解决中小型餐厅的消费管理,方便对顾客的消费进行管理,本系统运行时能在主菜单上看到当前的桌台情况是否被占用,能很好分配顾客的用餐,顾客点菜时能很好的进行记录,有方便的结账功能,直接计算出找零,本系统还能对桌台信息进行管理,方便以后的增加与减少桌台,同时也能方便的对服务人员的信息进行管理,有系统数据库备份功能,防止系统在死机的情况下丢失大量重要信息。2 需求分析 2.1用户功能2.11用户登录模块 该模块主要用于实现验证用户是否合法,只有合法用户才能有权登录,只有登录成功情况下才能进入系统功能主界面,并且在登录的同时能验证登录人员的管理权限,根据权限显示其能管理范围。2.1.2桌台信息管理模块该模块主要用于管理桌台的信息,可以设置桌台名称,桌台位置,桌台占用所需要加钱。2.1.3服务员信息管理模块 该模块主要用于方便对服务人员的信息进行管理2.1.4修改密码模块该模块主要用于实现对登录人员的密码进行管理,长时间不更换密码是不安全的,增加此模块能增加系统的安全性。2.1.5开台模块该模块主要用于实现对顾客进行开台,已经占用的桌台不能被再次分配,方便分配未占用的桌台给顾客2.1.6取消开台模块该模块主要用于实现对已经开台的桌台进行取消开台。2.1.7消费查询模块该模块主要用于实现客户能够查询自己已消费清单情况,进行核对自己的消费。2.1.8结账模块该模块主要用于实现对客户的消费进行自动汇总,显示消费金额,能进行找零计算。2.1.9数据库管理模块该模块主要用于实现对系统数据库的备份,防止系统在死机的情况下丢失大量重要信息。2.2 管理员功能 2.2.1增加报刊功能管理员在后台对餐饮各类进行添加,添加时需要填写的信息包括餐饮的食材、名称、价格等。2.2.2修改功能管理员对已经存在的餐饮的信息进行修改,包括餐饮的食材、名称、价格等,但不能修改餐饮的编号,在这是因为以餐饮的编号作为主键进行的查找要修改的餐饮信息。2.2.3删除功能管理员在后台对已经存在的报刊进行删除,操作为直接输入要删除的餐饮的编号,后台自动的查找到这个餐饮,再从数据库中的餐饮信息表中彻底的删除该类餐饮的所有信息。2.2.4查看用户订阅信息管理员登录后,可对报刊的征订情况进行查询,包括每个用户订餐的类型、数量和应付额。2.3数据分析概念模型分析需求分析阶段主要有两个方面的任务:分析用户的数据要求和分析用户的处理要求。通过以上分析,我们已经基本了解了用户对处理的要求,接下来需要的工作是分析用户对数据的要求。为了把用户的数据清晰明确地表达出来,系统分析员通常建立一个概念性的数学模型。概念性模型是一种面向问题的数学模型,是按用户的观点来对数据和信息建模。最常用的表示概念性数据模型的方法是实体-联系方法(Entity-Relationship Approach)。这种方法用E-R图描述现实世界中的实体,而不涉及这些实体在系统中的实现方法,该方法又称为E-R模型,E-R图中共用三种符号:实体、属性和联系。通常实体用矩形来表示,属性用椭圆或圆角矩形来表示,联系用菱形来表示。联系有分为一对一、一对多和多对多三种类型。3总体设计3.1系统业务流程分析餐饮管理系统的业务流程图如图3.1所示。 图3.1 餐饮管理系统的业务流程图3.2 系统功能结构系统功能结构图如图3.2所示。餐饮管理系统密码管理服务员管理消费查询管理结账管理数据库管理用户登录管理guanl桌台信息管理修改密码删除更新添加恢复备份删除更新开台取消开台添加6 餐饮管理系统4详细设计4.1 数据库设计本系统采用SQL Server 2005作为后台数据库,数据库名称为restaurantManage,其中包含5张数据表。下面分别介绍:4.1.1 数据表概要说明为了对本系统后台数据库中的数据表有一个更清晰的认识,在此设计了一个数据表树形结构图,该结构图包括系统所有数据表,如图4.1所示。图4.1 数据表树状结构图4.1.2 部分数据表E-R图本里中规化出的实体主要有菜品信息实体、顾客点菜信息实体、桌台信息实体、用户登录信息实体和服务员信息实体。其中部分实体的E-R图如下所示。图4.2 用户表实体E-R图图4.3 菜品信息实体E-R图图4.4 桌台信息实体E-R图图4.5 员工信息实体E-R图图4.6 顾客点菜信息实体E-R图4.1.3 数据表的结构(1) food表(菜品信息表)表food用于保存菜品的基本信息,该表的结构如图4.7所示。图4.7 菜品信息表(2) guestfood表(顾客点菜信息表)表guestfood用于保存顾客点菜的详细信息,该表的结构如图4.8所示。图4.8 顾客点菜信息表(3) room表(桌台信息表)表room用于保存桌台的一些有关信息,该表的结构如图4.9所示。图4.9 桌台信息表(4) userlogin 表(登录人员信息表)表userlogin用于保存登录用户基本信息,表的结构如图4.10所示。图4.10 登录用户信息表(5) waiter表(餐厅服务人员信息表)表waiter用于保存餐厅服务人员的一些基本信息,表的结构如图4.11所示。图4.11 餐厅服务人员信息表4.2 系统主要功能模块设计与实现4.2.1 系统登录模块的设计与实现系统登录主要用于对进入餐饮管理系统的用户进行安全性检查,以防止非法用户进入该系统。在登录时,只有合法的用户,才可以进入该系统。系统登录窗体如图4.12所示。图4.12 系统登录代码设计单击【确定】按钮,程序执行判断用户输入的用户名和密码是否正确,如果正确,则成功登录餐饮管理系统,并将用户名、用户使用权限、用户登陆时间传到主窗体中,同时分别使用Names、power、Times全局变量进行接受。否则,弹出“用户名或密码错误”信息提示。【确定】按钮的Click事件代码如下: private void btnSure_Click(object sender, EventArgs e) if (txtUserName .Text = )/判断用户名是否为空 MessageBox.Show(用户名不能为空, 警告, MessageBoxButtons.OK, MessageBoxIcon.Warning); else if (txtPwd.Text = )/判断密码是否为空 MessageBox.Show(请输入密码, 警告, MessageBoxButtons.OK, MessageBoxIcon.Warning); else/用户名及密码不为空的情况下执行如下代码 SqlConnection conn = connectToDatabase .restaurantManagementConn (); conn.Open(); SqlCommand cmd = new SqlCommand(select count(*) from UserLogin where UserName= + txtUserName .Text + and UserPwd= + txtPwd .Text + , conn); int i = Convert.ToInt32(cmd.ExecuteScalar(); if (i 0) cmd = new SqlCommand(select * from UserLogin where UserName= + txtUserName .Text + , conn); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); string UserPower = sdrPower.ToString().Trim(); conn.Close(); formMain main = new formMain(); main.power = UserPower; main.Names = txtUserName .Text ; main.Times = DateTime.Now.ToShortDateString(); main.Show(); this.Hide(); else MessageBox.Show(用户名或密码错误); 4.2.2 主窗体的设计与实现在正确验证用户的用户名和密码以后,就显示出餐饮管理系统的主窗体。主窗体主要用于显示系统所具有的功能,例如菜单栏里显示了基础信息、辅助工具、系统设置、退出系统、系统维护等几个功能模块。用户可以选择相应的按钮对应的子功能对系统进行不同的操作,餐饮管理系统的主窗体如图4.13所示。图4.13 主窗体主窗体实现的几个重要功能实现代码如下: /接收从login窗体传来的信息,以下四个定义的变量是以后代码用到的全局变量 public string power; public string Names; public string Times; private SqlDataReader sdr; /以下是窗体加载时执行的代码 private void formMain_Load(object sender, EventArgs e) StatusLabeUser.Text = Names; StatusLabeLoginTime.Text = Times; switch (power) case 0: StatusLabePower.Text = 超级管理员; break; case 1: StatusLabePower.Text = 经理; TSMenuItemSystemMaintenance.Enabled = false; break; private void formMain_Activated(object sender, EventArgs e)/窗体激发时执行如下代码 lvDesk.Items.Clear(); SqlConnection conn = connectToDatabase.restaurantManagementConn(); conn.Open(); SqlCommand cmd = new SqlCommand(select * from Room, conn); sdr = cmd.ExecuteReader(); while ( sdr .Read() string status = sdrRoomStatus.ToString().Trim(); AddItems(status );/根据桌台使用与否,选择图片显示桌子是否在被用中 conn.Close(); private void AddItems(string status) if (status = 使用) lvDesk.Items.Add(sdrRoomName.ToString(), 1); else lvDesk.Items.Add(sdrRoomName.ToString(), 0); /右键中单击开台会执行如下代码 private void 开台ToolStripMenuItem_Click(object sender, EventArgs e) if (lvDesk.SelectedItems.Count != 0) string names = lvDesk.SelectedItems0.SubItems0.Text; formOpen frm = new formOpen(); = names; frm.ShowDialog(); else MessageBox.Show(请选择一个桌台进行开台); /右键中单击取消开台会执行如下代码 private void 取消开台ToolStripMenuItem_Click(object sender, EventArgs e) if (lvDesk.SelectedItems.Count != 0) string names = lvDesk.SelectedItems0.SubItems0.Text; SqlConnection conn = connectToDatabase.restaurantManagementConn(); conn.Open(); SqlCommand cmd = new SqlCommand(update Room set RoomStatus=待用,Num=0 Where RoomName= + names + , conn); cmd.ExecuteNonQuery(); cmd = new SqlCommand(delete from GuestFood where DiningTable= + names + , conn); cmd.ExecuteNonQuery(); conn.Close(); formMain_Activated(sender, e); else MessageBox.Show(请选择桌台); 其他右键功能代码在源代码中,代码设计思想和开台代码类似。 /单击listview控件中的一项内容时会执行如下代码,这里我们将listview的name定义为lvDesk private void lvDesk_Click(object sender, EventArgs e) string names = lvDesk.SelectedItems0.SubItems0.Text; SqlConnection conn = connectToDatabase.restaurantManagementConn(); conn.Open(); SqlCommand cmd = new SqlCommand(select * from Room where RoomName= + names + , conn); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); string status = sdrRoomStatus.ToString().Trim();/将选中桌台的状态信息提取出来 sdr.Close(); if (status = 使用) this.contextMenuStrip1.Items0.Enabled = false; this.contextMenuStrip1.Items1.Enabled = true; this.contextMenuStrip1.Items3.Enabled = true; this.contextMenuStrip1.Items5.Enabled = true; this.contextMenuStrip1.Items6.Enabled = true; if (status = 待用) this.contextMenuStrip1.Items0.Enabled = true; this.contextMenuStrip1.Items1.Enabled = false; this.contextMenuStrip1.Items3.Enabled = false; this.contextMenuStrip1.Items5.Enabled = false; this.contextMenuStrip1.Items6.Enabled = false; conn.Close(); /双击listview控件中的一项内容时会执行如下代码 private void lvDesk_DoubleClick(object sender, EventArgs e) deskInfo desk = new deskInfo (); desk .tableName = lvDesk.SelectedItems0.SubItems0.Text; desk.ShowDialog(); /单击menustrip控件中基础信息下的桌台信息管理按钮会执行如下代码 private void TSMenuItemTableInfo_Click(object sender, EventArgs e) deskInfoManagement desk = new deskInfoManagement(); desk.ShowDialog(); menustrip控件中的其他按钮的代码设计思路与上面的单击menustrip控件中基础信息下的桌台信息管理按钮类似都是初始化一个相应窗体的对象,显示窗体。注:其他代码详见系统设计文档。4.2.3 右键菜单中的几个重要功能的介绍右键菜单功能中顾客可以选择开台,取消开台,点菜,查询消费记录以及结账,下面介绍其中三个重要功能的实现代码,有开台,点菜以及结账,窗体运行结果分别如图4.14、图4.15和图4.16所示。图4.14 开台窗体图4.15 点菜窗体图4.16 结账窗体凭证信息录入窗体的主要实现代码如下:图4.15的实现代码 public string name; public SqlConnection conn; private void formOpen_Load(object sender, EventArgs e) conn = connectToDatabase.restaurantManagementConn(); conn.Open(); SqlCommand cmd = new SqlCommand(select * from Room, conn); SqlDataReader sdr = cmd.ExecuteReader(); while (sdr.Read() cbNum.Items.Add(sdrRoomName.ToString().Trim(); cbNum.SelectedItem = name.Trim(); sdr.Close(); cmd = new SqlCommand(select * from Waiter, conn); sdr = cmd.ExecuteReader(); while (sdr.Read() cbWaiter.Items.Add(sdrWaiterName.ToString().Trim(); cbWaiter.SelectedIndex = 0; sdr.Close(); private void txtNum_KeyPress(object sender, KeyPressEventArgs e) if (e.KeyChar != 8 & !char.IsDigit(e.KeyChar) & e.KeyChar != 13) MessageBox.Show(请输入数字); e.Handled = true; private void btnSave_Click(object sender, EventArgs e) if (t

温馨提示

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

评论

0/150

提交评论