网上购物系统需求分析.docx

上传人:b****2 文档编号:2219077 上传时间:2023-05-02 格式:DOCX 页数:31 大小:2.69MB
下载 相关 举报
网上购物系统需求分析.docx_第1页
第1页 / 共31页
网上购物系统需求分析.docx_第2页
第2页 / 共31页
网上购物系统需求分析.docx_第3页
第3页 / 共31页
网上购物系统需求分析.docx_第4页
第4页 / 共31页
网上购物系统需求分析.docx_第5页
第5页 / 共31页
网上购物系统需求分析.docx_第6页
第6页 / 共31页
网上购物系统需求分析.docx_第7页
第7页 / 共31页
网上购物系统需求分析.docx_第8页
第8页 / 共31页
网上购物系统需求分析.docx_第9页
第9页 / 共31页
网上购物系统需求分析.docx_第10页
第10页 / 共31页
网上购物系统需求分析.docx_第11页
第11页 / 共31页
网上购物系统需求分析.docx_第12页
第12页 / 共31页
网上购物系统需求分析.docx_第13页
第13页 / 共31页
网上购物系统需求分析.docx_第14页
第14页 / 共31页
网上购物系统需求分析.docx_第15页
第15页 / 共31页
网上购物系统需求分析.docx_第16页
第16页 / 共31页
网上购物系统需求分析.docx_第17页
第17页 / 共31页
网上购物系统需求分析.docx_第18页
第18页 / 共31页
网上购物系统需求分析.docx_第19页
第19页 / 共31页
网上购物系统需求分析.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

网上购物系统需求分析.docx

《网上购物系统需求分析.docx》由会员分享,可在线阅读,更多相关《网上购物系统需求分析.docx(31页珍藏版)》请在冰点文库上搜索。

网上购物系统需求分析.docx

网上购物系统需求分析

 

软件工程课程设计

 

网上购物系统

 

组长:

组员:

完成时间:

目录

1序言………………………………………………………………………………3

2系统需求分析说明………………………………………………………………3

2.1系统介绍………………………………………………………………….3

2.2功能需求………………………………………………………………….3

3总体设计…………………………………………………………………………3

3.1总体设计和模块结构……………………………………………………..3

3.2处理流程………………………………………………………………….4

4页面设计………………………………………………………………………….6

4.1前台设计…………………………………………………………………..6

4.1.1商品浏览页面………………………………………………………6

4.1.2用户………………………………………………………………...6

4.2后台设计……………………………………………………………………7

4.2.1后台登陆面………………………………………………………….7

4.2.2后台管理页面……………………………………………………….7

5系统详细设计……………………………………………………………………....8

5.1前台设计…………………………………………………………………….8

5.1.1前台设计总体模块…………………………………………………..8

5.1.2前台文件架构………………………………………………………..9

5.1.3用户注册模块………………………………………………………..9

5.1.4我的订单模块………………………………………………………13

5.1.5商品浏览模块………………………………………………………15

5.1.6个人管理模块………………………………………………………19

5.2后台设计…………………………………………………………………...20

5.2.1后台总体模块………………………………………………………20

5.2.2订单管理模块………………………………………………………21

5.2.3图书管理模块………………………………………………………23

5.2.4用户管理模块………………………………………………………23

6测试

6.1测试方式…………………………………………………………...………24

6.2测试步骤…………………………………………………………………...24

6.3测试结果评价……………………………………………………………...24

参考文献

 

1序言

随着Internet的发展,计算机软件系统不断的应用于各个领域,比如银行,超市,图书馆等。

这些计算机软件系统给管理人员带来了极大的方便,提高了工作效率,减少工作人员工作量。

就拿图书销售来说,网上购物已走进我们的生活中。

通过它,我们购买东西更加的方便,便捷,也给经销商对商品的采购,统计等管理范围内带来很大的方便。

2系统需求分析说明

2.1系统介绍

本系统是建立在Windows平台上,基于B/S结构的一个简单购物网站。

通过这个网站,可以更加方便地管理商品和销售。

2.2功能需求

通过对淘宝网,京东等购物平台的认识和分析,我对购物网站有了基本的了解,我觉得该系统至少应该具有以下的一些基本功能:

(1)注册管理:

能够对用户名,密码的简单验证;能够对电子邮箱,Email进行有效性验证;能够防止利用页面刷新重复注册,以及已经注册的用户不能重复注册。

(2)商品浏览:

分类显示商品;显示商品详情,提供购买链接;可以对商品进行模糊查询;显示当前用户的浏览记录。

浏览商品时不要求用户登录,但下订单前用户必须登录,对于浏览过的商品有历史记录。

3总体设计

3.1总体结构和模块设计

(1)前台部分由用户使用,包括用户注册,购物车,我的订单,商品浏览,个人管理等几个部分。

(2)后台部分由用户管理,订单管理,商品管理等几个部分。

功能结构图如下:

图3.1功能模块设计图

3.2处理流程

