餐饮管理系统实训报告.docx
《餐饮管理系统实训报告.docx》由会员分享,可在线阅读,更多相关《餐饮管理系统实训报告.docx(31页珍藏版)》请在冰豆网上搜索。
餐饮管理系统实训报告
餐饮管理系统实训报告
郑州轻工业学院软件学院
实训报告
实训名称:
C#程序设计
姓名:
陈鹏
院(系):
软件学院
专业班级:
过程控制11—01
学号:
541113470103
指导教师:
黄艳
成绩:
时间:
2012年12月24日至2013年1月11日
1
引言
第一章学生实训任务书…………………………………………4第二章实训进度日历……………………………………………5
餐厅管理系统的需求分析第三章
3。
1系统功能描述与系统基本流程图……………………5第四章系统的设计与实现
4。
1数据库的设计…………………………………………7
4。
2登录模块设计…………………………………………9
4。
3点菜功能模块设计
4。
3。
1开台模块设计…………………………………11
4。
3.2点菜模块设计…………………………………12
4。
4消费结账模块设计……………………………………15
4。
5菜单管理模块设计
4.5。
1菜单添加模块…………………………………17
4.5。
2菜单修改模块…………………………………19
4.6餐厅人员信息管理模块设计
4。
6.1餐厅人员信息添加模块设计…………………21
4。
6。
2餐厅人员信息修改模块设计…………………22
4。
7桌台信息管理模块设计………………………………24
4.8盈利管理模块设计……………………………………26第五章实训感想…………………………………………………28
2
引言
近年来,随着人民的生活水平的不断提高,餐饮业的消费持续增长,竞争愈来愈激烈。
然而,传统餐饮企业的日常运作还是靠人工管理,从菜单入库到客人点单,再到结账基本上由人工完成记录,这样做不仅耗费人力资源而且容易导致记录丢失或重复等错误,造成管理水平低下。
随着社会经济的迅速发展和现代科学技术的进步,人类社会正逐渐走向现代化。
计算机事业的飞速发展,使得以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期,通过计算机管理餐饮企业的日常运作,给管理者以决策参考的模型,来不断完善管理水平,提高工作效率.
作为计算机应用的一部分,使用计算机对餐饮企业信息进行管理,具有手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高信息管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件.
本系统选择目前市场上价格比较低廉的数据库服务器产品:
sqlserver2000及配套的平台WindowsXP。
而前台开发工具采用MicrosoftVisualStudio2008,语言用C#,利用其可视化的开发环境、丰富的控件资源,快速开发出了餐饮管理信息系统应用程序.
3
第一章实训任务书
一、题目
餐厅管理系统的设计与实现
二、用户需求及约束条件
1(数据库中的数据要能够支持以下功能需求:
a)餐厅管理系统包括管理人员登陆模块,菜单管理,桌台管理,餐厅人员管理,点
菜功能,消费结帐,查询统计功能等.
b)此系统功能分为面向管理员和餐厅经理,其中前台管理员可以进行桌台管理,点菜,
消费结帐,信息的查询统计功能,餐厅经理可以进行餐厅人员管理,盈利管理等。
三、设计要求、技术参数及设计规格
1(设计的系统能够安全稳定运行。
2(提交实训报告,实训报告中给出需求分析、系统设计、功能设计、总结等。
3(所有的工作需要同学们自己真实、独立地完成.
四、考核形式、考核时间、考核指标及成绩评定
实训成绩由下面几项构成:
1)整个实训20次点名(每天上午下午各一次,时间点随机),共20分。
2)实训结果占50,
3)实训报告占30%
考核形式:
1)老师每日对学生的考察、评估和考核;
2)最后对实训项目和报告完成的质量进行考核和验收。
完成期限:
2013年1月11日
指导教师签章:
_黄艳___
专业负责人签章:
梁树军
教学院长签章:
邓璐娟
2012年12月20日
4
第二章实训进度日历
天/日期任务描述通过标准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、餐厅人员管理模块:
管理员能维护整个餐厅服务人员的信息记录,对餐厅服务人员信息进行添加、修改与删除.
5
4、点菜功能模块:
用户可以根据自己的需要来选择,也可以在此界面退菜和补菜,所点的菜将添加到此桌台顾客的消费表中.顾客入座后,该桌台显示有人,并显示该桌台有人使用,顾客消费过程中,将消费情况记录到系统中,并支持查询,当选择该桌台时,可显示该桌台的消费情况。
5、消费结帐模块:
系统可以自动对消费情况进行结算,可显示该消费者的所有消费情况,并能自动实现找零计算的功能。
6、盈利管理:
能按月按日统计餐厅整个赢利情况,能依据消费时间查询某顾客的消费明细。
系统基本流程图
系统业务流程示意图如下图,除了以上功能模块的实现,系统必须实现一些规范检查。
业务流程示意图
6
第四章系统的设计与实现
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、桌台信息表:
用于保存桌台信息,具体包括桌台编号、名称、简称、包间费、位置、状态、类型、备注、其他信息、顾客姓名、开台时间、顾客人数和开单人.
7
桌台信息表(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、顾客简要消费信息表:
用于保存顾客消费的简要信息,具体包括消费编号、
菜名、房间号、消费金额、顾客姓名、消费时间和开单人。
8
顾客简要消费信息表(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(count〉0)
{
9
Form2f2=newForm2();
this。
Hide();
f2.ShowDialog();
}
else
{
MessageBox。
Show(”用户名或密码错误~”);
}
}
catch
{
}
Conn。
conn.Close();
}
if(textBox1.Text。
Trim()==”服务员”)
{
com1=string.Format(”Selectcount(*)fromstring
tb_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(count>0)
{
Form7f7=newForm7();
this。
Hide();
f7。
ShowDialog();
}
else
{
MessageBox。
Show(”用户名或密码错误~”);
}
}
catch
{
}
Conn。
conn。
Close();
}
}
10
登录界面如图:
4。
3点菜功能模块设计
4。
3。
1开台模块设计
privatevoidbutton1_Click(objectsender,EventArgse)
{
SqlConnectioncon=newSqlConnection(”DataSource=E017;InitialCatalog=hotle;IntegratedSecurity=True");
con。
Open();
stringcom1=string。
Format(”updateRoomsetroomName='{0}',roomZT=’{1}’,GuestName='{2}',zhangdanDate=’{3}',Num='{
4}',waiterName='{5}’whereID=’{6}'”,
textBox2。
Text,comboBox1。
SelectedItem,textBox3。
Text,textBox4。
Text,
textBox5.Text,textBox6。
Text,textBox1。
Text);
SqlCommandsql=newSqlCommand(com1,con);
sql。
ExecuteNonQuery();
Form8f8=newForm8();
f8。
a=textBox1.Text;
f8。
b=textBox4。
Text;
f8。
c=textBox6.Text;
f8。
d=textBox3。
Text;
11
f8.ShowDialog();
con.Close();
this.Hide();
}
开台界面如图:
4。
3。
2点菜模块设计
privatevoidForm8_Load(objectsender,EventArgse)
{
this.foodTableAdapter。
Fill(this.hotleDataSet.food);
this。
guestfoodTableAdapter。
Fill(this。
hotleDataSet。
Guestfood);
textBox5。
Text=a;
textBox4。
Text=b;
textBox6。
Text=c;
textBox7。
Text=d;
12
stringsqlstr=”DataSource=E017;InitialCatalog=hotle;IntegratedSecurity=True”;
con=newSqlConnection(sqlstr);
con。
Open();
sda=newSqlDataAdapter("select*fromfood”,con);
ds=newDataSet();
n=sda。
Fill(ds,”food”);
dataGridView1。
DataSource=ds。
Tables[”food"];
con。
Close();
}
privatevoidcomboBox1_SelectedIndexChanged_1(objectsender,EventArgse)
{
(comboBox1.Text=="全部")if
{
stringsqlstr=”select*fromfood”;
SqlDataAdapter(sqlstr,con);sda=new
ds=newDataSet();
);n=sda。
Fill(ds,”food"
dataGridView1。
DataSource=ds。
Tables[”food”];
}
else
{
stringsqlstr="select*fromfoodwherefoodty=’”+comboBox1。
Text+”’”;
sda=newSqlDataAdapter(sqlstr,con);
ds=newDataSet();
n=sda。
Fill(ds,"food”);
dataGridView1.DataSource=ds。
Tables[”food”];
}
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
{
con.Open();
stringcom1=string.Format(”INSERTINTOGuestFood(foodnum,foodname,foodsum,foodallprice,waitername,zhuotai,datatime)
values('{0}','{1}','{2}’,’{3}',’{4}’,’{5}',’{6}’)”,textBox1。
Text,textBox2.Text,comboBox2。
SelectedItem,textBox3.Text,textBox6.Text,textBox5.Text,textBox4。
Text);
SqlCommandsql=newSqlCommand(com1,con);
sql。
ExecuteNonQuery();
MessageBox。
Show("点菜成功!
”,"提示",MessageBoxButtons。
OKCancel,
13
MessageBoxIcon.Warning);
showinf();
con。
Close();
}
{
con。
Open();
stringcom=string.Format(”INSERTINTO
tb_spend(foodname,roomName,spend,GuestName,zhangdanDate,waitername)
values('{0}’,'{1}’,'{2}’,'{3}','{4}’,’{5}’)",textBox2。
Text,textBox5。
Text,textBox3。
Text,textBox7.Text,textBox6。
Text,
textBox4.Text);
SqlCommandsql1=newSqlCommand(com,con);
sql1。
ExecuteNonQuery();
con。
Close();
}
}
点菜界面如图:
14
4.4消费结账模块设计
privatevoidForm9_Load(objectsender,EventArgse)
{
this。
guestfoodTableAdapter.Fill(this。
hotleDataSet。
Guestfood);
comboBox1。
Text=a;
stringsqlstr="DataSource=E017;InitialCatalog=hotle;IntegratedSecurity=True”;
con=newSqlConnection(sqlstr);
con。
Open();
sda=newSqlDataAdapter("select*fromGuestFood",con);
ds=newDataSet();
sda.Fill(ds);
dataGridView1。
DataSource=ds。
Tables[0];
con。
Close();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
con.Open();
stringtemp=string.Format("selectsum(foodsum*foodallprice)
fromGuestFoodwherezhuotai=’{0}’",comboBox1。
SelectedItem);
SqlCommandcmd=newSqlCommand(temp,con);
price=Convert.ToString(cmd。
ExecuteScalar());
cmd=newSqlCommand(”selectroomBJFfromRoomwhereID='”+comboBox1。
Text+”'”,con);
bjf=cmd。
ExecuteScalar().ToString();
if(bjf==”0”)
{
label5.Text=price+"*95%”+”+”+bjf+"="+(Convert.ToDecimal(Convert。
ToInt32(price)*
Convert。
ToInt32(0。
95)))。
ToString(”C”);
}
else
{
label5.Text=price+”*95%”+”+”+bjf+”=”+(Convert。
ToDecimal(Convert.ToInt32(price)*Convert。
ToInt32(0。
95))+Convert。
ToDecimal(bjf))。
ToString(”C");
}
con。
Close();
}
privatevoidbutton2_Click(objectsend