




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、网上购物系统需求分析 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个人管理模
2、块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系统需求
3、分析说明 2.1 系统介绍 本系统是建立在 Windows平台上,基于B/S结构的一个简单网上书店。通 过这个网上书店,可以更加方便地管理图书和销售图书。 2.2 功能需求 通过对当当网 , 卓越网等网上书店的认识和分析, 我对网上书店有了基本的 了解,我觉得该系统至少应该具有以下的一些基本功能: (1) 注册管理:能够对用户名,密码的简单验证;能够对电子邮箱, Email 进行有效性验证;能够防止利用页面刷新重复注册,以及已经注册的 用户不能重复注册。 (2) 商品浏览:分类显示商品;显示商品详情,提供购买链接;可以对商 品进行模糊查询;显示当前用户的浏览记录。浏览商品时不要求用户 登录,但
4、下订单前用户必须登录,对于浏览过的商品有历史记录。 3总体设计 3.1 总体结构和模块设计 (1) 前台部分由用户使用, 包括用户注册, 购物车,我的订单,商品浏览, 个人管理等几个部分。 (2) 后台部分由用户管理,订单管理,商品管理等几个部分。 功能结构图如下: 图3.1功能模块设计图 3.2处理流程 业务流程如下: 结東 图3.2 .业务流程图 4页面设计 4.1前台页面 4.1.1商品浏览页面 岡上制is .种盘盂汁孟虽:XITF! PffW 舟户庄19 Al 忍吐: .-.WWdl岀社出田泗 + ftllK-l -T= XJiWltfJ tH4 -t ftwry* .帀會在*iEMz
5、曲恬 it畅:w oa d嘗 3 注 一堕城他 I wlP - J-tSlnf M = SW-W-ftl * ifJE IVMfeTrjf, z acl!rKfMkbiM iS HGTflMCtFWlt上T-寸 lRi運了 uKn -Pt率-z 帕:-幅亠 f 于樹 T J4 MH 僅者;枚者 出社i辛PIWFt R1Wi SWtnd 书从|命 J”p舟程窖整E第4踰) 币::XI44- RFiHH 出毎片;LKT -Ir HlRrhH : :DOMj-17 KWJ M.S 4Mtt JF A.TH I 科 KiM Hn mirz-t m jfdhiWAfi1 E1 “一.一 “咏:G mn-
6、aoa fjfl 上 IBia. W 權曰皿 FttMMd Hl1. :Etfdl : Aiws 睦送:pno-mnm 亦Fl站原才链于UK Mrt 图4.1前台登陆页面 4.1.2用户 垢上41)8 JKL wWW%WiHKi4n 才隧匡卿勵S车内有Q幣5臥會计逢毓:Q,DQ元(T包痈遷) 用户 首页商品分夹品灵肺上衆轎罚中心 烷写述册岳旬 用户若: S 码: 重腕码: 真却ts; 性别 聽粟电恬: 电子恒箱: 收雌址: AKLIii 锻贲苗J28:46 eiseaaw 浮冊用户曽理 IIFiTMS 刖投描P 龍魁: j |讦| . jjn 口 q j干 芒目 毎竦首無 帘书祥理 订单音晖
7、评從書理 功能 膏理爲统仲绍 査耆图书估息 赵图书伯总 陽改图书倍息 胖餘图书估息 査看用户信息 启周禁用注册用户 甫置注册用户童码 査看订单信患 汀单杭恚搐改 订单综合分折 査看总吿倍息. 勵1仝吿伯总 協改盘吿佶息 lii樣沁告估惠 浏览评论伯克 平论信息 网上书店茱踽了具有昭上节Ji/麻前南品管理,配邀吏話理r订单嘗理.盘蜀嘗理、童询统计.还舅有 多顶面品促殖功能和眼扼订单骨祈来计详阳苗的熱销状态.为汩曲者-F:巧并和跚书傑务! 召统具有以下主聲功敲模块: 图4.4后台管理页面 5系统详细设计 5.1前台设计 5.1.1前台总体模块: (1)前台部分由用户使用,包括用户注册,购物车管理,
8、我的订单,商品 浏览,个人管理等几个部分。 模块功能介绍: 用户注册:能够提供用户的注册,并且对用户的注册进行以下验证: 用户名非空;密码不小于 6位;邮箱Email的有效性;防止通过刷新重复 提交. 购物车管理:所选商品须通过购物车进行保存;对于相同的书籍,在 再次购买的时候,在购物车中相应的书籍上增加数量;在购物车中修改订 单数量的时候防止输入非数字;在购物车然后生成订单。 我的订单:用户可以查看自己所有的订单,以及查看具体某一张订单, 通过查看订单,用户可以查看订单现在的状态,查看订单的具体详情:收 货人地址,收货方式,付款方式,具体商品,小计,总计等等。 商品浏览:用户可以通过商品的i
9、d或者商品的名称进行查找商品,并 且对于浏览过的商品存在浏览历史,对于登陆后的用户可以对商品进行留 言。 个人管理:用户可以管理自己账号的相关信息,比如:修改个人的基 本信息,修改自己的密码。 5.1.2前台文件架构: 图5.1前台文件架构 5.1.3用户注册模块: 用户可以通过注册评论商品 代码实现: 1. 有效性验证:通过js对客户端的提交数据进行有效性验证.关键 代码如下: 检查邮箱的有效性: fun ctio nchkEmail(str) return str.search(/w-1, w- 1, .w- 1, /)=0? true : false ; function check()
10、 if (myform.userName.value= ) alert( 请填写用户名 ); return false ; else if (!IsValid() alert( 用户名只能使用字母和数字 ); return false ; else if (myform.psw.value= ) alert( 请填写密码 ); return false ; else if (myform.psw.value != myform.conpsw.value) alert( 两次密码不一致 ); return false ; else if (myform.trueName.value = ) al
11、ert( 请填写姓名 ); return false ; else if (myform.email.value = ) alert( 请填写邮箱 ); return false ; else if (!chkEmail(myform.email.value) alert( 请填写有效的 Email 地址 ); return false ; else if (myform.address.value = ) alert( 地址必须填写! ); return false ; else if (myform.nam.value= ) alert( 请输入验证码 ); else if (myform
12、.nam.value!=myform.con.value) alert( 两次验证码不一样 ! ); else document.myform.submit(); 2. 防止通过刷新重复提交 9:当提交完注册信息后,要求输入验证码,防 止重复提交数据到数据库, 通过 image.jsp 写出一个随机数, 与注册 页面相匹配,关键代码如下: Jsp 页面验证码: var n=parseInt(Math.random()*8999+1000); myform.con.value = n; document.write( ); function nextImage() n=parseInt(Math
13、.random()*8999+1000); myform.con.value = n; document.all( mk ).src= /BookShopping/image.jsp?num= J 换一张 % jsp +n Image.jsp 代码如下: try BufferedImage bf= new BufferedImage(70,25,BufferedImage.TYPE_INT_RGB); Graphics2D g2=bf.createGraphics(); g2.setPaint( new Color(0,0,255); g2.fillRect(0,0,70,25); g2.se
14、tPaint( new Color(255,255,255); String str=request.getParameter( num ); session.setAttribute( num ,str); g2.setFont( new Font( Arial ,Font.BOLD,24); g2.drawString(str,7,20); for ( int i=0;i 3. 防止相同用户名用户注册:当提交数据后,为了防止出现相同的用户, 在进行注册的时候,通过相应的DAO中的exsitOne方法先检查用户名是 否存在,存在不允许注册,关键代码如下: public Boolea n ex
15、sit On e(Stri ng userName) Stri ng sql =select uName from RegUser; try stat = conn .createStatement(); rs = stat .executeQuery(sql); while (rs .next() String exsit =rs .getString(uName); if (userName.equals(exsit) return true ; catch (SQLException e) /TODO Auto-ge nerated catch block e.pri ntStackTr
16、ace(); return false ; SJ? RLerosoft.鬼*1址掘 O 创 O S fit* 於心目J 甘hp /l-acAJhbEtxtii-r _i ip - 3 ffilP rlth * 阿心FSI的耐车内右4件曲鼠*计盘护:讨化汩走(不白柘部會) tjj.谊 ww* 抻 hueom 曲品苦并| 關:串谊毎书.店飾用 円眶爰K正制斷I 用戶注曲 图5.2注册验证图 5.1.4我的订单模块: 对于购买了商品的用户,在产生订单后,可以通过双击查看订单,在查看 订单的时候,可以查看到订单的当前状态,以及订单的总金额,和订单的一些基 本信息。 1. 显示所有订单:读取数据库中指定
17、用户的所有订单,将结果集存取到一个 ArrayList中,再返回显示页面,关键代码如下: resp on se.setC onten tType( String id = request.getParameter( String sql = text/html ); uid); select * from bookOrder where uid = +id; DAOdao = new DAO(); ResultSet rs = dao.getOrderl nfo(sql); ArrayListmylist try while (rs. next() int oid = In teger.par
18、se Int Stri ng receiver = rs.getStri ng( String oPayType = rs.getStri ng( float total = dao.getTotal( from orderl nfo where old = String oStatus = rs.getString( String date = rs.getString( MyOrderBea n one = =new ArrayList(); (rs.getStri ng(old); oReceiveName ); oPayType); selectsum(oAm oun t*oPrice
19、) +oid ); oStatus ); oTime); new MyOrderBea n( oid,date,receiver,total,oPayType,oStatus); mylist.add( on e); catch (SQLException e) /TODO Auto-ge nerated catch block e.pri ntStackTrace(); ,以及用户 2. 显示某个订单:当用户双击某个订单的时候,通过订单的id id,联合查询出指定的订单,再返回到显示页面,关键代码如下: String id = request.getParameter(id ); Stri
20、ng sql =select * from bookOrder,orderl nfo,book where bookOrder.oId = orderInfo.oId and book.bId = orderInfo.bId and bookOrder.oId = + id +; DAO dao = new DAO(); ResultSet rs = dao.getOrderI nfo(sql); new ArrayList on elist = ArrayList(); Stri ng receiver = String address = String phone = Illi Illi
21、Illi String sen dType = String payType = try while (rs. next() receiver = rs.getStri ng( address = rs.getStri ng( phone = rs.getStri ng( sen dType = rs.getStri ng( payType = rs.getStri ng( String book name = rs.getStri ng( int count = rs.getI nt( float price = rs.getFloat( Allbook InOn eOrder one =
22、Illi Illi oReceiveName oReceiveAddress oReceivePh one); oSe ndType); oPayType); bName oAmou nt); oPrice ); ); ); ); new AllbookI nOn eOrder(book name, coun t,price); on elist.add( on e); com.with.javabea n.MyOn eOrderBea n on eorder = com.with.javabea n.MyOn eOrderBea n( receiver, address, phone, se
23、n dType, payType, on elist); request.setAttribute(order , on eorder); new request.setAttribute( id , id); request.getRequestDispatcher(./MyOneOrder.jsp) .include(request, response); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); 5.1.5 商品浏览模块: 用户可以通过商品的分类查找到相应类别的商品, 也可以
24、通过输入相应商品 的名称,找到相应的商品: 1. 商品分类:读取数据库中的制定类别,将所有类别显示在首页的商品类 别导航上面 , 关键代码如下: %ArrayList booktype = (ArrayList) request .getAttribute( bookTypeInfos1 ); if ( null != booktype) for ( int i = 0; i a title = href = /BookShopping/servlet.user/ListOneBookType?bid= 2. 商品查找:用户可以通过输入书籍名称, 查找出自己要找的书籍, 关键代码如 下: Se
25、rvlet: DAO dao = new DAO(); Stringsql =select * from book where bName like % +what+ % ArrayList arraylist =new ArrayList(); ResultSet rs = dao.getOrderInfo(sql);/ 得到所查的书 DAO : public ResultSet getOrderI nfo(Stri ng sql) try stat = conn .createStatement(); rs = stat .executeQuery(sql); catch (SQLExce
26、ption e) /TODOAuto-ge nerated catch block e.pri ntStackTrace(); return rs ; 3. 浏览历史:用浏览历史是为了方便用户查找自己浏览过的商品,当用户点击 了一件商品的购买链接的时候,就会在浏览历史中保存该商品,并创建一个相应 的链接,方便下次查看.关键代码如下: 点击链接产生Cookie : a title = href = /BookShopping/servlet.user/ListOneBook?id= onclick = setCookies(history, ); 在指定区域读取Cookie: Cookie co
27、ok = request.getCookies(); if (cook != null ) for ( int i = 0; i a href = servlet.user/ListOneBook?id= target =_bla nk document.write(unescape( ); tai上毬is * 巧丘 彌訪千百 tHi 二讨ill 云CTE.HJBIF: rKf-krt離战hki M而商ift井奥抠尹面品饕廝上眾科助中七 n汁董机. 口 口主活 IPRaMJETW | HvuiKirrijal: Ja%raSer i pt厲皴崔宁计 : iL-FKi 打 切谒 tUlSti E
28、社出.tfiTJlfl : * “如事g我一Wr雄举习:蒼“議.,无雲血 F.b*l*-|- r或弋,一吓甘萌品歩葩呂在些Uh:n啊 免打;首59 0 i匣于哂* V机Q 址氈珂馆生 1 一匪域池 it* r I* 也皿社;二十一世袒3壮出洋硏问:iOM-nj-ai * 也吟超民r式体品罚0*巳冲!悬扫 祝莎月冊也甲:审了* -Hft里 “阳離一 If一濟W译花一毀土育的曰于盘曲*1倉空 itKrfl11ffi*ff irirtt. .届睚.H . M 己皿丟才車攀駅:FIBE. 晅林;丫 2乜寸曲于蔚“ !. m 书再容称: 1F* : tU爭牡岀.ffiUll: PS I3A8 JEtV
29、I 0寸鷲孑吿:*启 jfcAMni Javfli程思超(第4版 ff*:. atJML-T 4v 并具削 tUBSH : SlWZjll- .BfOTi : 2WM-0HT + JeMHI 出3 OKuffin 丘 jfif ; * JB、寸.秦手前 * S4 135 ittAWll= r ffRIMt hiw PADUCTV 片百tt曲品 ipri, r-s I -TB-H. FRDO1 E7B cttTFLt CziKR-mn- ddtfFUJiimK j 印pm: Re厶or-ao 此址;咼北-星聲 Htdl r 4LIES 屯4Z: 07 ID-daUBHHi 图5.3商品浏览和浏览
30、历史图 4. 商品评论13:对于登陆后的用户,可以对商品进行相应的评论,如果没有登 陆跳转到登录页面:关键代码如下: 1. 检查是否登录:对于没有登陆的用户,不允许对商品进行评论,跳转到登 陆页面,关键代码如下: function check() if ( != null ) else window.alert( 请登陆 ); window.location.href=./index.jsp 2. 商品留言:对于登陆后的用户,可以对商品进行评论,关键代码如下: request.setCharacterEncoding( gbk ); response.setContentType( text/
31、html;chartset=gbk ); PrintWriter out = response.getWriter(); String bookId1 = request.getParameter( String username = request.getParameter( String date = request.getParameter( String describle1 = request.getParameter( String describle = new String(describle1.getBytes( ISO-8859-1 String sql = insert
32、into comment values( +username+ , +bookId1+ , bookid ); username ); date ); body ); ), GBK ); +date+ , +describle+ ) DAOdao = new DAO(); if (dao.insert(sql) response.sendRedirect( id= +bookId1+ ); /BookShopping/servlet.user/ListOneBook? 翩上需店 密码 Se-ard 计J?叽 _座撼池 韩 浮者;韩窸 出版社:二十一世纪出版廿 用 JE价:1. g tl忧惠价:
33、 14. 925 元 齣买返同上1瓦 首页商殆洋贡罐再面品虽新上集卅助中心 IIMch 本书介绍: 祎事迄今最询豆库:里程理式作品,创帕贺岁*稠长篙小说,60 万雌印BS上尬 *溟描写了 我”嘔叔“王超”打阿 雄”春一群帀翦音年在-KW的日子里悔阉天空的“密岁 J ”,惟然是那么幽默,魯替稠睨 T1S,韩式的天才戈字 从科虫 网我评论 with 与 2009-05-09 说: 科 图5.4商品评论图 5.1.6个人管理模块: 用户可以查看自己的个人信息,可以修改自己的个人信息,但是用户名不允 许修改,以及修改密码,来保证用户的安全性。 1.查看个人信息:通过链接查看自己的个人信息。关键代码如下
34、: String sql = select * from RegUser where uld= +id+ UserBea n one = null try stat =conn .createStatement(); rs = stat .executeQuery(sql); while (rs .next() rs .getString(uName); rs .getString(uReaIname ); String user name = Stri ng true name = String sex = rs .getString( uSex); Stri ng mail = rs .g
35、etString( uEmail); String phone = rs .getString( uPho ne); String address = rs .getString( uAddress one = new UserBea n( user name,true name,sex,mail,ph on e,address); 2修改个人信息:通过链接可以修改个人信息,但是用户名不能修改。关 键代码如下: GBK); request.setCharacterE ncodi ng( resp on se.setC onten tType(text/html;charset=GBK); );
36、 Stri ng userName = request.getParameter(userName String psw = request.getParameter(psw); Stri ng trueName = request.getParameter( trueName ); Stri ng trueName1 =new Strin g(trueName.getBytes( ISO-8859-1 ),GBK); System. out .println(ModifyMylnfoOk: String sex = request.getParameter( Stri ng sex1 =ne
37、w Stri ng(sex.getBytes( +trueName); sexradiobutt on ISO-8859-1 ); ),GBK); String email = request.getParameter(email); String phone = request.getParameter(ph one ); String address = request.getParameter( String address1 = new Strin g(address.getBytes( ISO-8859-1 address); ),GBK); DAOdao = new DAO();
38、String sql =update RegUser set uPassword = +psw+ ,uReal name= +trueName1+ ,uEmail= +email+ ,uSex= +sex1+ ,uPho ne=+pho ne+ ,uAddress= +address1+ where uName= +userName+ ; if (dao.ModifyMyInfo(sql) request.getRequestDispatcher(./SuccessOrder.jsp). in clude(request, resp on se); else request.getReques
39、tDispatcher(./error.jsp). in clude( request, resp on se); 5.2后台设计 5.2.1后台总体模块: 后台部分由用户管理,订单管理,商品管理等几个部分。 模块功能介绍: 用户管理:能够通过用户的姓名和用户的id查询到指定的用户,并且 能够对指定的用户进行冻结,被冻结的用户不能登录自己的账号,无法购 买书籍,可以对冻结的用户进行启用,对于忘记自己密码的用户,管理员 可以进行密码的重置。 订单管理:能够通过订单的id,或者根据时间段来查询指定的订单, 可以对指定的订单修改订单的状态。 商品管理:可以增添商品的分类,可以对现有的分类进行修改,对
40、于 分类中存在书籍的,不允许删除;以增添新的商品,对原有的商品进行修 改。 522订单管理模块: 管理员能够通过时间段,订单状态来查询订单,并且可以修改订单的状态, 关键代码如下: String list = request.getParameter(order ); selection = new String(selection.getBytes(ISO-8859-1), GBK); if ( null = list) arrayList = Daolmp. Dao .getDao().ListOrder(page,oStatus=+selection+); else String sta
41、rtTime = request.getParameter(beg in); String endTime = request.getParameter(end); arrayList = DaoImp.Dao .getDao().ListOrder(page, and oStatus=+select ion+ or(oTime =+startTime+ and oTime= +e ndTime+ ); 店理奥刚| 20095170 17:59:15 * Fl nrT/i i 斑时1日査谊CT土 EUrSECT* 单第号用户彌号产牛吋间 收賁人姑店實贷人电i舌 收费人地址 我货人卸第童货方式血款方式订单冏 2 2W6-01PT 壬烹 3595131 嘲北 441053 2 :己忖叙 己时款 发借己收赏典 3 2008-11-07 sdf 123443 325342 2534 345346 硼6436己收贺 1 2009-01-00 t 15616416 41053 平邮 战行汇熬己付就. 1 2009-03-08 王政 13525912C7 那镶旻学院甘.S.0511 班 441053 n 部舄在款发货 1 2009-0 j-csd 1旳2卩的WF林1:宴英 441053 快連 邛局匸款葡认 LU/ 1 M 虹 图5.5订单管理图 子 营理负皿U關| 20095170 18:0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件测试基础知识试题及答案
- 2025届钦州市重点中学数学七下期末复习检测模拟试题含解析
- 2025届北京东城二中学八年级数学第二学期期末质量检测试题含解析
- C++高级编程技巧试题及答案
- 网络安全攻防演练中的策略与技巧试题及答案
- 如何开展精益管理实践计划
- 医院内部培训体系建设计划
- 重庆市彭水一中学2025届七年级数学第二学期期末教学质量检测模拟试题含解析
- 软件开发常见问题解析试题及答案
- 城市交通与城市规划方法创新研究重点基础知识点
- 2023年四川省第一期医疗护理员理论考试试题及答案
- 2022-2023学年宁夏回族石嘴山市大武口区小学六年级第二学期小升初数学试卷含答案
- 经济与社会:如何用决策思维洞察生活学习通课后章节答案期末考试题库2023年
- 日本文化知识竞赛真题模拟汇编(共877题)
- 幼儿园小班语言活动《我不想离开你》绘本故事PPT课件【幼儿教案】
- 2023汽车智能座舱分级与综合评价白皮书
- 职业暴露针刺伤应急预案演练脚本-
- 校外培训机构章程示范文本
- 大学生就业指导之职业素养与职业能力
- 砂检验报告(机制砂)国标 亚甲蓝值<1.4或合格
- YY/T 0068.2-2008医用内窥镜硬性内窥镜第2部分:机械性能及测试方法
评论
0/150
提交评论