8餐饮管理系统实训报告

餐饮管理系统

1、绪论

近年来,随着人们生活水平的不断提高,餐饮业的消费持续增长,竞争越来越激烈。然而,传统餐饮企业的日常运作是靠人工管理,从原材料入库到客人点单,再到结账基本上由人工完场记录,这样不仅耗费人力资源而且容易导致记录丢失或重复等错误,造成管理水平低下。

2、需求分析

本系统应用计算机对餐饮企业信息进行管理,具有手工管理所无法比拟多的优点,极大地提高了信息管理的效率。本系统运用MicrosoftSQLServer2005为后台数据库,以C#为前台开发工具,系统实现了前台管理、食物类型管理、食物管理、桌台管理、开台信息、点菜、结账的功能。

餐厅管理部分:实现菜单类别管理、菜式管理、桌台管理和预订管理。菜单类别管理:实现食物类别的添加和删除,删除时要将此食物类别下的食物一并删除(给出用户提示);

菜式管理:实现菜式的添加和删除;

3、设计

3.1数据库设计数据表设计

用户表

W_user表:列名:UseridentityUser_birthday类型

Nvarchar(50)Date

说明身份证生日备注为超级管理员

身份证

用户ID

用户信息W_user

地址

生日

电话

性别

用户类型用户密码用户名

桌子表W_table表列名:Status

类型

int

说明描述

备注1正在使用,0为空闲

描述

餐桌状态

桌子信息w_table

桌子编号餐桌名餐桌位置

开台记录(用餐记录)W_orders表列名:类型说明备注定用餐时间W_USER

桌台号接待人员

用餐人数

开台记录W_orders

实收金额

用餐时间

订单ID

客户用餐明细W_guestfood表列名:LinepriceUserid

类型Decimal(18,2)Nvarchar(50)说明备注订单行计算价服务人员

订单号服务人备注

客户用餐明细信息W_guestfood

行计价

食物编号系统编号数量

食物类型

W_foodtype表列名:Foodtype

类型Nvarchar(50)

说明

食物类别名

备注

食物类别信息表w_foodtype

类别名食物类别

餐厅食物W_food表列名:类型说明单位

备注食物ID

单位

食物类别IDI

名称

餐厅食物W_food

价格

系统登录

超级用户

进入主窗体

结束

图1业务流程图

餐饮管理系统

订餐管理用户管理退出

桌台管理食物管理

食物类型管理

退出

图2餐饮管理系统功能结构图

3.2前台设计

3.2.1登陆界面:

功能:用户可以通过此界面登陆系统

图3.1登陆界面

3.2.2main界面的实现

功能:前台管理,实现各种界面管理,可以通过图片信息查看桌子是否已使用,

也可选中图标单击右键选择相应业务

图3.2主界面

3.2.3食物类型管理

功能:可自动添加食物类别,删除食物类别的同时也删除该类别下的食物

图3.3食物类型管理

3.2.4食物管理

功能:可添加删除食物

图3.4食物管理

3.2.5桌台信息

功能:可查看桌子的具体信息及使用状态(0为空闲,1为使用)

图3.5桌台管理

3.2.6开台

功能:此界面可也选择用餐人数及服务员和用餐时间

图3.6开台界面

3.2.7点菜

功能:单击左边菜谱,输入数量选择服务人员,注明备注单击保存即完成点菜功

图3.7点菜界面

3.2.8结账

功能:根据订单号结账

图3.8结账界面

4、具体实现

前台程序设计

4.1Cdb类:实现C#与数据库连接,调用相应存储过程

