2023年6月21日发(作者:)

《软件工程基础》餐饮管理系统实验报告

实验一:软件需求分析

1.

软件系统需求描述:

基于二十一世纪经济高速发展、人们的生活节奏日益加快以及现代餐饮业越来越发达和便捷这一现状,一套高效的餐饮业管理信息系统显得尤为重要。

首先为了提高系统效率,我们将这套系统的用户分为三种。一是顾客,二是职工,三是店主(即管理员)。针对不同的用户,我们给出不同的功能。不同的用户选择其对应的登录入口进入系统。

PS:其中预定功能顾客只能预定包厢,菜品不能预订,一律到店点菜。顾客可以通过查询包厢信息自行预订包厢。

利用 VB 作为开发工具、Access 2003 作为数据库开发一个餐饮管理系统。要求实现

如下功能:

1.餐饮系统管理功能

2. 顾客订餐系统功能

3.顾客数据信息备份功能

3.系统管理功能

4.退出系统功能

以下为功能分析:

餐厅管理人员(店主)登陆:

1、可以添加修改客户信息

2、添加修改查询菜单信息,如价格,种类等,能看到菜品图片

3、设定具体打折办法,以在顾客进行相应的消费后可以选择相应的打折力度

4、添加和删除职员信息,可以进行相应的修改

5、可以查询一天的收入和一段时间内收入报表.

餐厅职工登陆:

1、 可以添加客户信息并提供给管理员

2、 查询预订信息并确定接收订单(预定信息由顾客通过网络直接传递给职工)

3、 查询座位、包厢的实时信息并及时更新

4、 为顾客开台,确定客户餐桌号 5、 接受顾客点餐,加菜

6、 为顾客提供消费清单及发票打印

顾客登陆:

1、顾客能看到菜单以及菜品的图片(即使顾客没有注册也能看到,但是无法享受积分优惠的服务)

2、点菜

3、能查询餐厅详情以及包厢的信息进行预订包厢。

4、买单,直接用自己的账户买单(能享受到打折优惠)或者前台买单

6、能够查询到自己的账户余额

以下为管理、技术上可行性分析

1. 管理上的可行性:在该餐厅中,从顾客、餐厅管理人员到具体的业务人员认识是一致的,他们都大力支持系统的开发,而且由于该餐厅有良好的管理基础,因而建立新系统在管理上是可行的。

2、技术可行性

Visual basic 6.0 是良好的前端开发工具,它功能强大,1.采用可视化编程:VB 自动产生界面代码,程序 人员只需绘制界面,这样大大的提高了程序设计的效率。 2.面向对象的设计 3.结构化程序设计语言 4. 事件驱动编程机制:一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。 5.访问数据 库:具有很强的数据库管理功能。特别是对数据库的操作比较方便。对于初次接触信息系统的使用者, SQL 2000 比其他的数据库更容易了解和掌握。Vb/SQL2000 的结合足以给企业带来信息化的优势。

2.

软件系统数据流图(由加工、数据流、文件、源点和终点四种元素组成) :1)

顶层数据流图 2)

0 层数据流图

3)总数据流图

店主实现管理的数据流图:

职工实现管理的数据流图:

顾客实现功能的数据流图:

3.

软件系统数据字典:

1.

数据流条目

数据流

系统名:职工信息表

描述:记录在店内工作的职工的信息

数据流结构:编号+姓名+联系方式+职工性别+职工年龄+职工工资+用户密码+密码类型 位置:输出到打印机

数据流

系统名:已点菜单

描述:顾客到点所点的菜

数据流结构:菜号+菜名+各种菜品数量+桌号或包厢号+点菜时间

位置:输出到打印机

数据流

系统名:消费清单

描述:结账时出示给顾客的清单

数据流结构:消费单号+桌号或包厢号+菜名+单价+总金额+折扣值+折后金额+点菜时间

数据流

系统名:包厢信息

描述:桌位及包厢的实时信息

数据流结构:桌号或包厢号+剩余数量+类型+最大容纳人数

数据流

系统名:折扣信息表

描述:店铺所做的活动,到店消费在消费金额的基础上给予一定折扣

数据流结构:折扣值

数据流

