1郑州轻工业学院软件学院实训报告实训名称:C#程序设计姓名:陈鹏院(系):软件学院专业班级:过程控制11-01学号:541113470103指导教师:黄艳成绩:时间:2012年12月24日至2013年1月11日2目录引言第一章学生实训任务书…………………………………………4第二章实训进度日历……………………………………………5第三章餐厅管理系统的需求分析3.1系统功能描述与系统基本流程图……………………5第四章系统的设计与实现4.1数据库的设计…………………………………………74.2登录模块设计…………………………………………94.3点菜功能模块设计4.3.1开台模块设计…………………………………114.3.2点菜模块设计…………………………………124.4消费结账模块设计……………………………………154.5菜单管理模块设计4.5.1菜单添加模块…………………………………174.5.2菜单修改模块…………………………………194.6餐厅人员信息管理模块设计4.6.1餐厅人员信息添加模块设计…………………214.6.2餐厅人员信息修改模块设计…………………224.7桌台信息管理模块设计………………………………244.8盈利管理模块设计……………………………………26第五章实训感想…………………………………………………283引言近年来,随着人民的生活水平的不断提高,餐饮业的消费持续增长,竞争愈来愈激烈。然而,传统餐饮企业的日常运作还是靠人工管理,从菜单入库到客人点单,再到结账基本上由人工完成记录,这样做不仅耗费人力资源而且容易导致记录丢失或重复等错误,造成管理水平低下。随着社会经济的迅速发展和现代科学技术的进步,人类社会正逐渐走向现代化。计算机事业的飞速发展,使得以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期,通过计算机管理餐饮企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率。作为计算机应用的一部分,使用计算机对餐饮企业信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高信息管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。本系统选择目前市场上价格比较低廉的数据库服务器产品:sqlserver2000及配套的平台WindowsXP。而前台开发工具采用MicrosoftVisualStudio2008,语言用C#,利用其可视化的开发环境、丰富的控件资源,快速开发出了餐饮管理信息系统应用程序。4第一章实训任务书一、题目餐厅管理系统的设计与实现二、用户需求及约束条件1.数据库中的数据要能够支持以下功能需求:a)餐厅管理系统包括管理人员登陆模块,菜单管理,桌台管理,餐厅人员管理,点菜功能,消费结帐,查询统计功能等。b)此系统功能分为面向管理员和餐厅经理,其中前台管理员可以进行桌台管理,点菜,消费结帐,信息的查询统计功能,餐厅经理可以进行餐厅人员管理,盈利管理等。三、设计要求、技术参数及设计规格1.设计的系统能够安全稳定运行。2.提交实训报告,实训报告中给出需求分析、系统设计、功能设计、总结等。3.所有的工作需要同学们自己真实、独立地完成。四、考核形式、考核时间、考核指标及成绩评定实训成绩由下面几项构成:1)整个实训20次点名(每天上午下午各一次,时间点随机),共20分。2)实训结果占50%3)实训报告占30%考核形式:1)老师每日对学生的考察、评估和考核;2)最后对实训项目和报告完成的质量进行考核和验收。完成期限:2013年1月11日指导教师签章:_黄艳___专业负责人签章:梁树军教学院长签章:邓璐娟2012年12月20日5第二章实训进度日历天/日期任务描述通过标准2012.12.24理解项目要求,按照要求整理数据库给出需求分析2012.12.25完成系统登录2种身份登录2012.12.26菜单管理模块的设计2012.12.27菜单管理模块的实现2012.12.28桌台管理模块的设计2012.12.31桌台管理模块的实现2013.1.1餐厅人员管理模块的设计2013.1.2餐厅人员管理模块的实现2013.1.3点菜功能模块的设计2013.1.4点菜功能模块的实现2013.1.7点菜功能模块的实现2013.1.8消费结帐模块的实现2013.1.9盈利管理的实现2013.1.10系统测试和完善2013.1.11完成实训报告第三章餐厅管理系统的需求分析3.1系统功能描述与系统基本流程图1、菜单管理模块:管理人员可以添加菜谱到系统中,并能进行日常维护(包括修改菜谱,删除菜谱等),系统可以对整个菜单分类管理,可区分凉菜、热菜、汤类、酒水、消费品和主食。2、桌台管理模块:餐厅管理人员能维护和管理整个餐厅的桌台信息,可以显示该桌台是否可用,可以扩大或减小餐厅规模,可以新添包房和删除包房,当选择某一桌台时,可显示该桌台的所有信息。3、餐厅人员管理模块:管理员能维护整个餐厅服务人员的信息记录,对餐厅服务人员信息进行添加、修改与删除。64、点菜功能模块:用户可以根据自己的需要来选择,也可以在此界面退菜和补菜,所点的菜将添加到此桌台顾客的消费表中。顾客入座后,该桌台显示有人,并显示该桌台有人使用,顾客消费过程中,将消费情况记录到系统中,并支持查询,当选择该桌台时,可显示该桌台的消费情况。5、消费结帐模块:系统可以自动对消费情况进行结算,可显示该消费者的所有消费情况,并能自动实现找零计算的功能。6、盈利管理:能按月按日统计餐厅整个赢利情况,能依据消费时间查询某顾客的消费明细。系统基本流程图系统业务流程示意图如下图,除了以上功能模块的实现,系统必须实现一些规范检查。业务流程示意图7第四章系统的设计与实现4.1数据库的设计在开发餐饮管理系统之前,分析了该系统的数据量,由于餐饮管理系统的数据较多,商品信息、消费信息以及账目清单会占用较大的空间。因此选择MicrosoftSQLServer2008数据库存储这些信息,数据库命名为hotle在数据库中创建了6个数据表用于表示不同的信息。1、菜谱信息表:用于保存菜谱信息,包括菜的编号、类别编号、菜的代号、菜名和菜的价格。菜谱信息表(food):字段名数据类型描述IDint编号foodtychar(10)类别编号foodnumchar(10)商品代号foodnamevarchar(50)商品名foodpricedecimal(18,0)商品价格2、顾客消费表:用于保存顾客的消费信息,包括顾客消费编号、商品代号、商品名、消费数量、商品价格、开单人、备注、消费桌台和消费时间。顾客消费信息表(GuestFood):字段名数据类型描述IDint编号foodnumchar(10)商品代号foodnamevarchar(50)商品名foodsumchar(10)消费数量foodallpricedecimal(18,0)商品价格waiternamevarchar(50)开单人beizhuvarchar(50)备注zhuotaichar(10)消费桌台datatimevarchar(50)消费时间3、桌台信息表:用于保存桌台信息,具体包括桌台编号、名称、简称、包间费、位置、状态、类型、备注、其他信息、顾客姓名、开台时间、顾客人数和开单人。8桌台信息表(Room):字段名数据类型描述IDchar(10)编号roomNamechar(10)名称roomJCvarchar(50)简称roomBJFdecimal(18,0)包间费roomWZchar(10)位置roomZTchar(10)状态roomTypevarchar(50)类型roomBZvarchar(50)备注roomQTvarchar(50)其他信息GuestNamevarchar(50)顾客姓名zhangdanDatevarchar(50)开台时间Numint顾客人数waiterNamevarchar(50)开单人4、用户信息表:用于保存系统用户信息,包括用户编号、登录名、密码和权限。系统用户信息表(tb_User):字段名数据类型描述IDint编号userNamevarchar(50)登录名userPwdvarchar(50)密码powerchar(10)权限5、职员信息表:用于保存职员信息,具体包括系统编号、名字、身份证号、职员编号、性别、年龄和电话。职员信息表(tb_Waiter):字段名数据类型描述IDint编号waiterNamevarchar(50)名字cardNumvarchar(50)身份证号waiterNumchar(10)职员编号Sexchar(10)性别Agechar(10)年龄telvarchar(50)电话6、顾客简要消费信息表:用于保存顾客消费的简要信息,具体包括消费编号、菜名、房间号、消费金额、顾客姓名、消费时间和开单人。9顾客简要消费信息表(tb_spend):字段名数据类型描述IDint消费编号foodnamevarchar(50)菜名roomNamechar(10)房间号spenddecimal(18,0)消费金额GuestNamevarchar(50)顾客姓名zhangdanDatevarchar(50)消费时间waiterNamevarchar(50)开单人4.2登录模块设计为了使系统的安全性得到保障,为餐饮管理系统开发了登录模块。通过该模块能对登录用户进行验证,只有系统的合法用户才能进入系统的主界面。代码实现部分如下:classConn{staticstringstr=DataSource=E017;InitialCatalog=hotle;IntegratedSecurity=True;publicstaticSqlConnectionconn=newSqlConnection(str);}privatevoidbutton1_Click(objectsender,EventArgse){if(textBox1.Text.Trim()==管理员){stringcom1=string.Format(Selectcount(*)fromtb_UserwhereuserName='{0}'anduserPwd='{1}',textBox1.Text.ToString(),textBox2.Text.ToString());try{SqlCommandcommand=newSqlCommand(com1,Conn.conn);Conn.conn.Open();intcount=0;count=(int)command.ExecuteScalar();if(count0){10Form2f2=newForm2();this.Hide();f2.ShowDialog();}else{MessageBox.Show(用户名或密码错误!);}}catch{}Conn.conn.Close();}if(textBox1.Text.Trim()==服务员){stringcom1=string.Format(Selectcount(*)fromtb_UserwhereuserName='{0}'anduserPwd='{1}',textBox1.Text.ToString(),textBox2.Text.ToString());try{SqlCommandcommand=newSqlCommand(com1,Conn.conn);Conn.conn.Open();intcount=0;count=(int)command.ExecuteScalar();if(count0){Form7f7=newForm7();this.Hide();f7.ShowDialog();}else{MessageBox.Show(用户名或密码错误!);}}catch{}Conn.conn.Close();}}11登录界面如图:4.3点菜功能模块设计4.3.1开台模块设计privatevoidbutton1_Click(objec