餐馆点菜系统详细设计说明书资料讲解.docx
《餐馆点菜系统详细设计说明书资料讲解.docx》由会员分享,可在线阅读,更多相关《餐馆点菜系统详细设计说明书资料讲解.docx(30页珍藏版)》请在冰豆网上搜索。
餐馆点菜系统详细设计说明书资料讲解
文档编号:
LMS--3
版本号:
V1.0
文档名称:
详细设计说明书
项目名称:
餐馆点菜系统
项目负责人:
王晓凤、曹春美
编写:
王晓凤、曹春美2013年12月11日
校对:
曹春美2013年12月12日
审核:
王晓凤2013年12月12日
1引言
1.1编写目的
经过对该餐馆点菜系统项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行可行性分析。
明确开发风险及其所带来的经济效益。
本报告经审核后,交由软件经理审查。
该需求规格说明书的采访对象是XXX餐馆点菜系统软件小组的研发工程师、测试工程师、销售工程师,版权归XXX所有,严禁外传。
1.2项目背景
项目名称:
餐馆点菜系统
用户:
××餐馆
说明:
随着我国市场经济的快速发展,各行业都呈现出生机勃勃的发展景象。
在餐饮业竞争越来越激烈的今天,酒店如何提高服务质量、管理能力显得越来越重要。
如果单凭手工操作,不仅效率低下,而且会极大地影响到酒店的服务质量。
酒店餐饮点菜系统作为餐饮管理规划的一部分,集点菜、结帐、查询、统计、设置等各种功能为一体,对于提高餐饮管理效率、增加收入发挥不可替代的作用。
1.3定义
餐馆点菜系统是适用在餐馆,酒店等公共就餐场所的一款软件,该系统的开发可以加快客人的就餐速度,方便商家的运营,改变传统的点餐模式。
本系统用ASP开发,利用此系统,使得前台服务不再和以前一样使用纸笔记录,只是轻点键盘就能完成,减少错误地发生,避免不必要的损失。
1.4参考资料
[1]张海藩.软件工程导论(第3版)人民邮电出版社
[2]费贤举.Java面向对象程序设计中国电力出版社
2总体设计
加菜模块
输入菜名、单价
菜单确认
菜单记录
查询到该菜
添加进该顾客菜单
操作命令生成
数据库操作
数据库查询
3程序描述
3.1主模块
●功能
建立与数据库连接
获取系统设置
运行主对话框
根据输入调用子模块
退出系统时断开与数据库的连接
●输入项目
用户鼠标点击输入
●程序逻辑
见右图
●存储分配
内部数据:
数据库连接con=DriverManager.getConnection数据库连接指针
stmt=con.createStatement();数据库连接指示
子对话框jiudian.diancai()点菜对话框
Jiudian.xiugai()修改菜单对话框
Xiugai.chauxn()查询
Xiugai.tianjia()添加
Xiugai.shanchu()删除
Jiudian.chaxun()菜单查询对话框
Jiudain.jiezhang()系统操作对话框
●测试要点
数据库连接情况:
正常情况,数据库文件缺少,外部系统异常。
系统设置获取:
正常情况,外部系统异常。
对用户输入的响应:
合法输入,能够正常调用子模块;
非法输入,系统能否辨别,并作出响应(提出警告);
初始化
点菜模块
加菜模块
删菜模块
菜单查询模块
结账模块
子模块的异常状况,系统能否及时做出响应。
3.2点菜模块
●功能
按键进行点菜,建立菜单
运行点菜对话框
数据库的调用和更改、保存,以修改数据库中的汇总菜单信息
●输入项目
菜的名字,桌号,菜系,或者是价格;
●输出项目
顾客已点的菜的相关信息(单价,数量,菜的编号);
●程序逻辑
no
yes
yes
●存储分配
内部数据:
数据库Connectioncon数据库连接指针
用户界面Stringname欲点菜的名称
内部参数Stringm当前顾客的桌号
●测试要点
模块正常运行流程
用户输入数据检查(顾客的桌号),包括数据合理性检查,以及合法性检查
数据库操作
数据库连接异常时的响应情况
3.3修改模块
3.3.1加菜模块
●功能
运行加菜对话框
查验输入的菜的编号
对合法输入登录加菜信息
显示相关信息(本次加菜操作信息,以点的菜的相关信息)
●输入项目
菜的编号(用户输入)
●输出项目
相关信息(本次加菜操作信息,以点的菜的相关信息)
●程序逻辑
连接数据库
加菜
通过桌号在数据库中找到菜单
查询菜单并进行加菜操作
保存数据库
断开数据库
结束
连接数据库
no
yes
yes
no
●接口
调用形式:
xiugai()
传入参量:
con(数据库连接指针常量)提供数据库连接
传出参量:
无
●存储分配
内部变量:
数据库Connectioncon数据库连接指针
Statementstmt数据库查询结果集指针
用户界面cname欲加的菜的名称
m顾客的桌号显示
●测试要点
模块正常工作流程
对输入的查验,包括输入值的合法性与合理性检验
数据库连接异常能否做出适当处理
数据库数据异常时能否判断并给予适当处理
3.3.2删菜模块
●功能
运行删菜对话框
查验输入的菜的编号
对合法输入登录点菜信息
显示相关信息(本次删菜操作信息,尚未删除的菜单的相关信息)
●输入项目
菜的编号(用户输入)
●输出项目
相关信息(本次删菜操作信息,尚未删除的菜单信息)
●程序逻辑
连接数据库
删菜
通过桌号在数据库中找到菜单
查询菜单并进行删菜操作
删除此项并释放空间
保存数据库
断开数据库
结束
yes
no
yes
●存储分配
内部变量:
数据库
Connectioncon数据库连接指针
Statementstmt数据库查询结果集指针
用户界面cname欲加的菜的名称
m顾客的桌号显示
●测试要点
模块正常工作流程
对输入的查验,包括输入值的合法性与合理性检验
数据库连接异常能否做出适当处理
数据库数据异常时能否判断并给予适当处理
3.3.2.1顾客输入查验模块
●功能
查验输入的桌号是否合法(即是否存在与该桌号对应的菜单记录)
●输入项目
顾客桌号(整型常数)
●输出项目
查验结果(BOOL值)
●程序逻辑
生成数据库查询语句
调用数据库查询模块
IF返回结果集为空(不存在该桌号)
返回”非法桌号”
ELSE
返回”合法桌号”
●测试要点
数据库连接正常时
输入合理合法参数
输入参数不合理
输入参数不合法
数据库连接异常;数据库数据异常(读者姓名为空)
3.3.2.2菜名称查验模块
●功能
查验输入的菜的编号是否合法
●输入项目
菜的编号(整型常量)
●输出项目
查验结果(BOOL值)
●程序逻辑
生成数据库查询语句
调用数据库查询模块
IF返回结果集为空(不存在这种菜)
返回”非法菜名”
ELSE
返回”合法菜名”
●存储分配
局部变量:
数据库menu
Statementstmt数据库查询结果集指针
●测试要点
数据库连接正常
数据库数据正常
输入的编号合理合法
输入的编号不合理
输入的编号不合法
数据库数据异常
数据库连接异常
3.3.2.2查询模块
●功能
查询顾客是否有点该菜
●输入项目
菜的名称(字符串)、桌号(字符型常量)
输出项目
该菜是否在该顾客的菜单中,对话框提示。
如存在,则显示该菜的信息。
●程序逻辑
生成数据库查询语句
调用数据库查询模块
IF返回结果集为空(菜单中不存在这种菜)
返回”不存在该菜”
ELSE
返回”该菜信息”
●存储分配
局部变量:
数据库menu
Statementstmt数据库查询结果集指针
●测试要点
数据库连接正常
数据库数据正常
输入的桌号合理合法
输入的桌号不合理
输入的桌号不合法
数据库数据异常
数据库连接异常
3.5菜单查询模块
●功能
根据给定查询条件,查询数据库,获取菜单的信息
●输入项目
该顾客的桌号(字符型常量)
●输出项目
查询结果在对话框中显示(菜名、价格、数量)
●
初始化对话框
查询
生成查询命令
程序逻辑
查询数据库
显示结果列表
退出
●存储分配
内部变量:
数据库
内部数据:
数据库menu
rr=con.createStatement();
ResultSetrr=stmt.executeQuery("select*frommenu");数据库查询命令
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
数据库查询连接
con=DriverManager.getConnection("jdbc:
odbc:
menu","","")
●测试要点
数据库连接正常
数据库数据正常获得正确的查询结果并显示
数据库数据异常给出警告
数据库连接异常给出警告
3.5.1数据库查询模块
●功能
根据输入的查询命令查询数据库
●输入项目
查询命令(传入参数)
●输出项目
数据库查询结果(返回值);数据库查询结果集(公共变量)
●程序逻辑
查询数据库
IF操作成功
返回”操作成功”
ELSE
返回”操作失败”
●存储分配
数据库:
menu
查询参数stmt=con.createStatement();
stmt.executeUpdate(insert);
数据库查询命令
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
con=DriverManager.getConnection("jdbc:
odbc:
menu","","")数据库查询连接
●测试要点
数据库连接正常
输入查询命令合法
获取非空查询结果集返回“真”返回值,查询结果保存在查询结果集中
获取空查询结果集返回“真”返回值,查询结果集为空
输入查询命令不合法返回“假”返回值,查询结果集指针指向空,给出警告
数据库连接异常
3.5.2菜单显示模块
●功能
按一定格式列表显示查询结果,并根据用户要求重排列
●输入项目
查询结果集(传入参数);输出项名称(传入参数);
查询结果表参数,包括行数、列数(传入参数)
●输出项目
用户界面显示
●程序逻辑
初始化(设置行数、列数、列名称,载入输入的查询结果集内的数据)
显示列表
WHILE用户未输入“返回”
IF用户拖动列的标题栏
重新设置列的位置
排序
刷新显示
返回
●存储分配
内部数据:
数据库menu
stmt=con.createStatement();
stmt.executeUpdate(insert);数据库查询命令
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
con=DriverManager.getConnection("jdbc:
odbc:
menu","","")数据库查询连接
●测试要点
查询结果正常
查询结果集为空显示消息框提示
查询结果集不为空正常显示结果列表,并根据用户输入调整输出
查询结果异常显示警告
3.6结账模块
功能
根据输入的要求统计数据库中各种信息,生成结果列表显示
●输入项目
数据库连接(传入参数)
●输出项目
无
●程序逻辑
初始化(获取数据库连接,显示对话框)
WHILE用户未输入”返回”
显示控制
IF用户输入”开始”
禁止”开始”按钮
生成数据库查询命令
查询数据库
显示查询结果
使能”开始”按钮
关闭对话框
●存储分配
内部数据:
数据库menu
rr=con.createStatement();
ResultSetrr=stmt.executeQuery("select*frommenu");数据库查询命令
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
数据库查询连接
con=DriverManager.getConnection("jdbc:
odbc:
menu","","")
●测试要点
数据库连接正常
模块正常流程,对用户界面的控制,对子模块的调用
数据库连接异常给出警告
3.6.1查询命令生成模块
●功能
根据用户界面的输入生成查询命令,并提供一定的对输入数据的检验
●输入项目
用户界面的各个输入变量(公共变量)
●输出项目
数据库查询命令(返回值)
●程序逻辑
读入界面的设置
生成查询条件
生成输出项
生成查询语句
返回查询语句
●存储分配
数据库menu
查询语句:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:
odbc:
menu","","");
stmt=con.createStatement();
ResultSetrs=stmt.executeQuery(select);
●测试要点
用户输入数据合理合法生成正确的数据库查询语句
用户输入数据不合理或不合法给出警告
3.6.2数据查询模块
●功能
根据输入的数据库查询命令,查询数据库数据,生成查询结果集
●输入项目
查询命令(传入参数)
●输出项目
查询成功/失败标志(返回值);查询结果集(公共变量)
●程序逻辑
查询数据库
IF操作成功
返回”操作成功”
ELSE
返回”操作失败”
●存储分配
内部数据:
数据库menu
rr=con.createStatement();
ResultSetrr=stmt.executeQuery("select*frommenu");数据库查询命令
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
数据库查询连接
con=DriverManager.getConnection("jdbc:
odbc:
menu","","")
●测试要点
数据库连接正常
查询命令合法
获取的结果集为空返回“真”,结果集为空
获取的结果集非空返回“假”,结果集记录相应结果
查询命令非法返回“假”,给出警告
数据库连接异常
3.6.3删除菜单模块
●功能
将已经结过账的菜单从数据库中删除
●输入项目
查询结果集(传入参数);输出项名称(传入参数);
查询结果表参数,包括行数、列数(传入参数)
●输出项目
用户界面显示
●程序逻辑
初始化(设置行数、列数、列名称,载入输入的查询结果集内的数据)
显示列表
WHILE用户未输入“返回”
IF用户拖动列的标题栏
重新设置列的位置
排序
刷新显示
返回
●接口
调用形式:
CListShowDlg:
:
ShowList(const_RecordsetPtrpRecords,CString*strArray,constintcols,constintrows)
传入参数:
pRecords(数据库查询结果集指针)需要显示的查询结果
strArray(字符串数组头指针)显示项的名称(列名)
cols(整型常量)列表列数
rows(整型常量)列表行数
传出参数:
无
●存储分配
内部数据:
数据库menu
rr=con.createStatement();
ResultSetrr=stmt.executeQuery("select*frommenu");数据库查询命令
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
数据库查询连接
con=DriverManager.getConnection("jdbc:
odbc:
menu","","")
●测试要点
查询结果正常
查询结果集为空显示消息框提示
查询结果集不为空正常显示结果列表,并根据用户输入调整输出
查询结果异常显示警告
3.7登陆模块(建立连接)
●功能
进入点菜系统与数据库、服务器建立连接、检查登陆者信息并确定其操作权限
●输入项目
用户按键输入
输入服务员编号、密码
●程序逻辑
DO 输入服务员和餐桌编号
IF 编号正确且日期正确 THEN
与数据库和服务器连接
ELSE 发出“错误信息”
开始
输入桌号
正确
与服务器、数据库建立连接
输入错误信息
结束
ENDIF
noyes
●测试要点
数据库连接情况:
正常情况,数据库文件缺少,外部系统异常。
系统设置获取:
正常情况,外部系统异常。
对用户输入的响应:
合法输入,能够正常调用子模块;
非法输入,系统能否辨别,并做出响应(提出警告);
子模块的异常状况,系统能否及时作出响应。
3.8退出模块
●功能
断开点菜系统与数据库、服务器的连接
●输入项目
退出标志
●输出项目
数据库查询结果(返回值);数据库查询结果集(公共变量)
●程序逻辑
结束标志
与服务器、数据库断开连接
结束
●测试要点
对退出系统的响应:
合法输入,能够正常退出;
不合法输入,输出警告信息。
3.9系统操作模块
●功能
验证输入的系统操作员账号以及口令,完成权限管理运行系统操作对话框,根据用户输入调用各子模块,完成:
菜单库操作(浏览、修改、增加、删除);
数据统计;更改口令;系统管理(修改系统设置,浏览、修改、增加、删除系统操作员);
●输入项目
数据库连接(传入参数)
●输出项目
无
●接口
调用形式:
CSysDlg:
:
ManageSys(const_ConnectionPtrpConnection)
传入参数:
pConnection(数据库连接指针)
传出参数:
无
●存储分配
内部数据:
数据库menu
rr=con.createStatement();
ResultSetrr=stmt.executeQuery("select*frommenu");数据库查询命令
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
数据库查询连接
con=DriverManager.getConnection("jdbc:
odbc:
menu","","")
●测试要点
数据库连接正常正常执行过程
输入的账号口令合法根据权限进行显示控制,正常调用各子模块
输入的账号口令不合法警告
数据库连接异常
3.9.1系统操作权限查验模块
●功能
查验输入的系统操作员账号以及口令是否合法,并返回合法操作员的权限级别
●输入项目
系统操作员口令(传入参数)
●输出项目
操作员权限级别(返回值)
●程序逻辑
生成数据库查询命令
查询数据库
IF操作成功
IF查询结果集非空
返回权限级别
ELSE
显示警告”非法的账号或口令”
返回-1
ELSE
显示警告”不能查询数据库”
返回-1
内部数据:
数据库menu
rr=con.createStatement();
ResultSetrr=stmt.executeQuery("select*frommenu");数据库查询命令
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
数据库查询连接
con=DriverManager.getConnection("jdbc:
odbc:
menu","","")
●测试要点
数据库连接正常
数据库数据正常
合法的账号口令获取相应的权限级别
非法的账号口令返回错误指示,给出警告
数据库数据异常
数据库连接异常
3.9.2菜单库操作模块
●功能
根据输入提供对菜单库的浏览、数据修改、增加、删除记录等操作
增加记录时,提供对生成的菜单编号的唯一性验证
删除记录时,提供对所删除记录的相关性检验
●输入项目
数据库连接(传入参数)
●输出项目
无
●程序逻辑
初始化(获取数据库连接,显示对话框)
WHILE用户未输入退出
IF用户输入”下一个”
更新当前记录
移动至下一个记录
刷新显示
IF用户输入”上一个”
更新当前记录
移动至上一个记录
刷新显示
IF用户输入”移动到”
更新当前记录
要求输入菜单编号
IF该编号存在
移动到指定的记录
刷新显示
ELSE
显示警告”该菜单编号不存在”
IF用户输入”加入”
更新当前记录
要求输入菜单编号
IF该编号已存在
显示警告”该编号已存在”
是否继续加这个菜
ELSE
插入指定菜单编号的新记录
记录总数加一
光标移动至新记录处
IF用户输入”删除”
更新当前记录
给出警告”确定继续”
IF用户确认继续
给出警告”删除相关点菜记录”
IF用户确认
删除相关点菜记录
ELSE
中止操作
删除该点菜记录
记录总数减一
IF最后一条记录被删除
移动至前一条记录
ELSE
移动至下一条记录
显示刷新
更新记录
●存储分配
内部数据:
数据库menu
rr=con.createStatement();
ResultSetrr=stmt.executeQuery("select*frommenu");数据库查询命令
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
数据库查询连接
con=DriverManager.getConnection("jdbc:
odbc:
menu","","")
●测试要点
数据库连接正常
记录集为空是否工作状态正常
记录集非空对各种用户输入的响应
数据库连接异常