系统名:店内详情

描述:对店内的信息进行简单的介绍以吸引顾客的光顾

数据流结构:餐厅名+地址+电话+就餐环境+特色菜品情况+折扣值位置

数据流

系统名:日收入报表

描述:餐厅内一天的营业额

数据流结构:日期+消费单号+总金额+折后金额+每日总收入 位置:输出到打印机

2.

加工条目

数据加工

系统名: 职工信息表

条目名: 查询职工信息

输入:

输出:

姓名

(性别、年龄、工资)|(没有该信息)

简要说明: 本处理根据输入的姓名显示匹配的信息或显示没有匹配信息

数据加工

系统名: 已点菜单

条目名: 点菜业务

输入:

输出:

桌号或包厢号

菜号、菜名、各种菜品数量、点菜时间、菜品单价

简要说明: 本处理根据客户输入的终点站显示匹配的信息或显示没有匹配信息

数据加工

系统名: 包厢信息

条目名: 包厢查询

输入:

输出:

桌号或包厢号

剩余数量、类型、最大容纳人数

简要说明: 根据区分桌位及包厢是否为空来为顾客安排

数据加工

系统名:

条目名:

输入:

输出:

简要说明:

系统名:

条目名:

输入:

输出:

简要说明:

消费清单

消费清单

桌号或包厢号

消费总金额、所点菜品名称、所点菜品单价、折后金额

结账

数据加工

店内详情

店铺详情

餐厅名称

地址、电话、就餐环境、特色菜品

让顾客更方便直观的了解餐厅 实验二:软件设计与编码

1.

软件系统模块结构图:

1. 职工功能层次图

2. 餐厅管理员功能层次图

3. 顾客功能层次图

实验三:测试与调试

.1设计测试用例

15

个(白盒法

10

个,黑盒法

查询折扣值信息:点开折扣信息表即可查询。

没有问题

用户名=陈秋雨 密码<>123 密码输入有误

黑盒法

用户名<>陈秋雨 密码=123 用户名输入有误

用户名=CQY 密码=CQY0520 无问题,可以进入系统

桌号:14 可以查询到已点菜单 2. 软件系统其中的 2 个模块的编码

2.1 前台设计登陆界面:

main界面的实现:功能:前台管理,实现各种界面管理,可以通过图片信息查看桌子是否已使用,也可选中图标单击右键选择相应业务

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

食物管理功能:可添加删除食物

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

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

结账功能:根据订单号结账

4、具体实现前台程序设计4.1Cdb类:实现C#与数据库连接,调用相应存储过程

Public class Cdb {

Private string

appsettingk1=System. tings["k1"]:

private SqlConnection conn=null;}

public Cdb(){

conn=new SqlConnection(appsettingk1);}

public DataSetgetDataset(Stringstorename,SqlParameter]parameters){

SqlCommandcmd=newSqlCommand(storename,conn); dType = Procedure;

SqlDataAdapter ad= newSqlDataAdapter(cmd);

DataSet ds=new DataSet();

If(parameters != null){

for(int i=0;i<;i++){

(parameters[i]);}

}(ds);

Return ds;}

public intExcuteStore(String storename,SqlParameter[]parameters){

();

SqlCommand cmd=newSqlCommand(storename,conn)dType

=Procedure;}

if(parameters!=null){

for(int i=O;i<;i++){

(parameters[i]);}

}try{

eNonQuery);

return 0;}

catch(Exception k){

string m=e;

return -1;}

finally{

();}

}}

}

登录界面:

public Login(){

InitializeComponent();}

