餐馆点餐系统的设计与实现+李晓+1106655091+计算机科学与技术信息安全 2.docx
《餐馆点餐系统的设计与实现+李晓+1106655091+计算机科学与技术信息安全 2.docx》由会员分享,可在线阅读,更多相关《餐馆点餐系统的设计与实现+李晓+1106655091+计算机科学与技术信息安全 2.docx(37页珍藏版)》请在冰豆网上搜索。
餐馆点餐系统的设计与实现+李晓+1106655091+计算机科学与技术信息安全2
南阳理工学院本科毕业设计(论文)
餐馆点餐系统的设计与实现
DesignandImplementationofRestaurantOrderingSystem
学院(系):
计算机与信息工程学院
专业:
计算机科学与技术(信息安全)
学生姓名:
李晓
学号:
1106655091
指导教师(职称):
张芳(讲师)
评阅教师:
完成日期:
2015年6月
南阳理工学院
NanyangInstituteofTechnology
餐馆点餐系统的设计与实现
计算机科学与技术专业 李晓
[摘 要]传统的餐馆点餐需要客户等待的时间长,而且效率低下。
针对这个问题分析设计了餐馆点餐系统。
系统采用面向对象的开发方法,利用了springmvc框架和Md5加密原理,采用java语言实现餐馆点餐系统,开发了后台管理和前台点餐这样一个不同用户操作不同功能的灵活有效的系统。
该系统利用网络,给人们提供了网上点餐便利,节省时间,提高效率,很有发展空间。
[关键词]管理;订餐;Springmvc
DesignandImplementationofRestaurantOrderingSystem
ComputerScienceandTechnologyMajor LIXiao
Abstract:
Thetraditionalrestaurantmealneedsofcustomerswaitingforalongtime,andinefficient.Restaurantmealssystemdesignedfortheanalysisofthisissue.Thesystemusesobject-orienteddevelopmentmethodology,theuseofspringmvcMd5encryptionframeworkandprinciples,theuseofjavalanguagerestaurantorderingsystem,developedaflexibleandefficientsystemsofdifferentfunctionalbackgroundmanagementandfront-orderingadifferentuseractions.Thesystemusesanetwork,toprovidepeoplewithconvenientonlineordering,savetime,improveefficiency,andgreatdevelopmentspace.
Keywords:
Management;Rreservation;Springmvc
目 录
1绪论1
1.1研究背景1
1.2研究的目的和意义1
1.3可行性分析1
2系统总体分析2
2.1系统分析的原则2
2.2系统体系结构设计2
2.3系统功能分析3
2.3.1后台运营功能分析3
2.3.2前台应用功能分析3
2.4系统功能4
2.4.1后台管理结构图4
2.4.2前台客户端流程5
2.4.3用例图6
2.4.4E-R图7
3数据库设计8
3.1数据库的设计原则8
3.2数据库连接设计8
4系统实现14
4.1后台运营主要功能模块的实现14
4.2前台客户端主要功能模块的实现19
5系统安全性设计22
6网上订餐系统测试23
6.1测试的目的23
6.2测试的技术24
6.3测试的内容24
6.4测试的结果24
结论及尚存在的问题25
参考文献26
致谢27
1绪论
1.1研究背景
随着互联网的发展,网络的全球化,科技的突飞猛进,我们的生活已离不开网络通信,计算机也已经普及到我们经济和社会的各个领域。
人们利用网络交流的广度和深度不断增加,这种现状促使各行各业服务和管理发展,只有跟得上时代的步伐才能进步和发展。
由于网络的广泛应用,电子商务得到了极大发展和普及。
餐饮行业在电子商务的初成时期,大都是也实际门面方式进行交流和宣传的。
然而现在餐饮随着网络科技的发展已逐渐迈向电子化,通过计算机管理餐饮的事务,更加高效化,简单化。
餐饮的网络化不仅节约了人们大量的时间,给了人们更多的选择,也节省了工作人员的劳动时间,有效,同时为餐饮行业带来巨大利润。
点餐系统的开发将已最体贴的方式,最灵便的方式进入人们的生活。
1.2研究的目的和意义
二十一世纪随着科技的发展,社会的进步,百姓生活水平上升,互联网已普及到了千家万户,加上人们生活节奏的逐渐提高,为了节省更多的时间等等,这一系列条件为订餐商务的发展创造了有利的发展空间,因此订餐的实用性和未来的发展潜力是无法估量的。
在这个高节奏的生活中,网络订餐系统为繁忙的人们提供了诸多方便,节约了大量的时间,促进了社会的发展。
二十一世纪,能够把握住机遇,能有创新应用,能够掌控未来发展的方向,就能成为成功者,成为时代的缔造者。
直观、有效的便捷有效的网上订餐服务是手机订餐无法取代的。
随着互联网的发展网络订餐会被广大人民群众喜爱,并且将会为企业带来无法估量的收益。
在互联网还未兴起的初期,而传统餐饮饭店大都以发传单,人力宣传,实际的门面形式进行宣传的。
作为互联网不断普遍化的世纪,餐饮业是多样化,个性化的服务产业,不得不说互联网是一种很好的商务工具,很好地体现了餐饮多样化,个性化。
互联网使餐饮以一种更加灵便的方式、更加体贴的服务进入人们生活,走进各个社区。
时代是进步的网络订餐的发展是社会无法阻挡的潮流。
1.3可行性分析
可行性分析最主要的目的是系统在最初阶段,通过判断系统是否可现实或者值的实现某些功能问题进行调查,以免在花费大量物力和人力后才发现默写功能实现的没有意义或者引起资源浪费,所以可行性分析就是为了在付出最小代价和时间内完成系统。
本文从技术方面、经济方面和法律三个方面分析了可行性。
(1)技术可行性。
本系统采用的面向对象的开发方法,将现实世界的复杂问题
简单,将实体对象从现实世界抽取出来,然后通过协作关系将实体对象关联在一起,从而达到系统全面的正常运行。
(2)经济可行性。
随着互联网的发展,电脑普及为人们网上购物提供极大方便,商家从中汲取利润,两全其美。
因此人们不用出门便可以在网上订餐系统上购买自己喜爱的美食,节约大量人力物力,所以构建网上餐馆订餐系统在经济上完全可行。
(3)法律可行性。
本系统是由本人独自开发,没有使用他人的任何软件及方法,所以在法律上不存在侵权问题。
2系统总体分析
2.1系统分析的原则
通过对子系统的系统控制功能模块的分析,为了达到预期目标,在进行开发和设计的过程中需要遵循以下几个原则:
经过对订餐系统功能模块的分析,在开发中需谨记以下规则:
(1)正确性
在进行对数据进行增删改查的工程中不允许以下情况的出现:
因为程序问题出现Bug导致操作无法进行;出现数据增加或者重复的情况;出现数据多删除的情况;有关联数据未清除干净情况。
(2)可使用性
后台运营可以安全快速实现管理员的登陆注册以及菜色管理添加等功能;前台应用可以安全准确实现用户登录、评论、查询、购物等前台功能。
(3)保密性
不同用户操作系统可以实现不同功能,例如前台用户登陆后只允许查看本人订单记录。
只有具备管理员权限才能管理后台系统。
(4)灵活性
当购物车的物品被取消或者已购买后,系统应该将购物车中的物品自动删除。
2.2系统体系结构设计
通过长时间需求分析之后,查询了大量资料,访问了现有餐馆点餐系统后。
本订餐系统设计并分析出了两大部分:
一、后台运营,二、前台客户端设计。
后台运营主要是功能有:
餐品分类,餐馆管理,餐品推送,订单管理等几个模块。
前台客户端设计主要包括:
餐品条件检索、餐品详情、餐品评论、购物车添加,订单预定等主要模块。
2.3系统功能分析
2.3.1后台运营功能分析
后台运营主要从管理员角度分析一系列功能,以下是管理员登陆后台之后可操作的主要功能:
(1)餐馆管理功能
有管理员权限的用户可以在后台,添加不同地区的餐馆,此功能主要是为了推出餐品做准备,例如:
美味川湘这道菜出自河南南阳新野县湘村大灶房餐馆。
(2)餐品分类管理功能
此功能主要为餐品分类做准备,例如:
重庆火锅属于火锅分类。
餐品分类添加:
管理员只需输入相应的分类名称即可推出新的分类。
餐品分类删除:
管理员并未真的删除分类信息,只是将其状态改为不可用。
餐品分类修改:
进入只需将其名称修改即可。
餐品分类检索:
通过输入分类名称可以模糊查询的管理员所需信息。
(3)菜色管理功能
添加餐品:
通过该功能,管理员可以填写餐品的信心,比如:
餐品名,餐品促销价,单价,发布日期,所属餐馆,所属分类,以及餐品介绍等等,之后可以添加一系列餐品图片。
提交后即可推出新餐品记录。
更新餐品:
管理员可以根据将餐品信息修改,来完善餐品信息,使其更加准确。
删除餐品:
对下架产品要做的是修改其启动项,并未真正删除此项产品,以便日后更加准确查询餐品信息。
餐品根据条件查询:
通过输入餐品条件信息管理员可进行检索,来显示所需餐品,本功能可以支持按不同餐馆,不同分类,价格区间,发布时间范围,销量以及餐品名模糊查询,按条件返回所有用户所需的餐品。
(4)订单管理功能
订单条件查询:
管理员可以根据订单号,订单产品名称,订单状态,订单创建日期范围,产品名称进行模糊查询
订单撤销:
比为真的撤销,只是将订单状态改变了一下,以便留下信息日后用。
2.3.2前台应用功能分析
前台客户端主要从游客和普通用户角度分析一系列功能,以下是用户可操作的主要功能:
(1)注册功能
游客注册为用户时,只需填写用户名,密码,电子邮箱,昵称。
电子邮箱的填写是为了后面验证码的收取以及密码的修改和找回,也是为了及时通知顾客新的消息。
(2)用户密码修改功能
用户可通过邮箱来修改密码,此功能是为了保证用户账户安全性,避免丢失或者被盗取信息。
(3)找回密码功能
用户同样可以通过邮箱验证码的方式将自己的密码找回,此功能可以避免用户因忘记密码账户不可用的情况。
(4)搜索菜色功能
搜索是一个重要的功能,是为了供用户更加方便找到自己想要的菜色,用户可以餐馆在地关键词或者餐馆名关键词称进行检索,也可以通过价格范围分类进行搜索,同时也可通过销售量、发布时间进行排序。
(5)菜色详情功能
进入菜单详细页,用户可以浏览菜色评论,相关介绍,价格,评论,所在地地理位置等等。
按照自己喜好进行购买或加入购物车。
(6)订单处理功能
用户生成订单后在未完成支付前可以对订单进行删改华操作。
(7)购物车添加
用户登陆后可以将自己要购买的物品加入购物车,可以对购物车的物品进行删改。
(8)菜色评论功能
用户登陆后可以评论菜色并且可以回复其他人对菜色评论。
2.4系统功能
2.4.1后台管理结构图
此结构图主要要描述了后台管理员可操作的功能,管理员登陆后可以进行用户管理(添加不同权限的用户,更新用户,浏览用户,根据不同条件查询相关用户),订单管理(订单状态更新,根据条件浏览订单),餐品分类管理(添加新的从那品分类,更新餐品分类,根据条件浏览从餐品分类),餐馆管理(添加新的餐馆,更新餐馆,根据条件浏览餐馆)。
在餐品分类和餐馆的基础上,管理员可以推出新的餐品,也可以对餐品进行更新,浏览等操作,在餐品管理的基础上,也可以对现有的餐品进行添加图操作,本图为表示出来,在此作简单那说明。
根据每一个已推出餐品,可以进一步对他们进行添加图片操作。
如图2-1所示
图2-1系统管理员参与的结构图
2.4.2前台客户端流程
首先进入首页,游客/登录用户可以选择要进行点餐的地区,然后进入相应地区的餐品浏览页,在此页面用户可以选择满意的价格区间,或者选择该省市的区县来进行订餐,也可以按照价格、销量、发布时间进行排序。
客户选择了满意的商品后进入商品详情页,可以更详细了解该餐品。
之后已登录用户可以进行添加购物车或者直接预订该餐品,游客则要进行登录重新进行首页选择。
用户预定餐品可以选择支付方式,然后生成订单。
流程图如图2-2所示
图2-2前台客户端流程图
2.4.3用例图
点餐系统用例图图主要从管理员角度,和普通用户角度分析的。
1)作为管理员,为了方便管理,其主要功能有:
餐品分类管理,餐馆管理,餐品管理,订单管理,用户管理。
●用户管理主要负责添加不同权限的用户,更新用户,浏览用户,根据不同条件查询相关用户
●订单管理主要负责订单状态更新,根据条件浏览订单
●餐品分类管理主要负责添加新的菜品分类,更新餐品分类,根据条件浏览餐品分类等。
●餐馆管理主要负责添加新的餐馆,更新餐馆,根据条件浏览餐馆。
●餐品管理主要负责在餐品分类和餐馆的基础上,管理员可以推出新的餐品,也可以对餐品进行更新,浏览等操作,也可在已推出的餐品基础上进行餐品图片的添加。
下面通过管理员用例图进一步来进行解释和介绍,如图2-3所示
图2-3管理员用例图
2)作为普通用户,其主要功能有:
●选择地区浏览餐品
●根据条件搜索餐品
●查看餐品详情添加购物车
●添加订单功能
下面通过用户用例图进一步来进行解释和介绍,如下图2-4所示
图2-4用户用例图
2.4.4E-R图
通过分析点餐系统E-R图,可以了解各个model之间的关系。
用户可以预订多个订单,但是一个订单那只对应一个用户,所以用户和订单是一对多的关系;用户买卖餐品,所以关系为多对一关系。
一个餐品只属于一种分类,所以餐品和分类关系为多对一关系。
一个餐品只属于一个餐馆,一个餐馆里可以有多个餐品,所以餐品和餐馆的关系属于多对一关系。
如图2-5所示
图2-5点餐系统E-R图
3数据库设计
数据库设计的系统的开发和实施是可以提高系统整体的运行效率的一个合理结构的数据库的重要环节,并可以缩短系统的开发时间。
该系统主要用作为Mysql数据库。
3.1数据库的设计原则
在数据库的设计中,本系统按照以下原则进行设计,以尽量满足系统的要求。
1.数据库中数据的可操作性
在整个数据库设计过程中需要注意的是,除了确保系统运行和操作,该数据库可容易地访问和查询外,还需要考虑到的响应时间要尽量保存数据库操作中,数据库尽可能以提高响应于服务请求程序和数据库设计速度。
2.数据库设计的准确性和完整性
在数据库程序设计过程中,为了满足对在数据内容使用的数据和存储程序的要求的设计数据,需要严格精确的数据和相应的数据类型。
而数据库设计到详细注释关键数据,是为了方便系统设计者的发展。
3.数据库冗余性
过多的冗余数据,将大大增加数据库的工作量,减少响应时间和数据库的准确性。
因此提高数据库性能的一个非常重要的方面是:
减少或消除冗余数据库中的信息,通过减少冗余数据,以使标准化过程。
3.2数据库连接设计
本系统为了方便连接数据库把连接数据库文件保存在app-context.xml中,为了保持系统和数据库一致性在context.xml中配置数据库连接池
在app-context.xml有关数据库的相关代码:
value="classpath:
com/meal/mybatis-Configuration.xml">
在context.xml中连接数据池的相关代码:
auth="Container"
type="javax.sql.DataSource"
username=""
password=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:
mysql:
//localhost:
3306/booking_meal?
characterEncoding=UTF-8"
maxActive="100"
maxIdle="20"
maxWait="5000"
validationQuery="select1"/>
3.3数据库表格设计
数据字典是系统中各类数据描述的集合,其中规定了每个字段的字段名称,数据类型,长度,主键等基本信息。
有时为了方便,在设计数据库时会有意增加一些数据冗余,对与本系统中出现的数据,用以下数据字典做详细描述如下表所示。
数据字典是各种类型的系统数据的描述中,提供对于每个数据类型,字段,主键,长度等基本信息的集合。
有时为了方便,在该数据库的设计将有兴趣在增加数据冗余的数量,显示在该系统中的数据,做出以下示出这些数据字典表的详细描述。
1.表名:
account
account表为用户信息表,用于存储用户的基本信息,主要属性包括用户名ID,昵称,电子邮件,账户密码,用户权限,是否启用等等。
如表3-1所示
表3-1用户信息表
名
类型
长度
小数点
允许为空
主键
id
bigint
20
0
不允许
主键
nickName
varchar
50
0
不允许
--
email
varchar
50
0
不允许
--
password
varchar
50
0
不允许
--
user_limit
int
2
0
不允许
--
on_use
int
2
0
不允许
--
create_by
varchar
50
0
不允许
--
create_time
datetime
0
0
不允许
--
update_by
varchar
50
0
允许
--
update_time
datetime
0
0
允许
--
2.表名:
areas
areas表为省市区表,用于存储省市区的基本信息,包括区域ID,父及区域parent_id,区域名字,区域等级(国家0省级和直辖市1市级2区3)。
如表3-2所示
名
类型
长度
小数点
允许为空
主键
id
bigint
20
0
不允许
主键
parent_id
bigint
20
0
不允许
--
name
varchar
120
0
不允许
--
type
int
2
0
不允许
--
表3-2省市区表
3.表名:
category
category表为餐品分类表,用于菜色的基本信息,包括菜色分类ID,菜色分类名字,是否启用。
如表3-3所示
表3-3餐品分类表
名
类型
长度
小数点
允许为空
主键
id
bigint
20
0
不允许
主键
name
varchar
50
0
不允许
--
on_use
int
2
0
不允许
--
create_by
varchar
50
0
不允许
--
create_time
datetime
0
0
不允许
--
update_by
varchar
50
0
允许
--
update_time
datetime
0
0
允许
--
4.表名:
restaurant
restaurant表为餐馆表,用于餐馆的基本信息,包括餐馆ID,餐馆名字,餐馆封面图片,餐馆所属省市区,详细地址,是否启用,餐馆对应的封面图片。
如表3-4所示
表3-4餐馆表
名
类型
长度
小数点
允许为空
主键
id
bigint
20
0
不允许
主键
name
varchar
50
0
不允许
--
image_id
bigint
20
0
允许
外键
description
varchar
2000
0
允许
--
on_use
int
2
0
不允许
--
create_by
varchar
50
0
不允许
--
create_time
datetime
0
0
不允许
--
update_by
varchar
50
0
允许
--
update_time
datetime
0
0
允许
province_id
bigint
20
0
不允许
外键
city_id
bigint
20
0
不允许
外键
region_id
bigint
20
0
不允许
外键
detail_adress
varchar
2000
0
不允许
--
5.表名:
dish
dish表为餐品表,用于菜色的基本信息,包括餐品ID,餐品名字,餐品类型,餐品对应的餐馆,已经售出的数量,发布的时间和过期的时间,菜的促销价,单价,菜色描述,是否启用。
如表3-5所示
表3-5餐品表
名
类型
长度
小数点
允许为空
主键
id
bigint
20
0
不允许
主键
dishCode
varchar
50
0
不允许
--
name
varchar
50
0
不允许
--
category_id
bigint
20
0
不允许
外键
restaurant_id
bigint
20
0
不允许
外键
num
int
11
0
不允许
--
start_time
datetime
0
0
不允许
--
end_time
datetime
0
0
不允许
--
promotion
decimal
10
2
不允许
--
unit
decimal
10
2
-不允许
--
description
varchar
2000
0
允许
--
on_use
int
2
0
不允许
--
create_by
varchar
50
0
不允许
--
create_time
datetime
0
0
不允许
--
update_by
varchar
50
0
允许
--
update_time
datetime
0
0
允许
--
status
int
2
0
不允许
--
6.表名:
order_product_relation
order_product_relation表为订单商品关系表,包括餐品ID,订单号,商品价格,商品数量,商品创建的时间等一系列信息。
如表3-6所示
表3-6订单商品关系表
名
类型
长度
小数点
允许为空
主键
id
bigint
20