网上购物系统需求分析.docx
- 文档编号:12307546
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:31
- 大小:2.69MB
网上购物系统需求分析.docx
《网上购物系统需求分析.docx》由会员分享,可在线阅读,更多相关《网上购物系统需求分析.docx(31页珍藏版)》请在冰豆网上搜索。
网上购物系统需求分析
软件工程课程设计
网上购物系统
组长:
组员:
完成时间:
目录
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); 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.4商品浏览模块: 用户可以通过商品的分类查找到相应类别的商品,也可以通过输入相应商品的名称,找到相应的商品: 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) {%> id=<%= c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上 购物 系统 需求 分析