private voidbutton1_Click(object sender,EventArgs e){

if(=="lⅡ==""){

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

Return;}

sAdmindb=new_ss,CtablesAdmin();

if((,)==1){

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

();

Main m2=new Main();

alog();}

if((textUid .Text,)==0){

("普通用户,请通过PID登陆!");}

if((,)==-1){

(“对不起,您没有访问权限!");}}

private voidbutton2_Click(object sender,EventArgs e){

();}

}

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

//添加食物类型

private void buttonl Click(object sender, EventArgs e)

if ( =="")

(”不能为空!”);

return;

sAdmin tb = new_sAdmin (); if (dtype()== 0)

("添加成功");

bindGridView();

//删除食物类型

private void dataGridViewl CellContentClick(objectsender,DataGridViewCellEventArgs e){

if (Index == 0)

if (("确定要删除吗,若删除则会删除该类下所有的菜名!”,”添加成功"el, g)==DialogResult. Cancel) {return;

int typeid= (edCells[1].Value. ToString()); Business.

CtablesAdmin th= new _1217. Business. CtablesAdmin ();

if (dtype(typeid) == 0)

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

bindGridView();

else

(”删除失败!”);}

点菜、结账

//点菜

private void button2_Click(object sender, EventArgs e){

if ( =="” =="” ==””){ ==

(“请填写完整”);

return;}

if ( ==“请选择”){

(”请填写服务人员”);

return;

}

Business. CtablesAdmin t = new _1217. sAdmin(); urce =

er(int. Parse(. ToString())); common. Cdb c = new common. Cdb ();

DataSet dt = aset ("getorder”,new SqlParameter [] newSqlParameter("@ordered”,id));

common. Cdb ss = new common. Cdb ();

int aa = (ss. getDataset("addorder”,new SqlParameter[] (newSqlParameter("@tid”,

id)).Tables[0].Rows[0][0].ToString());

//获取订单号?

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

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

int foodid = int. Parse(edNode. Tag. ToString());

string ud = comboBox1. SelectedValue. ToString();

ood(foodid, (),, aa, ng(),ud);

(”保存成功”);

//结账

private void buttonl_Click(object sender, EventArgs e){

Business. CtablesAdmin t = new Business. CtablesAdmin();

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

decimal b= decimal. Parse((s).Rows[0] [0].ToString());

Business. CtablesAdmin tt = new sAdmin();}} 第四章 总结(Conclusions)

一、实验内容总结

此餐饮管理系统经过一周基本完成,实现了餐饮管理系统的基本功能,操作简单方便,基本实现了收银管理,实物管理,开台信息,点菜,结账等基本功能

二、心得体会(in English)

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

三、建议(in English)

希望能获得更多这样的机会来学习

18

2023年6月21日发(作者:)

《软件工程基础》餐饮管理系统实验报告

实验一:软件需求分析

1.

软件系统需求描述:

基于二十一世纪经济高速发展、人们的生活节奏日益加快以及现代餐饮业越来越发达和便捷这一现状,一套高效的餐饮业管理信息系统显得尤为重要。

首先为了提高系统效率,我们将这套系统的用户分为三种。一是顾客,二是职工,三是店主(即管理员)。针对不同的用户,我们给出不同的功能。不同的用户选择其对应的登录入口进入系统。

PS:其中预定功能顾客只能预定包厢,菜品不能预订,一律到店点菜。顾客可以通过查询包厢信息自行预订包厢。

利用 VB 作为开发工具、Access 2003 作为数据库开发一个餐饮管理系统。要求实现

如下功能:

1.餐饮系统管理功能

2. 顾客订餐系统功能

3.顾客数据信息备份功能

3.系统管理功能

4.退出系统功能

以下为功能分析:

餐厅管理人员(店主)登陆:

1、可以添加修改客户信息

2、添加修改查询菜单信息,如价格,种类等,能看到菜品图片

3、设定具体打折办法,以在顾客进行相应的消费后可以选择相应的打折力度

4、添加和删除职员信息,可以进行相应的修改

5、可以查询一天的收入和一段时间内收入报表.

餐厅职工登陆:

1、 可以添加客户信息并提供给管理员

2、 查询预订信息并确定接收订单(预定信息由顾客通过网络直接传递给职工)

3、 查询座位、包厢的实时信息并及时更新

4、 为顾客开台,确定客户餐桌号 5、 接受顾客点餐,加菜

6、 为顾客提供消费清单及发票打印

顾客登陆:

1、顾客能看到菜单以及菜品的图片(即使顾客没有注册也能看到,但是无法享受积分优惠的服务)

2、点菜

3、能查询餐厅详情以及包厢的信息进行预订包厢。

4、买单,直接用自己的账户买单(能享受到打折优惠)或者前台买单

6、能够查询到自己的账户余额

以下为管理、技术上可行性分析

1. 管理上的可行性:在该餐厅中,从顾客、餐厅管理人员到具体的业务人员认识是一致的,他们都大力支持系统的开发,而且由于该餐厅有良好的管理基础,因而建立新系统在管理上是可行的。

2、技术可行性

Visual basic 6.0 是良好的前端开发工具,它功能强大,1.采用可视化编程:VB 自动产生界面代码,程序 人员只需绘制界面,这样大大的提高了程序设计的效率。 2.面向对象的设计 3.结构化程序设计语言 4. 事件驱动编程机制:一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。 5.访问数据 库:具有很强的数据库管理功能。特别是对数据库的操作比较方便。对于初次接触信息系统的使用者, SQL 2000 比其他的数据库更容易了解和掌握。Vb/SQL2000 的结合足以给企业带来信息化的优势。

2.

软件系统数据流图(由加工、数据流、文件、源点和终点四种元素组成) :1)