业务流程如下:

图3.2.业务流程图

4页面设计

4.1前台页面

4.1.1商品浏览页面

图4.1前台登陆页面

 

4.1.2用户

图4.2用户注册页面

4.2后台页面

4.2.1后台登陆页面

图4.3后台登陆入口页面

4.2.2后台管理页面

图4.4后台管理页面

5系统详细设计

5.1前台设计

5.1.1前台总体模块[7]:

(1)前台部分由用户使用,包括用户注册,购物车管理,我的订单,商品浏览,个人管理等几个部分。

模块功能介绍:

用户注册:

能够提供用户的注册,并且对用户的注册进行以下验证:

用户名非空;密码不小于6位;邮箱Email的有效性;防止通过刷新重复提交.

购物车管理:

所选商品须通过购物车进行保存;对于相同的书籍,在再次购买的时候,在购物车中相应的书籍上增加数量;在购物车中修改订单数量的时候防止输入非数字;在购物车然后生成订单。

我的订单:

用户可以查看自己所有的订单,以及查看具体某一张订单,通过查看订单,用户可以查看订单现在的状态,查看订单的具体详情:

收货人地址,收货方式,付款方式,具体商品,小计,总计等等。

商品浏览:

用户可以通过商品的id或者商品的名称进行查找商品,并且对于浏览过的商品存在浏览历史,对于登陆后的用户可以对商品进行留言。

个人管理:

用户可以管理自己账号的相关信息,比如:

修改个人的基本信息,修改自己的密码。

 

5.1.2用户注册模块:

用户可以通过注册评论商品

代码实现:

1.有效性验证[8]:

通过js对客户端的提交数据进行有效性验证.关键代码如下:

检查邮箱的有效性:

functionchkEmail(str)

{

returnstr.search(/[\w\-]{1,}@[\w\-]{1,}\.[\w\-]{1,}/)==0?

true:

false;

}

