网上花店系统设计.docx
《网上花店系统设计.docx》由会员分享,可在线阅读,更多相关《网上花店系统设计.docx(32页珍藏版)》请在冰豆网上搜索。
网上花店系统设计
软件工程课程设计报告
题目
网上花店系统
院系
计算机科学与技术
班级
13级计本2班
组长
组员
指导教师
一、目的、要求
通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。
具体如下:
1.学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;
2.熟悉自动化的软件开发工具Visio或者RationalRose,并将其运用于软件开发的全过程;
3.进一步加强和提高软件工程文档的编写能力;
4.培养协作能力和团队精神。
二、任务分配
任务
负责人
参与人
备注
需求分析
总体设计
详细设计
系统实现与测试
1网上花店系统分析
1.1编写目的
本章定制了网上花店系统设计与实现,本章的编写为下阶段的设计、开发提供依据,为项目组成员对需求的详尽理解,以及在开发过程中的协同工作提供强有力的保证。
系统分析要求必须了解系统所实现的功能,这个设计的好坏直接影响的后面的开发。
用户需求分析主要是了解用户的有哪些需求,本系统主要是实现用户网上够花需求。
只有了解了需求分析才能进行系统的开发,否则就会事倍功半,达不到我们预期的效果,因此需求分析是至关重要的。
1.2参考文档
《软件工程导论》
1.3项目背景
1.3.1项目市场背景
互联网以前所未有的速度发展,成为与报纸、广播、电视相比肩的第四媒体,同时正以其更捷的信息传输形式改变这人们的消费模式,利用简单、快界、低成本的电子通信方式,买卖双方不谋面就可以进行各种商贸活动,走向商业的互联网已经成为网络经济的大势所趋。
眼下电子商务网站正如雨后春笋般大量涌现,企业网络化已经一种时尚。
电子商务的发展可能大家都已经耳濡目染,上网的朋友对这已经不再陌生,电子商务确确实实出现在我们周围。
本系统是一个在线花店系统,具有在线先手鲜花的基本功能。
同过配置,可以作为一个实际应用的鲜花销售网站。
本系统是为传统经营的花店构建网上销售渠道而开发的。
调研目前现有的网上购物系统,淘宝、天猫、京东、当当网,我们了解到,目前没有专门的网站进行花卉销售,所以我们旨在打造一个全网性价比最高、提供最完整服务的网上花店系统。
本系统是一个相对简单的基本应用系统,主要满足传统的花店运营需要,将自己的销售渠道扩展到网上,通过简单的管理,提供给最终消费者产品的展现、购物、订单处理等一实现鲜花在线销售。
通过本系统可以管理简单的在线销售模式、满足用户随时查询产品信息,随时下单购物的应用需求。
由于本系统考虑到产品的适应性、安全性和访问效率,所以,在系统平台多样性、技术先进性、功能适应性和灵活性等方面都有考虑,使系统相对完善。
1.3.2项目组织
项目名称:
网上花店系统
项目来源:
课程设计
技术体系:
开发语言:
Java
数据库:
MySQL
开发工具:
MyEclipse8.6
操作系统:
windows系列tomcat系统
语言:
Java
开发周期:
2016.5.25-2016.6
1.4系统需求分析
网上花店是指利用互联网络来实现花卉销售业务的一种新型花卉零售渠道。
网上花店订单处理速度快,服务范围宽,顾客坐在家里就可以“逛花店”。
本系统主要从用户、管理员两个方面进行需求分析。
1.4.1用户功能分析
(1)账户管理:
主要包括注册,登录,修改个人资料的功能。
(2)个人中心:
功能主要包括三个部分:
1)浏览查询商品;
2)查询自己的交易记录;
3)管理自己的购物车,并修改部分信息。
4)提交订单并支付,将订单信息存档
(3)商品搜索:
1)字节搜索:
可以通过花品名称、花品价格区间精确搜索。
2)分类搜索:
通过花品的科、目进行搜索。
(4)购物车:
主要功能包括顾客将商品加入购物车——>提交订单——>支付——>查看订单,3s内无操作自动跳转返回主页。
1.4.2管理员功能分析
(1)商品信息管理:
功能主要包括四部分:
1)删除商品信息
2)增加商品信息
3)查找商品信息
4)修改商品信息
(2)库存管理:
主要功能包括修改商品的存货数量。
(3)用户管理:
对用户提交的购物信息进行查看并记录。
(4)管理商品订单:
查看营业额以及花卉的销售排行,查看利润。
1.4.3系统性能分析
(1)准确性和及时性:
在性能上要保证系统的响应时间是客户可以接受的。
(2)易用性:
本系统是直接面对用户的,而用户往往对计算机并不一定非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面,从而保证系统的易用性。
网上花店系统对用户在线查询,修改订单,删除订单以及管理员对用户信息的操作有较高的要求,用户可以根据自己的意愿随时修改以及删除所提交的订单,同时本系统也实现了对注册用户的信息管理,以及注册用户所提交的订单的管理,管理员可以查询所注册的所有用户的个人信息以及对一些订单的查询和删除,所以整个系统应该性能良好、安全可靠。
此外系统应当操作简便,界面友好,维护简便。
数据库要求运行速度快,稳定性高,安全可靠。
1.5系统的设计目标
网上花店系统代替了原来的手工操作,从而快速、准确地对消费者及花卉等各种信息进行管理和维护。
具体有四个目标:
(1)实现规范化、专一的网上花店购物平台;
(2)支持高效率的完成花店日常工作的运行,其中有商品入库,用户信息建立、用户查询商品等方面的维护更新工作;
(3)使广大用户更加方便快捷的进行商品查询、购买商品;
(4)网上花店工作的计算机化,各种商品信息可以通过计算机快速、准确的增加、修改、删除、查询。
使管理员对所有用户信息和商品信息的基本概况一目了然,便于管理。
1.6系统用例分析
系统开发的总体任务如下:
1.6.1用户功能模块
(1)商品信息查询模块:
用户对所需商品搜索、查看、咨询;
(2)订单提交模块:
主要是处理用户的订单提交问题;
(3)订单查询模块:
用户可以自己查看以往订单记录;
(4)订单修改模块:
用户可以随时修改订单、取消订单;
(5)订单删除模块:
用户可以删除订单记录。
1.6.2管理员管理模块
(1)商品信息管理:
主要是对商品的增加、修改、删除;
(2)订单信息查询:
查询用户所下订单信息;
(3)订单信息删除:
管理员可以根据特殊情况删除部分订单;
(4)用户信息管理:
管理员可以对用户购物信息进行查看。
1.6.3普通用户用例分析
普通用户,即前台顾客操作,主要有查询,管理购物车等功能,下面就是该系统所对应的前台顾客操作用例图。
图1-1用户前台操作用例图
1.6.4管理员用例分析
管理员,即后台管理模块,主要功能有增,删,改,查,管理商品订单等功能,下面就是该系统所对应的用例图。
图1-2管理员后台管理用例图
1.6.5总用例图
图1-3总用例图
1.6.6主要用例
表1-1管理员用例描述
用例名称:
管理员
参与者:
管理员
前置条件:
管理员成功登录系统后台
用例功能:
订单、用户、花品、信息的管理
事件流:
当管理员成功登录系统后台,弹出后台界面
异常事件流:
当管理员未登录或输入不合法的数据
后置条件:
系统无改变
表1-2用户注册用例描述
用例名称:
用户注册
参与者:
普通用户
前置条件:
用户未登录系统
用例功能:
主要用于用户注册个人信息,成为系统会员
事件流:
当用户进入注册页面
异常事件流:
当用户输入不合法的数据或该会员号已存在
后置条件:
系统无改变
表1-3会员订花用例描述
用例名称:
会员
参与者:
普通用户
前置条件:
会员成功登录系统
用例功能:
会员通过网上订花模块进行订花
事件流:
当会员登录系统后选择网上订花模块
异常事件流:
当会员未登录或输入不合法的数据
后置条件:
系统无改变
2网上花店系统设计
2.1总体设计
2.1.1系统数据流图设计
(1)用户流程图:
图2-1用户流程图
(2)管理员流程图:
图2-2管理员流程图
2.1.2系统模块
图2-3系统模块图
各模块的主要功能和职责如下:
(1)数据获取模块:
该模块的主要功能职责是将用户登录的内容转化为登录记录对象,将这些对象与输入的数据匹配进行登录完成模块。
该模块的输入数据是客户来完成的,输出数据由浏览端和服务端的接口来进行交互,并将数据交给服务端来进行下一步处理;
(2)数据匹配分析模块:
该模块的主要功能职责是将数据获取模块获取到的用户登录记录数据按照登录名、登录密码匹配成一个完整的登录记录,并若无匹配数据,则进行注册。
该模块的输入数据是原始的登录记录对象,输出数据是匹配好的登录记录对象;
(3)数据发送模块(服务器端):
该模块的主要功能职责是将客户请求信息,发送到服务端进行进一步响应以及处理;
(4)数据接收模块:
该模块的主要功能职责是从客户端发送来的数据进行获取处理,之后进入数据分析模块进行分析;
(5)数据发送模块(客户端):
该模块的主要功能职责是将客户请求信息的处理输出结果,发送到客户端,将结果呈献给浏览者;
(6)数据分析模块:
该模块得主要功能职责是将数据接收模块接收到的数据按照分析表进行匹配,将匹配的数据进行相应的处理;
(7)数据库模块:
该模块的主要功能职责是处理服务端的请求。
例如:
服务端需要添加或是查找数据,服务端与数据库的接口之间作为桥梁实现对数据库的操作以及对客户端的服务。
2.1.3接口设计
(1)外部接口
1)用户接口
用户界面,包含菜单、按钮、对话框等元素。
2)硬件接口
最低配置:
CPU P3 1.6GHz 内存 256M 硬盘 30G
(2)内部接口
1)初始化模块:
系统初始时由操作系统调用,之后进入消息循环状态。
2)关闭系统模块:
由系统功能模块调用,之后退出系统。
3)系统功能选择模块:
接受各事件驱动消息,启动入库数据录入模块、出库数据录入模块等模块。
4)入库数据录入模块:
由相应事件驱动消息激活,完成入库数据录入功能,之后进入消息循环状态。
5)出库数据录入模块:
由相应事件驱动消息激活,完成出库数据录入功能,之后进入消息循环状态。
6)库存查询模块:
由相应事件驱动消息激活,完成分类查询库存情况功能,之后进入消息循环状态。
7)信息分类汇总模块:
由相应事件驱动消息激活,完成相应分类对库存商品汇总统计打印报表的功能,之后进入消息循环状态。
8)库存详细信息管理模块:
由相应事件驱动消息激活,完成录入相应商品详细信息功能,之后进入消息循环状态。
9)密码管理模块:
由系统功能模块调用,完成密码管理功能。
10)身份验证模块:
由初始化模块调用,完成身份验证功能。
11)帮助模块:
由相应事件驱动消息激活,完成帮助功能,之后进入消息循环状态。
2.1.4出错处理设计
(1)系统应具有相当健壮性,避免或降低由系统错误所造成的数据库损坏。
(2)对关键性操作,如删除等提供警告和确认机制。
2.1.5安全设计
系统提供严格的身份验证机制和密码管理以及权限设置
2.1.6维护设计
系统严格按照设计规范进行设计,并保持各阶段文档的完整性,为以后对软件的维护打好基础
2.2系统功能设计
网上购花系统
前台功能模块设计
后台功能模块设计
浏览查询
用户注册
用户登录
管理员登录
后台管理
修改商品信息
删除商品信息
增加商品信息
管理商品订单
修改登录密码
管理购物车
退出登录
商品选购
查看交易记录
提交支付
删除商品
修改商品数量
增加商品
图2-4系统结构图
各模块功能介绍:
(1)浏览查询:
使用户进入页面不用登陆就可以浏览鲜花及信息。
(2)用户注册:
用户没有注册的时候,只能在主页上进行浏览,但想要下订单,就必须进行注册才能进行登录,最后才能购买商品。
(3)用户登录:
用户可以通过登录,输入用户名和密码查询自己的资料或其它相关信息,登陆以后可查看所有鲜花的信息和分类。
用户可以通过选择自己需要的商品进行下订单,在没有登录的情况下不能下订单。
(4)管理购物车:
主要有增加商品、删除商品以及修改商品数量等功能。
(5)商品选购:
用户在登录后可以通过选择自己需要的商品进行购买。
(6)提交支付:
用户在购买商品后进行的金额交易。
(7)查看交易记录:
用户可以通过查看交易记录查看订单编号、收货人、订单总金额、订单状态、下单时间以及订单详情。
(8)退出登录:
用户在完成交易后,可退出登录系统。
(9)管理员登录:
管理员可以通过登录管理后台系统。
(10)后台管理:
用于管理员增加新产品、删除已卖完商品、修改商品的信息、管理商品订单以及修该登录密码。
(11)管理商品订单:
在订单管理中可以批量查询所有订单,还可以通过订单号查询订单,这样可以及时送货。
2.2.1前台功能模块设计
(1)浏览查询:
用户对商品进行浏览,可以对商品按分类、价格查询,当查到相关产品时,在页面显示出来。
图2-5用户浏览查询商品流程图
(2)用户注册:
用户填写信息,信息有登录名、用户名、密码、性别以及电话。
图2-6用户注册流图
(3)用户登录:
当用户输入用户名和密码后,先判断用户名和密码是否为空,为空则提示出错信息,若不为空则读取数据库中的管理员或者用户的用户名和输入的用户名进行比较,若不存在此用户名则终止操作提示出错信息,否则判断密码与数据库中相应的密码是否一致,一致则允许进入后台,不一致则终止操作。
开始
输入登录名
登录名为空
输入密码
密码错误或为空
结束
Y
N
N
Y
登录
重置
N
Y
图2-7用户登录流程图
(4)商品选购:
用户在登录后可以通过选择自己需要的商品进行购买。
图2-8商品选购流程图
2.2.2后台功能模块设计
(1)系统管理员登录:
当管理员输入用户名和密码后,先判断用户名和密码是否为空,为空则提示出错信息,若不为空则读取数据库中的管理员或者用户的用户名和输入的用户名进行比较,若不存在此用户名则终止操作提示出错信息,否则判断密码与数据库中相应的密码是否一致,一致则允许进入后台,不一致则终止操作。
图2-9系统管理员登录流程图
(2)商品订单管理:
商品订单管理是为了更好的管理订单资料,查询订单而单独设置的页面,管理员可以及时查询订单,完成交易,以免耽误送货时间,影响公司的服务质量。
开始
输入订单编号
查询订单详情
输出订单详情
结束
图2-10商品订单管理流程图
2.3数据库设计
数据库的需求分析主要是数据库和数据库表的建立,该系统中需要存储那些数据,都是在这个设计中实现,它们的详细实现过程如下:
2.3.1数据库需求
WEB应用跟踪和管理用户的订单,对于那些需要持久保存的信息,以及数据量比较大的数据必须通过数据库来进行存储。
数据库适合存储那些需要持久保存的信息,并且提供很好的方式进行查询,插入,修改和删除。
网上订花是面向庞大用户的信息化产品,MySQL是一个真正的多用户、多线程SQL数据库服务器,它是一个客户机/服务器结构的实现。
MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点,MySQL主要目标是快速、健壮和易用。
因此本系统选择MySQL作为数据库。
2.3.2主要的E-R模型
ER模型[EntityRelationshipModel]是一种叫做实体联系模型的简称,它是以图形的方式表现的,又被称作实体联系图,ER模型是人们描述数据及其联系的概念数据模型,是数据库应用系统设计人员和普通非计算机专业用户进行数据建模和沟通与交流的有力工具,使用起来直观易懂,简单易行,ER模型是一种用图形表示数据及其联系的方法,所使用的图形构件(元件)包括矩形、菱形、椭圆形和连接线。
主要的ER模型图如下:
管理员可以管理用户的各个信息,设计的ER模型如下:
图2-11管理员与用户模型
管理员可以管理订单的各个信息,设计的ER模型如下:
图2-12管理员与订单模型
管理员管理花卉信息,设计的ER模型如下:
图2-13管理员与花卉信息模型
用户可以填写订单并提交订单,设计的ER模型如下:
图2-14用户与订单模型
2.3.3数据库表结构设计
1)管理员表,主要用于管理用户及用户的订单等,表结构如表2-1所示:
表2-1管理员表
字段意义
字段名
字段类型
非空
默认值
主键
备注
订单编号
odid
BIGINT
√
序列
√
订单详情编号
orderid
VARCHAR
√
花的编号
rosecode
VARCHAR
√
数量
number
VARCHAR
2)用户表,主要用于存储用户的注册信息,表结构如表2-2所示:
表2-2用户表
字段意义
字段名
字段类型
非空
默认值
主键
备注
用户ID
userid
BIGINT
√
序列
√
登录密码
password
VARCHAR
√
用户姓名
username
VARCHAR
联系电话
tel
VARCHAR
√
注册时间
regtime
VARCHAR
性别
sex
VARCHAR
3)订单表,主要用于用户的订单资料的存储,表结构如表2-3所示:
表2-3订单表
字段意义
字段名
字段类型
非空
默认值
主键
备注
订单ID
orderid
BIGINT
√
序列
√
标语
remark
VARCHAR
下单时间
ordertime
VARCHAR
√
总价
totalprice
FLOAT
用户ID
userid
BIGINT
√
用户名
tousername
VARCHAR
√
联系电话
tousertel
VARCHAR
√
送货地址
tourseadders
VARCHAR
√
4)花卉表,主要用于花卉信息的存储,表结构如表2-4所示:
表2-4花卉表
字段意义
字段名
字段类型
非空
默认值
主键
备注
花卉code
rosecode
BIGINT
√
序列
√
花品名称
name
VARCHAR
材料
material
VARCHAR
√
花卉大小
size
FLOAT
√
花卉简介
meaning
VARCHAR
√
花卉价格
price
VARCHAR
折扣价格
cprice
VARCHAR
花卉数量
amount
BIGINT
类型
type
BIGINT
2.3.4数据库整体关系
图2-15数据库整体关系图
3网上花店系统实现
3.1系统环境
本系统实基于C/S模式的采用Java实现的网上花店系统设计
数据库管理软件:
mysql
编程工具:
myeclipse,tomcat
操作系统:
windows系列
语言:
Java
3.2数据库连接
数据库连接的主要代码:
//连接数据库
conn=DriverManager.getConnection(
"jdbc:
mysql:
//localhost:
3306/shopping?
useUnicode=true&characterEncoding=UTF-8&autoReconnect=true","root","123");
conn=this.getConn();
conn=DriverManager.getConnection(
"jdbc:
mysql:
//localhost:
3306/shopping"+
"?
useUnicode=true&characterEncoding=UTF-8&autoReconnect=true","root","123");
ps=(PreparedStatement)conn.prepareStatement(sql);
if(params!
=null&¶ms.length!
=0){
for(inti=0;ips.setObject(i+1,params[i]);
}
}
3.3前台模块的实现
(1)用户登录与注册主要代码:
<%--判断用户是否登录--%>
<%//从session中获取用户信息
Useruser=(User)session.getAttribute("user");
if(user!
=null){%>
#9933FF"><%=user.getUsername()%>
欢迎您!
退出
<%
}else{
%> <请登录,或者注册>
(2)分类商品的主要代码:
<%
inttype=Integer.parseInt(request.getParameter("type"));
if(type<=0){
%>red">
请到主页选择商品类型!
<%
}else{
RoseServicero=newRoseService();
Listroses=ro.slectRoseByType(typ)%>
(3)信息详情的主要代码:
<%
Stringrosecode=request.getParameter("rosecode");
RoseServicers=newRoseService();
Roserose=rs.roseLogin(rosecode);
%>
(4)购物车的主要代码:
MapcarMap=null;
//接收页面传入的数据