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