网上购物系统需求分析.docx
- 文档编号:29670579
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:31
- 大小:2.47MB
网上购物系统需求分析.docx
《网上购物系统需求分析.docx》由会员分享,可在线阅读,更多相关《网上购物系统需求分析.docx(31页珍藏版)》请在冰豆网上搜索。
网上购物系统需求分析
网上购物系统需求分析
1121
管理信息系统
目录
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[1]的发展,计算机软件系统不断的应用于各个领域,比如银行,超市,图书馆等。
这些计算机软件系统给管理人员带来了极大的方便,提高了工作效率,减少工作人员工作量。
就拿图书销售来说,网上书店[已走进我们的生活中。
通过它,我们购买图书更加的方便,便捷,也给经销商对书籍的,采购,统计等管理范围[2]内带来很大的方便。
2系统需求分析说明
2.1系统介绍
本系统是建立在Windows平台上,基于B/S结构[5]的一个简单网上书店。
通过这个网上书店,可以更加方便地管理图书和销售图书。
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前台文件架构:
图5.1前台文件架构
5.1.3用户注册模块:
用户可以通过注册评论商品
代码实现:
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.4我的订单模块: 对于购买了商品的用户,在产生订单后,可以通过双击查看订单,在查看订单的时候,可以查看到订单的当前状态,以及订单的总金额,和订单的一些基本信息。 1.显示所有订单: 读取数据库中指定用户的所有订单,将结果集存取到一个ArrayList中,再返回显示页面,关键代码如下: response.setContentType("text/html"); Stringid=request.getParameter("uid"); Stringsql="select*frombookOrderwhereuid="+id; DAOdao=newDAO(); ResultSetrs=dao.getOrderInfo(sql); ArrayList 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); ArrayList 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.5商品浏览模块: 用户可以通过商品的分类查找到相应类别的商品,也可以通过输入相应商品的名称,找到相应的商品: 1.商品分类: 读取数据库中的制定类别,将所有类别显示在首页的商品类别导航上面,关键代码如下: <%ArrayList .getAttribute("bookTypeInfos1"); if(null! =booktype){ for(inti=0;i BookTypebookTypeInfo=booktype.get(i); %> bid=<%= bookTypeInfo.getBTypeId()%>"> 10.5pt"color=#9e0b0e><%=bookTypeInfo.getBTypeName()%> <% } } %> 2.商品查找: 用户可以通过输入书籍名称,查找出自己要找的书籍,关键代码如下: Servlet: DAOdao=newDAO(); Stringsql="select*frombookwherebNamelike'%"+what+"%'"; ArrayList ResultSetrs=dao.getOrderInfo(sql);//得到所查的书 DAO: publicResultSetgetOrderInfo(Stringsql){ try{ stat=conn.createStatement(); rs=stat.executeQuery(sql); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnrs; } 3.浏览历史: 用浏览历史是为了方便用户查找自己浏览过的商品,当用户点击了一件商品的购买链接的时候,就会在浏览历史中保存该商品,并创建一个相应的链接,方便下次查看.关键代码如下: 点击链接产生Cookie: 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) {%>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上 购物 系统 需求 分析
![提示](https://static.bdocx.com/images/bang_tan.gif)