顶层数据流图 2)

0 层数据流图

3)总数据流图

店主实现管理的数据流图:

职工实现管理的数据流图:

顾客实现功能的数据流图:

3.

软件系统数据字典:

1.

数据流条目

数据流

系统名:职工信息表

描述:记录在店内工作的职工的信息

数据流结构:编号+姓名+联系方式+职工性别+职工年龄+职工工资+用户密码+密码类型 位置:输出到打印机

数据流

系统名:已点菜单

描述:顾客到点所点的菜

数据流结构:菜号+菜名+各种菜品数量+桌号或包厢号+点菜时间

位置:输出到打印机

数据流

系统名:消费清单

描述:结账时出示给顾客的清单

数据流结构:消费单号+桌号或包厢号+菜名+单价+总金额+折扣值+折后金额+点菜时间

数据流

系统名:包厢信息

描述:桌位及包厢的实时信息

数据流结构:桌号或包厢号+剩余数量+类型+最大容纳人数

数据流

系统名:折扣信息表

描述:店铺所做的活动,到店消费在消费金额的基础上给予一定折扣

数据流结构:折扣值

数据流

系统名:店内详情

描述:对店内的信息进行简单的介绍以吸引顾客的光顾

数据流结构:餐厅名+地址+电话+就餐环境+特色菜品情况+折扣值位置

数据流

系统名:日收入报表

描述:餐厅内一天的营业额

数据流结构:日期+消费单号+总金额+折后金额+每日总收入 位置:输出到打印机

2.

加工条目

数据加工

系统名: 职工信息表

条目名: 查询职工信息

输入:

输出:

姓名

(性别、年龄、工资)|(没有该信息)

简要说明: 本处理根据输入的姓名显示匹配的信息或显示没有匹配信息

数据加工

系统名: 已点菜单

条目名: 点菜业务

输入:

输出:

桌号或包厢号

菜号、菜名、各种菜品数量、点菜时间、菜品单价

简要说明: 本处理根据客户输入的终点站显示匹配的信息或显示没有匹配信息

数据加工

系统名: 包厢信息

条目名: 包厢查询

输入:

输出:

桌号或包厢号

剩余数量、类型、最大容纳人数

简要说明: 根据区分桌位及包厢是否为空来为顾客安排

数据加工

系统名:

条目名:

输入:

输出:

简要说明:

系统名:

条目名:

输入:

输出:

简要说明:

消费清单

消费清单

桌号或包厢号

消费总金额、所点菜品名称、所点菜品单价、折后金额

结账

数据加工

店内详情

店铺详情

餐厅名称

地址、电话、就餐环境、特色菜品

让顾客更方便直观的了解餐厅 实验二:软件设计与编码

1.

软件系统模块结构图:

1. 职工功能层次图

2. 餐厅管理员功能层次图

3. 顾客功能层次图

实验三:测试与调试

.1设计测试用例

15

