网上订餐系统详细设计分析说明书模板
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二零一四年六月
1引言 (3)
1.1编写目的 (3)
1.2背景 (3)
1.3定义 (4)
1.4参考资料 (4)
2程序系统的结构 (4)
3程序1(标识符)设计说明 (5)
3.1程序描述 (5)
3.2功能 (6)
3.3性能 (6)
3.4输人项 (7)
3.5输出项 (7)
3.6算法 (7)
3.7流程逻辑 (9)
3.8接口 (9)
3.9存储分配 (10)
3.10注释设计 (10)
3.11限制条件 (10)
3.12测试计划 (10)
3.13尚未解决的问题 (10)
4结构设计 (10)
4.1概念结构设计 (10)
4.2逻辑结构设计 (12)
4.3物理结构设计 (13)
5总体设计 (14)
5.1需求规定 (14)
5.2运行环境 (14)
5.3基本设计概念和处理流程 (15)
5.4结构 (17)
5.5功能器求与程序的关系 (17)
5.6人工处理过程 (18)
5.7尚未问决的问题 (18)
详细设计说明书
1引言
1.1编写目的
可行性分析报告是为“网上订餐”开发的可能性、可行性、必要性提供论据,为开发人员进行系统总体规划设计及具体实施开发工程提供必要的参考资料,在系统开发完成后期为系统的测试、验收提供帮助。预期使用者是学校的在线大学生。
1.2背景
随着电脑在大学校园的普及,同学们对订餐渐渐热衷起来,尤其是到冬天的时候,天气特别冷,很多同学都不愿意出宿舍了。很多同学不知道吃什么,同时又不愿意冒着大风去食堂买饭。很多时候会出现这样的情况,人们去就餐时,会出现排队或没有位置的现象;还有就是有的人懒的出去,想在自己的宿舍就能享受到美味的食物。这样就出现了订餐这样的做法。
项目全称:重庆工商大学网上订餐系统
项目发起者:11级电商二班X小组
项目开发者;11电商二班X小组
项目用户:重庆工商大学在校学生,附近餐厅
1.3定义
会员网上订餐系统中合规的注册用户
游客未注册或者未登陆的浏览者
管理员系统的管理员
购物车存放用户在确定订餐前所点选的菜品
1.4参考资料
《JAVA从入门到精通》清华出版社
《数据库系统概念》机械工业出版社
《关系数据库基础与实践教程》电子工业出版社
2程序系统的结构
本程序使用B/S架构并使用了四层逻辑结果,使该程序具有很好的可读性和直观性,具体的图示如下面的图(1)所示
以下为用户整体订餐流程图,也是我们的核心工作流程图,如图2所示
图2订餐系统顶层数据流图
我们的核心工作流程为订餐,为了给用户一个更好的订餐享受,我们添加了很多增加用户体验的工作,提高了订餐的效率,并且给用户一个更好的享受。
3程序1(标识符)设计说明
3.1程序描述
该程序主要是实现用电脑实现预约定餐、预约到达、未约到达就餐、点菜和结账功能,当然在定餐的基础上可以取消预约,在未就餐之前还可以退餐,对于这其中的问题,我们都给出很仔细的处理,也许这些都是比较小的细节,但是这些我们都做得很细,以方便餐馆进
行管理。
3.2功能
根据《网上订餐系统》的概要设计,本系统按照功能角度分解,可以分为客户端子系统和管理端子系统。客户端子系统包括用户注册、用户登录、个人信息维护、餐品信息浏览、维护购物车、生成订单等六个模块。管理端子系统包括登陆管理、维护顾客信息、维护餐品信息、管理订单等四个模块,他们的关系如图,以下将分小节对各个部分分别进行详细设计。
3.3性能
对于该系统,当用户进行某一项操作,其响应时间应该在一定可以接受的范围内,太慢的话就会显得很不适用。当新增一个预约或其它操作时应该能够在主GUI上面能及时的显示出来,而不能有太多的延时,因此我们采用了观察者模式以能及时更信息,当随着日期的改
变时所有的信息也应该跟着的变化。由于要读写数据库,因此对电脑的配置也有一定的要求,太差的话可能导致反应很慢。
3.4输人项
●新增预约:姓名、地址、电话号码、日期
●点菜:根据菜单选菜
●添加菜名和酒水:菜名、价格
●删除菜名和酒水:菜名
3.5输出项
●完成订单:客户姓名、联系电话、客户地址
●取消订单:要取消的订单号、原订单的时间
●结账:姓名、电话、日期、应付款
3.6算法
int i;
一页显示的记录数= 10;
取得待显示页码
PageSet : strPage = page;
if(strPage==null)//page参数为空时,此时显示第一页数据
{
待显示页码= 1;
}
else{
待显示页码= Integer.parseInt(strPage); //将字符串转换成整型
if(待显示页码<1) 待显示页码= 1;
}
执行SQL语句并获取结果集
ResultSet rs = sqlStmt.executeQuery("SQL”);
获取记录总数
st();
记录总数= rs.getRow();
记算总页数
总页数= (记录总数+设置一页显示的记录数-1) / 一页显示的记录数;
调整待显示的页码
if(待显示页码>总页数) 待显示页码= 总页数;
// 分页情况分类
//选择向上翻
if(待显示页码>1)
{
选择向上翻一页传递参数pageda=待显示页码-1 goto PageSet;
}
//选择向下翻
if(待显示页码<总页数)
{
选择向下翻一页传递参数pageda=待显示页码+1 goto PageSet;
}
If(选择到尾页)
{
选择到尾页传递参数pageda=总页数 goto PageSet;
}
页次=待显示页码 / 总页数页;
if(总页数>0){
将记录指针定位到结果集的第一条记录上((待显示页码-1) * 一页显示的记录数+ 1);
i = 0;
while(i<一页显示的记录数&& 数据库指针不在结果集尾部){
输出要分页显示的数据库中的内容;
将数据库指针移动到当前行的下一行;
i++;
}