《SQL数据库课程设计餐饮服务管理系统.doc》由会员分享,可在线阅读,更多相关《SQL数据库课程设计餐饮服务管理系统.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目 录第1章课程设计目的与要求11.1 课程设计目的11.2 课程设计的实验环境11.3 课程设计的预备知识11.4 课程设计要求1第2章 课程设计内容3绪论3选题背景3课题来源及意义3.3系统基本达到的目标及结论3开发工具和数据库的选择32.2.可行性分析3可行性研究3技术可行性4经济可行性42.2.1.3 操作可行性42.2.1.4 管理可行性4软、硬件配置及结构42.2.2.1 硬件配置42.2.2.2 软件配置4系统结构52.2.3.1 C/S模式简介52.2.3.2 C/S模式的优点5系统需求分析6系统分析的任务6系统数据流图的创建6业务流程图7数据字典的创建7系统概念结构设计8系统
2、结构设计8系统E-R图设计10系统逻辑结构设计10系统逻辑结构设计主要任务102.5.2 E-R图转换成关系模型11数据库的物理实现11数据库的物理设计的内容和方法11数据库表的创建11系统应用程序设计132.7.1 ADO的使用方法132.7.1.1 ADO对象简介132.7.1.2 ADO对象之间的关系132.7.1.3 ADO对象访问技术14系统功能模块设计15系统功能设计15模块设计15系统的详细设计16系统首页的设置16登记外卖订单窗体控件布局18扩展外卖送货服务窗体控件布局21第3章 课程设计总结24参考文献25第1章 课程设计目的与要求1.1 课程设计目的本课程的课程设计实际是计
3、算机相关专业学生学习完课程后,进行的一次全面的综合训练,其目的在于加深对基础理论和基本知识的理解,掌握运用开发软件的基本方法。要求学生在理解.net基本结构的基础上,达到具备熟练使用VB.net语言的基本知识和技能;基本掌握面向对象程序开发的基本思路和方法;培养良好的编程习惯;能够利用所学的基本知识和技能,进行简单的Windows应用程序设计。 课程设计的实验环境硬件要求能运行Windows 2.X操作系统的微机系统。数据库可以选用:SQL2000 SERVER,编程语言为。 课程设计的预备知识熟悉的基本知识,SQL2000数据库应用软件。 课程设计要求一、请同学们注意以下几点: 1、每个系统
4、每人应选择2个或多于2个模块; 2、最后上交时需要提供课程设计报告、程序源代码(含数据库文件);3、设计过程中有任何疑问可以问老师。二、设计步骤 1、分析程序的功能要求,划分程序功能模块。 2、画出系统结构图(如设计到使用数据库,需要建立好数据库)。 3、代码的编写。 4、程序的功能调试。 5、生成安装文件,完成系统总结报告以及使用说明书。 三、进度安排此次课程设计时间为两周,分四个阶段完成: 1、分析设计阶段。指导教师应积极引导学生自主学习和钻研问题,明确设计要求,找出实现方法,按照总体设计、详细设计的步骤进行。这一阶段在第1-2天完成。 2、编码、程序调试阶段:根据设计分析方案编写代码,然
5、后调试该代码,实现课题要求的功能。 这一阶段在第3-7天完成。 3、总结报告阶段:总结设计工作,写出程序使用说明书,要求学生写出总体设计、详细设计、编码、测试的步骤和内容。这一阶段在第8-9天完成。 4、考核阶段。这一阶段在第10天完成。 四、撰写课程设计报告或课程设计总结 课程设计报告要求:总结报告包括总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结、参考资料等,不符合以上要求者,则本次设计以不及格记。第2章 课程设计内容选题背景餐饮业作为第三产业的重要组成部分,以其市场大、增长快、投入相对较少和吸纳劳动力多的特点受到广泛重视,也是发达国家对外进行资本和品牌输出的
6、载体。餐饮业的快速发展归因于国民经济的快速发展,城乡居民可支配收入的提高,社会经济交往活动的增加,居民消费观念的更新。因此我们考虑,设计一个餐饮服务系统,来实现这一功能。课题来源及意义 开发此餐饮管理系统,不仅能提高公司的管理水平给管理者提供一个企业运作的信息平台还能提升企业的形象及增强竞争力。使用餐饮管理系统能将餐饮企业业务管理和人员管理信息化,使企业从原材料进货到客人消费都由计算机管理并记录,可随时掌握餐饮店里房间的使用状况,客人点单,挂账等情况,并能尽可能的降低使用者的劳动强度,同时提高工作质量和效率。用最少的成本获得最好的经济效益,增强了餐饮企业的市场竞争力。系统基本达到的目标及结论实
7、现餐饮设置与餐饮服务管理功能。开发工具和数据库的选择Visual basic.NET集成开发环境,以及SQL SERVER 2000数据库可行性研究餐饮管理系统是一套功能强大而又简便实用的餐饮管理软件,包括前台营业管理、预定酒宴管理、扩展外卖服务、员工管理等四大功能模块,实现了餐饮企业日常营运的全面自动管理,是餐饮企业进行电脑信息化管理的理想选择。.1技术可行性最近30年来,管理信息系统技术得到了充分的发展与完善,使得开发本系统在技术可行性成为可能,利用VB.NET和SQL Server开发工具,使得本系统不存在技术上的障碍。.2经济可行性餐饮服务管理系统的关键在于缩短了比以往传统的餐饮服务系
8、统所消耗的时间,提高了科技含量、服务质量和现代化水平。会为公司带来巨大的经济效益及其体系的完整化。.1.3 操作可行性餐饮服务管理系统实现了餐饮服务的系统化、规范化和自动化。相对地提供多样化的功能以满足顾客不断改变的需求与期望。例如外送、酒宴预定、外卖服务、窗口服务等,充分延伸了餐饮服务业的范围与内容。.1.4 管理可行性本系统将其与计算机信息管理系统结合起来,实现中小型餐饮管理信息计算机化、系统化,为经营决策提供了快捷和强大的数据支持。把计算机用于餐饮企业管理,可在很大程度上提高管理者分析和决策的科学性,提高经营管职水平,带来更多的顾客,使企业取得更好的经济效益。软、硬件配置及结构.1 硬件
9、配置兼容Intel486等级以上的PC电脑、64M以上的RAM、15GB以上的硬盘空间、48倍速以上的光驱。.2 软件配置Visual Basic.NET和SQL Server 2000。系统结构2.2.3.1 C/S模式简介C/S (Client/Server,客户机/服务器)模式又称C/S结构,是软件系统体系结构的一种。C/S模式主要由客户应用程序(Client)、服务器管理程序(Server)和中间件(middleware)三个部件组成。客户应用程序是系统中用户与数据进行交互的部件。服务器程序负责有效地管理系统资源,如管理一个信息数据库,其主要工作是当多个客户并发地请求服务器上的相同资源
10、时,对这些资源进行最优化管理。中间件负责联结客户应用程序与服务器管理程序,协同完成一个作业,以满足用户查询管理数据的要求。2.2.3.2 C/S模式的优点首先,交互性强是C/S固有的一个优点。在C/S中,客户端有一套完整的应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。B/S虽然由JavaScript、VBScript提供了一定的交互能力,但与C/S的一整套客户应用相比是太有限了。其次,C/S模式提供了更安全的存取模式。由于C/S是配对的点对点的结构模式,采用适用于局域网、安全性比较好的网络协议(例如:NT的NetBEUI协议),安全性可以得到较好的保证。而B/
11、S采用点对多点、多点对多点这种开放的结构模式,并采用TCP/IP这一类运用于Internet的开放性协议,其安全性只能靠数据服务器上管理密码的数据库来保证。现代企业需要有开放的信息环境,需要加强与外界的联系,有的还需要通过Internet发展网上营销业务,这使得大多数企业将他们的内部网与Internet相连。由于采用TCP/IP,他们必须采用一系列的安全措施,如构筑防火墙,来防止Internet的用户对企业内部信息的窃取以及外界病毒的侵入。再次,采用C/S模式将降低网络通信量。B/S采用了逻辑上的三层结构,而在物理上的网络结构仍然是原来的以太网或环形网。这样,第一层与第二层结构之间的通信、第二
12、层与第三层结构之间的通信都需占用同一条网络线路。而C/S只有两层结构,网络通信量只包括Client与Server之间的通信量。所以,C/S处理大量信息的能力是B/S所无法比拟的。最后,由于C/S在逻辑结构上比B/S少一层,对于相同的任务,C/S完成的速度总比B/S快。使得C/S更利于处理大量数据。让餐饮部门更高效率的为顾客服务,使顾客得到满意的服务外,更能节省时间。系统数据流图的创建员工订单信息1前台查询2服务管理3管理员菜谱管理6结帐管理7资源管理4资源浏览5员工管理8更新更新添加修改更新D2得到服务信息BD1得到服务信息AD3得到服务信息C图1:系统数据流图 系统设置菜谱管理结帐管理订单管
13、理外卖服务用户管理信息查询信息查询外卖信息查询预定信息查询信息查询用户信息员工信息菜谱信息账单信息图2:业务流程图数据字典的创建数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义集合. 数据流图上所有成分的定义和解释的文字集合就是数据字典。数据流图只能给出统逻辑功能的一个总体框架而缺乏详细、具体的内容。数据字典对数据流图的各种成分起注释、说明的作用,给这些成分赋以实际的内容。还对系统分析中其他需要说明的问题进行定义和说明。 数据字典的内容 (1)数据项类目:数据的最小单位,描述数据的静态特性。 (2)数据流类目:由一个或一组固定的数据项组成。 (3)文件类目:描述数据的逻辑
14、存储结构。 (4)数据“加工”条目。 (5)“外部项”条目以下是数据流图中主要元素的数据字典卡片:名字:用户信息描述:记录用户管理员的身份信息,对管理员身份进行鉴定定义:用户信息=帐号+密码+身份位置:ATTENDENCECAL文件下名字:订单信息描述:订单信息即预定或者登记的信息定义:订单信息=订单编码+订单类型+执行日期+桌号列表位置:ATTENDENCECAL文件下名字:扩展外卖服务描述:用于显示外卖服务的各项指令信息定义:扩展外卖服务=订单编码+送货地点+送货时间+送货人+所送货物清单位置:ATTENDENCESETTING文件下名字:员工信息描述:员工的基本信息,如姓名,编号,部门
15、定义:员工信息=员工编码+真实姓名+性别+联系 +住址+所属部门+职别+薪金+聘用日期位置:ATTENDENCESETTING文件下系统结构设计餐饮服务管理系统的流程非常清晰,各功能模块之间没有直接的联系,相对比较独立。第一步,进入主界面,这时候选择系统管理,可以进入系统设置,也可以选择前台营业、预定服务、外卖服务、员工管理以及窗体和帮助,以下几步相互独立,但是只能进行一个步骤。第二步,进入系统管理,可以进行以下六种设置。修改密码:可供管理人员使用,使系统安全性更高。用户管理:管理用户信息。菜单管理:管理菜单信息。数据库备份:备份连接的数据库。数据库恢复:恢复连接的数据库。退出系统:安全的退出
16、系统。第三步,进入前台营业,可以进行以下四种查询。点菜菜谱:记录所有菜谱信息。资源浏览:可查询所有资源的信息。登记帐单:用于用户登记所花费用。结帐:用于清算用户的消费。第四步,进入预定服务,可以查看以下信息。预定订单:可以供用户预定桌位或菜谱。酒宴服务:可以预定酒宴。第五步,进入外卖服务,可以查看以下信息。外卖订单:用于用户订购。送货服务:为顾客送货上门。第六步,进入员工管理,可以查看员工信息。第七步,进入窗体,可以通过窗体重叠、水平平铺、垂直平铺来改变窗体,最后是关闭所有子窗体。第八步,进入帮助,可以查看帮助主题、技术支持、联系我们和关于餐饮服务等信息。系统E-R图设计用户账号密码身份管理结
17、账台实际支付支付方式支票号优惠折扣应付金额账单编码找零员工性别员工编码真实姓名联系 所属部门职别薪金服务预定订单外卖订单送货清单送货地点送货日期订单编码订单编码订单类型执行日期桌号列表11 NNMM图3:系统E-R图系统逻辑结构设计主要任务变换成逻辑结构,可以简单明了的观察信息。同时方便编程人员,对系统的设置,编写相应的代码。 E-R图转换成关系模型 结帐台:帐单编码、支付方式、支票号、优惠折扣、应付金额、实际支付、找零 员工:性别、员工编码、真实姓名、联系号码、所属部门、职别、薪金 预定订单:订单编码、订单类型、执行日期、桌号列表 外卖订单:订单编码、送货地点、送货日期、送货清单 用户:账号
18、、密码、账号数据库的物理设计的内容和方法本系统的数据内容并不复杂,由于有许多的设置信息也需要将各种设置信息与现有的数据进行结合,这就决定了整套系统需要比较复杂的SQL语句来实现查询统计综合的功能,为了实现这一功能,本系统将充分利用数据库的资源,使用视图这一经过数据库编译的对象来实现查询统计的大部分功能,减少程序的负担,同时降低编程的复杂度。 这个系统模块并不复杂,设计的重点就在于如何方便地使各表之间的数据能够最有机地结合在一起,怎样设计可以方便扩充。在这一节中,将介绍如何在一个SQL SERVER数据库中建立一个数据库,并建立相应的数据表和视图,以及对这个数据库进行相应的配置。数据库表的创建由
19、于数据连接只需要一个,因此,只建立一个用户来管理这个数据库。数据库中的表并不多,相互之间的关系也极为松散,功能也相对独立。本系统对数据库的要求比较高,需要利用数据库来完成许多统计查询的功能。以下为表的创建过程 表1 记录用户登录信息表 表2 记录点菜菜谱信息表表3 记录员工信息表 ADO的使用方法.1 ADO对象简介ADO 全称为 ActiveX Data Object,它是一项数据库访问技术,它提供了网页开发人员实时存取数据库的能力。ADO包含在 Microsoft IIS 模块中。使用 ADO 编写的应用程序可以非常容易并且可以扩展的将数据库访问添加到Web页中,可以存取在Internet
20、上任何地方的资源,ADO使用 Recordset(记录集)对象作为数据的主要界面。ADO可以使用VBScript、JavaScript脚本语言来控制数据库的存取以及输出查询结果。可以方便地连接到与ODBC兼容的数据库和OLE DB兼容的数据源。.2 ADO对象之间的关系Connection 对象可以用来在一般的程序和数据库中建立一条数据传输连线,在这个基础之上,可以使用 Command 对象及 Recordset 对象来对 Connection 对象所连接的数据库进行插入、删除、更新和查询等操作。同拨打 一样,建立一个 Connection 对象就像是拿起话筒,打开一个 Connection
21、对象类似于拨号,而使用 Command 对象及 Recordset 对象已经是在用这条线路通话了。 Command 对象用来定义数据库的查询动作,这个查询一般采用SQL语句,大部分数据库都会支持SQL语言解释。通过和SQL Server的查询及存储过程的良好结合,Command 对象有更强大的数据库访问能力,无论是对数据库的插入、更新和删除这类无需返回结果集的操作,还是对Select查询这样需返回结果集的操作都一样简单。 Recordset 对象对应着Command对象的查询返回结果,或者是直接建立的一个带查询的结果集。它把从数据库内查询到的结果封装在一起,并提供简单快捷的方式去访问每一条记录
22、内每一字段的数据,在后面的章节我们会详细去了解这些方式。 Recordset 对象实际上是依附于 Connection 对象和 Command 对象之上的。通过建立及开启一个 Connection 对象,可以与我们关心的数据库建立连线:通过使用 Command 对象,则可以告诉数据库我们想要做什么:是插入一条记录,还是查找符合条件的记录;通过使用 Recordset对象,则可以方便自如地操作 Command 对象返回的结果。这三个对象中的每一个都是必要的,缺一不可.很多时候,你不必显式地为每一个 Recordset 对象创建 Connection 对象及 Command 对象,ADO提供这种灵
23、活性,使你可以用最简单的方法指明一个字符串来说明其连接方式,以得到一个数据库的查询结果。ADO会自动为你创建所需的 Connection 对象,并将包含SQL查询的字符串转换并放到一个 Command 对象里以执行你的操作。 当然,也可以显式地创建 Connection 对象和 Command 对象,这将使你获得更多的灵活性。例如,通过替换 Command 对象的 ComandString 参数,可以在同一个连接上进行多次不同条件的查询,对仅是通过简单地创建 Recordset 对象来获得结果集的方式来说,你无法使用不同的SQL查询,更不用说获得多重的 Recordset 结果集了.3 ADO
24、对象访问技术ADO对象访问技术,主要的原理是利用,那几个常用的对象的属性进行配置,以及使用,通过ADOData控件绑定数据源的方法并不实用,更多时候需要通过从旧对象的实例化编程实现远程数据访问.系统功能模块设计.1系统功能设计 餐饮服务管理系统系统管理用户管理 资源浏览资源管理前台营业结帐台菜谱管理帐单登记预定服务已有订单订单信息外卖服务扩展外卖服务登记外卖订单员工管理部门与人员信息详细信息窗体修改密码登录餐饮服务帮助.2模块设计本次设计一共分为五大模块一公共模块存放全局的变量,公共函数,配置相关类。二前台管理营业模块前台管理营业模块主要是实现对本系统中需要用到的各种简单或复杂参数的设置,主要
25、包括浏览资源设置、登记帐单设置、点菜菜谱设置、结帐清单设置四部分,各个部分相对独立,可以单独修改也可以增加个别的设置模块,当然也可以在保证系统可靠运行的情况下去除个别设置模块。三预定酒宴服务模块预定酒宴服务模块是为了在客流量量过大的情况下,可以为顾客方便地提供需要的服务,提高软件人性化而设计的,预定酒宴服务一共包括:预定定单、酒宴服务两部分。四拓展外卖服务模块拓展外卖服务模块主要是实现顾客订单服务,送货上门,给顾客带来方便。主要包括外卖订单、送货服务两部分,各个高置部分相对独立。五,员工管理模块员工管理模块主要是实现智能化的员工档案,方便管理和随时调用。系统的详细设计.1系统首页的设置1.主窗
26、体的界面设计主要考虑到功能模块的划分以及人性化,餐饮系统的功能就集成在主窗体中。2.运行时,单击相应的树就会进入不同的窗体,实现不同的功能。要实现各项查询的功能,设计思想是通过菜单的CLICK事件,打开相应的窗体。具体的代码如下:Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) _ Select Case Me.ToolBar1.Buttons.IndexOf(e.Button) Case 2
27、 修改密码 menuModPwd.PerformClick() Case 3 员工管理 menuClerk.PerformClick() Case 5 菜谱管理 menuMenu.PerformClick() Case 6 资源浏览 menuResure.PerformClick() Case 7 流水客户 menuCustomer.PerformClick() Case 8 结帐清单 menuChkBill.PerformClick() Case 10 预定订单 menuEngageOrder.PerformClick() Case 11 预约服务 menuEngageSvc.Perform
28、Click() Case 13 外卖订单 menuExpandOrder.PerformClick() Case 14 外送服务 menuTransSvc.PerformClick() Case 16 帮助 menuHelpContent.PerformClick() Case 17 退出系统 menuExit.PerformClick() End Select End Sub4.主窗体退出系统时的CLOSING事件。具体代码如下: If MsgBox(您真的要退出餐饮服务管理系统吗?, _MsgBoxStyle.YesNo + MsgBoxStyle.Question, 退出系统) _= M
29、sgBoxResult.Yes Then Application.Exit() Else Exit Sub End If End Sub.2登记外卖订单窗体控件布局1.所用控件及其功能:登记外卖订单设置窗体中的控件主要包括ListBox、TextBox、Button、Label和DatetimePicker等控件。TextBox控件主要用于本窗体文字的显示。ListBox列表框在本窗体中用于显示用户的多个选择,达到与用户对话的目的。Button控件用于显示“添加”、“删除”和“更新”等按钮。Label控件用于显示用户可看见的文字。 2.具体代码如下:Public Sub GetAllData(
30、) Dim sqlstr As String Dim ds As New DataSet() ds.Clear() Me.ListBox1.Items.Clear() sqlstr = SELECT orderid FROM OrderInfo WHERE orderstyle=外卖 ds = GetDataFromDB(sqlstr) Dim i As Integer Dim temp As String If Not ds Is Nothing Then For i = 0 To ds.Tables(0).Rows.Count - 1 temp = Trim(ds.Tables(0).Ro
31、ws(i)(orderid).ToString) Me.ListBox1.Items.Add(temp) Next End If End Sub GetAllData() If Me.ListBox1.Items.Count 0 Then Me.ListBox1.SetSelected(0, True) ShowData(0) End If End Sub Public Sub ShowData(ByVal index As Integer) If index = 0 Then Dim order As New ExOrder() order = GetOrderInfo(Trim(Me.Li
32、stBox1.SelectedItem.ToString) End IfEnd Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As Dim sqlstr As String Dim order As New ExOrder() order = GetFormData() If order.id = Then Exit Sub End If If order.item = Then Exit Sub End If sqlstr = INSERT INTO OrderInfo (orderid,orders
33、tyle,orderdate,requiredate,shipadress,cargos) VALUES ( & order.id & ,外卖, & CDate(Now.ToShortDateString) & , & order.rdate & , & order.address & , & order.item & ) UpdateData(sqlstr) GetAllData() ShowData(0) End Sub End Class3.运行界面如下:.3扩展外卖送货服务窗体控件布局1.所用控件及其功能:扩展外卖送货服务设置窗体中的控件主要包括GroupBox、TextBox、Lab
34、el、Button等控件。GroupBox控件可将其他控件包括其中,从而集中显示。 TextBox控件主要用于本窗体文字的显示。Label控件用于显示用户可看见的文字。Button控件用于显示“确定”和“送货”按钮。2.具体代码如下:Private Sub Button1_Click(ByVal sender As System.Object, _ Dim order As New ExOrder() order.id = Trim(Me.TextBox1.Text) If order.id = Then Exit Sub End If Dim sqlstr As String sqlstr
35、= SELECT * FROM OrderInfo WHERE orderid= & Trim(Me.TextBox1.Text) & Dim ds As New DataSet() ds.Clear() ds = GetDataFromDB(sqlstr) If Not ds Is Nothing Then order.address = ds.Tables(0).Rows(0)(shipadress) order.rdate = ds.Tables(0).Rows(0)(requiredate) order.item = ds.Tables(0).Rows(0)(cargos) Me.Bu
36、tton2.Enabled = True End If End Sub Private Sub Form8_Load(ByVal sender As System.Object, _ Me.Button2.Enabled = False Dim sqlstr As String sqlstr = SELECT ClerkID FROM CLerk Dim ds As New DataSet() ds.Clear() ds = GetDataFromDB(sqlstr) If Not ds Is Nothing Then Dim i As Integer If ds.Tables(0).Rows.Count 0 Then For i = 0 To ds.Tables(0).Rows.Count - 1 Me.ComboBox1.Items.Add(Trim(ds.Tables(0).Rows(i) _ (ClerkID).ToString) Next End If End If End Sub