个(白盒法

10

个,黑盒法

查询折扣值信息:点开折扣信息表即可查询。

没有问题

用户名=陈秋雨 密码<>123 密码输入有误

黑盒法

用户名<>陈秋雨 密码=123 用户名输入有误

用户名=CQY 密码=CQY0520 无问题,可以进入系统

桌号:14 可以查询到已点菜单 2. 软件系统其中的 2 个模块的编码

2.1 前台设计登陆界面:

main界面的实现:功能:前台管理,实现各种界面管理,可以通过图片信息查看桌子是否已使用,也可选中图标单击右键选择相应业务

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

食物管理功能:可添加删除食物

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

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

结账功能:根据订单号结账

4、具体实现前台程序设计4.1Cdb类:实现C#与数据库连接,调用相应存储过程

Public class Cdb {

Private string

appsettingk1=System. tings["k1"]:

private SqlConnection conn=null;}

public Cdb(){

conn=new SqlConnection(appsettingk1);}

public DataSetgetDataset(Stringstorename,SqlParameter]parameters){

SqlCommandcmd=newSqlCommand(storename,conn); dType = Procedure;

SqlDataAdapter ad= newSqlDataAdapter(cmd);

DataSet ds=new DataSet();

If(parameters != null){

for(int i=0;i<;i++){

(parameters[i]);}

}(ds);

Return ds;}

public intExcuteStore(String storename,SqlParameter[]parameters){

();

SqlCommand cmd=newSqlCommand(storename,conn)dType

=Procedure;}

if(parameters!=null){

for(int i=O;i<;i++){

(parameters[i]);}

}try{

eNonQuery);

return 0;}

catch(Exception k){

string m=e;

return -1;}

finally{

();}

}}

}

登录界面:

public Login(){

InitializeComponent();}

private voidbutton1_Click(object sender,EventArgs e){

if(=="lⅡ==""){

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

Return;}

sAdmindb=new_ss,CtablesAdmin();

if((,)==1){

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

();

Main m2=new Main();

alog();}

if((textUid .Text,)==0){

("普通用户,请通过PID登陆!");}

if((,)==-1){

(“对不起,您没有访问权限!");}}

private voidbutton2_Click(object sender,EventArgs e){

();}

}

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

//添加食物类型

private void buttonl Click(object sender, EventArgs e)

if ( =="")

(”不能为空!”);

return;

sAdmin tb = new_sAdmin (); if (dtype()== 0)

("添加成功");

bindGridView();

//删除食物类型

private void dataGridViewl CellContentClick(objectsender,DataGridViewCellEventArgs e){

if (Index == 0)

if (("确定要删除吗,若删除则会删除该类下所有的菜名!”,”添加成功"el, g)==DialogResult. Cancel) {return;

int typeid= (edCells[1].Value. ToString()); Business.

CtablesAdmin th= new _1217. Business. CtablesAdmin ();

if (dtype(typeid) == 0)

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

bindGridView();

else

(”删除失败!”);}

点菜、结账

//点菜

private void button2_Click(object sender, EventArgs e){

if ( =="” =="” ==””){ ==

(“请填写完整”);

return;}

if ( ==“请选择”){

(”请填写服务人员”);

return;

}

Business. CtablesAdmin t = new _1217. sAdmin(); urce =

er(int. Parse(. ToString())); common. Cdb c = new common. Cdb ();

DataSet dt = aset ("getorder”,new SqlParameter [] newSqlParameter("@ordered”,id));

common. Cdb ss = new common. Cdb ();

int aa = (ss. getDataset("addorder”,new SqlParameter[] (newSqlParameter("@tid”,

id)).Tables[0].Rows[0][0].ToString());

//获取订单号?

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

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

int foodid = int. Parse(edNode. Tag. ToString());

string ud = comboBox1. SelectedValue. ToString();

ood(foodid, (),, aa, ng(),ud);

(”保存成功”);

//结账

private void buttonl_Click(object sender, EventArgs e){

Business. CtablesAdmin t = new Business. CtablesAdmin();

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

decimal b= decimal. Parse((s).Rows[0] [0].ToString());

Business. CtablesAdmin tt = new sAdmin();}} 第四章 总结(Conclusions)

一、实验内容总结

此餐饮管理系统经过一周基本完成,实现了餐饮管理系统的基本功能,操作简单方便,基本实现了收银管理,实物管理,开台信息,点菜,结账等基本功能

二、心得体会(in English)

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

三、建议(in English)

希望能获得更多这样的机会来学习

18