publicclassCdb{

privatestring

appsettingk1=System.Configuration.ConfigurationManager.AppSettings["k1"];

privateSqlConnectionconn=null;

publicCdb(){

conn=newSqlConnection(appsettingk1);}

publicDataSetgetDataset(Stringstorename,SqlParameter[]parameters){

SqlCommandcmd=newSqlCommand(storename,conn);cmd.CommandType=CommandType.StoredProcedure;SqlDataAdapterad=newSqlDataAdapter(cmd);DataSetds=newDataSet();if(parameters!=null){

for(inti=0;i

cmd.Parameters.Add(parameters[i]);

}}

ad.Fill(ds);returnds;}

publicintExcuteStore(Stringstorename,SqlParameter[]parameters){

conn.Open();

SqlCommandcmd=newSqlCommand(storename,conn);cmd.CommandType=CommandType.StoredProcedure;if(parameters!=null){

for(inti=0;i

cmd.Parameters.Add(parameters[i]);

}}try{

cmd.ExecuteNonQuery();

return0;

}

catch(Exceptionk)

{

stringm=k.Message;

return-1;

}

finally

{

conn.Close();

}

}

}

4.2登陆界面:

publiclogin()

{

InitializeComponent();

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

if(textUid.Text==""||textPwd.Text=="")

{

MessageBox.Show("请输入用户名和密码");

return;

}

Business.CtablesAdmindb=new_1217.Business.CtablesAdmin();

if(db.login(textUid.Text,textPwd.Text)==1)

{

MessageBox.Show("超级用户");

this.Hide();

Mainm2=newMain();

m2.ShowDialog();

}

if(db.login(textUid.Text,textPwd.Text)==0)

{

MessageBox.Show("普通用户,请通过PID登陆!");

}

if(db.login(textUid.Text,textPwd.Text)==-1)

{

MessageBox.Show("对不起,您没有访问权限!");

}

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

Application.Exit();

}

4.3食物类型管理、食物管理、开台、结账

//添加食物类型

privatevoidbutton1_Click(objectsender,EventArgse)

{

if(textBox1.Text=="")

{

MessageBox.Show("不能为空!");

return;

}

Business.CtablesAdmintb=new_1217.Business.CtablesAdmin();

if(tb.addfoodtype(textBox1.Text)==0)

{

MessageBox.Show("添加成功");

bindGridView();

}

}

//删除食物类型

privatevoiddataGridView1_CellContentClick(objectsender,

DataGridViewCellEventArgse)

{

if(e.ColumnIndex==0)

{

if(MessageBox.Show("确定要删除吗,若删除则会删除该类下所有的菜名!","添加成功"MessageBoxButtons.OKCancel,MessageBoxIcon.Warning)==DialogResult.Cancel)

{

return;

}

inttypeid=int.Parse(dataGridView1.SelectedCells[1].Value.ToString());Business.CtablesAdmintb=new_1217.Business.CtablesAdmin();

if(tb.delfoodtype(typeid)==0)

{

MessageBox.Show("删除成功!");

bindGridView();

}

else

{

MessageBox.Show("删除失败!");

}

}

}

//添加食物

privatevoidbutton1_Click(objectsender,EventArgse)

{

if(textname.Text==""||textunite.Text==""||foodtype.Text=="")

{

MessageBox.Show("填写不完整,请重新输入!");

return;

}

Business.CtablesAdmintb1=new_1217.Business.CtablesAdmin();

Business.CtablesAdmintb2=new_1217.Business.CtablesAdmin();

intc=int.Parse(tb2.atypeid(foodtype.Text).Rows[0][0].ToString());

if(tb1.addfood(c,textname.Text,textunite.Text,textprice.ToString())==0)

{

MessageBox.Show("食物添加成功!");

bindGridView1();

}

else

{

MessageBox.Show("食物添加失败!");

}

}

//删除食物?

privatevoiddataGridView1_CellContentClick(objectsender,

DataGridViewCellEventArgse)

{

dataGridView1.AutoGenerateColumns=false;

if(MessageBox.Show("确定要删除吗?”,”提示",MessageBoxButtons.OKCancel,

MessageBoxIcon.Warning)==DialogResult.Cancel)

{

return;

}

else

{

intfoodid=int.Parse(dataGridView1.SelectedCells[1].Value.ToString());

Business.CtablesAdmintb=new_1217.Business.CtablesAdmin();

if(tb.delfoodtype(foodid)==0)

{

MessageBox.Show("删除成功");

bindGridView1();

}

else

{

MessageBox.Show("删除失败");

}

}

}

