淘宝网页设计报告.docx
《淘宝网页设计报告.docx》由会员分享,可在线阅读,更多相关《淘宝网页设计报告.docx(28页珍藏版)》请在冰豆网上搜索。
淘宝网页设计报告
淘宝网页设计报告
长治学院
课程设计报告
课程名称:
软件工程课程设计
设计题目网上购物系统——淘宝网的设计
系别计算机系
专业计算机科学与技术
班级计科1201班
学生姓名赵敏学号12407146
起止日期2015.7.9~2015.7.15
指导教师郭咏梅
2.1数据分析
淘宝网上购物系统,用户主要有两类,分别是管理员和会员的需求。
会员可以浏览待售商品、购买商品然后形成订单及修改账号信息;管理员对系统的需求相对较为复杂,包括对于自身账户信息修改、管理会员账户信息、管理待售商品信息以及商品上架等。
该系统主要设计的实体及其属性如下:
Ø会员(会员名,密码,性别,真实姓名,详细地址,E-mail,邮编);
Ø商品(商品名,编号,简介,品牌,重量,市场价格,会员价格,进货时间);
Ø管理员(编号,管理员名,管理员密码);
Ø订单(编号,下单时间,收货人姓名,收货人详细地址,会员ID);
2.2对象分析(建立对象模型)
本系统有五个类,分别为用户类(user),新闻类(news),商品类(product),订单类(order)以及评价类(comment),用户可以通过淘宝网系统查看新闻、商品还可以购买商品,下订单,评价商品等等。
图6淘宝网系统类图
2.3淘宝网系统功能分析(建立功能模型)
2.3.1前台功能
本模块主要完成商品详情页面和留言管理页面
图7前台功能用例图
2.3.2后台功能
本模块主要完成留言管理的增删查改
图8后台订单管理用例图
2.4淘宝网系统状态转换分析(建立行为模型)
管理员登录成功以后,可以在留言列表中增加、修改、删除留言。
图9添加留言顺序
图10删除留言顺序
图11修改留言顺序
2.5淘宝网系统性能分析及其它分析
2.5.1用户界面需求
简洁、易用、易懂,美观、大方、标准,具备一定的兼容性。
2.5.2软件性能需求
易用、健壮、兼容性好、运行稳定、有一定安全保障。
2.5.3软件安全要求
在结算环节,必须保障资金的安全。
3淘宝系统概要设计
3.1数据库设计
设计各表的结构
表3EASYBUY_PRODUCT_CATEGORY表
列名
数据类型
允许空值
EPC_ID
int
Unchecked
EPC_NAME
varchar(20)
Unchecked
EPC_PARENT_ID
int
Unchecked
表4EASYBUY_PRODUCT表
列名
数据类型
允许空值
EP_ID
int
Unchecked
EP_NAME
varchar(20)
Unchecked
EP_DESCRIPTION
varchar(100)
Checked
EP_PRICE
float
Unchecked
EP_STOCK
int
Unchecked
EPC_ID
int
Checked
EPC_CHILD_ID
int
Checked
EP_FILE_NAME
varchar(200)
Checked
表5EASYBUY_ORDER_DETAIL表
列名
数据类型
允许空值
EOD_ID
int
Unchecked
EO_ID
int
Unchecked
EP_ID
int
Unchecked
EOD_QUANTITY
int
Unchecked
EOD_COST
float
Unchecked
表6EASYBUY_ORDER表
列名
数据类型
允许空值
EO_ID
int
Unchecked
EO_USER_ID
varchar(10)
Unchecked
EO_USER_NAME
varchar(20)
Checked
EO_USER_ADDRESS
varchar(200)
Checked
EO_CREATE_TIME
datetime
Unchecked
EO_COST
float
Unchecked
EO_STATUS
int
Unchecked
EO_TYPE
int
Unchecked
3.2淘宝网系统结构设计
分析系统分解为几个模块,说明每个模块的功能,画出系统层次结构图
系统共分为注册模块、登录模块、购物车模块、用户管理模块、商品管理模块、留言管理模块、新闻管理模块、订单管理模块等
注册模块:
为用户提供淘宝网的注册功能;
登录模块:
为用户提供登录淘宝网以便购物的功能;
购物车模块:
为用户提供选择商品及统一结算功能;
用户管理模块:
为管理员提供对用户的管理功能;
商品管理模块:
为管理员提供对商品的入库等管理功能;
留言管理模块:
为用户提供方便的评价商品的途径;
新闻管理模块:
为管理员提供发布新品及促销的途径;
订单管理模块:
为用户及管理员提供便捷的买卖方式。
3.3包设计
系统共有5个包,分别是
common包放置一些与服务器相同的类;
dao.impl包放置一些操作数据库的类;
entity包放置一些工具类;
service.impl包放置一些类,其作用是把操作数据库的类和客户端别的类分开,有利于程序的可塑性;
servlet包放置一些类,用于界面与后台的衔接。
4淘宝网系统详细设计
4.1连接数据库
4.2淘宝网界面设计
4.3淘宝网系统的类中服务的算法设计
在购物这整个过程中,留言管理模块对留言有增加、删除、修改、查找的权利,增加流程图如下:
图13留言增加流程图
图14留言删除流程图
5淘宝网系统测试
常用的测试方法有白盒测试和黑盒测试。
测试的基本步骤分为单元测试、组合测试、确认测试和系统测试。
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
显示测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。
在此使用白盒测试中的路径覆盖方法。
5.1淘宝网系统留言查询模块测试
通过显示测试方法,我测试了留言列表中是不是可以显示数据库中的所有留言,下图是部分留言,其结果证明留言列表可以正常使用,能满足我们的需求。
5.2淘宝网留言修改模块测试
通过显示测试方法,我测试了留言管理中的留言的状态是不是可以修改。
打开留言管理,选中一留言,修改其为审核通过,其结果证明留言可以修改,能满足我们的需求。
6淘宝网系统总结
我们所开发的系统还有很多的不足之处在订单查询的功能实现的不是很顺利,有一点问题需要慢慢的去改进。
只实现了以下几个功能:
卖家登录成功后,可以对商品进行管理,同时卖家可以浏览所有已经上传的商品;没有注册的用户可以注册;已经注册的用户可以输入账号名和密码进行登录,登录后可以给购物车中添加。
而且用户可以浏览已经存在于购物车中的商品项目,可以更改购物车中的商品数量,也可以对其进行删除操作,同时也可以对选中的商品进行价格的结算消费。
在做此系统时充分体现了团队的合作精神,成员之间配合起来默契,做起来相对比较轻松。
通过本次开放让我对自己的计算机技术水平有了一定的认识,而且也懂得了计算机实际操作的重要性,以后要加强这一方面的提高。
参考文献
[1]萨师煊,数据库系统概论(第四版),北京:
高等教育出版社,2000.
[2]赵德奎,《JSP实用案例教程》,清华大学出版社
[3]王建玉,基于JSP的动态网站开发技术[N].计算机世界
[4]邓娟,JSP数据库访问技术研究[J].科技资讯
附录(主要程序代码)
留言管理
packagedao.impl;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.List;
importdao.BaseDao;
importdao.CommentDao;
importentity.Comment;
publicclassCommentDaoImplextendsBaseDaoimplementsCommentDao{
@Override
publicListgetAllComment(){
Listlist=newArrayList();
Connectionconn=null;
PreparedStatementps=null;
ResultSetrs=null;
Stringsql="select*fromEASYBUY_COMMENT";
conn=getConn();
try{
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
Commentc=newComment(rs.getInt
(1),rs.getString
(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6));
list.add(c);
}
}catch(SQLExceptione){
e.printStackTrace();
}finally{
closeAll(rs,ps,conn);
}
returnlist;
}
@Override
publicintaddComment(Commentc){
inti=0;
Connectionconn=null;
PreparedStatementps=null;
Stringsql="INSERTINTOEASYBUY_COMMENTvalues(?
GETDATE(),null,null,?
)";
conn=getConn();
try{
ps=conn.prepareStatement(sql);
ps.setString(1,c.getContent());
ps.setString(2,c.getNickName());
i=ps.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
}finally{
closeAll(null,ps,conn);
}
returni;
}
@Override
publicintreplyComment(Commentc){
inti=0;
Connectionconn=null;
PreparedStatementps=null;
Stringsql="updateEASYBUY_COMMENTsetEC_REPLY=?
EC_REPLY_TIME=GETDATE()whereEC_ID=?
";
conn=getConn();
try{
ps=conn.prepareStatement(sql);
ps.setString(1,c.getReply());
ps.setInt(2,c.getID());
i=ps.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
}finally{
closeAll(null,ps,conn);
}
returni;
}
@Override
publicintdeleteComment(intid){
inti=0;
Connectionconn=null;
PreparedStatementps=null;
Stringsql="DELETEFROMEASYBUY_COMMENTWHEREEC_ID=?
";
conn=getConn();
try{
ps=conn.prepareStatement(sql);
ps.setInt(1,id);
i=ps.executeUpdate();
}catch(SQLExceptione){
e.printStackTrace();
}finally{
closeAll(null,ps,conn);
}
returni;
}
@Override
publicCommentgetCommentById(intid){
Commentc=null;
Connectionconn=null;
PreparedStatementps=null;
ResultSetrs=null;
Stringsql="select*fromEASYBUY_COMMENTwhereEC_ID=?
";
conn=getConn();
try{
ps=conn.prepareStatement(sql);
ps.setInt(1,id);
rs=ps.executeQuery();
while(rs.next()){
c=newComment(rs.getInt
(1),rs.getString
(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6));
}
}catch(SQLExceptione){
e.printStackTrace();
}finally{
closeAll(rs,ps,conn);
}
returnc;
}
@Override
publicintgetCommentCount(){
intcount=0;
Connectionconn=getConn();
PreparedStatementps=null;
ResultSetrs=null;
Stringsql="selectCOUNT(*)fromEASYBUY_COMMENT";
try{
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
count=rs.getInt
(1);
}
}catch(SQLExceptione){
e.printStackTrace();
}finally{
closeAll(rs,ps,conn);
}
returncount;
}
@Override
publicListgetCommentByPageSizeAndPageIndex(intpageSize,
intpageIndex){
Listclist=newArrayList();
Connectionconn=getConn();
PreparedStatementps=null;
ResultSetrs=null;
Stringsql="selecttop(?
)*fromEASYBUY_COMMENTwhereEC_IDnotin(selecttop(?
)EC_IDfromEASYBUY_COMMENTorderbyEC_CREATE_TIMEdesc)orderbyEC_CREATE_TIMEdesc";
try{
ps=conn.prepareStatement(sql);
ps.setInt(1,pageSize);
ps.setInt(2,(pageIndex-1)*pageSize);
rs=ps.executeQuery();
while(rs.next()){
Commentc=newComment(rs.getInt
(1),rs.getString
(2),rs.getString(3),rs.getString(4),rs.getString(5),rs.getString(6));
clist.add(c);
}
}catch(SQLExceptione){
e.printStackTrace();
}finally{
closeAll(rs,ps,conn);
}
returnclist;
}
}
商品详情
<%@pageimport="entity.User"%>
<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%>
<%
session.setAttribute("lp",session.getAttribute("p"));
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
淘宝网-首页
<%Useruser=(User)session.getAttribute("user");%>
$(document).ready(function(){
$("input[type=button]").click(function(){
if("${user}"==""){
alert("请先登录!
");
location.href="login.html";
}
});
$("a:
last").click(function(){
if("${user}"==""){
alert("请先登录!
");
location.href="login.html";
returnfalse;
}
});
});
<%@includefile="Header.jsp"%>
您现在的位置:
淘宝网>商品分类>商品