论酒店点菜系统的设计与实现.docx
《论酒店点菜系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《论酒店点菜系统的设计与实现.docx(35页珍藏版)》请在冰豆网上搜索。
论酒店点菜系统的设计与实现
XXX毕业技术报告
论酒店点菜系统的设计与实现
学生姓名
XXX
系部名称
XXXXXX系
专业班级
XXXXXX班
学号
XXXXXXXXX
指导教师
XXX
XXXXXXXXX教务处
二○一一年三月
论酒店点菜系统的设计与实现
学生:
XXX指导教师:
XXX
内容摘要:
二十一世纪是信息高度交流与发展的时代,随着人类社会的进步与发展,越来越多的信息已无法通过手工记录、人工管理来实现,信息在社会经济中发挥着越来越重要的作用。
餐厅点菜管理系统是一个信息化管理软件,可以实现餐厅的点菜、订餐、员工管理等各项业务的信息化管理,整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,减少了人工操作的麻烦和误差,能更好地提高企业的管理模式,实现自动化。
在大多数的餐饮场所点菜、查看菜谱等是人工完成的。
这就需要通过大量的手工完成,速度慢,耗费人力多,而且极易出错,导致工作效率低,造成人力物力的极大浪费。
为了节省人力和时间,避免不必要的错误,通过对此作认真细致的调查研究后,决定开发本系统。
写作本论文目的在于在现行餐饮管理的基础上,建立科学的计算机餐饮管理系统数据库,用计算机工作代替以往大量的人工劳动,提高工作效率,促进餐饮自动化,适应当今科学技术飞速发展的需要。
在整个数据库系统操作中起到相互联系、相互制约的作用,可根据需要随时打开、运行、处理、关闭。
该系统同时设有初始设置、系统维护等几个功能,通过对多个数据库文件的控制操作,可实现查询、录入、修改、删除和打印等功能。
关键词:
C#,餐饮管理,ASP
第1章绪论
1.1选题背景
当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
本系统就是为了管理好餐厅点菜管理系统而设计的。
1.2选题目的
本系统是针对餐厅点菜管理系统介绍进行设计的,目的主要是全面展示餐厅点菜管理系统内容及环境,全面管理管理餐厅信息,为每位员工提供优质的服务。
培养学生独立完成课题的工作能力及从文献获取知识的能力,提高计算机运用水平,掌握运用软件工程思想开发管理信息系统的一般方法及各种规范,为毕业后走上工作岗位打下良好基础。
1.3系统实现技术
该系统是使用流行的软件开发程序SQL2005数据库和ASP环境C#
1.4开发工具与语言简介
1.4.1ASP简介
ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。
ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。
利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。
与HTML相比,ASP网页具有以下特点:
(1)利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术;
(2)ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试;
(3)服务器上的ASP解释程序会在服务器端执行ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页;
(4)ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。
例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息;
(5)ASP可以使用服务器端ActiveX组件来执行各种各样的任务,例如存取数据库、发送Email或访问文件系统等。
(6)由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可防止ASP程序代码被窃取。
ASP也不仅仅局限于与HTML结合制作WEB网站,而且还可以与XHTML和WML语言结合制作WAP手机网站。
但是其原理也是一样的。
1.4.2SQL2005数据库
1.SQL2005数据库简介
SQLServer是一个关系数据库管理系统。
它最初是由MicrosoftSybase和
Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。
在
WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳
了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQL
Server的WindowsNT版本。
Sybase则较专注于SQLServer在UNIX操作系统
上的应SQLServer安装界面用。
2.SQL2005数据库的优点
SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。
SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL语句接受集合作为输入,返回集合作为输出。
SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。
SQL不要求用户指定对数据的存放方法,这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。
SQL为许多任务提供了命令,其中包括:
●查询数据
●在表中插入、修改和删除记录
●建立、修改和删除数据对象
●控制对数据和数据对象的存取
●保证数据库一致性和完整性
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。
第2章需求分析
软件需求分析是软件开发期的第一个阶段,也是关系到软件开发成败的关键步骤。
需求分析阶段要解决的问题,是让用户和开发者共同明确将要开发的是一个什么样的系统。
具体而言,需求分析主要有两个任务:
第一是通过对问题及其环境的理解、分析和综合,建立分析模型(Analysis);第二是在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”(简称“需求说明”)来把用户的需求表达出来。
2.1系统需求
餐厅点菜管理系统的目标是能更快、更好、更方便、更安全的有利于饭店对餐桌的各方面进行管理及查看和修改让管理者是可以及时看到了解情况。
解决餐桌和点菜者的不方便之处。
2.1.1功能需求
1,菜谱管理
实现菜谱添加、修改、删除、查询功能,可对菜谱设置所属菜类、单价、状态、菜量类型;
2,菜类设置
实现菜类添加、修改、删除功能。
可在添加菜谱时管理菜类信息。
3,餐台管理
实现餐台添加、修改、删除、查询功能,可对餐台设置容纳人数;
4,餐区设置
实现餐区添加、修改、删除功能。
可在添加餐台时管理餐区信息。
5,分店管理
实现分店的添加、修改、删除、查询功能;
6,管理员管理
实现管理员添加、修改、删除功能,可对管理员设置所属分店和用户类型(营业员、分店管理员、总管理员);
7,前台营业员收银
营业员登录后,可集中在此实现开台、点菜、订台、收银、打印等相关操作,也可执行客户换台操作,餐桌有三种状态,即:
空闲中、已订中、营业中,点击餐桌即可开台点菜。
8,营业报表、点菜报表、月营业报表对比
管理层可查看所有时间的营业报表,包括时间、消费金额、餐区等。
点菜报表主要针对菜谱,包括点菜数量与总金额,绘制成三维图表,供管理层查看,为管理酒店提供帮助。
2.2小结
本章主要介绍了系统的需求分析过程,主要有功能需求和界面需求,详细的阐述了系统具有的功能,并作了详细的说明,采用面向对象的分析方法,这样对于读者的理解也更加简化了。
就实际情况而言,在高系统配置、高网络带宽很容易得到保证的情况下,最需要考虑的是系统的性能需求。
这样详细的需求分析可以使系统的性能需求得到完全保证,需求分析是软件开发的重要阶段,为以后的详细设计打下坚实的基础。
第3章系统概要
系统概要是要明确系统的数据结构和软件结构,总体设计是给出内部软件和外部系统部件之间的接口定义,后面是各个功能模块说明。
3.1总体设计
经过需求分析后,可以得出系统的总体处理数据流程图,如图3-1
图3-1总体处理流程图
总体需求分析后,可以得出系统的总体处理数据流程图给出了一个简单的处理流程,在该流程图中可以看到该系统所实现的一些功能:
桌台信息、职员信息、权限管理、日历、口令设置借等功能。
3.2模块设计和功能分配
每一个功能的实现都转交给一个模块,该模块有的是一个新的模块,有的是本模快
。
在管理模块中,要根据登录情况对登录用户进行识别,不同的权限拥有不同的功能,管
理员用户能够查询桌台的使用情况、系统状态等信息,管理职员信息。
3.3数据库的设计
系统的数据库是用SQL2005实现的.通过系统分析,确定此系统需要6个表:
1食物信息表,2食物类别信息表,3顾客消费信息表,4桌台信息表,5用户信息表,6用户和职员信息表,数据库的名称为db_MrCy.mdb。
3.3.1食物信息表
图3-2食物信息表
记录餐厅有哪些食物。
3.3.2食物类别信息表
图3-3食物类别信息表
记录食物的类别。
3.3.3顾客消费信息表
图3-4顾客消费信息表
本表是一个暂时存储的信息表。
3.3.4桌台信息表
图3-5桌台信息表
对桌台的管理。
3.3.5用户和职员信息表
用户信息表
图3-6用户信息表
职员信息表
图3-7职员信息表
对职员的管理。
3.4配置数据源
1.计算机安装SQL2005如下图——登陆界面
开始——程序——MICROSOFTSQL2005——SQLServer
3.5小结
本章对于系统的功能做了更加详细的分析及说明,为下一个阶段的详细设计打下了坚实的基础。
在概要设计中主要对库表的设计及各个表的结构和功能作了详细地阐述,另外对于本系统所需用到的sql2005也作了详细的描述,这样就便于在详细设计中理解。
概要设计在软件工程设计中起着承上启下的作用,是系统分析过程中所不可缺少的一部分。
第4章详细设计与实现
模块是软件结构的基础,软件结构的好坏完全由模块的属性体现出来,把软件模块化的目的是为了降低软件的复杂性,使软件设计、测试、调试、维护等工作变得简单,随着模块数目的增加,接口连接这些模块的工作量也随之增加,所以合理化布局是此程序的重中之重.
此程序的每一个功能的实现都转交给一个页面,该页面有的是新的页面,有的是本页面.在管理模块中,根据登录情况对登录用户进行识别,不同的局限有不同的功能,读者能够实现一些基本的功能,而管理员能够管理所有的功能。
4.1登录页面的设计与实现
此页面主要为管理员的登录,页面如图所示:
图4-1登录界面
代码如下:
privatevoidbtnSubmit_Click(objectsender,EventArgse)
{
if(txtName.Text.Trim()=="")
{
MessageBox.Show("用户名不能为空!
","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}
SqlConnectioncon=newSqlConnection("DataSource=.;InitialCatalog=db_MrCy;IntegratedSecurity=True");
stringsql=("select*fromtb_UserwhereUserName='"+txtName.Text+"'andUserPwd='"+txtPwd.Text+"'");
SqlCommandcom=newSqlCommand(sql,con);
con.Open();
SqlDataReaderdr=com.ExecuteReader();
if(dr.Read())
{
frmMainfM=newfrmMain();
this.Hide();
fM.Show();
}
else
MessageBox.Show("你输入的用户名和密码不正确,请重新输入");
dr.Close();
}
privatevoidbtnConcel_Click(objectsender,EventArgse)
{
if(MessageBox.Show("确定退出系统吗?
","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Asterisk)==DialogResult.OK)
{
Application.Exit();
}
}
4.2餐厅管理系统的设计与实现
此页面主要设置以下的功能:
基础信息、辅助工具、系统维护、系统设置、帮助、退出。
页面如图所示:
图4-2餐厅管理系统的主界面
代码如下:
publicpartialclassfrmMain:
Form
{
publicfrmMain()
{
InitializeComponent();
}
publicSqlDataReadersdr;
publicstringpower;
publicstringNames;
publicstringTimes;
privatevoidfrmMain_Load(objectsender,EventArgse)
{
switch(power)
{
case"0":
toolStripStatusLabel13.Text="超级管理员";break;
case"1":
toolStripStatusLabel13.Text="经理";break;
case"2":
toolStripStatusLabel13.Text="一般用户";break;
}
toolStripStatusLabel10.Text=Names;
toolStripStatusLabel16.Text=Times;
if(power=="2")
{
系统维护SToolStripMenuItem.Enabled=false;
基础信息MToolStripMenuItem.Enabled=false;
}
if(power=="1")
{
系统维护SToolStripMenuItem.Enabled=false;
}
}
privatevoidAddItems(stringrzt)
{
if(rzt=="使用")
{
lvDesk.Items.Add(sdr["RoomName"].ToString(),1);
}
else
{
lvDesk.Items.Add(sdr["RoomName"].ToString(),0);
}
}
privatevoid开台ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(lvDesk.SelectedItems.Count!
=0)
{
stringnames=lvDesk.SelectedItems[0].SubItems[0].Text;
frmOpenopenroom=newfrmOpen();
openroom.name=names;
openroom.ShowDialog();
}
else
{
MessageBox.Show("请选择桌台");
}
}
privatevoidfrmMain_Activated(objectsender,EventArgse)
{
lvDesk.Items.Clear();
SqlConnectionconn=BaseClass.DBConn.CyCon();
conn.Open();
SqlCommandcmd=newSqlCommand("select*fromtb_Room",conn);
sdr=cmd.ExecuteReader();
while(sdr.Read())
{
stringzt=sdr["RoomZT"].ToString().Trim();
AddItems(zt);
}
conn.Close();
}
privatevoid点菜ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(lvDesk.SelectedItems.Count!
=0)
{
stringnames=lvDesk.SelectedItems[0].SubItems[0].Text;
frmDCdc=newfrmDC();
dc.RName=names;
dc.ShowDialog();
}
else
{
MessageBox.Show("请选择桌台");
}
}
privatevoid消费查询ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(lvDesk.SelectedItems.Count!
=0)
{
stringnames=lvDesk.SelectedItems[0].SubItems[0].Text;
frmSerchserch=newfrmSerch();
serch.RName=names;
serch.ShowDialog();
}
else
{
MessageBox.Show("请选择桌台");
}
}
privatevoid结账ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(lvDesk.SelectedItems.Count!
=0)
{
stringnames=lvDesk.SelectedItems[0].SubItems[0].Text;
frmJZjz=newfrmJZ();
jz.Rname=names;
jz.ShowDialog();
}
else
{
MessageBox.Show("请选择桌台");
}
}
privatevoidlvDesk_DoubleClick(objectsender,EventArgse)
{
frmDetailsdetails=newfrmDetails();
details.TableName=lvDesk.SelectedItems[0].SubItems[0].Text;
details.ShowDialog();
}
privatevoidlvDesk_Click(objectsender,EventArgse)
{
stringnames=lvDesk.SelectedItems[0].SubItems[0].Text;
SqlConnectionconn=BaseClass.DBConn.CyCon();
conn.Open();
SqlCommandcmd=newSqlCommand("select*fromtb_RoomwhereRoomName='"+names+"'",conn);
SqlDataReadersdr=cmd.ExecuteReader();
sdr.Read();
stringzt=sdr["RoomZT"].ToString().Trim();
sdr.Close();
if(zt=="使用")
{
this.contextMenuStrip1.Items[0].Enabled=false;
this.contextMenuStrip1.Items[1].Enabled=true;
this.contextMenuStrip1.Items[3].Enabled=true;
this.contextMenuStrip1.Items[5].Enabled=true;
this.contextMenuStrip1.Items[6].Enabled=true;
}
if(zt=="待用")
{
this.contextMenuStrip1.Items[0].Enabled=true;
this.contextMenuStrip1.Items[1].Enabled=false;
this.contextMenuStrip1.Items[3].Enabled=false;
this.contextMenuStrip1.Items[5].Enabled=false;
this.contextMenuStrip1.Items[6].Enabled=false;
}
conn.Close();
}
privatevoid取消开台toolStripMenuItem_Click(objectsender,EventArgse)
{
if(lvDesk.SelectedItems.Count!
=0)
{
stringnames=lvDesk.SelectedItems[0].SubItems[0].Text;
SqlConnectionconn=BaseClass.DBConn.CyCon();
conn.Open();
SqlCommandcmd=newSqlCommand("updatetb_RoomsetRoomZT='待用',Num=0whereRoomName='"+names+"'",conn);
cmd.ExecuteNonQuery();
cmd=newSqlCommand("deletefromtb_GuestFoodwherezhuotai='"+names+"'",conn);
cmd.ExecuteNonQuery();
conn.Close();
frmMain_Activated(sender,e);
}
else
{
MessageBox.Show("请选择桌台