//开台

privatevoidbutton1_Click(objectsender,EventArgse)

{

if(numbers.Text=="")

{

MessageBox.Show("请输入用餐人数");

}

intuid=int.Parse(comboBox1.SelectedValue.ToString());

if(uid==0)

{

MessageBox.Show("请选择服务员");

return;

}

Business.CtablesAdmint=newCtablesAdmin();

t.usetable1(dateTimePicker1.Text,int.Parse(numbers.Text),_tid,

comboBox1.SelectedValue.ToString());

t.upstatus(_tid);

MessageBox.Show("保存成功");

this.Close();

}

privatevoid取消开台ToolStripMenuItem_Click(objectsender,EventArgse)

{

if(listView1.SelectedItems.Count!=1)

{

MessageBox.Show("请选择一张桌子");

return;

}

stringtid=listView1.SelectedItems[0].SubItems[1].Text;

Business.CtablesAdmint=new_1217.Business.CtablesAdmin();

if(t.cancleusetable(tid)==0)

{

Business.CtablesAdminb=newBusiness.CtablesAdmin();

b.cancleusetable(tid);

b.updatestatus(tid);

MessageBox.Show("取消成功");

}

}

4.4点菜、结账

//点菜

privatevoidbutton2_Click(objectsender,EventArgse)

{

if(textBox2.Text==""||textBox3.Text==""||textBox4.Text==""||

textBox5.Text=="")

{

MessageBox.Show("请填写完整");

return;

}

if(comboBox1.Text=="请选择")

{

MessageBox.Show("请填写服务人员");

return;

}

Business.CtablesAdmint=new_1217.Business.CtablesAdmin();

dataGridView1.DataSource=t.getorder(int.Parse(this.id.ToString()));

common.Cdbc=newcommon.Cdb();

DataSetdt=c.getDataset("getorder",newSqlParameter[]{new

SqlParameter("@ordered",id)});

common.Cdbss=newcommon.Cdb();

intaa=int.Parse(ss.getDataset("addorder",newSqlParameter[]{new

SqlParameter("@tid",id)}).Tables[0].Rows[0][0].ToString());//获取订单号?

floatlineprice=float.Parse(textBox4.Text.ToString())*

int.Parse(textBox5.Text.ToString());

intfoodid=int.Parse(treeView1.SelectedNode.Tag.ToString());

stringud=comboBox1.SelectedValue.ToString();

t.guestfood(foodid,int.Parse(textBox5.Text),textBox6.Text,aa,

lineprice.ToString(),ud);

MessageBox.Show("保存成功");

}

//结账

privatevoidbutton1_Click(objectsender,EventArgse)

{

Business.CtablesAdmint=newBusiness.CtablesAdmin();

ints=int.Parse(t.selectordered(ttid).Rows[0][0].ToString());

decimalb=decimal.Parse(t.getsum(s).Rows[0][0].ToString());

Business.CtablesAdmintt=newBusiness.CtablesAdmin();

tt.updatestatus(ttid);

tt.jiezhang(b,s);

MessageBox.Show("结账成功!");

}

5、总结

此餐饮管理系统经过三个周基本完成,实现了餐饮管理系统的基本功能,操作简便方便,基本实现了前台管理、食物类型管理、食物管理、开台信息、点菜、结账等基本功能。

经过这三周的实训,培养了我动手创新的能力,在实践中检验了我对知识的掌握能力以及运用能力。同时通过本次实训课让我了解解决实际问题的过程,并提高了我的专业技能,使我把所学的理论知识与实际能力紧密的结合在一起。最重要的是我初步具有了科研意识,我的查找资料,运用资料,完成工程的能力都有了一定提高,为我后继课程的学习打下了坚实的基础。这次实训我的系统没有做到最完善,我认为是我对专业知识的掌握还不够,经过这次实训,我认识到自己的很多不足,需要以后加大努力,弥补缺陷。以后我一定会努力,继续学习,是自己能够更加完善。

6、参考文献

《数据库技术及应用》中国石油大学出版社

《C#从入门到精通》清华大学出版社


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn