资源描述
网上订餐系统详细设计说明书
16
2020年4月19日
文档仅供参考
网上订餐系统详细说明书
1.引言 2
1.1编写目的 2
1.2项目背景 3
1.3术语定义 3
1.4参考资料 3
2.程序系统结构 3
3.程序设计说明 4
3.1总体设计说明 5
3.2程序功能描述 5
3.3性能描述 5
3.4 输入项 5
3.5输出项 6
3.6算法 7
3.7流程逻辑..........................................8
3.8接口.............................................10
3.9存储分配..........................................10
3.10注释设计........................................10
3.11限制条件........................................10
3.12测试设计........................................11
3.13尚未解决的问题 ..................................11
1引言
1.1编写目的
从该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的详细设计, 而且明确系统的详细设计模块与用例需求。
在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只 是描绘出软件的总的概貌。详细设计说明书的目的就是非常细化软件设计阶段得 出的软件所有模型,把它加工成在程序细节上非常接近于源程序的软件表示.
1.2背景
随着人们生活水平的提高,外出就餐的机会随之增多,餐馆的营业额势必会增加,特别是一些大型餐饮店,不可能再像以前一样用手工去记录,这样不但容易出错,而且效率还低,影响餐馆业的营业现状,正是在这种状况下我们提出做这样一个系统来。总之为了现代化餐馆发展的需要,我们有必要做这样一个系统来提升我们的工作效率。
手机记录不但记录慢,而且预约登录很快就变得难以理解,这就很有可能导致经营上的问题。没有备份系统,如果一张单据损坏了,餐馆就没有了那个晚上的记录,倘若某一天预约很多,如果另有人预约,找一张空的桌子都要很长时间,这样处理速度就会变慢。由于这些原因,餐馆需要开发这样一个自动化的预约定餐系统,新系统应该和现有系统一样能够显示预约和预约到达显示,当有更改应该能够及时更新,使得处理速度变快。点菜和结帐更能使工作效率有很大的提高,而且这样出错的机率也会大大降低,提升了准确性。能及时的更新也提供了很好的及时性。
1.3定义
餐馆订餐系统是一款集处理接受、取消顾客预订,接受散客就餐,编辑菜单菜价,结账汇总等功能为一体的现代化餐馆辅助软件,自带密码登陆,加锁解锁等辅助功能,增强了软件本身的安全性,是中小型餐厅及饭店的不二选择。
1.4参考资料
《JAVA2 核心技术 第一卷 基础知识》 机械工业出版社
《数据结构与算法基础》 大连理工大学出版社
《面向对象设计与UML 第2版》 清华大学出版社
《数据库系统概念》 机械工业出版社
《关系数据库基础与实践教程》 电子工业出版社
2程序系统结构
本程序使用B/S架构并使用了四层逻辑结果,使该程序具有很好的可读性和直观性,具体的图示如下面的图(1)所示
以下为用户整体订餐流程图,也是我们的核心工作流程图,如图2所示
餐厅管理系统
管理员
客服人员
客户
订餐
系统
订餐员
图2订餐系统顶层数据流图
我们的核心工作流程为订餐,为了给用户一个更好的订餐享受,我们添加了很多增加用户体验的工作,提高了订餐的效率,而且给用户一个更好的享受。
3系统设计说明
3.1总体设计说明
本项目经过建立一个基于互联网的订餐平台,为订餐的用户和管理者提供不同的服务,其中,订餐的用户能够经过此平台来进行菜色浏览,订餐和提交订单,她的整体结构如下图:
3.2程序功能描述
该程序主要是实现用电脑实现预约定餐、预约到达、未约到达就餐、点菜和结账功能,当然在定餐的基础上能够取消预约,在未就餐之前还能够退餐,对于这其中的问题,我们都给出很仔细的处理,可能这些都是比较小的细节,可是这些我们都做得很细,以方便餐馆进行管理。
3.3性能描述
3.3.1准确性和及时性
对于该系统,当用户进行某一项操作,其响应时间应该在一定能够接受的范围内,太慢的话就会显得很不适用。当新增一个预约或其它操作时应该能够在主GUI上面能及时的显示出来,而不能有太多的延时,因此我们采用了观察者模式以能及时更信息,当随着日期的改变时所有的信息也应该跟着的变化。由于要读写数据库,因此对电脑的配置也有一定的要求,太差的话可能导致反应很慢。
3.3.2系统安全性
对于ACCESS数据我们进行了加密,当然BOSS有权知道这个密码,对于使用该用户的操作员也要知道一个用户名和密码才能登录使用,可能这样还是不能满足需要,如果操作员稍为离开一会儿,难道为了不让人不经意或有意修改数据内容,就要关闭整个程序吗?不用这里我们提供了一种锁机制,当用户要稍为离开时能够选择锁定系统,此时任何人要想再使用户就必须知道当前登录用户名的密码才能恢复系统,具体见以下截图:
3.3.3可操作性和易维护性
本程序采用JAVA SWING GUI 编写,易看易懂的界面,操作也相当简单,只要是能熟练使用电脑的人都能熟练的上手。
3.4输入项
l 新增预约:姓名、地址、电话号码、日期
l 点菜:根据菜单选菜
l 添加菜名和酒水:菜名、价格
l 删除菜名和酒水:菜名
3.5输出项
l 完成订单:客户姓名、联系电话、客户地址
l 取消订单:要取消的订单号、原订单的时间
l 结账:姓名、电话、日期、应付款
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”);
获取记录总数
rs.last();
记录总数 = 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++;
}
}
3.7流程逻辑
进入系统主界面
类别管理
信息维护
会员维护
更改资料
操作页面
订餐信息
结账
加入购物车
选购
食品搜索
订单号
订单维护
食品管理
浏览页面
数据库
去收银台
账号管理
用户登录
用户注册
管理员登录
退出
注销登录
3.8接口
3.8.1用户接口
餐馆订餐系统GUI及内部处理模块均采用JAVA实现,顾客就餐信息均由键盘输入,系统提供菜单及菜单的编辑功能,结账模块提供顾客消费额。由于本系统采用JAVA实现,因此只要预装JVM的终端都能运行此系统,移植性极高。由于出于学习目的,数据库采用MS ACCESS,故Linux及Unix系统用户需要另外配置数据库。
3.8.2其它软硬件接口
l 软件接口:本系统提供了供其它软件使用的函数,以达到软件的复用性。
l 硬件接口:本系统经过JVM与底层硬件层交流。
l 硬件之间接口:本系统现版本暂时只为单机版,故不考虑终端之间的交互。
3.8.3各个模块之间接口
本系统数据交互层经过DBConnection类与数据库进行数据交互,主要包括数据插入、删除、更新等操作。DBConnection类提供了一个接口给上层的Restaurant类及BookingSystem类,MainTable类对BookingSystem类有一个引用,每个功能模块,包括登陆、解锁、结账、点菜、添加删除订单、都有一个对BookingSystem类的引用,即BookingsSystem类提供了一个公共接口,而且能够说是整个系统的核心。本系统整体采用的模式为观察者模式,被观察者为BookingSystem类,观察者为MainTable类,当BookingSystem类有所变化时,MainTable类就会自动及时更新,并将更新后的信息显示给用户。
3.9存储分配
无特别存储分配的需要。
3.10注释设计
采用的是程序说明性注释。
3.11限制条件
本模块在运行使用中无特别限制条件。
3.12测试计划
本模块针对用户订餐信息在测试时要求对测试输入数据到数据库,同时能够在外部查询得到准确的读出数据。
3.13尚未解决的问题
对数据库的链接。
展开阅读全文