![餐饮管理系统详细设计_第1页](http://file4.renrendoc.com/view/7828ecaa31547634bc16efc97580153d/7828ecaa31547634bc16efc97580153d1.gif)
![餐饮管理系统详细设计_第2页](http://file4.renrendoc.com/view/7828ecaa31547634bc16efc97580153d/7828ecaa31547634bc16efc97580153d2.gif)
![餐饮管理系统详细设计_第3页](http://file4.renrendoc.com/view/7828ecaa31547634bc16efc97580153d/7828ecaa31547634bc16efc97580153d3.gif)
![餐饮管理系统详细设计_第4页](http://file4.renrendoc.com/view/7828ecaa31547634bc16efc97580153d/7828ecaa31547634bc16efc97580153d4.gif)
![餐饮管理系统详细设计_第5页](http://file4.renrendoc.com/view/7828ecaa31547634bc16efc97580153d/7828ecaa31547634bc16efc97580153d5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
餐饮管理系统开发背景近几年来,计算机网络、分布技术日趋成熟,随着科技的发展,餐饮业的竞争也越来越激烈。想在这样竞争激烈的环境下生存,就必须运用科学的管理思想与先进的管理方法,使点餐与管理一体化。这样不仅提高了工作效率,也避免了以前手工作业的麻烦,从而使管理者能够准确、有效地管理餐饮。因此,餐饮业的管理者更希望从科学的管理中取得竞争的优势,在竞争激烈的商业市场中取胜。1.2系统分析需求分析通过与XXX餐饮公司的沟通和需求分析,要求系统具体以下功能:系统操作简单,界面友好规范、完善的基础信息设置;支持多人操作,要求有权限分配功能;为了方便用户,要求系同支持模糊查询;实现对消费账目自动结算。可行性分析.引言(1)编写目的以文件的形式给企业的决策层提供项目实施的参考依据,其中包括项目存在的风险、项目需要的投资和能够收获的最大效益。(2)背景XXX餐饮公司是一家以餐饮经营为主的私营企业。为了完善管理制度、增强企业的竞争力、实现信息化管理,公司决定开发餐饮管理系统。.可行性研究的前提(1)要求餐饮管理系统必须提供桌台信息、菜品信息和人事档案信息的基础设置;强大的查询功能和消费管理功能;可以分不同权限、不同用户对该系统进行操作。另外,该系统还必须保证数据的安全性、完整性和准确性。1/89(2)目标餐饮管理系统的目标是实现企业的信息化管理,节约人力、物力、财力等资源,提高餐饮行业的服务效率并提升企业市场竞争力。(3)条件、假定和限制为实现企业的信息化管理,必须对才做人员进行培训,而且将原有的菜品、桌台、人事档案等信息转换为信息化数据,需要操作员花费大量时间和精力来完成,为不影响企业的正常运行,餐饮管理系统必须在两个月的时间内交付用户使用。系统分析人员需要两个内到位,用户需要4天时间确认需求分析文档。去除其中可能出现的问题,例如用户可能临时有事,占用5天时间确认需求分析。那么程序开发人员需要在一个月零19天的时间内进行系统设计、程序编码、系统测试、程序调试和程序的打包工作。其间,还包括员工每周的休息时间。(4)评价尺度根据用户的要求,项目主要以桌台信息、菜品信息和查询统计功能为主,对于认识档案和消费信息应该及时准确地保存,并提供相应的查询和统计。.投资及效益分析(1)支出根据系统的规模及项目的开发周期(两个月),公司决定投入7个人。为此,公司将直接支付10万元的工资及各种福利待遇。在项目安装及调试阶段,用户培训、员工出差等费用支出需要2万元。在项目维护阶段预计需要投入3万元的资金。累计项目投入需要15万元资金。(2)收益用户提供项目资金35万元。对于项目运行后进行的改动,采取协商的原则根据改动规模额外提供资金。因此从投资与收益的效益比上看,公司可以获得20万元的利润。项目完成后,会给公司提供资源储备,包括技术、经验的累积,其后在开发类似的项目时,可以极大地缩短项目开发周期。.结论根据上面的分析,在技术上不会存在问题,因此项目延期的可能性很小。在2/89
效益上公司投入7个人、两个月的时间获利20万元,效益比较可观。在公司今后发展上可以储备项目开发的经验和资源。因此认为该项目可以开发。1.3系统设计系统目标本系统属于小型的餐饮管理系统,可以有效地对中小型餐厅消费进行管理。本系统应达到以下目标:系统采用人机交互的方式,界面美观有好,信息查询灵活、方便,数据存储安全可考;实现对餐厅客户开台、点菜/加菜、账目查询和结账等操作;对用户数的数据进行严格的数据检验,尽可能地避免人为错误;实现对消费账目自动结算;实现对消费的历史记录进行查询、支持模糊查询;系统应最大限度地实现易维护性和易操作性。系统功能结构餐饮管理系统功能结构如图1_1所示。退出系统
退出系统
I关于
锁定系统
口令设置
系统恢复
系统备份
权限管理
记事本
计算器日历
职员信息
桌台信息图11系统功能结构图业务逻辑编码规则3/89遵守程序编码规则所开发的程序,代码清晰、整洁、方便阅读,并可以提高程序的可读性,真正做到“见名知意”。本节哦哪个数据库设计和程序编码两个方面介绍程序开发中的编码规则。.数据库对象命名规则(1)数据库命名规则数据库命名以字母db开头(小写),后面加数据库相关英文单词或缩写。下面将举例说明,如表1_1所示。表1_1数据库命名数据库名称描述db_MrCy餐饮管理系统数据库(2)数据表命名规则数据表命名以字母tb开头(小写),后面加数据库相关英文单词或缩写和数据表名,多个单词间用“,分隔。下面将举例说明,如表1_2所示。表1_2数据表命名数据表名称描述tb_food点菜信息表tb_foodtype菜品类别信息表(3)字段命名规则字段一律采用英文单词或词组(可利用翻译软件)命名,如找不到专业的英文单词或词组,可以用相同意义的英文单词或词组代替。下面将举例说明,表1_3为桌台信息表中的部分字段。表1_3字段命名数据表名称描述RoomName桌台名称RoomJC桌台位置RoomZT桌台状态.业务编码规则(1)桌台编号桌台的ID编号;通过该编号来区分。是餐饮管理系统中桌台的唯一标识,不同的桌台可以该编号是个字增序号,从数字1开始。例如1、2、3。4/89(2)食品类别编号食品类别编号用于区分食品的不同类别,不同的食品种类可以通过该编号来区分。该编号是个字增序号,从数字1开始。例如1、2、3。(3)员工编号员工编号用于区分各个员工的信息,不同的员工可以通过该编号来区分(即使员工名称相同)。该编号是个字增序号,从数字1开始。例如1、2、3。1.3.4系统预览餐饮管理系统由多个窗体组成,下面仅列出几个典型窗体,主窗体模块如图1_2所示,主要功能是连接系统功能菜单、显示所有桌台和现实系统当前状态。图1_2主窗体模块点菜模块如图1_3所示,主要功能是为顾客点菜。5/89
图1_3点/加菜模块开台模块如图1_4所示,主要功能是实现对指定的桌台进行开台操作。图1_4开台模块运行结果结账模块如图1_5所示,主要功能是对指定的桌台进行结账操作,同时,清空结账桌台的所有消费信息。6/89图1_5结账模块运行结果1.3.5业务流程图餐饮管理系统的业务流程图如图1_6所示。系统主窗体否图图1_5结账模块运行结果1.3.5业务流程图餐饮管理系统的业务流程图如图1_6所示。系统主窗体否图1_6餐饮管理系统的业务流程图7/891.4数据库设计数据库概要说明在本系统中,采用的是SQLServer2008数据库,用来存储商品信息、桌台信商品信息表商品类别信息表顾客消费信息表桌台信息表用户信息表职员信息表息、员工信息、操作员信息等。这里将数据库命名为db_MrCy,其中包含了6张数据表,用于存储不同的信息,如图1_7商品信息表商品类别信息表顾客消费信息表桌台信息表用户信息表职员信息表®已dbstbjood(±)®dbo-.tb_fo&dtype @国dbo-.tb_GuestFood 田口dbo-.tb_.Rcrcjm0ndbo-.tb_User©EHdb&.tb-_Waiter 图1_7数据库结构数据库概念设计通过对数据库进行的需求分析、业务流程设计及系统功能结构的确定,规划出系统中使用的数据库实体对象及实体E-R图。由于商品的种类很多,因此需要对商品进行分类,这样就可以对商品分门别类地进行存储,在查询时可以根据商品类别进行查询,商品信息实体E-R图如图1_8所示。在数据库中建立一个商品类型信息表,用于存储商品的所有类别信息,商品类别信息实体E-R图如图1_9所示。图1_8图1_8商品信息实体E-R图8/89图1-9图1-9商品类别信息实体E-R图当顾客进行消费时,顾客会根据自己的需求消费不同的商品,系统将顾客消费的所有信息存储到数据表中,以便顾客结账时查询,在数据库中建立一个顾客消费信息表用于存储顾客的消费记录。顾客消费信息实体E-R图图如1_10所示。1_10顾客消费信息实体E-R图9/89
餐厅中会有多个桌台供顾客选择,每个桌台会有不同的信息。例如,大厅01号桌被顾客使用,顾客人数为5人等,方便操作员对桌台的操作,在数据库中建立一个桌台信息表用于存储所有桌台的详细信息。桌台信息实体E-R图如图111所示。开台时间顾客名称桌台其他桌台类型开桌台状桌口名称桌台简称桌台位置桌台包间费顾客人数开单人系统编号桌台备注桌台信息表
(开台时间顾客名称桌台其他桌台类型开桌台状桌口名称桌台简称桌台位置桌台包间费顾客人数开单人系统编号桌台备注桌台信息表
(tbRoom)图6_11桌台信息实体E-R图为了对系统进行不同的管理,需要为系统建立管理用户。这些用户通过登录模块登录系统,登录成功之后会根据不同的权限对不同的功能模块进行管理,在数据库中建立一个用户信息表,用于存储登录用户信息。用户信息实体E-R图如图1_12所示。10/89
用户信息表(tb_User)图1_12用户信息实体E-R图在餐饮行业中,餐厅服务员起着及其重要的作用,但是由于服务人员数众多,如果不进行相应的信息记录,可能管理起来会非常困难。因此,需要对服务人员的详细信息进行记录。在数据库中建立一个志愿信息表用于存储所有服务人员的信息。支援信息实体E-R图图如1_13所示。图1_13职员信息实体E-R图11/89
数据库逻辑设计根据设计好的E-R图在数据库中创建各表,系统数据库中各表的结构如下。tb_Food(商品信息表)tb_Food表用于保存所有商品信息,该表的结构如表1_4所示。表1_4商品信息表字段名称数据类型字段大小说明IDint1系统编号foodtychar10类别编号foodnumchar10商品代号foodnamevarchar50商品名称foodpricedecimal9商品价格tb_FoodType(商品类别信息表)tb_FoodType表用于保存商品类别信息,该表的结构如表1_5所示。表1_5商品类别信息表字段名称数据类型字段大小说明IDint4系统编号foodtypevarchar50商品类别名称tb_GuestFood(顾客消费信息表)tb_GuestFood表用于保存顾客的消费信息,该表结构如表1_6所示。表1_6顾客消费信息表字段名称数据类型字段大小说明IDint4系统编号foodnumchar10商品代号foodnamevarchar50商品名称foodsumchar10消费数量foodallpricedecimal9商品价格waiternamevarchar50操作员姓名beizhuvarchar50备注zhuotaichar10消费桌台datatimevarchar50消费时间tb_Room(桌台信息表)tb_Room表用于保存所有桌台信息,该表结构如表1_7所示。字段名称数据类型字段大小说明IDint4系统编号RoomNamechar10桌台名称12/89
RoomJCchar10桌台简称RommBJFdecimal9桌台包间费RoomWZchar10桌台位置RoomSZTchar10桌台状态RoomTypechar10桌台类型RoomBZvarchar50桌台备注RoomQTvarchar50桌台其他信息GuestNamevarchar50顾客姓名zhangdanDatevarchar50开台时间Numint4顾客人数WaiterNamevarchar50操作员姓名tb_User(用户信息表)tb_User表用于保存所有系统用户信息,该表结构如表1_8所示。表1_8用户信息表字段名称数据类型字段大小说明IDint4系统编号UseNamevarchar50用户登录名UserPwdvarchar50用户登录密码powerchar10用户权限tb_Writer(职员信息表)tb_Writer表用于保存所有职员信息,该表结构如表1_9所示。表1_9职员信息表字段名称数据类型字段大小说明IDint4系统编号WaiterNamevarchar50职员姓名CardNumvarchar50身份证号码WaiterNumchar10职员编号Sexchar10性别Agechar10年龄Telvarchar50电话公共类设计为了节省系统资源,实现代码重用,可以在系统中设计一些公共类。本系统中创建了一个DBConn公共类,该类封装了用于连接数据库的方法。由于此类对数据库进行操作,所以需要引入一个命名空间,其主要代码如下:13/89usingSystem.Data.SqlClient自定义方法CyCon用于连接数据库,此方法返回一个SqlConnection对象,主要代码如下:nspac?MrCy.seclassclassDBContipublirstaticSqlConneitionCyCon0returnnewSq.Conner7Scurcr=.;Iniri31Catalogcb_MrCv;ui<l=sa]^d}}"'系统登录模块设计系统登录模块概述为了使系统的安全性得到保障,大多数系统都开发登录模块。只有通过登录模块,才能对登录用户进行验证,只有系统的合法用户才可以进入系统的主界面。登录模块运行结果如图1_14所示。图1_14登录模块运行结果图1_14登录模块运行结果电用口登录累豌用户名;系统登录模块技术分析运行本系统的登录模块,用户只需要输入用户名和密码,单击“登录”按钮进行验证。登录模块以登录的用户和密码作为搜索条件,在数据库中进行查询。14/89使用SqlDataReader对象的HasRows属性判断登录用户名和密码是否正确。下面介绍SqlDataReader对象的HasRows属性。HasRows属性用于获取一个bool型的值,该值指示SqlDataReader是否包含一行或多行,语法如下:publicoverrideboolHasRows{get;}属性值:如果SqlDataReader包含一行或多行,则为true;否则为false。例如,验证登录用户名和密码是否正确,可以通过以下代码实现:〃创建薮据库连接对象SqlConnectionconn=Baseclass.DEConn.CvCon();//打开连接conn.OpenO,“创建Cummand对像执行QQL语句SqlCommandcmd=newSqlConnnanciselect*fromtb_UserwhereUserNajoie=,*+txtName.Text+*JandLserFwd^#+t.KtFwd.Text+#*conn);//使用Ekcut曰R号ader方法实例化一个Dat t();SqlDazah'eadersdr=crd.EkccuteReader0;sdr.Read0,if(sdr.HasRows)〃弹出提示框MessageBox.Shew("登录成功警系统登录模块实现过程该模块需要使用的数据表示:tb_User系统登录模块的具体实现步骤如下:新建一个Windows窗体,命名为frmLogin.cs,主要用于实现系统的登录功能,该窗体用的主要主要空间表如表1-10所示。表1_10登录窗体用到的主要控件控件类型控件ID主要属性设置用途的TextBoxtxtName无输入登录用户名txtPwdPasswordChar属性设置为*输入登录用户密码国Eutto-nbtnSubmitText属性设置为“登录”登录btnCancelText属性设置为“取消”取消由于餐饮系统使用MicrosoftSQLServer2012作为后台数据库,因为先要引用命名空间,以便在程序操作数据库,关键代码如下:15/89usingSystem.Data.SqlClient;单击“登录”按钮之后,登录模块首先判断是否输入了用户名和密码,如果没有输入用户名和密码将弹出提示框,提示用户输入登录系统的用户名和密码;如果输入了用户名和密码,系统将判断输入的用户名和密码是否正确,关键代码如下:privztevdidbtnSubmLt_Cll,c;c(object5^ender,EventAy:?-if(txtName.Text==昵石82目eB-.Show「请输入用户名二"瞽告7hlesm.BoKBut■二口£.0凡''■^isa.geB-.'\Tcan.Warning),elieif(txtPwd.==生3巧强eBox.Show〔"请输入密码","警告":,MessageBoxButtons.OK,MessageBoxIcon.Warning):elseAqConr.fc_ionconn=BaseClas.x.DliConn.CyCnnO;|conn.Open0;SqlCommandcmd=newSqICcnuiand(vselect*fromtb_UserwhereUsc^Xame='"+t^tXame.I>xt+and.UseTPwfl='"+txtPwd,Text+ ",conn);jataRf^adevsdr-cmd,ExecuteReader:sdr.ReadO;16/89if(sdr.HasRows)^dr.Close0;cmd=newSqlCommand(^select*fromtb_Userwherel."serName=,"+tstName.Text+conn):;SqlDataReacersdrl=cmd.ExecuteReader.;:sdrl.Read();siringUserPower=sdr1["powerH,1.roST.rin.g().TriuiO;conn.Close();':i'.[:ii.main=newi::i。,main.power=IsjerPowei-main.Nam曰e=txtName.-ext.main.Times=DateTime,Now.ToShortDateString();main.Show();this.Hide();else当用户输入用户名和密码之后,还可以按Enter键登录系统,实现的原理是:在输入密码的文本框的KeyPress事件下,判断是否按了Enter键,如果按了Enter键就会激发“登录”按钮的Click事件,关键代码如下:privatevoidtstPwd_KeyPress(abjectsender,KeyPresiEventAi'gse)'if(e.KeyChar==13)btn.Suboiit_Click(sender,e);}单击“取消”按钮,退出系统登录,关键代码如下:privatevoidbtnCancel_Click(objectsendei'jEventArgs号)]'if塞氏x.ShcC确定推出系统吗?1卅提示”,WessageBoxButtons,OKCancel,MessageBoxIeon.Asterisk)==DialogResLilt,OK)AppLication.Exit0;开台模块设计开台模块概述17/89当顾客要进行消费时,首先要看一下是否还有可用的桌台,如果还有空闲的桌台,那么就要为顾客开台,只有在开台之后,才能为顾客点菜、查询和结账。所以开台模块在整个系统中是非常重要的。开台模块用于对指定的桌台进行开台操作,此功能是通过“开台”窗体实现的,如图1_15所示。图1_15开台单窗体开台模块技术分析在某个桌台上选择其中右键菜单中的“开台”命令,将根据该桌台的名称弹出相应的开台单窗体,在开台单窗体中用户可以对桌台编号、帐单日期、顾客名称、用餐人数、服务员和备注进行录入或更改。数据录入或修改完毕后,单击“保存”按钮完成开台单的操作。在开发此模块时,主要用到了数据库的更新技术,例如,将姓名为小吕的年龄修改为28,可以使用下面的代码实现:Updatetb_lssetage=28wherename=’小吕’开台模块实现过程本模块使用的数据表示:tb_Room、tb_Waiter(1)新建一个Windows窗体,命名为frmOpen.cs,主要用于实现对指定的桌台进行开台操作的功能,该窗体用到的主要控件如表1_12所示。表1_12开台单窗体中用到的主要控件控件类型控件ID主要属性设置用途ablTextEoxtxtNameText属性设置为Guest输入顾客姓名txtNum无输入用餐人数txtBZ无输入开台单备注CoinboEoxcbNum无选择开台的桌台号cbWaiter无选择开单的服务员18/89「口GroupBoxgroupBoxl无控制布局DateTimePickerdateTimePickerl无选择日期区]ButtonbtnSaveText属性设置为“保存”保存btnExitText属性设置为“退出”退出(2)首先建立两个公共变量一边程序汇总调用,关键代码如下:publicstringname,publicSqlConnectionconn;在窗体加载时,将数据库中所有的桌台信息和职员信息检索出来显示在ComboBox控件中,关键代码如下:privatevoidfrmOpen._Load(abjectsender.ZventArgsejconn=BaseClassi.)HConn.CyCon0;conn.Open0;SqlCommandcmd=new5qlCommandCselect*fromtb_Rocir]'*Jccnn)SclDatt.Readersdr=c:-d.ZxecuteReader1;,while(sdr.Read())cbNum.Items.Add(sdr["Rocim\aiiie.ToString().Irim());cbNuin,LSelectedIteni=name.Triir0,sdr.Close0;cmd=newSqIComnand(~select*zromtb_V^iter,conn);sdr=cmd.ExecuteReader();while(sdr.Read())obWaiier.IAdd(sdr1,WaizerNamf'"1.To:StringQ.Tritn(})dcbWaiter.,Sulectedinde^=0;sdr.Close0;(3)在“用餐人数”文本框中输入用餐人数,此数据必须保证为大于0的数字,关键代码如下:privatevoidrxcXum_KeyFress(objectsender,KeyFressEventArgse)〃■判断输入的数据是否为数字,e.KeyChar1=2判断是否输入的是退格诞iffe.KeyChar'=S&氐char.IsDigit(e.KeyChar)&&e.KeyChar1=13)MessageBex.Show「请输入数字"),c.Eandled=true;}19/89
(4)当数据输入完毕之后,单击“保存”按钮即可对指定的桌台进行开台操作,关键代码如下:privatevoidbtnSave_Click';abjectsender.Lv&ntArgsej|if(.txtXuiri.Text==**|Convert..Tolnt32(txtNtim.Text)^=Q)HessageBox.Show「请输入用餐人数"):cis?stringRooinNanie=cbNuin.Selectedltem.ToString(?:SqlCommanccmdL=newSq1Commandupdanetb_RooniiatGues.tXanje=,+tstName,T^xt+ 7zhangclanDate=>+datelinie?ickeii:l.Value.TcStringO- ,Xum='、+UonverT.,Tolnt32(tErXiun.Text)+,WaiterXame=s■*+cbWairer.Selectedltem.ToString0+ ,R口0m21='使用'whereRcicijnXairi="""十RoomName+"conn);cmdl.ExecliteNonQuery0;conn.CloseQ;conn.Dispose0;})„点/加菜模块设计点/加菜模块概述为顾客选好桌台,并且开台之后,会根据顾客的需要点菜或购买茶水研究之类的消费品,在点/加菜模块中会显示餐厅特有的一些菜系,用户可以对不同菜单漏单价数里锅底吧大厅-01点网口薨图1_16点/加菜模块运行结果的菜系进行选择。点/加菜模块运行结果如图1_16菜单漏单价数里锅底吧大厅-01点网口薨图1_16点/加菜模块运行结果的菜系进行选择。点/加菜模块运行结果如图1_16所示。架品类别h-激补二鸳道d甑菜卜••京菜商窠白烟酒"烟;酒■主食二米—「水馀总价月艮务员:小吕 ▼备注:保存删除退出菜品名称:菜名数里20/89
点/加菜模块技术分析系统点/加菜模块主要利用TreeView控件显示所有的菜系,利用DataGridView控件显示顾客消费的所有信息,当单击某个菜系时,右侧将出现此菜系的所有详细信息,选择菜系后单击“保存”按钮完成对指定桌台的点菜操作。点/加菜模块实现过程本模块使用的数据表:tb_Food、tb_Waiter、tb_Room、tb_GuestFood点/加菜模块的具体实现步骤如下:(1)新建一个Windows窗体,命名为frmDC.cs,主要用于实现系统的点菜功能,该窗体用到的主要控件如表1_14所示。表1_14点/加菜窗体中用到的主要控件控件类型S— . .£TreeView控件ID主要属性设置用途tvFood无显示餐厅所有菜系ablTextBc?-xtxtNumEnabled属性设置为false显示某个菜系的编号txtNameEnabled属性设置为false显示某个菜系的名称txtPriceEnabled属性设置为false显示某个菜系的单价txtPNumText属性设置为1输入某个菜系的数量txtAllPriceEnabled属性设置为false显示点菜后的总价格txtRemark无输入备注信息vfComboEoxcbWaiter无选择职员国ButtonbtnSaveText属性设置为“保存”保存btnDeleteText属性设置为“删除”删除btnExitText属性设置为“退出”退出,JDatsGridViewdgvFoodsColumns属性中添加7列用于显示已经点过的菜系的信息(2)首先建立一个公共变量RName,用于接收指定桌台的名称,关键代码如下:publicstringRName;在窗体加载时,程序首先从数据库中检索出所有菜系名称并显示在TreeView控件中,以便用户选择,关键代码如下:21/89privatevoidfruiDC_Load(objectsender,EventArgse)this.Text=RName十"点/力口菜”;TreeNodenewnodel=tvFood.Xodes.Add ;TreeNodenewnode2=—Foo&Nod—Add("配菜;TreeNodenewnode3=tvFood.Nodes. ;TreeXocenewncde4=tvFnod.、口(1日以Add("主'食");SqlConnec^ioncorm=BaseCLass.DBConn.CyConf);conn.Open0;SqlCcmiDandand=newSqlCommand(^select*fromtb_foodwherefoodty='1'conn);^qlDataf^eaclersdr-cmd."xecuteReader0;whiLe(sdr.Resd0)newnodel.Nodes.Add(sdr[3].ToString0.Trim0);sdr.Close():cmd=newSqlComtnanc(^select*fiomtb_zoodwheyefcoclty=12"conn);sdr=cud,FxrrcilteReadrrr();while(sdr.Read0)'newnodel.Xodes.Addtsdr^31.ToString0.Trim());sdi\CloE;e0'cmd=new^qlComniand *fromtb_foDdvherefoodty21Jconn);sdi,=cmd.HxecuteReader0;Trhilc(sdr.ReadQ)newnode2rNodes.Adddr_3_.ToStrin^0.一「in【)》;sdr.C_osc();c^id=newSqlCommandfselect拈fromtb_foodwherefoodty=13Jconn);sdr=cmc.ExecuteReader0;while(sdr.Read())newncide3.Nodes.Add(^dr[3].ToString().Tri;);sdr.Close();22/89cmd=newSqlCommand(*select率fromtb_foodwheref。口dty='4'conn):mdr=emd.EKecuteReader();while(sdr.Read0)newncide4JNodes.Add(sdr[3].ToString0.Trim());sdr.Close();cmd=newSqlCommand(^select*fromtb-Waiter^,conn);sdr=cmd.ExecuteReader(),while(sdr.Readt)JcbWaiter.Items.Add(sdr[*WaLterNaine.ToString0-Trim0)」rbWair^r.SelecTcc[ndex=0;sdr.Close0;cmd=newSqlComniand(^selectRootnZTfromtb_RoauwhereRcicniXameu'”+RXamf■卜",conn):springzt=Convert.ToS^ring'cmd.EsecLlteScalar()):if(zt.TrimO=="待用") " 'SL'otipBoxl.Enabled=false,groupBox2.Enabled-falise,^raupBox3.Enabled-false;graupBoxl.Enabled-false;conn.Close0;GetDtita0;tvFood.ExpandAll0,当用户双击某个菜系使,将在右侧显示该菜系的详细信息,以便用户能够准确选择,关键代码如下:23/89pnvaievoidtreeViewl_DoubleClick(ob.it?c:sender,Evenr/ii-nse)r;sir?ngfoodname=tvFood.SeleeredNode.Text;if(foodname=='"锅底"||foodname=="配菜* foodname=="烟酒foodname一一"主食elseSqlConnect■'orconn-BaseClass,DBConn.CyCcn();conn.Open();SqlCommandcmd.=newSqlCojmEiJid(^select*fromTb_foodwherezeedname:-foodname一conn);SqlDciraReadefsdr=cmd.HxecuteReader0,sdr.Read():zxtNum,lexi=sdr_^foodnuit/J.ToStringO.rrim(j,zxtName.lem=foodname;txtprice.Texi=sdr["Toodprice^I.ToStrin^3.Trim0.conn.ClciME(1.if(txtpnum.Text==MessageBox.5卜口而《“数量■不能为空"),return;sis?txtallpi-ice.Text= '!vrr.ToString.mve\'.Tolnt32(txtpric^.Text)*Convert,TDlnt32(txtpniltn.Text));为了保证消费商品数量文本框中的数据必须为数字,在文本框的KeyPresss事件中添加代码控件输入数据的类型,关键代码如下:privatevoidtxtPXunLKeyPress(objectsender,KeyPressEventArgse)《〃判断是否输入了数字if(e.KeyChar-I=8&鼠Ichar.IsDigir.(e.KeyChar]也&e,KeyChar[=1.3).UessageBox.5h口曾("请谕入数字)门一HandJ「d=true;11为了保证消费商品的数量时,该商品的总价格会随之改变,实现的方法是在TextBox控件的TextChanged事件中添加代码,关键代码如下:24/89privatevoicrxtpnum_.exrChanged(objectsender,EvenrArg£『)if(txtpnum.Text==VJe?;saxi■Box. 数呈环组为空");return;elseif('"onvert.Iolnt.32(txtpnum.Text)<1)MessageBox.:Showr不能为小于1的数字”),rs:urn;elsetxtallpi'ice.Text=Convert.ToSti'ing(Converi.Tolnt32(txtprice.Test;*Con\pei't.Joint32(txtpnum.Text)):I}自定义一个GetData方法,用于显示所有的点菜信息,关键代码如下:privatevoidGetData()SqlConnectionconn=BaseClass,DBConn.CyCon0;SqlData,:\daptersda=newSqlDanaAda^ter(^selecifoodnatnejfoodsuttijfoodallprice,waitername,beizhil,zhuatai.datatime.IDfromibGuesrFoodwherezhuotEi--RXame-"orderbyIDdesc*,eonnjDataSetds=ne^rDataSet();sda.FilKds);dgvl'oods.DataSource-ds.Tables_01;privatevoidtxtpnunuKeyPress(objectsender,KeyPressEventArgse)if((e.KeyChar!=8lohar.IsDigit(e.KeyChar))Me.KeyCharI=13)Mes:iageBox.Show{"请输入数字;当点菜完毕后,单击“保存”按钮可以对顾客消费的菜系进行保存,以便在结账时对消费金额进行查询,关键代码如下:25/89privatevoicbtnSave_Click(cbjsctsender,EventArgse)if(txtName.Text==""|txtNum.Text==""txtpricc?.Texl=="*)Me?;sag^Box.Show("请将选择菜系”上return;else7f(txtpnilm.Text==MessflgeBci::.Shw("数量不能为空");return;117Lif(.::rrr■,Iolnt32(tKtpnum.Text)<.=0)MessflgeBox.请输入消费数鱼”);return:I'lSqIConnectionconn=BaseClass.DBConn.CyCan();conn.Open0;Sq"omsndemd=newSq"o?niFind("insertintntb_GuesTFood(fcodnunijfeednatne,foodsuir,zocdallprice,waiterncime,b?izhu,zhuotai,datatvaluesC"-TxtWum,Test.IrimO+"「+tstNome.TexT.TrimO- "-txtpnuiti.fexL.Trim()- -Con-.rert.ToDecinial(txiallprice.Test.Irim())+-cb^aiter.SelectedIrem.ToStringO-…"-extbz.Text.TrimO一“ "+RXame+ …+Date!ime.Naw.TaString0+ conn);cmd.ExecLlte5onQuery().conn.Close0:如果顾客点菜之后想退掉某个菜,就可以在显示所有消费信息的dataGridViewl控件中欲删除的商品,单击“删除”按钮,即可将菜退掉,关键代码如下:26/89piivatevoidbtnDelT?te_C]ickvobjectrender.Ever:r小)lf(dgvFoods.S^lectedRows.Count;-0)//stringnames=dgvFoods.SelectedCellsCOLValue.ToString(]ImintlD=Conver'.ToTnt32(.dgvFooda.CurrentRow.Cells;E7],Value);iSqlConnectioncorm=BascClass.DBConr.^CyConO;conn.Open0;//SqlCommandcmd=newSqlCcmmand(^deletezromtb_Gues^Food.svherefoodname=J*-names一andwhucii曰i='*+RXame+conn),SqlCommandcmd=newSqlCarrnnand(^deletefromtb_GtlestFoodwhereID-…%intlD+conn);cmd.EsecuteXonQuery0:conn.Close0:GeWata0;1.9结账模块设计结账模块概述顾客消费完毕后,需要对顾客消费清单进行统计,即计算出消费的总额,这些都是通过结账模块实现额。结账模块主要功能是当顾客每次消费时将顾客消费的项目添加到数据库中,在用户结账时通过对数据库的查询,检索出顾客本次消费的商品名称及价格,然后计算出总额,如图1_19所示。图1_19顾客结账27/89如果输入的金额小于消费的金额,单击“结账”按钮结账,将弹出“金额不足”的提示信息,如图1_20所示;如果在“收银”文本框中输入了错误的数据,将弹出图1_21所示的提示信息。金额不足图1_20金额不足提示信息图1_21提示输入的数据必须为数字结账模块技术分析本系统的结账模块,首先从数据库中将顾客消费的所有项目检索出来显示到DataGridView控件上,以方便管理员校对消费金额,然后通过程序计算后将顾客消费的总额显示出来,当顾客结账时,输入顾客支付的金额,会出现相应的余额,以方便管理员为顾客退还余额。在开发此模块式,主要用到SUM聚合函数以桌台名称为搜索条件,查询出消费的总额。SUM聚合函数用于返回表达式中所有值得和,或只返回DISTINCT值。SUM只能用于数字列。空值将被忽略。语法如下:SUM([ALL|DISTINCT]expression)ALL:对所有的值进行聚合函数运算,ALL是默认设置。28/89DISTINCT:指定SUM返回唯一值的和。EXPRESS:是常量、列火函数,或者是算术、按位与字符串等运算符的任意组合。Express是精确数字或近似数字数据类型分类(bit数据类型除外)的表达式,不允许使用聚合函数和子查询。1.9.3结账模块实现过程本模块使用的数据表:tb_GuestFood、tb_Room.结账模块的具体实现步骤如下:新建一个Windows窗体,命名为frmJZ.cs,主要用于实现对指定的桌台进行结账操作的功能,该窗体用到的主要控件如表1_15所示。略引用建立两个公共变量,分别用于接收住窗体模块中传递的桌台名称及根据名称查询消费的总额,关键代码如下:publicstringRname,publicstringprice,当窗体加载时,首先显示结账的桌台名称,然后通过桌台名称检索出消费的所有账目显示到DataGridView控件上,最后将查询出消费的总金额显示到Label控件上,关键代码如下:privst?void Load(ob/ectsender,Event.Argse)this.Text=Rname+"结账";groupBoxl.Text="当前桌台-"+Rtiame;SqlConnectionconn=BaseClass,DBConn,CyConO;SqlDstaAdap:ersda=newSqlDaLaAdapt<LrCselectfoodname,foodium,focdallpiLice,waitername,beizhu,zhuotai,datatimefromTb_GuestFoodwherezhuotfli=,J,+Rname+orderbyIDdesc/J,corm);DataSetds=newDataSet0;sda.Fill(ds);dgvRecord.DataSoliree=ds.Table;[Oj,conn.Open0;:SqICommandemd=newSqllZominarLdC-s;elecusum(fcodalLpj-ice)fromTb_GuestFoodwherezhuotai=,+Rname+conn);price=CcnveuT.ToString(cmd.ExecuteScalar());if(price==JLblpnce,Text=;btnJZ.Enabled=falsa;29/89elsecmd=newSqiCojutuaiid(''selectRcomBJFfromtb_Roomwhei-eRoomName/"+比1包蚱一-,“,conn),bjf=cmd.Execute:?Lalar().Io:?tringQ,if(bjf==飞nbtnJZ.Enabled=~.rue.Lblprice.Text=price- 5%"+"-'+bjf-+(Convert.roDe-cimal(Converr.ToDouble(price)*Coi.>ert.ToDouble(0.95))),roSL:ring(空),elsebtnJZ.Enabled=-rue,Lblprice.Text=price-**95%"+"-''+bjf-+f.Convert.ToDe-eima](Conver:.ToDoub\o(price)*forivert.ToDouble(0.95))-Convert.ToDecima](bjfJ).ToString("C");conn.Close()}在输入顾客支付金额文本框的KeyPress事件下面添加代码,判断文本框中是否输入了正确的数据,关键代码如下:privatevoidtxtraoney_Key?ress(object5cnderhKFres5rven.LArese)if((e.KeyChar!=8Ichar.TiDigit(e.KeyChar))国立e.KeyChar1=13)\\essageBox.Show「请输入数字“),}丁…当管理员在“收银”文本框中输入顾客支付的金额后,系统将自动计算出退还顾客的金额,管家代码如下:30/89privatevoicTxtnioney_reKtChanged(objectrenderEventArgsEif(price==IblO.Text="0";el三己if(txtnioney.Text==txtuioney.Text="。";IbLO.Text=W;elseIblO,Text=Convert,roDecLmal(Convert,ToDouble(txtmonev.1'exi.Trim。J-Convert.ToDoublc(pricej*Convert.ToDoub.e(0.35J当顾客支付了消费金额后,单击“结账”按钮完成对顾客消费的结账操作,同时将顾客所在的桌台状态设置为“待用”,关键代码如下;privatevoidjtrJZ_Click(objectsen.derhEventArgse)if(txtmoney.Text-""|IblO.TExt=="0")MessageEox.Shc>w,,肩先结账");return,elseif(IblO.Test.Substring(131)=="-")MessageBox.Shmr一金颠不足");rerurn:31/89「1-ySqlConnectionconn=BaseClass.DBConn.CyConO;conn.Open();SqlConmEin.dcmc=newSqlCommand("deletefromtb_GucsTfoodwherezhuotaiz,”-Rname-conn);end.ExecuteXonQuery0,Gind=newSqlCotuidand("updatetb_R。口mwwtR<x)mZT=’待用‘,Nm=Q,Wait白rRaiiie=''whereRDcmXame=J*+Rname+conn);cmd.FxecUteNonQtlery();conn.Close0;♦…;1.10文件清单下面以表格形式列出程序的文件清单,如表1_16所示。表1_16程序文件清单文件名文件类型说明frmAboutBox.cs窗体文件关于窗体frmBF.cs窗体文件备份数据库窗体frmCalender.cs窗体文件日历窗体frmDC.cs窗体文件点菜窗体frmDesk.cs窗体文件桌台基本信息窗体frmDetails.cs窗体文件桌台详细信息窗体frmHF.cs窗体文件数据库恢复窗体frmJZ.cs窗体文件结账窗体frmLock.cs窗体文件锁定系统窗体frmLogin.cs窗体文件用户登录窗体frmMain.cs窗体文件系统主窗体frmOpen.cs窗体文件开台单窗体frmPwd.cs窗体文件密码修改窗体frmQxG.cs窗体文件权限管理窗体frmSerch.cs窗体文件消费查询窗体frmUser.cs窗体文件职员信息窗体项目情况frmLogin.cs(登录窗体)32/89
用户名;国用户名;国餐播詈理耒统功能描述:.通过登录按钮对用户进行验证,如果正确登录打开系统主窗体,如果错误重新输入;.通过取消按钮退出该系统;.可用Enter键代替登录按钮;3.放大窗体后,窗体内容始终居中;(选中lable,textbox,button,在Achor属性中设置为None,即可实现);usingSystenz-h-1usingSystem.Collections.Generic=*JusingSysten.ConiFoiientXlQdelusingSystenz-h-1usingSystem.Collections.Generic=*JusingSysten.ConiFoiientXlQdel;+-1usingSystea.Data:+JusingSysteu.DraTrin^:+-1u^ingSystea.Text;+-1uaingSysten.Windows.Forma;+-■usingSysten.Data.SqLCLient:+-1puljliefnnLaginO*-1InitializeCooiponeiil: :+Juszng□am已弓pacwF<m)dimanageSystpublicpartialclassffinnLDgin:Fotum-133/89privatevoid aJ<ctjs«t 匕二。厂工客了二门uii£(ixtWajn«rText"''+*麻号班gefiML5h*ir「清辅i入,用户名\,警告,N&fis^geBas£utt&ns,OKjM^ssa^eEkjflItaiihTarninj):*--this.tittMtJEt.FfitusO:+'2else*'ifCtxtPrd.Text={alk$w如窃口x.5hg("请箭入密码,〜警吉\十日鸵亡鸵都就uttunaOK」,:icEhmIw-n.Uarninj):4-1else^--wjqlL'.-LJiecti&nConn=Focdliiians^eSyEtea.DfiC..:;r.CyeonO:aConn.Oy:en门产SqlCciMizndctsdsntrS<[1CoinaaiidCsfleet*fromtbjjssrwhtr#User?^az)e=h-tstNants.Text'+"andUserPmd=,土岂tPaid.lext'tConn):+,SqW^taRr:^?t5drl=emd.ExecuteReaderOsdrl.fieidOwif也业:LthUlc喀WWsdrl.Close。产■c»d-newSqICawuni(1e«t*fromtt-UserThereUsei>ase^'-'+tx-tWflBf.Te-xt-"、C*?nn)*£dr2=emd,E7tieui«Kpa-derO>sdrZ.Kead0V■stringUsetPcrer=sdr2[''p<JWErToStriugL'.Trira();CcnnnClos-eO;♦f曰以inc^in兰nerfrEJ^aint■:natih明ker=^EerPo^i;*■'sain.Sanies口tst^ame.T-ext;4-1^airiLTitntjs[4tr:l二二•:』Hqh1TDShort&at廿£trin/0工BSinrShwO:丁this.Hide();"eLse*:234/89privatevoidtxthrtLKeyPtfes<objectsender,KeyPressEventArgse?^wifle.KeyCJiai=⑶言btnSutmLr_Click(sejider:.e)>'piivatcvoidbtnCancel_KeyPres5(abjectsender,KtyPre5jEven*Arg5e-Jf'3ifMes鸵然氏n*Shmr痛定退出系统吗1:〜提示二二日乩a葬如xButlms;.0K匚加匚口,MfssaftiBaxlGOH.Asrt6risk)—Dial稣班领1匕OR)JApplication+£>dt0;r>privatevoidfnaLogiu_Load(o-bjeetsender,EwenIArgse).wthis.tstNane.Facns口:*}#frmMain.cs(主窗体)35/89
大厅幻亍-叶包面F4包命厅黑胴产省::adm;n|月卢阳1:海阳大厅幻亍-叶包面F4包命厅黑胴产省::adm;n|月卢阳1:海阳S理紧|量装为却:2013^12/27芟面信恩{M〕 31衽I国Q】界广d]敏宜置《口】矩-何椀包用。L标大厅-造㈱拓F大厅-皿功能描述:.状态栏显示用户的基本信息;.为不同用户权限设置系统功能的可用性;.通过图片是否改变,显示桌台的状态,在桌台双击,及右键单击能实现就餐的基本需求,连接其他窗体;.菜单栏系统基本功能。usingSystec:+1usin^sy=tec.。七ILmtrtEn力,匚usingSyst5c.Ccu?Giientjfcc^1:uaiiigSystec.Data;|uaiiigSytec.Llrav■皿:口uaiiigSytec.-ir.q;liSL”目Systec.TexiusingSy^teL.'.TiEdcTS,Ferms;+J36/89心iciE5ys^ec.Data,SqlCllent:*-■namespaceFcmm)加⑪我。丁*工电中wpublicpartialclas-sfr7.1:.!in2Fdtwm3publicErnMaingfiIniti51i:eC«potieniO>'2publicS^lDa-tdCndcrsdr>publicstfis^:ppubliuEtxiiigISanieSpublicitrinfTimes;+-'priva.tevciidfrzldain_Loa.J'.objectseridtrjlvents,1■1卡wife])ycue-gdWtr珅Stst心L唾式琥Taxt="影幼管理员":口百联」取限为0说明用户是曲辨管理员ytsHse"1":twlStripStatusLabellJrText-"SEt3":tjcflcJc;"case"2":toolStripStatusLabellS.Tert="一般用户":break:」toolStripGtatusLabelLO.Text=Mstem;了在状态栏中显示登录用户名字+Jtc<?JStripEtatij^La'celLB.Tezt=Ti匚巳三;口if[pew宜=="¥)J系统维护31匚::|15立匚山营匚口二1:+匚,znable-d=fal鸟已;,屏蔽系统维护功能〃基础信息MTmlSt二ipifenulten.Enable-d=false;Jif匕£可号二==OJ3系统维护3Tc31三11:匚曲之匚口二世匚,Enabled=false;Jpzivit-EvoidAddllens(string匚工ifirzt="使用1+J37/89IvDesk.Items.Add(EdrC^RcooiNhep**].ToStri1)Wthis.CGnteKtUenuftxipLIteaslQ"..Enabl-ed=false:*-thi£«ContfrKt^nuSmpLIteufll],Eiubl4d=iriie■:*thii^ConteKtMenuStripLItenistS]tEnabl-td-irae-:*this.CcnteKtMenuStripl.Iteasl3].Enablect=+曰已;十this.ContestUenuStripl.Items141.Enabl-Ecl=Ime:^Pif(lZt=a待用")/供IvDesk.It«D5rAddtsdrt'RconjNaiiie^^.ToStTiOf^,。:।*this.CcntfrKtMenuStripl.114-u$[Oj.Enabl>ed=irut:*this.CpnteKtlienwStrLpl-JlfrfflsiC>Eaabl-ed=fal«thi5.CantestUenuStripl.Ite-mslSj.Enabl-ed=false:」1this.CointRut乂cnuSt工ipL1tEniM_[3].Enabled=falsethis,ConteKtllenuStripl.Iteas[4a,Enabled=falsepnvat«vQid^rnjWakn_ActiTated(objftc.tsenderjEvcntAa.c):收活售件的时装国扉桌台信息和髯厅主雳信息期{?IvDesk.EHni『.口Eax。:"看变h二由北里面的内容*JSc;ICc-nr.cztpuC&rm=F*MiIiAiisg#Sy$tictDBConr..Cycon.();,隹捺数抠库,和就克昌Cam<Qpen-Q;*1SilCoanandaad=newSqlCcnndCsclect*fromtb_Rnoa:ComO:r"fdr=cudExecuteReader-■;*-'¥hiit(sdr^ReadO)*日stria*Et=sdiL"RoctDn'1.TcStringO^Trim0;/取出点台当前状态「1Add!temsf工七;:〃添加亲旨+JCatm.Clcs#0-:+1privatfivoid ftt9ToolStrIjiMHD,uItaiL.CliclfiCdbjcctscnifeijEyghaAt察e)^if(ivDesJi.Selectedtteou.Countt=38/89string11mle€$=h-Dssk£elect«dIt^DsZO]rSubltensLO).Tent;41fre^tarchsearch=nevfrn5tarch0:*1ssfli?h-RNace=洞xs;#siaffb.5晟居0>else*J*MessageiBcK.Shew「谓遗择察赵.):。privatewidIvDetX.Dou-bleClick(abjectse^derrEventAr 自),卜fmDetailEdetails=mtfnnDetails0加t品口的hbl码皿肆=h个kk・%】笈/4工1打&:0:,Eutlt号卬5:0:,T,t;+“det-ails.5haWUlo?O>*privatevoi<31vDeek_Click(objectEendeErEl,e口工Wr*己)*■'*if(IrDisk.Sfrltet'idI?tss.Ccwit>fl)«Wstrin*=LrDssk.5fi*Ete-dIt6ffl3[0j.S'abKtfliLO].TeK:tJ'Sq^lfo^neEtionCcftn- 涓tR,♦±:0皿一。丫二.0;"Conn,OpenO*S^lCosmaiid.end=nc#&|1CcmodcI(rselect•freatb^Eto™wiueiefiocuSTanie='-nafiitj- %Cottti):*1Gqj£--.taRt=S,i-sdr=cmd.5MscuteS?ader0:*■'s(Lr.BaadO>stTiBg:t=ffir[^Reoai7i^j.TaStsingO.TneO;+^Ir.ClostOif(rt="使用0"■kthi5+CQrite3tMenuS1rip1.11etns:?0Z.Enacled-falsethiw,Sc;tgKtE『n或tripl.】tu&5:1】,EcisbL4d-irue:1-1tbis.Cjeit:eat!!jrmstrip-L.LtVitaliLed=true.4Jthis.Cortti^tJEiiluStripl.Ittm?.3]^ =truer+'this.Gont'63(tl£eTiiio1rii1,11ems-4]h%abkd三truw:"卜”if3t=•特用口-39/89
tTiie*false;f-1false:Pfalse:FfalsetTiie*false;f-1false:Pfalse:Ffalse;Pthis.CctAexiV zip1,[tenL5.1].Enabled=this.CeyAYi1.ItEtn.='2].Enabled=this.Cci11extVenaStzig1.ItEHLS'a].Znabled=this.CcyAexiVzip1,Items_4].enabled=*return卡privatevoid桌台信息TqoLStripMEnuItEiD_Clic±(objectsender.EveatArgse)^;1fmDeslcde-sk=nenfnnDBEzkC1:4-1de5k.511C7DialcrQi=+jprivate--void )§Tm1£iripUJenulte^_C1ir-k^cbjeetstfnd*rrE---.m.Xi +)Q加ffwUssr95年『才-fr-niy^^r();•*listrs.SfucTflialogO'.»'private--veLdHJ^TmIStr£plfer□!tee_Cliek^obj«tsen.d*rjEvcrcttAie^'*-19fL^=Calen^TVca.e^dev=二々丁:丁二Emlcndefi,:-calsudtr.ShtwDiilcgzO:*■'aprivate-ToidvhToolStrL^Men;uItee_CLlckCobje-ctsender^Ete)^茶Svst-eitliafnostits.Fiocc.;s.Start("caLc.。丁)卡I*1prLvateTDid^'IRIStiipJi&nuId_Ciick(objectsender,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年跨区域能源供应合作协议
- 技术顾问聘用协议书
- 融资租赁服务合同模板
- 江西科技师范大学《微积分Ⅰ(二)》2023-2024学年第二学期期末试卷
- 长沙环境保护职业技术学院《高等数学B》2023-2024学年第二学期期末试卷
- 北京物资学院《工业设计标准化》2023-2024学年第二学期期末试卷
- 北京师范大学《电机与拖动基础》2023-2024学年第二学期期末试卷
- 北京林业大学《现代控制理论及其仿真》2023-2024学年第二学期期末试卷
- 现代编程语言教育的重要性与策略
- 现代教育技术下的老年大学课程评估新模式
- 消防器材与消防设施的维护与检查
- 2024年度碳陶刹车盘分析报告
- 四川省绵阳市2025届高三上学期第二次诊断性考试语文试题(含答案)
- 2025年1月 浙江首考英语试卷
- 2025年1月广西2025届高三调研考试英语试卷(含答案详解)
- 2024年中考二轮专题复习道德与法治主观题答题技巧(小论文)之演讲稿
- 质检工作计划书2025质检部工作计划范文
- 《复旦大学》课件
- 《缠论的实战技法》课件
- 承包鱼塘维修施工合同范例
- 耶鲁综合抽动严重程度量表正式版
评论
0/150
提交评论