餐饮业管理系统.docx

上传人:b****8 文档编号:10327859 上传时间:2023-02-10 格式:DOCX 页数:21 大小:455.55KB
下载 相关 举报
餐饮业管理系统.docx_第1页
第1页 / 共21页
餐饮业管理系统.docx_第2页
第2页 / 共21页
餐饮业管理系统.docx_第3页
第3页 / 共21页
餐饮业管理系统.docx_第4页
第4页 / 共21页
餐饮业管理系统.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

餐饮业管理系统.docx

《餐饮业管理系统.docx》由会员分享,可在线阅读,更多相关《餐饮业管理系统.docx(21页珍藏版)》请在冰豆网上搜索。

餐饮业管理系统.docx

餐饮业管理系统

目录

封面………………………………………………………………………..

一、设计任务与要求……………………………………………………………………….

1.1目的…………………………………………………………………………………………….

1.2任务…………………………………………………………………………………………….

1.3意义……………………………………………………………………………………………..

二、需求分析…………………………………………………………………………………..

2.1功能需求…………………………………………………………………………………….

2.1.1菜品的分类(food)………………………………………………………………..

2.1.2菜品的列表显示(menu)………………………………………………………

2.1.3订单的信息(dingdan)………………………………………………………..

2.1.4订单项的信息(dingdanItem)………………………………………………

2.2性能需求……………………………………………………………………………………..

2.3数据需求……………………………………………………………………………………..

2.3.1菜品的分类表……………………………………………………………………..

2.3.2菜品的列表………………………………………………………………………….

2.3.3订单的信息表……………………………………………………………………….

2.3.4订单项的信息表………………………………………………………………….

2.3.5数据之间的约束和依赖关系………………………………………………

2.4运行需求……………………………………………………………………………………..

三、系统总体设计……………………………………………………………………………

系统总体框图设计……………………………………………….

四、数据库设计………………………………………………………………………………

4.1概念结构设计……………………………………………………...

4.2逻辑结构设计……………………………………………………...

4.3物理结构设计…………………………………………………….

五、系统调试与测试………………………………………………………………………

5.1运行界面及其效果图……………………………………………

5.1.1欢迎界面………………………………………………………

5.1.3查看已点的菜单………………………………………………

5.1.4查看是否点菜成功的提示界面………………………………

5.1.5埋单的界面……………………………………………………

5.1.6所有的订单显示的界面………………………………………

5.1.7显示含有查看烹饪状态按钮的订单信息的界面……………..

5.1.8显示查看某一订单的具体菜品的状态………………………..

5.2对在调试中发现的问题进行说明……………………………….

六、参考资料…………………………………………………………………………........

七、心得体会…………………………………………………………………………………

 

小型餐饮业管理系统

一、设计任务与要求

1.1目的:

加深对课堂理论学习的理解,提高应用水平,增强动手能力,未毕业设计做准备。

1.2任务:

在为期两周的时间里由2-3人组成一个小组,共同完成一个小型管理系统,题目可由老师给定中选取也可自己拟定。

1.3意义:

通过理论与实践的结合,巩固所学知识的同时,提高自己的动手操作能力,培养自己的实际应用与创新思维,为以后自己走向社会提前做好准备。

二、需求分析

近几年来,随着我国国民经济的稳定增长,餐饮业的竞争越来越激烈,想在这样激烈竞争的环境下生存,就必须运动科学的管理思想和先进的管理方法。

使用点餐系统能够提高工作的效率,避免了手工作业的麻烦,从而增加了餐厅的一体化管理。

随着现在连锁餐饮店的不断崛起,作为餐饮业不可缺少的一部分——餐饮管理系统,它的内容对于餐饮业的决策者和管理者来说都是非常重要的。

本系统是基于餐饮管理系统之下的一个小型的餐饮系统,可以把整个餐饮店的日常经营信息:

