收藏 分销(赏)

餐饮管理系统设计毕业设计.doc

上传人:鼓*** 文档编号:10071232 上传时间:2025-04-20 格式:DOC 页数:18 大小:84.54KB 下载积分:8 金币
下载 相关 举报
餐饮管理系统设计毕业设计.doc_第1页
第1页 / 共18页
餐饮管理系统设计毕业设计.doc_第2页
第2页 / 共18页


点击查看更多>>
资源描述
绥化学院2014届本科生毕业设计 第1章 餐饮管理系统背景 1.1 研究背景 近几年来,计算机网络、分布技术日趋成熟,随着科技的发展,餐饮业的竞争也越来越激烈.想在这样竞争激烈的环境下生存,那么就必须运用科学的管理思想与先进的管理方法,使点餐与管理一体化。这样不仅提高了工作效率,也避免了以前手工作业的麻烦,从而使管理者能够准确、有效地管理餐饮。因此,餐饮业的管理者更希望从科学的管理中取得竞争的优势,在竞争激烈的商业市场中取胜。 随着社会的发展,人们生活水平的提高,生活方式的变化和东西方饮食文化的融合渗透,餐饮业类别的内涵和外延都发生了巨大的变化[1].随着餐饮业的不断发展,餐饮管理系统的内容对于餐饮业的决策者和管理者来说都非常重要。本系统主要包括桌台显示、消费查询、结账等几大部分.具有完善的查询,能及时、方便、灵活地进行查询、修改、删除等维护性操作。满足餐厅每日营业的变动,另外,对于操作用户有一定的管理,并对用户的权限有一定的设置。 厨房 吧台 消费者订餐 图1—1 餐饮管理的过程 1。2 基于C#开发餐饮管理系统的目标 本系统属于小型的餐饮管理系统,可以有效地对中小型餐厅消费进行管理。本系统应达到以下目标: þ1。系统采用人机交互的方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。 2。实现对餐厅顾客开台、点菜/加菜、账目查询和结账等操作。 þ3. 对用户输入的数据进行严格的数据检验,尽可能地避免人为错误。 4.实现对消费账目自动结算. 5.实现对消费的历史记录进行查询,支持模糊查询. þ6.系统应最大限度地实现易维护性和易操作性。 1。3 技术线路 1。调查法 首先对小说网站的设计的现状进行调查、采访和咨询,整理相关的信息和资料,通过这些数据和材料,调查系统需要提供的功能,使得开发的系统更具针对性,能更好的为小说网站的设计服务。 2.文献法 大量阅读关于小说网站的设计和各项技术研究方面的文献,归纳、整理寻找系统需要使用的方法和方式,得出本系统将要做出的突破,找到理论依据,借鉴各项系统,取其理论精华,为撰写论文和整体系统实现提供充沛的资料. 3。比较法 除了从小说网站的设计中寻找资料外也找到大量前人设计的小说网站的设计,寻找它们的相似点及各自的特色,推陈出新,得到该系统的设计目标和设计原则。 4。分析法 分析当前小说网站的设计现状存在的问题和不足,提出设置小说网站的设计,通过信息化方式制定交易流程,同时采用C#窗体设计为根本. 第2章 需求分析 2.1 可行性分析 技术可行性:随着技术的发张,计算机的配置越来,有足够的空间可以安装运行平台、数据库和各类编程工具,在编程环境上提供了可靠的支持;在编程人员方面,可以运用以前所学的各种开发软件的计算机知识和管理知识,加上不断的学习,为系统的开发提供了必要的技术保障。 社会可行性:本系统满足了餐饮业管理者对信息管理化的要求,降低了管理中需要的人力、物力、财力。系统应用C#+SQL2005技术,实现了一套集桌台显示、开台、点餐和结账四大核心功能的一款餐饮管理系统软件 2。2 计算机软硬件配置和开发平台 1。计算机系统硬件配置 主板:Intel HM65 CPU: Core i5-2450M 内存: 4GB 硬盘:东芝MQ01ABD050 显卡:英特尔Intel GMA 3100显卡 声卡:集成Realtek ALC8838声卡 网卡:集成AR8132百兆网卡 2.计算机系统软件配置 操作系统: Win7 Professional 安装软件:Microsoft Office 2010 Adobe Acrobat 10.0 Professional Internet Explorer 8。0 VS2010+SQL2005 3。编程环境与工具 本系统采用Win7 Professional作为操作系统平台。 本系统在开发时选用了稳定性较强的Win7 Professional和C#作为开发语言,同时选项用了SQL Server2005数据库,由于这些软件产品都是Microsoft公司的产品,因此彼此之间的兼容性较好,开发出的应用系统稳定性较高。 VS2010具有可视化的开发环境,可以快速完成系统的开发,内部集成的数据访问通道,使得可以轻松方便的对数据库进行管理。 数据库采用Microsoft SQL Server2005,要据我们的系统要求,采用它完全可适合我们的工作需求,并且它所支持的类型十分丰富,维护简便,费用比较低,对使用人员的素质要求不是很高,容易升级。 第3章 系统的体系结构 3.1 系统的功能结构 餐饮管理系统 退出 帮助 系统设置 系统维护 辅助工具 基础信息 桌 台 信 息 锁定系统 口令设置 系统修复 权限管理 系统备份 退出系统 关于 记事本 计 算 器 日 历 职员信息 图3—1 餐饮管理体统的功能结构 3。2 系统功能预览及业务流程 餐饮管理系统由多个窗体组成,下面仅列出几个典型窗体.主窗体模块运行结果如图 3-1 所示, 主要功能是链接系统功能菜单、 显示所有桌台和显示系统当前状态.点菜模块运行结果如图 3—2 所示,主要功能是为顾客点菜。开台模块运行效果如图 3-3 所示,主要功能是实现对指定的桌台进行开台操作。 结账模块运行效果如图3—4 所示, 功能是对指定的桌台进行结账操作,同时,清空结账桌台的所有消费信息。 图3—1 主窗体模块运行结果        图3—2 点菜模块运行结果 图 3—3 开台模块运行结果            图 3—4 结账模块运行结果 餐饮管理系统的业务流程图如图 3—5 所示。 图3-5 餐饮管理系统流程图 3。3 数据库的选择与设计 SQL Server 2005 是Microsoft公司推出的基于Client/Server模式的新一代大型关系数据库管理系统[2]。它功能强大、操作简便,广泛应用于数据库后台系统。它在电子商务、数据仓库和数据库解决方案等应用中起着重要的核心作用。 在开发餐饮管理系统之前,分析了该系统的数据量。由于系统管理餐饮方面的数据较多,商品信息、 消费信息以及账目清单会占用较大的空间, 因此选择 Microsoft SQL Server数据库存储这些信息,数据库命名为 db_MrCy,在数据库中创建了 6 个数据表用于存储不同的信息 . 图3—6 数据库设计 1. 数据库概念设计 餐饮管理系统的数据库主要用于存储餐饮管理系统中的数据,由于餐饮管理系统的数据量很大,所以选择了 Microsoft SQL Server 数据库, 数据库中建立一个商品信息表, 用于存储所有的商品信息。商品信息实体 E-R 图如图3—7所示. 由于商品的种类很多,因此需要对商品进行分类,这样就可以对商品分门别类地进行储存,在查询时可以根据商品类别进行查询.在数据库中建立一个商品类别信息表,用于存储商品的所有类别信息.商品类别信息实体 E—R 图3-8如图所示。 图3—7 商品信息实体 E—R 图 图3—8 商品类别信息实体 E-R 图 当顾客进行消费时,顾客会根据自己的需求消费不同的商品,系统将顾客消费的所有信息存储到数据表中,以便顾客结账时查询,在数据库中建立一个顾客消费信息表用于存储顾客的消费记录。顾客消费信息实体 E—R 图如图3—9所示。餐厅中会有多个桌台供顾客选择,每个桌台会有不同的信息。例如,大厅—01 号桌台被顾客使用,顾客人数为 5 人等,方便操作员对桌台的操作,在数据库中建立一个桌台信息表用于存储所有桌台的详细信息。桌台信息实体 E—R 图如图所示。为了对系统进行不同的管理,需要为系统建立管理用户。这些用户通过登录模块登录系统,登录成功之后会根据不同的权限对不同的功能模块进行管理,在数据库中建立一个用户信息表,用于存储登录用户信息。用户信息实体 E—R 图如图3—11所示。 图3—9 顾客消费信息实体 E—R 图 图3—10 桌台信息实体 E—R 图 在餐饮行业中,餐厅服务员起着极其重要的作用,但是由于服务人员数目众多,如果不进行相应的信息记录,可能管理起来会非常困难。因此,需要对服务人员的详细信息进行记录。在数据库中建立一个职员信息表用于存储所有服务人员的信息。职员信息实体 E—R 图如图3—12所示 图3—11 用户信息实体 E—R 图 图3—12职员信息实体 E—R 图 第4章 系统详细设计与实现 4.1 登陆模块技术及实现过程 为了使系统的安全性得到保障,大多数系统都开发登录模块。只有通过登录模块,才能对登录用户进行验证,只有系统的合法用户才可以进入系统的主界面。这也是设计管理系统软件之前必须考虑的问题,整个登录模块的实现过程非常简单。登录模块运行结果如图4-1所示,关键代码见附录. 图4—1 餐饮管理系统的登陆页面 运行本系统的登录模块,用户只需输入用户名和密码,单击“登录”按钮进行验证。登录模块以登录的用户名和密码作为搜索条件,在数据库中进行查询。使用 SqlDataReader 对象的 HasRows 属性判断登录用户名和密码是否正确,下面介绍 SqlDataReader 对象的 HasRows 属性。HasRows 属性获取一个值,该值指示 SqlDataReader 是否包含一行或多行[3]。 语法如下: public override bool HasRows { get; } 属性值:如果 SqlDataReader 包含一行或多行,则为 true;否则为 false. 例如,验证登录用户名和密码是否正确,可以通过以下代码实现: SqlConnection conn = BaseClass。DBConn.CyCon(); conn。Open(); SqlCommand cmd = new SqlCommand("select * from tb_User where UserName=’" + txtName.Text + ”’ and UserPwd='" + txtPwd.Text + "’”, conn); SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read(); if (sdr.HasRows) { MessageBox.Show("登录成功”, ”警告", MessageBoxButtons。OK, MessageBoxIcon。Warning); } 4.2 主窗体设计 在餐饮系统中主窗体模块是由 3 部分组成的.第一部分是位于主窗体模块上端的系统菜单,主要实现链接系统功能菜单.第二部分是位于主窗体模块中间的桌台显示,主要用于显示餐厅中所有的桌台情况,包括桌台是否已使用、已使用桌台的客人数量等信息,方便了用户对桌台的管理。第三部分是位于主窗体模块下端的状态栏, 主要用于显示系统当前状态信息。 主窗体模块运行结果如图4-2所示。 图4-2 主窗体界面 双击某个桌台,弹出“桌台基本信息”窗体,用于显示此桌台的详细信息,如图4-3所示。在某个桌台上单击鼠标右键,在弹出的快捷菜单中用户可以选择“开台"、“取消开台"、“点/加菜”、“消费查询”和“结账”命令,如图4—4所示。 图4—3 桌台基本信息界面 图4-4 右击事件 开发主窗体模块中的桌台显示时,主要是通过 ListView 控件实现的,系统首先从数据库中检索出每个桌台的状态,然后根据不同的状态通过 ListView 控件的 Items 属性中的 Add 方法向控件中添加项目集合[4],下面进行详细介绍。 (1)Items 属性 功能:此属性获取包含控件中所有项的集合。 语法如下: public ListViewItemCollection Items { get; } 属性值:ListView。ListViewItemCollection 包含 ListView 控件中所有的项。 例如: private void button9_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(”server=。;uid=sa;pwd=;database=zhy”); //链接数据库 con.Open(); //打开数据库 string str = "select * from student where id= ’"+strid+"’”; //建立SQL语句 SqlCommand com = new SqlCommand(str, con); //执行SQL语句 SqlDataReader dr = com。ExecuteReader(); //创建SqlDataReader对象 while (dr.Read()) { ListViewItem lt = new ListViewItem(dr.GetValue(0)。ToString()); lt。SubItems。Add(dr.GetValue(1)。ToStri ng()); lt.SubItems.Add(dr。GetValue(2)。ToString()); this.listView1。Items。Add(lt); //添加项目 } dr。Close(); con.Close(); } 4。3 开台模块设计及部分代码 在某个桌台上选择其右键菜单中的“开台”命令,将根据该桌台的名称弹出相应的“开台单"窗体,在“开台单”窗体中用户可以对桌台编号、账单日期、顾客名称、用餐人数、服务员和备注进行录入或更改如图4-5所示.数据录入或修改完毕后,单击“保存"按钮完成开台单的操作[5]。在开发此模块时,主要用到了数据库的更新技术,下面进行详细介绍。 图4—5 开台单界面 代码[6] private void frmOpen_Load(object sender, EventArgs e) { conn = BaseClass。DBConn。CyCon(); //数据库连接 conn.Open(); //打开连接 SqlCommand cmd = new SqlCommand("select * from tb_Room",conn); SqlDataReader sdr = cmd。ExecuteReader(); u while (sdr。Read()) { cbNum.Items.Add(sdr["RoomName"]。ToString()。Trim()); //显示所有桌台信息 } cbNum.SelectedItem= name. Trim(); //设置选中项 sdr。Close(); cmd = new SqlCommand(”select * from tb_Waiter”,conn); sdr = cmd.ExecuteReader(); v while (sdr.Read()) { cbWaiter.Items.Add(sdr["WaiterName”].ToString()。Trim()); //显示所有职员信息 } cbWaiter.SelectedIndex = 0; //设置选中第一项 sdr。Close(); 4。4 点菜模块设计及部分代码 为顾客选定好桌台,并且开台之后,会根据顾客的需要点菜或购买茶水烟酒之类的消费品,在点菜模块中会显示餐厅特有的一些菜系,用户可以对不同的菜系进行选择.点菜模块运行结果如图4—6所示.关键代码见附录。 图4—6 点餐界面 4。5 结账模块设计及部分代码 本系统的结账模块, 首先从数据库中将顾客消费的所有项目检索出来显示到 DataGridView 控件上[7],以方便管理员校对消费金额,然后通过程序计算后将顾客消费的总额显示出来,当顾客结账时,输入顾客支付的金额,会出现相应的余额,以方便管理员为顾客退还余额。结账模块运行结果如图4—7所示。 图4—7 结账模块运行界面 第5章 系统测试 5.1 系统测试计划 在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程[8]。目前测试文档关于测试的内容主要是测试的时间计划。而这种时间划分也是非常粗略的,而且没有依据。目前只是按照个人直观、经验等方法来判断测试时间。因此,这类测试计划的随意性太大,粒度太粗,不便于管理。目前的测试是为了测试而测试,没有规划性。如果已经知道了产品已具有的功能,可以通过测试检验是否每个功能都能正常使用。 5。2 系统测试工具 它的任务是尽可能彻底地检查出程序中的错误,提高软件系统的可靠性,其目的是检验系"做得怎样"。部分测试类型是可以用测试工具来实现的。比如:边界测试、非法测试、功能测试、性能测试等。但自一般来讲,测试自动化在整个测试过程中只能占到30%左右.但测试人员对测试工具不熟悉,目前只能先以手工测试为主,继续探讨自动化测试的可操作性。 黑盒测试:测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。 白盒测试:“白盒"法是穷举路径测试,在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证.“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试. 在任何软件系统的开发过程中,尤其是在进行大型软件系统的开发中,任何一个编程人员都不可避免地会产生错误。为了尽可能地发现并改正系统设计中的错误,减少错误造成的损失,保证系统开发的质量,需要进行系统的测试. 5.3 系统测试效果 1. 根据上面的系统入口测试用例,其测试效果。 登录时,比如输入用户名和密码否则提示请输入用户名,假如用户名和密码输入为空或者错误一样给出提示。如图5—1、5—2所示。 图5—1 登录不输入 图5-2 登录输入错误的用户名密码 2。 修改密码是输入不能为空,而且旧密码输入必须正确,否则给出提示,如果不知道旧密码,便无法修改密码,这样是避免有人盗取他人的账号,并且2次输入的新密码必须一致,这样能够让用户确认好新密码,不易让用户想的密码与键盘输入不一致,而给用户带来不便,如图5-3至5—5所示。 图5—3 密码修改页面 图5—4 密码输入不一致页面 图5—5 密码修改为空运行页面 结 论 餐饮管理系统是餐饮企业不可缺少的一部分,但一直以来人们使用的餐饮管理系统均是以人为主体,需要很多的人力、物力和财力等,而且效率不是很高,有时甚至应为某些人为地原因造成很大的损失,以致餐饮管理工作既繁琐又不利于分析企业的经营状况,作为计算机应用的一部分, 使用计算机对餐饮信息进行管理, 具有人工管理所无法比拟的优点。所以鉴于此,采用当前流行的应用程序开发技术,充分发挥计算机的优势,让更多的餐饮企业管理者体会到这种快捷的处理方式,处理流程上更加合理,极大地减轻了管理人员以及餐饮服务人员的工作强度。所以这套餐饮管理系统系统是适应发展的需要的。 餐饮管理系统的设计成功,无疑为中小型餐饮企业管理提供方便,同时服务人员的工作量也减轻不少。统计结账快速、安全保密性好、可靠性高、存储量大、寿命长、成本低等。这些优点能够极大地提高餐饮管理的效率,增强企业的竞争力,同时也是企业的科学化、正规化管理,与世界接轨的重要条件。 参考文献 [1] 王成福,中国餐饮业的发展现状及趋势分析 [J],江苏商论,2007,(6):35-36 [2] 刘辉,零基础SQL Server 2005 [M],机械工业出版社,(2007):51—56 [3] 王路,Visual C#2005 开发技术实例讲解 [M],北京:电子工业出版, (2005):176-182 [4] 梁冰,吕双,王小科,C#程序开发范例宝典(第2版)[M],北京:人民邮电出版社, (2009):16—169 [5] 孙维煜,C#案例开发 [M],北京:中国水利水电出版社, (2005):392—398 [6] 郑宇军,C#2。0 程序设计教程 [M],北京:清华大学出版社,(2008):42—44 [7] 孙卫琴,C#网络编程精解 [M],北京:电子工业出版社, (2007):56-60 [8] 张小松,软件测试 [M],北京:机械工业出版社, (2006):42—58 附录 1。登陆模块代码 private void btnSubmit_Click(object sender, EventArgs e) { if (txtName。Text == "”) //判断用户名是否为空 { MessageBox。Show(”请输入用户名”, ”警告”, MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { if (txtPwd.Text == ””) //判断密码是否为空 { MessageBox。Show(”请输入密码", ”警告", MessageBoxButtons。OK, Messan.Warning); } else { SqlConnection conn = BaseClass.DBConn。CyCon(); //连接数据库 conn.Open(); //打开数据库 SqlCommand cmd = new SqlCommand(”select * from tb_User where UserName=’" + txtName。Text + ”’ and UserPwd='” + txtPwd.Text + "'”, conn); SqlDataReader sdr = cmd.ExecuteReader(); //创建SqlDataReader对象 sdr。Read(); //读取 if (sdr.HasRows) //验证用户名和密码 { sdr.Close(); cmd = new SqlCommand(”select * from tb_User where UserName='" + txtName。Text + ”'”, conn); SqlDataReader sdr1 = cmd。ExecuteReader(); sdr1.Read(); string UserPower = sdr1[”power”]。ToString()。Trim(); conn.Close(); //关闭链接 frmMain main = new frmMain(); main。power = UserPower; main。Names = txtName。Text; main.Times = DateTime.Now.ToShortDateString(); main。Show(); //打开主窗体 this.Hide(); //隐藏当前登录窗体 } else { MessageBox。Show(”用户名或密码错误"); //弹出提示信息 } } } } 2.点菜,模块代码 private void frmDC_Load(object sender, EventArgs e) { this.Text = RName + "点/加菜”; //设置窗体显示问题 TreeNode newnode1 = tvFood.Nodes。Add(”锅底”); //为控件添加节点 TreeNode newnode2 = tvFood。Nodes。Add("配菜"); TreeNode newnode3 = tvFood。Nodes.Add(”烟酒”); TreeNode newnode4 = tvFood。Nodes.Add(”主食”); SqlConnection conn = BaseClass.DBConn。CyCon(); //连接数据库 conn。Open(); //打开数据库 SqlCommand cmd = new SqlCommand("select * from tb_food where foodty='1'”, conn); SqlDataReader sdr = cmd。ExecuteReader(); while (sdr。Read()) { newnode1.Nodes。Add(sdr[3]。ToString().Trim()); //为“锅底”添加子节点 } sdr。Close(); cmd = new SqlCommand(”select * from tb_food where foodty=’2'”, conn); sdr = cmd.ExecuteReader(); while (sdr。Read()) { newnode2。Nodes.Add(sdr[3].ToString()。Trim()); //为“配菜”添加子节点 } sdr.Close(); cmd = new SqlCommand("select * from tb_food where foodty='3’”, conn); sdr = cmd。ExecuteReader(); while (sdr。Read()) { newnode3.Nodes.Add(sdr[3].ToString().Trim()); //为“烟酒”添加子节点 } sdr。Close(); cmd = new SqlCommand(”select * from tb_food where foodty='4’", conn); sdr = cmd.ExecuteReader(); while (sdr。Read()) { newnode4。Nodes.Add(sdr[3]。ToString().Trim()); //添加子节点 } sdr.Close(); cmd = new SqlCommand("select * from tb_Waiter",conn); sdr = cmd.ExecuteReader(); while (sdr。Read()) { cbWaiter。Items。Add(sdr["WaiterName"]。ToString().Trim()); //为“主食”添加子节点 } cbWaiter.SelectedIndex = 0; sdr.Close(); cmd = new SqlCommand("select RoomZT from tb_Room where RoomName='"+RName+”’",conn); string zt = Convert.ToString(cmd。ExecuteScalar()); //获取桌台状态 if (zt。Trim() == ”待用”) //如果处在“待用”状态,则禁用所有操作 { groupBox1.Enabled = false; gro upBox2。Enabled = false; groupBox3。Enabled = false; groupBox4。Enabled = false; } conn。Close(); //关闭连接 GetData(); //重新绑定数据 tvFood。ExpandAll(); //展开TreeView控件 } private void frmDC_Load(object sender, EventArgs e) { this。Text = RName + "点/加菜”; //设置窗体显示问题 TreeNode newnode1 = tvFood。Nodes.Add(”锅底”); //为控件添加节点 TreeNode newnode2 = tvFood。Nodes.Add("配菜”); TreeNode newnode3 = tvFood.Nodes。Add(”烟酒”); TreeNode newnode4 = tvFood.Nodes。Add("主食"); SqlConnection conn = BaseClass。DBConn。CyCon(); //连接数据库 conn.Open(); //打开数据库 SqlCommand cmd = new SqlCommand(”select * from tb_food where foodty=’1’”, conn); SqlDataReader sdr = cmd.ExecuteReader(); while (sdr.Read()) { newnode1.Nodes。Add(sdr[3].ToString().Trim()); //为“锅底"添加子节点 } sdr.Close(); cmd = new SqlCommand(”select * from tb_food where foodty='2’", conn); sdr = cmd。ExecuteReader(); while (sdr。Read()) { newnode2。Nodes.Add(sdr[3].ToString().Trim()); //为“配菜"添加子节点 } sdr.Close(); cmd = new SqlCommand("select * from tb_food where foodty='3’", conn); sdr = cmd。ExecuteReader(); while (sdr。Read()) { newnode3。Nodes.Add(sdr[3]。ToString()。Trim()); //为“烟酒”添加子节点 } sdr.Close(); cmd = new SqlCommand(”select * from tb_food where foodty=’4'”, conn); sdr = cmd。ExecuteReader(); while (sdr。Read()) { newnode4。Nodes.Add(sdr[3].ToString().Trim()); //添加子节点 } sdr.Close(); cmd = new SqlCommand("select * from tb_Waiter",conn); sdr = cmd。ExecuteReader(); while (sdr.Read()) { cbWaiter。Items。Add(sdr[”WaiterName”]。ToString().Trim()); //为“主食”添加子节点 } cbWaiter.SelectedIndex = 0; sdr.Close(); cmd = new SqlCommand(”select RoomZT from tb_Room where RoomName=’”+RName+”'",conn); string zt = Convert。ToString(cmd。ExecuteScalar()); //获取桌台状态 if (zt。Trim() == "待用”) //如果处在“待用”状态,则禁用所有操作 { groupBox1。Enabled = false; gro upBox2。Enabled = false; groupBox3.Enabled = false; groupBox4。Enabled = false; } conn.Close(); //关闭连接 GetData(); //重新绑定数据 tvFood.ExpandAll(); //展开TreeView控件 } 致 谢 在这次毕业设计过程中,孙珊珊老师认真负责的工作态度、严谨的治学精神、深厚的理论知识以及为人师表的风范都给我留下了深刻的印象。 我通过开发这个小说网站的设计,巩固了以前所学的知识,提高了应用能力,经过孙珊珊老师的指导,使自己能够将所学的理论知识与实际情况相结合,独立思考,全面分析,灵活运用所学知识,解决了具体的问题,也使自己的理论水平得到了进一步的提高。同时,对心理素质的锻炼和工作作风的培养,将给我今后的
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服