




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上網上購物系統(tǒng)需求分析1121管理信息系統(tǒng)張婷婷 文靜 馬世偉目錄1序言32系統(tǒng)需求分析說明32.1 系統(tǒng)介紹.32.2 功能需求.33 總體設計33.1 總體設計和模塊結構.33.2 處理流程 .44 頁面設計.64.1 前臺設計.6 4.1.1 商品瀏覽頁面6 4.1.2 用戶. .64.2 后臺設計7 4.2.1 后臺登陸面.7 4.2.2 后臺管理頁面.75 系統(tǒng)詳細設計.85.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、人管理模塊195.2 后臺設計.20 5.2.1 后臺總體模塊20 5.2.2 訂單管理模塊21 5.2.3 圖書管理模塊23 5.2.4 用戶管理模塊236 測試6.1 測試方式.246.2 測試步驟.246.3 測試結果評價.24參考文獻專心-專注-專業(yè)1序言 隨著Internet1的發(fā)展,計算機軟件系統(tǒng)不斷的應用于各個領域,比如銀行,超市,圖書館等。這些計算機軟件系統(tǒng)給管理人員帶來了極大的方便,提高了工作效率,減少工作人員工作量。就拿圖書銷售來說,網上書店已走進我們的生活中。通過它,我們購買圖書更加的方便,便捷,也給經銷商對書籍的,采購,統(tǒng)計等管理范圍2內帶來很大的方便。2系統(tǒng)需求分析說
3、明2.1系統(tǒng)介紹本系統(tǒng)是建立在Windows平臺上,基于B/S結構5的一個簡單網上書店。通過這個網上書店,可以更加方便地管理圖書和銷售圖書。2.2 功能需求通過對當當網,卓越網等網上書店的認識和分析,我對網上書店有了基本的了解,我覺得該系統(tǒng)至少應該具有以下的一些基本功能:(1) 注冊管理:能夠對用戶名,密碼的簡單驗證;能夠對電子郵箱,Email進行有效性驗證;能夠防止利用頁面刷新重復注冊,以及已經注冊的用戶不能重復注冊。(2) 商品瀏覽:分類顯示商品;顯示商品詳情,提供購買鏈接;可以對商品進行模糊查詢;顯示當前用戶的瀏覽記錄。瀏覽商品時不要求用戶登錄,但下訂單前用戶必須登錄,對于瀏覽過的商品有
4、歷史記錄。3總體設計3.1總體結構和模塊設計(1)前臺部分由用戶使用,包括用戶注冊,購物車,我的訂單,商品瀏覽,個人管理等幾個部分。(2)后臺部分由用戶管理,訂單管理,商品管理等幾個部分。功能結構圖如下:網上書店系統(tǒng)前臺功能系統(tǒng)后臺功能用戶注冊我的訂單商品管理購物車商品瀏覽訂單管理用戶管理個人管理圖3.1 功能模塊設計圖3.2處理流程業(yè)務流程如下:圖3.2 .業(yè)務流程圖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系統(tǒng)詳細設計
5、5.1 前臺設計5.1.1前臺總體模塊7:(1)前臺部分由用戶使用,包括用戶注冊,購物車管理,我的訂單,商品瀏覽,個人管理等幾個部分。模塊功能介紹:用戶注冊:能夠提供用戶的注冊,并且對用戶的注冊進行以下驗證:用戶名非空;密碼不小于6位;郵箱Email的有效性;防止通過刷新重復提交.購物車管理:所選商品須通過購物車進行保存;對于相同的書籍,在再次購買的時候,在購物車中相應的書籍上增加數(shù)量;在購物車中修改訂單數(shù)量的時候防止輸入非數(shù)字;在購物車然后生成訂單。我的訂單:用戶可以查看自己所有的訂單,以及查看具體某一張訂單,通過查看訂單,用戶可以查看訂單現(xiàn)在的狀態(tài),查看訂單的具體詳情:收貨人地址,收貨方式
6、,付款方式,具體商品,小計,總計等等。商品瀏覽:用戶可以通過商品的id或者商品的名稱進行查找商品,并且對于瀏覽過的商品存在瀏覽歷史,對于登陸后的用戶可以對商品進行留言。個人管理:用戶可以管理自己賬號的相關信息,比如:修改個人的基本信息,修改自己的密碼。5.1.2前臺文件架構: 圖5.1 前臺文件架構5.1.3用戶注冊模塊: 用戶可以通過注冊評論商品代碼實現(xiàn):1. 有效性驗證8: 通過js 對客戶端的提交數(shù)據(jù)進行有效性驗證.關鍵代碼如下:檢查郵箱的有效性:function chkEmail(str)return str.search(/w-1,w-1,.w-1,/)=0?true:false;f
7、unction check() if(myform.userName.value="")alert("請?zhí)顚懹脩裘?quot;);return false;else if(!IsValid() alert("用戶名只能使用字母和數(shù)字"); return false;else if(myform.psw.value="")alert("請?zhí)顚懨艽a");return false;else if(myform.psw.value != myform.conpsw.value)alert("兩次密碼不一
8、致");return false;else if(myform.trueName.value ="")alert("請?zhí)顚懶彰?quot;);return false;else if(myform.email.value ="")alert("請?zhí)顚戉]箱");return false;else if(!chkEmail(myform.email.value)alert("請?zhí)顚懹行У腅mail地址");return false;else if(myform.address.value =&quo
9、t;")alert("地址必須填寫!");return false;else if(myform.nam.value="") alert("請輸入驗證碼");else if(myform.nam.value!=myform.con.value)alert("兩次驗證碼不一樣!");else document.myform.submit();2. 防止通過刷新重復提交9:當提交完注冊信息后,要求輸入驗證碼,防止重復提交數(shù)據(jù)到數(shù)據(jù)庫,通過image.jsp寫出一個隨機數(shù),與注冊jsp頁面相匹配,關鍵代碼如下:
10、 Jsp頁面驗證碼:<script language="javascript" runat=client>var n=parseInt(Math.random()*8999+1000);myform.con.value = n;document.write("<img id=mk src=/BookShopping/image.jsp?num="+n+">");function nextImage()n=parseInt(Math.random()*8999+1000);myform.con.value = n
11、;document.all("mk").src="/BookShopping/image.jsp?num="+n;</script><a href="javascript:nextImage();">換一張</a>Image.jsp代碼如下:<%tryBufferedImage bf=new BufferedImage(70,25,BufferedImage.TYPE_INT_RGB);Graphics2D g2=bf.createGraphics();g2.setPaint(new Colo
12、r(0,0,255);g2.fillRect(0,0,70,25);g2.setPaint(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<10;i+)int r=(int)(Math.random()*255);int g=(int
13、)(Math.random()*255);int b=(int)(Math.random()*255);g2.setPaint(new Color(r,g,b);int x1=(int)(Math.random()*80);int y1=(int)(Math.random()*30);int x2=(int)(Math.random()*80);int y2=(int)(Math.random()*30);g2.drawLine(x1,y1,x2,y2);g2.dispose();ImageIO.write(bf,"jpg",response.getOutputStream
14、();out.clear();out = pageContext.pushBody();catch(Exception e)System.out.println(e);%>3.防止相同用戶名用戶注冊:當提交數(shù)據(jù)后,為了防止出現(xiàn)相同的用戶,在進行注冊的時候,通過相應的DAO中的exsitOne方法先檢查用戶名是否存在,存在不允許注冊,關鍵代碼如下:public Boolean exsitOne(String userName) String sql = "select uName from RegUser"try stat = conn.createStatement(
15、);rs = stat.executeQuery(sql);while(rs.next() String exsit = rs.getString("uName");if(userName.equals(exsit) return true; catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); return false; 圖5.2 注冊驗證圖5.1.4我的訂單模塊: 對于購買了商品的用戶,在產生訂單后,可以通過雙擊查看訂單,在查看訂單的時候,可以查看到訂單的當前狀態(tài),以及訂
16、單的總金額,和訂單的一些基本信息。1.顯示所有訂單:讀取數(shù)據(jù)庫中指定用戶的所有訂單,將結果集存取到一個ArrayList中,再返回顯示頁面,關鍵代碼如下:response.setContentType("text/html");String id = request.getParameter("uid");String sql = "select * from bookOrder where uid = "+id;DAOdao = new DAO();ResultSet rs = dao.getOrderInfo(sql);Array
17、List<MyOrderBean> mylist = new ArrayList<MyOrderBean>();try while(rs.next() int oid = Integer.parseInt(rs.getString("oId");String receiver = rs.getString("oReceiveName");String oPayType = rs.getString("oPayType");float total = dao.getTotal("select sum(o
18、Amount*oPrice) from orderInfo where oId ="+oid );String oStatus = rs.getString("oStatus");String date = rs.getString("oTime");MyOrderBean one = new MyOrderBean(oid,date,receiver,total,oPayType,oStatus);mylist.add(one); catch (SQLException e) / TODO Auto-generated catch block
19、e.printStackTrace();2.顯示某個訂單:當用戶雙擊某個訂單的時候,通過訂單的id,以及用戶id,聯(lián)合查詢出指定的訂單,再返回到顯示頁面,關鍵代碼如下:String id = request.getParameter("id");String sql = "select * from bookOrder,orderInfo,book where bookOrder.oId = orderInfo.oId and book.bId = orderInfo.bId and bookOrder.oId = "+ id + ""
20、;DAO dao = new DAO();ResultSet rs = dao.getOrderInfo(sql);ArrayList<AllbookInOneOrder> onelist = new ArrayList<AllbookInOneOrder>();String receiver = ""String address = ""String phone = ""String sendType = ""String payType = ""try while (
21、rs.next() receiver = rs.getString("oReceiveName");address = rs.getString("oReceiveAddress");phone = rs.getString("oReceivePhone");sendType = rs.getString("oSendType");payType = rs.getString("oPayType");String bookname = rs.getString("bName"
22、);int count = rs.getInt("oAmount");float price = rs.getFloat("oPrice"); AllbookInOneOrder one = new AllbookInOneOrder(bookname, count,price);onelist.add(one);com.with.javabean.MyOneOrderBean oneorder = new com.with.javabean.MyOneOrderBean(receiver, address, phone, sendType, payTy
23、pe, onelist);request.setAttribute("order", oneorder);request.setAttribute("id", id);request.getRequestDispatcher("./MyOneOrder.jsp").include(request, response); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();5.1.5 商品瀏覽模塊: 用戶可以通過商品的分類查找到相應類別的
24、商品,也可以通過輸入相應商品的名稱,找到相應的商品: 1.商品分類:讀取數(shù)據(jù)庫中的制定類別,將所有類別顯示在首頁的商品類別導航上面,關鍵代碼如下:<table border=0 width=100% cellspacing=0 cellpadding=0><%ArrayList<BookType> booktype = (ArrayList<BookType>) request.getAttribute("bookTypeInfos1");if (null != booktype) for (int i = 0; i < bo
25、oktype.size(); i+) BookType bookTypeInfo = booktype.get(i);%><tr><td align=center width=26 class=class_td><img border=0 src=images/class_y.gif></td><td align=left width=155 class=class_td><a title="<%=bookTypeInfo.getBTypeName()%>"href="/BookS
26、hopping/servlet.user/ListOneBookType?bid=<%=bookTypeInfo.getBTypeId()%>"><font style="font-size: 10.5pt" color=#9e0b0e><%=bookTypeInfo.getBTypeName()%></font> </a></td></tr><%></table>2.商品查找:用戶可以通過輸入書籍名稱,查找出自己要找的書籍,關鍵代碼如下: Servl
27、et: DAO dao = new DAO();String sql ="select * from book where bName like '%"+what+"%'"ArrayList<Book> arraylist = new ArrayList<Book>();ResultSet rs = dao.getOrderInfo(sql);/得到所查的書 DAO:public ResultSet getOrderInfo(String sql) try stat = conn.createStatement()
28、;rs = stat.executeQuery(sql); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return rs;3. 瀏覽歷史:用瀏覽歷史是為了方便用戶查找自己瀏覽過的商品,當用戶點擊了一件商品的購買鏈接的時候,就會在瀏覽歷史中保存該商品,并創(chuàng)建一個相應的鏈接,方便下次查看. 關鍵代碼如下:點擊鏈接產生Cookie: <a title="<%=bookInfo.getBName()%>"href="/BookShopping/s
29、ervlet.user/ListOneBook?id=<%=bookInfo.getBId()%>"onclick="setCookies('history<%=bookInfo.getBId()%>','<%=bookInfo.getBName()%>');"><font style="font-size: 14pt" color=#9e0b0e><%=bookInfo.getBName()%></font> </a>在指
30、定區(qū)域讀取Cookie:Cookie cook = request.getCookies();if (cook != null) for (int i = 0; i < cook.length; i+) if(cooki.getName().indexOf("history") != -1) %><li><ahref="servlet.user/ListOneBook?id=<%=cooki.getName().substring(7)%>"target="_blank"><scr
31、ipt type="text/javascript"> document.write(unescape("<%=cooki.getValue()%>");</script> </a> 圖5.3 商品瀏覽和瀏覽歷史圖4. 商品評論13:對于登陸后的用戶,可以對商品進行相應的評論,如果沒有登陸跳轉到登錄頁面:關鍵代碼如下:1.檢查是否登錄:對于沒有登陸的用戶,不允許對商品進行評論,跳轉到登陸頁面,關鍵代碼如下:function check() if("<%=session.getAttribute(&
32、quot;UserName")%>"!="null") document.myform.submit();else window.alert("請登陸");window.location.href="./index.jsp"<td height="10"><input type="button" name="button" value="發(fā)表評論"onclick="check()">&l
33、t;/td>2.商品留言:對于登陸后的用戶,可以對商品進行評論,關鍵代碼如下:request.setCharacterEncoding("gbk");response.setContentType("text/html;chartset=gbk"); PrintWriter out = response.getWriter();String bookId1 = request.getParameter("bookid");String username = request.getParameter("username&
34、quot;);String date = request.getParameter("date");String describle1 = request.getParameter("body");String describle = new String(describle1.getBytes("ISO-8859-1"),"GBK");String sql = "insert into comment values('"+username+"','"
35、+bookId1+"','"+date+"','"+describle+"')"DAOdao = new DAO();if(dao.insert(sql) response.sendRedirect("/BookShopping/servlet.user/ListOneBook?id="+bookId1+"");圖5.4商品評論圖5.1.6 個人管理模塊: 用戶可以查看自己的個人信息,可以修改自己的個人信息,但是用戶名不允許修改,以及修改密碼,來保證用戶的
36、安全性。1. 查看個人信息:通過鏈接查看自己的個人信息。關鍵代碼如下:String sql = "select * from RegUser where uId="+id+""UserBean one = null;try stat = conn.createStatement();rs = stat.executeQuery(sql);while(rs.next() String username = rs.getString("uName");String truename = rs.getString("uRealna
37、me");String sex = rs.getString("uSex");String mail = rs.getString("uEmail");String phone = rs.getString("uPhone");String address = rs.getString("uAddress");one = new UserBean(username,truename,sex,mail,phone,address);2. 修改個人信息:通過鏈接可以修改個人信息,但是用戶名不能修改。關鍵代碼如
38、下:request.setCharacterEncoding("GBK");response.setContentType("text/html;charset=GBK");String userName = request.getParameter("userName");String psw = request.getParameter("psw");String trueName = request.getParameter("trueName");String trueName1 = n
39、ew String(trueName.getBytes("ISO-8859-1"),"GBK");System.out.println("ModifyMyInfoOk:"+trueName);String sex = request.getParameter("sexradiobutton");String sex1 = new String(sex.getBytes("ISO-8859-1"),"GBK");String email = request.getParamet
40、er("email");String phone = request.getParameter("phone");String address = request.getParameter("address");String address1 = new String(address.getBytes("ISO-8859-1"),"GBK");DAOdao = new DAO(); String sql = "update RegUser set uPassword = '&q
41、uot;+psw+"',uRealname='"+trueName1+"',uEmail='"+email+"',uSex='"+sex1+"',uPhone='"+phone+"',uAddress='"+address1+"' where uName='"+userName+"'"if(dao.ModifyMyInfo(sql) request.ge
42、tRequestDispatcher("./SuccessOrder.jsp").include(request, response);else request.getRequestDispatcher("./error.jsp").include(request, response);5.2 后臺設計5.2.1后臺總體模塊:后臺部分由用戶管理,訂單管理,商品管理等幾個部分。模塊功能介紹:用戶管理:能夠通過用戶的姓名和用戶的id查詢到指定的用戶,并且能夠對指定的用戶進行凍結,被凍結的用戶不能登錄自己的賬號,無法購買書籍,可以對凍結的用戶進行啟用,對于忘記
43、自己密碼的用戶,管理員可以進行密碼的重置。訂單管理:能夠通過訂單的id,或者根據(jù)時間段來查詢指定的訂單,可以對指定的訂單修改訂單的狀態(tài)。商品管理:可以增添商品的分類,可以對現(xiàn)有的分類進行修改,對于分類中存在書籍的,不允許刪除;以增添新的商品,對原有的商品進行修改。5.2.2訂單管理模塊: 管理員能夠通過時間段,訂單狀態(tài)來查詢訂單,并且可以修改訂單的狀態(tài),關鍵代碼如下:String list = request.getParameter("order");selection = new String(selection.getBytes("ISO-8859-1&qu
44、ot;),"GBK");if(null = list)arrayList = DaoImp.Dao.getDao().ListOrder(page,"oStatus='"+selection+"'");elseString startTime = request.getParameter("begin");String endTime = request.getParameter("end");arrayList = DaoImp.Dao.getDao().ListOrder(p
45、age," and oStatus='"+selection+"' or(oTime >='"+startTime+"' and oTime<='"+endTime+"')"); 圖5.5 訂單管理圖圖5.6訂單查詢圖5.2.3圖書管理模塊: 管理員可以對圖書分類信息進行增添,修改,刪除,但是存在圖書的分類不能夠被刪除,可以通過圖書編號和圖書名稱來查詢指定的書籍,并且可以修改和刪除書籍,主要代碼如下:if (selection = null)/ 查找全部arrayList = DaoImp.Dao.getDao().ListBook(page,"");if ("all
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年張家口貨運資格證考試有哪些項目
- 加工衣服合同范本
- 2025年重慶貨運從業(yè)資格證模擬考試保過版
- 買方解除合同范本
- 個人服裝采購合同范本
- 個人庭院出租合同范本
- 基槽土夾石換填施工方案
- 臨沂制砂機采購合同范本
- 免責任勞務合同范本
- 買賣農村房屋合同范本
- 2025年湖南工業(yè)職業(yè)技術學院單招職業(yè)傾向性測試題庫含答案
- 人教版地理七年級下冊7.1.1 亞洲的自然環(huán)境(課件33張)
- 《Python程序設計基礎教程(微課版)》全套教學課件
- GB 39752-2024電動汽車供電設備安全要求
- GB/T 3452.1-2005液壓氣動用O形橡膠密封圈第1部分:尺寸系列及公差
- 小學二年級數(shù)學下冊教材研說稿
- 涂料色漿MSDS
- 小學生幽默搞笑相聲臺詞
- A4方格紙-無需排版直接打印完美版
- 湘教版六年級下冊美術第2課《俯仰之間》教案
- 大蒜生長記錄ppt課件
評論
0/150
提交評論