包括餐厅的各种菜品,餐厅的各种酒水,餐厅的菜品的价格,餐厅的菜品的原料,餐厅的各种酒水的价格,餐厅各种菜品以及酒水是否有的状态,餐厅各种菜品的图片,顾客的点菜,餐厅前台的各种账单,餐厅前台的账单的状态,餐厅前台各种账单的支付等功能均能实现。

2.1功能需求(功能划分、功能描述):

2.1.1菜品的分类(food):

这一部分实现对各种菜品以及酒水的分类管理,对每一种不同的菜品或者酒水都属于菜品的分类中的一种。

这里一共分成了十一种不同的类型,每一种菜在添加到菜品时,按照不同的菜品编号添加到相应的菜系中或者酒水系中。

2.1.2菜品的列表显示(menu):

这一部分实现对餐厅的各种菜品以及酒水的显示,显示的内容包括菜品和酒水的编号,名称,所属的哪个菜品的编号,菜品和酒水的价格,菜品和酒水的原料,菜品和酒水的状态(有或者无),菜品和酒水的图片信息。

对每一个菜品的具体的显示以及管理,提供给顾客去进行选择。

2.1.3订单的信息(dingdan):

这一部分实现对顾客点餐后各种信息的显示,对餐厅内的每一个桌号(订单号)的管理。

管理的功能包括:

订单的id、订单的桌子号,订单的下单的时间,订单的状态。

2.1.4订单项的信息(dingdanItem):

这一部分实现对每一个订单所点的各种菜品和酒水的管理,可以对每一订单的具体的菜品和酒水的管理,对每一个桌子(一个桌子对应一个订单)的所点菜品、酒店的数量和总价进行统一的管理。

这里显示了包括订单项的id,菜品和酒水的名称,菜品和酒水的单价,选择菜品和酒水的数量,选择菜品和酒水的总价,下订单的时间以及菜品和酒水的状态等。

2.2性能需求(软件适应性和移植性等):

本系统的开发环境是在:

一台安装windows7的个人计算机作为客户机,其上安装了SQLServer2005,本系统使用eclipse来开发,系统设计与运行均可在客户机上进行。

该小型餐饮系统操作简单方便可以适合小型的中餐厅。

2.3数据需求(包括数据之间有何依赖和约束关系):

.对应于功能需求,把各种功能转化为具体的数据表:

2.3.1菜品的分类表(food):

属性:

food.idfood.typeName

2.3.2菜品的列表(menu):

属性:

menu.idmenu.namemenu.dishIdmenu.pricemenu.materialmenu.statemenu.image

2.3.3订单的信息表(dingdan):

属性dingdan.iddingdan.tableNumdingdan.timedingdan.state

2.3.4订单项的信息表(dingdanItem):

属性:

dingdanItem.iddingdanItem.dishNamedingdanItem.pricedingdanItem.selectedNumdingdanItem.totalPricedingdanItem.dTimedingdanItem.tableNumdingdanItem.dIddingdanItem.state

2.3.5数据之间的依赖和约束关系:

菜品的列表(menu)与菜品的分类表(food)之间通过menu.dishId这个外键建立约束关系。

通过这个外键menu.dishId每一个菜品都属于菜品分类表中的一个类,在每次点菜的订单项中都会显示这个菜是属于哪个菜品类的。

这样便在两个表之间建立了联系,方便了菜品的管理。

2.4运行需求(用户界面、硬件接口、软件接口、故障处理):

对应于功能的分析,应该有①输入桌号进入点菜的界面,②显示菜品的点菜界面,③显示已经点菜成功的界面,④显示已经点过的菜的界面卖单的界面显示已有订单界面⑦显示含有查看烹饪状态按钮的订单信息的界面⑧显示查看某一订单的具体菜品的状态

三、系统总体设计

系统总体框图设计如下图所示:

四、数据库设计

4.1概念结构设计

ER图(数据库的概念模型图.cdm)如下图4.1所示

图4.1

4.2逻辑结构设计

将概念模型转化为关系模型,画出数据库的物理模型图.pdm如下图4.2所示:

图4.2

 

4.3物理结构设计