functioncheck(){

if(myform.userName.value=="")

{

alert("请填写用户名");

returnfalse;

}

elseif(!

IsValid())

{

alert("用户名只能使用字母和数字");

returnfalse;

}

elseif(myform.psw.value=="")

{

alert("请填写密码");

returnfalse;

}

elseif(myform.psw.value!

=myform.conpsw.value)

{

alert("两次密码不一致");

returnfalse;

}

elseif(myform.trueName.value=="")

{

alert("请填写姓名");

returnfalse;

}

elseif(myform.email.value=="")

{

alert("请填写邮箱");

returnfalse;

}

elseif(!

chkEmail(myform.email.value))

{

alert("请填写有效的Email地址");

returnfalse;

}elseif(myform.address.value=="")

{

alert("地址必须填写!

");

returnfalse;

}elseif(myform.nam.value==""){

alert("请输入验证码");

}elseif(myform.nam.value!

=myform.con.value){

alert("两次验证码不一样!

");

}else{

document.myform.submit();

}

}

2.防止通过刷新重复提交[9]:

当提交完注册信息后,要求输入验证码,防止重复提交数据到数据库,通过image.jsp写出一个随机数,与注册jsp页面相匹配,关键代码如下:

Jsp页面验证码:

varn=parseInt(Math.random()*8999+1000);

myform.con.value=n;

document.write("

num="+n+">");

functionnextImage(){

n=parseInt(Math.random()*8999+1000);

myform.con.value=n;

document.all("mk").src="/BookShopping/image.jsp?

num="+n;

}

nextImage();">换一张

Image.jsp代码如下:

<%

try{

BufferedImagebf=newBufferedImage(70,25,BufferedImage.TYPE_INT_RGB);

Graphics2Dg2=bf.createGraphics();

g2.setPaint(newColor(0,0,255));

g2.fillRect(0,0,70,25);

g2.setPaint(newColor(255,255,255));

Stringstr=request.getParameter("num");

session.setAttribute("num",str);

g2.setFont(newFont("Arial",Font.BOLD,24));

g2.drawString(str,7,20);

for(inti=0;i<10;i++){

intr=(int)(Math.random()*255);

intg=(int)(Math.random()*255);

intb=(int)(Math.random()*255);

g2.setPaint(newColor(r,g,b));

intx1=(int)(Math.random()*80);

inty1=(int)(Math.random()*30);

intx2=(int)(Math.random()*80);

inty2=(int)(Math.random()*30);

g2.drawLine(x1,y1,x2,y2);

}

g2.dispose();

ImageIO.write(bf,"jpg",response.getOutputStream());

out.clear();

out=pageContext.pushBody();

}catch(Exceptione){

System.out.println(e);

}

%>

3.防止相同用户名用户注册:

当提交数据后,为了防止出现相同的用户,在进行注册的时候,通过相应的DAO中的exsitOne方法先检查用户名是否存在,存在不允许注册,关键代码如下:

publicBooleanexsitOne(StringuserName){

Stringsql="selectuNamefromRegUser";

try{

stat=conn.createStatement();

rs=stat.executeQuery(sql);

while(rs.next()){

Stringexsit=rs.getString("uName");

if(userName.equals(exsit)){

returntrue;

}

}

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

returnfalse;

}

图5.2注册验证图

5.1.3我的订单模块:

对于购买了商品的用户,在产生订单后,可以通过双击查看订单,在查看订单的时候,可以查看到订单的当前状态,以及订单的总金额,和订单的一些基本信息。

1.显示所有订单:

读取数据库中指定用户的所有订单,将结果集存取到一个ArrayList中,再返回显示页面,关键代码如下:

response.setContentType("text/html");

Stringid=request.getParameter("uid");

Stringsql="select*frombookOrderwhereuid="+id;

DAOdao=newDAO();

ResultSetrs=dao.getOrderInfo(sql);

ArrayListmylist=newArrayList();

try{

while(rs.next()){

intoid=Integer.parseInt(rs.getString("oId"));

Stringreceiver=rs.getString("oReceiveName");

StringoPayType=rs.getString("oPayType");

floattotal=dao.getTotal("selectsum(oAmount*oPrice)fromorderInfowhereoId="+oid);

StringoStatus=rs.getString("oStatus");

Stringdate=rs.getString("oTime");

MyOrderBeanone=newMyOrderBean(oid,date,receiver,total,oPayType,oStatus);

mylist.add(one);

}

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

 

2.显示某个订单:

当用户双击某个订单的时候,通过订单的id,以及用户id,联合查询出指定的订单,再返回到显示页面,关键代码如下:

Stringid=request.getParameter("id");

Stringsql="select*frombookOrder,orderInfo,bookwherebookOrder.oId=orderInfo.oIdandbook.bId=orderInfo.bIdandbookOrder.oId="

+id+"";

DAOdao=newDAO();

ResultSetrs=dao.getOrderInfo(sql);

ArrayListonelist=newArrayList();

Stringreceiver="";

Stringaddress="";

Stringphone="";

StringsendType="";

StringpayType="";

try{

while(rs.next()){

receiver=rs.getString("oReceiveName");

address=rs.getString("oReceiveAddress");

phone=rs.getString("oReceivePhone");

sendType=rs.getString("oSendType");

payType=rs.getString("oPayType");

Stringbookname=rs.getString("bName");

intcount=rs.getInt("oAmount");

floatprice=rs.getFloat("oPrice");

AllbookInOneOrderone=newAllbookInOneOrder(bookname,count,price);

onelist.add(one);

}

com.with.javabean.MyOneOrderBeanoneorder=newcom.with.javabean.MyOneOrderBean(

receiver,address,phone,sendType,payType,onelist);

request.setAttribute("order",oneorder);

request.setAttribute("id",id);

request.getRequestDispatcher("../MyOneOrder.jsp")

.include(request,response);

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

5.1.4商品浏览模块:

用户可以通过商品的分类查找到相应类别的商品,也可以通过输入相应商品的名称,找到相应的商品:

1.商品分类:

读取数据库中的制定类别,将所有类别显示在首页的商品类别导航上面,关键代码如下:

<%ArrayListbooktype=(ArrayList)request

.getAttribute("bookTypeInfos1");

if(null!

=booktype){

for(inti=0;i

BookTypebookTypeInfo=booktype.get(i);

%>

"href="/BookShopping/servlet.user/ListOneBookType?

bid=<%=

bookTypeInfo.getBTypeId()%>">

10.5pt"color=#9e0b0e><%=bookTypeInfo.getBTypeName()%>

<%

}

}

%>

2.商品查找:

用户可以通过输入书籍名称,查找出自己要找的书籍,关键代码如下:

Servlet:

DAOdao=newDAO();

Stringsql="select*frombookwherebNamelike'%"+what+"%'";

ArrayListarraylist=newArrayList();

ResultSetrs=dao.getOrderInfo(sql);//得到所查的书

DAO:

publicResultSetgetOrderInfo(Stringsql){

try{

stat=conn.createStatement();

rs=stat.executeQuery(sql);

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

returnrs;

}

 

3.浏览历史:

用浏览历史是为了方便用户查找自己浏览过的商品,当用户点击了一件商品的购买链接的时候,就会在浏览历史中保存该商品,并创建一个相应的链接,方便下次查看.关键代码如下:

点击链接产生Cookie:

"href="/BookShopping/servlet.user/ListOneBook?

id=<%=bookInfo.getBId()%>"

onclick="setCookies('history<%=bookInfo.getBId()%>','<%=bookInfo.getBName()%>');">

14pt"color=#9e0b0e><%=bookInfo.getBName()%>

 

在指定区域读取Cookie:

Cookiecook[]=request.getCookies();

if(cook!

=null){

for(inti=0;i

=-1)

{%>

  • id=<%=

    c

  • 展开阅读全文
    相关资源
    猜你喜欢
    相关搜索
    资源标签

    当前位置:首页 > 人文社科 > 法律资料

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2