4.3.1菜品的分类表(food)

4.3.2菜品的列表(menu):

 4.3.3订单的信息表(dingdan):

4.3.4订单项的信息表(dingdanItem):

 

五、运行结果和测试

5.1运行界面及其效果图:

5.1.1欢迎界面(即输入座位号进入点菜界面):

主要代码部分:

button.addActionListener(newActionListener(){

publicvoidactionPerformed(finalActionEvente){

StringtableNum=textField.getText();

finalStringtime=newDate().toLocaleString();

DAOInfdaoinf=newDAOIm();

daoinf.insertDingDan(tableNum,time);

Menumenu=newMenu(tableNum);

menu.setVisible(true);

WelcomeFrame.this.dispose();

}

});

这一部分是对进入点菜按钮的事件的监听以及处理,通过对按钮的事件处理,我们点击按钮后进入到点菜的界面。

5.1.2点菜界面(即显示各种菜品和酒水的信息):

整个点菜界面的左边是一个树状的选择栏,右边是一个菜品的显示区(包括图片显示等),右下角有菜品的数量选择的滚动条,返回,点菜按钮,查看已点菜单按钮都分别进行了事件的监听和处理。

主要的代码部分:

tree.addTreeSelectionListener(newTreeSelectionListener(){

publicvoidvalueChanged(TreeSelectionEvente){

Object[]obj=e.getPath().getPath();

if(obj.length==3){

finalStringtabelName1=obj[1].toString();

finalStringtabelName2=obj[2].toString();

try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

Connectionconn=DriverManager.getConnection("jdbc:

sqlserver:

//localhost:

1433;databaseName=hotel","sa","");

Stringsql="selectmenu.id,menu.name,menu.dishID,menu.price,menu.material,menu.statefrommenuwheredishIDin(selectidfrom"+tabelName1+"where"+tabelName1+".typeName='"+tabelName2+"')";

ResultSetrs=conn.createStatement().executeQuery(sql);

finalVectorcolumn=newVector();

column.add("编号");

column.add("名称");

column.add("类型");

column.add("价格");

column.add("原料");

column.add("状态");

ResultSetMetaDatarsmd=rs.getMetaData();

finalVectorrows=newVector();

while(rs.next()){

Vectorrow=newVector();

for(inti=1;i<=rsmd.getColumnCount();i++){

row.add(rs.getString(i));

}

rows.add(row);

}

table=newJTable(rows,column);

这一段代码实现的是通过与数据库的链接后,对树形选择栏进行事件的监听和事件的处理后,实现点击树形选择栏出现想对应的在数据库中已经存在的菜系名和酒水的名称,以及在菜品显示区显示菜品信息的项目栏。

table.getSelectionModel().addListSelectionListener(newListSelectionListener(){

publicvoidvalueChanged(ListSelectionEvente){

//TODOAuto-generatedmethodstub

introw=table.getSelectedRow();

if(row>=0){

Vectorv=(Vector)rows.get(row);

try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

Connectionconn=DriverManager.getConnection("jdbc:

sqlserver:

//localhost:

1433;DatabaseName=hotel","sa","");

ResultSetrs=conn.prepareStatement("selectmenu.imag,menu.name,menu.materialfrommenuwhereid="+v.get(0)).executeQuery();

if(rs.next()){

Imageimage=Toolkit.getDefaultToolkit().getImage(rs.getString

(1));

label_2.setIcon(newImageIcon(image));

label_1.setText(rs.getString

(2));

label_3.setText(rs.getString(3));

}

rs.close();

conn.close();

}catch(Exceptionex){

//TODOAuto-generatedcatchblock

ex.printStackTrace();

}

}

}});

这一段代码实现的是通过和数据库链接后,对菜品显示区的才进行点击后,对不同的菜显示其存在数据库中的各种内容,显示的内容包括菜的编号,菜名,菜的类型,菜的原料,菜的图片,菜的价格,菜的状态等

5.1.3查看已点的菜单(即显示各种以及点过的菜品和酒水信息)

主要的代码部分:

Vectorcolmn=newVector();

colmn.add("序号");

colmn.add("名称");

colmn.add("单价");

colmn.add("数量");

colmn.add("总价");

colmn.add("点菜时间");

colmn.add("座位号");

colmn.add("订单编号");

colmn.add("状态");

DAOInfdao2=newDAOIm();

ResultSetrs=dao2.selectDingDanItem(s);

finalVectorrows=newVector();

ResultSetMetaDatarsmd;

try{

rsmd=rs.getMetaData();

while(rs.next()){

Vectorrow=newVector();

for(inti=1;i<=rsmd.getColumnCount();i++){

row.add(rs.getString(i));

}

rows.add(row);

}

}catch(SQLExceptione2){

e2.printStackTrace();

}

table=newJTable(rows,colmn);

scrollPane.setViewportView(table);

这一段代码实现的是,通过对数据库的操作,把已经点过的菜自动添加到已经生成的订单中。

在此界面中显示此订单所在的桌子号,以及已经点过的菜品的各种信息。

5.1.4查看是否点菜成功的提示界面(即点击点菜按钮后弹出的点菜是否成功的界面)

主要代码:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

Connectionconn1=DriverManager.getConnection("jdbc:

sqlserver:

//localhost:

1433;DatabaseName=hotel","sa","");

Stringsql1="selectidfromdingdanwheretableNum='"+s+"'";

ResultSetrs1=conn.prepareStatement(sql1).executeQuery();

intselectedNum=(Integer)select.getSelectedItem();

if(rs1.next()){

intdingdanNum=rs1.getInt

(1);

inttotalPrice=selectedNum*price;

Stringstate="等待中...";

Stringsql="insertintodingdanItemvalues('"+name+"',"+price+","+selectedNum+","+totalPrice+",'"+dTime+"','"+s+"',"+dingdanNum+",'"+state+"')";

conn1.createStatement().executeUpdate(sql);

}

JOptionPane.showMessageDialog(Menu.this,"您选择了:

"+name+selectedNum+"份");

}

这一部分实现是对按钮点菜的事件监听已经事件处理,通过对按钮的事件处理,可以弹出提示点菜是否成功的信息。

5.1.5埋单的界面(即显示所选择的菜品的单价,数量,总价,入座时间,优惠细则等)

主要代码部分:

try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

Connectionconn=DriverManager.getConnection("jdbc:

sqlserver:

//localhost:

1433;databaseName=hotel","sa","");

Stringsql="selectid,dishName,price,selectedNum,totalPricefromdingdanItemwheretableNum="+tableNum;

ResultSetrs=conn.createStatement().executeQuery(sql);

ResultSetMetaDatarsmd=rs.getMetaData();

while(rs.next()){

Vectorrow=newVector();

for(inti=1;i<=rsmd.getColumnCount();i++){

row.add(rs.getString(i));

}

rows.add(row);

}

}catch(Exceptione){

e.printStackTrace();

}

table=newJTable(rows,c);

scrollPane.setViewportView(table);

这一段代码是通过链接数据库,然后显示出某一订单所点的菜品的所有的信息,显示的内容包括菜品的编号,菜品的名称,菜品的单价,菜品的数量,菜品的总价。

此外这个页面还显示座位号,优惠的细则等信息。

5.1.6所有的订单显示的界面(即显示订单的编号,订单的座位号,订单的状态,订单入座时间)

主要代码部分:

finalVectorrows=newVector();

try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

Connectionconn=DriverManager.getConnection("jdbc:

sqlserver:

//localhost:

1433;databaseName=hotel","sa","");

Stringsql="select*fromdingdan";

ResultSetrs=conn.createStatement().executeQuery(sql);

ResultSetMetaDatarsmd=rs.getMetaData();

while(rs.next()){

Vectorrow=newVector();

for(inti=1;i<=rsmd.getColumnCount();i++){

row.add(rs.getString(i));

}

rows.add(row);

}

rs.close();

conn.close();

}catch

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1