版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p> 軟件工程課程設計報告</p><p> ( 2013 -- 2014 學年 第二學期)</p><p> 課程名稱: UML大作業(yè) </p><p> 題 目:網(wǎng)上購物系統(tǒng)的分析及設計 </p><p> 院 系:計算機工程學院</p><p> 班 級: 軟
2、件1002班 </p><p> 學 號: </p><p> 組 員:</p><p> 指導教師: </p><p> 小組成績: </p><p> 《
3、軟件工程》課程設計</p><p><b> 任 務 書</b></p><p><b> 一、 目的、要求</b></p><p> 通過軟件開發(fā)的實踐訓練,進一步掌握軟件工程的方法和技術(shù),提高軟件開發(fā)的實際能力,培養(yǎng)工程設計能力和綜合分析、解決問題的能力。</p><p><b&
4、gt; 具體如下:</b></p><p> 學習和實踐在分析和設計計算機應用系統(tǒng)所需要的知識,包括面向?qū)ο蟮南到y(tǒng)分析與設計,編碼和測試方面的知識;</p><p> 熟悉自動化的軟件開發(fā)工具Rational Rose,并將其運用于軟件開發(fā)的全過程;</p><p> 進一步加強和提高軟件工程文檔的編寫能力;</p><p&g
5、t; 培養(yǎng)協(xié)作能力和團隊精神。</p><p><b> 二、 主要內(nèi)容</b></p><p> 運用面向?qū)ο蠹夹g(shù)、UML進行網(wǎng)上購物系統(tǒng)的需求分析與設計;</p><p> 使用Rational Rose作為需求分析與設計的建模工具,進行靜態(tài)建模和動態(tài)建模;</p><p> 利用對象模型自動生成數(shù)據(jù)模型,
6、自動建立數(shù)據(jù)庫;</p><p> 使用J2EE、HTML、CSS、Javascript語言對購物模塊進行界面層的設計并給出實現(xiàn);</p><p><b> 撰寫課程設計報告。</b></p><p><b> 三、任務分配</b></p><p><b> 四、 進度計劃<
7、/b></p><p><b> 五、 設計成果要求</b></p><p> 建立系統(tǒng)分析與設計模型;</p><p> 初步建立系統(tǒng)原型,實現(xiàn)關(guān)鍵的功能;</p><p><b> 編寫課程設計報告。</b></p><p><b> 六、 考核
8、方式</b></p><p><b> 系統(tǒng)演示及講解</b></p><p><b> 占50%。</b></p><p><b> 設計報告</b></p><p><b> 占50%。</b></p><p&g
9、t; 《軟件工程》課程設計</p><p><b> 成 績 評定</b></p><p><b> 一、 指導教師評語</b></p><p><b> 二、 成績</b></p><p><b> 摘要</b></p><
10、p> 當今社會,隨著計算機的應用和Internet的普及, Internet網(wǎng)絡給人類社會帶來了巨大變化,網(wǎng)絡在我們的生活中幾乎無處不在。因此,建立網(wǎng)上物品的銷售管理系統(tǒng)是時代的潮流。由于JSP可以在85%以上的服務器上運行,而且JSP技術(shù)的應用程序比ASP的應用程序易于維護和管理。所以,通過采用JSP技術(shù)設計開發(fā)在線購物系統(tǒng)符合時代的潮流、具有積極的進步意義。</p><p> 網(wǎng)上購物系統(tǒng)可以實現(xiàn)人
11、們遠程逛逛商店和購買商品的愿望。本系統(tǒng)的功能是實現(xiàn)網(wǎng)上購物,主要包括商品信息管理、購物車訂單管理、用戶管理、商品評價管理、商品庫存管理等模塊,主要以對數(shù)據(jù)庫的增刪改查來實現(xiàn)這些功能。本系統(tǒng)依據(jù)模仿現(xiàn)行的B2C網(wǎng)站的需求而設計,運用Rational Rose、Myeclipse等軟件開發(fā)工具實現(xiàn)系統(tǒng)的分析、設計與實現(xiàn),最后設計出來的系統(tǒng)基本滿足能網(wǎng)上購物的功能需求。</p><p> 關(guān)鍵詞:網(wǎng)上購物,面向?qū)ο螅?/p>
12、Rational Rose,J2EE</p><p> 一、課程設計的目的與要求</p><p> 通過軟件開發(fā)的實踐訓練,進一步掌握軟件工程的方法和技術(shù),提高軟件開發(fā)的實際能力,培養(yǎng)工程設計能力和綜合分析、解決問題的能力。</p><p><b> 具體如下:</b></p><p> 學習和實踐在分析和設計計
13、算機應用系統(tǒng)所需要的知識,包括面向?qū)ο蟮南到y(tǒng)分析與設計,編碼和測試方面的知識;</p><p> 熟悉自動化的軟件開發(fā)工具Rational Rose,并將其運用于軟件開發(fā)的全過程;</p><p> 進一步加強和提高軟件工程文檔的編寫能力;</p><p> 培養(yǎng)協(xié)作能力和團隊精神。</p><p><b> 二、設計正文&
14、lt;/b></p><p><b> 概述</b></p><p><b> 設計課題</b></p><p> 該系統(tǒng)為網(wǎng)上購物系統(tǒng)。</p><p><b> 系統(tǒng)目標</b></p><p> 調(diào)研目前現(xiàn)有的網(wǎng)上購物系統(tǒng),如當當網(wǎng)
15、,亞馬遜商城,京東商城等大型電子商務系統(tǒng),設計出一個更適合用戶使用,有更多用戶交互,更人性化的購物系統(tǒng)。</p><p><b> 系統(tǒng)開發(fā)與運行環(huán)境</b></p><p> ?。?)數(shù)據(jù)庫管理軟件:MySQL</p><p> (2)建模工具:Rational Rose</p><p> ?。?)編程工具:MyE
16、clipse、DreamWeaver</p><p> (4)操作系統(tǒng):Windows系列、Tomcat系統(tǒng)</p><p> ?。?)開發(fā)語言:J2EE</p><p> 2 系統(tǒng)需求分析</p><p> 2.1 系統(tǒng)需求概述</p><p> 主要從用戶、管理員兩方面進行需求分析。</p>
17、<p><b> 用戶功能分析:</b></p><p><b> (1)購物車:</b></p><p> 主要功能包括將商品加入購物車——>提交訂單——>支付——>將訂單信息存檔</p><p> (2)個人中心:功能主要包括四部分:</p><p>
18、1)查詢自己的購買商品記錄,通過人員id在數(shù)據(jù)庫中查找。</p><p> 2)商品列表:可以查詢用戶本人在使用,想購買,和購買過的商品。</p><p> 3)推薦商品:本用例中,推薦商品和新商品通過控制類中的方法實現(xiàn),偏好是商品通過人員的個性分析方法實現(xiàn)。 </p><p> 4)商品評價:可以查詢自己的評論過的商品的商品信息和評論信息</p&
19、gt;<p><b> (3)賬戶管理:</b></p><p> 主要包括登錄,注冊,修改個人資料的功能</p><p><b> (4)商品搜索:</b></p><p> 1)字節(jié)搜索:可以通過商品名稱,商品序列號精確搜索</p><p> 2)分類搜索:通過各個分類進
20、行搜索。</p><p><b> 管理員功能分析:</b></p><p> (1)商品信息管理:功能主要包括四部分:</p><p><b> 1)增加商品信息</b></p><p><b> 2)刪除商品信息</b></p><p>&l
21、t;b> 3)修改商品信息</b></p><p><b> 4)查看商品信息</b></p><p><b> (2)庫存管理:</b></p><p> 主要功能包括:修改商品的存貨數(shù)量</p><p><b> (3)用戶管理:</b><
22、/p><p> 1)將不良交易次數(shù)用戶較多的用戶加入黑名單</p><p> 2)商品評價管理:將被人氣較高的書評放入首頁的推薦書評模塊</p><p> (4)商品評評管理:</p><p> 主要功能為將違禁商品評價刪除</p><p><b> (5)銷量統(tǒng)計:</b></p&g
23、t;<p> 主要功能包括:查看營業(yè)額,查看銷售排行,查看利潤。</p><p><b> 2.2 用例圖</b></p><p> 對于整個用例圖,外部角色有管理員、普通用戶即顧客。</p><p> 管理員主要有書籍的增、刪、改,普通用戶信息管理,訂單管理。</p><p> 普通用戶主要有在
24、線交易、搜索、結(jié)算、加入購物車、加入收藏、結(jié)算、評價、賬戶管理等用例。</p><p> 圖2.2-1 總用例圖用例圖</p><p> 圖2.2-2 店鋪管理用例圖</p><p> 圖2.2-3 購物用例圖</p><p> 關(guān)鍵用例正常事件流和異常事件流的描述如下表:</p><p> 用例規(guī)格說明:內(nèi)
25、容管理員注冊</p><p><b> 超級管理員</b></p><p> 用例規(guī)格說明:內(nèi)容管理員登錄</p><p><b> 所有用戶</b></p><p> 用例規(guī)格說明:新增商品</p><p><b> 內(nèi)容管理員</b><
26、;/p><p> 用例規(guī)格說明:修改商品</p><p><b> 內(nèi)容管理員</b></p><p> 用例規(guī)格說明:刪除商品</p><p><b> 內(nèi)容管理員</b></p><p> 用例規(guī)格說明:修改訂單</p><p><b&
27、gt; 內(nèi)容管理員</b></p><p> 用例規(guī)格說明:取消訂單</p><p><b> 內(nèi)容管理員</b></p><p><b> 用例規(guī)格說明:退貨</b></p><p><b> 內(nèi)容管理員</b></p><p>
28、 用例規(guī)格說明:顧客信息修改</p><p><b> 內(nèi)容管理員</b></p><p> 與顧客有關(guān)的用例規(guī)格說明</p><p> 用例規(guī)格說明:顧客注冊</p><p><b> 顧客</b></p><p> 用例規(guī)格說明:顧客登錄</p>
29、<p><b> 顧客</b></p><p><b> 用例規(guī)格說明:瀏覽</b></p><p><b> 顧客</b></p><p><b> 用例規(guī)格說明:搜索</b></p><p><b> 顧客</b&
30、gt;</p><p> 用例規(guī)格說明:加入購物車</p><p><b> 顧客</b></p><p> 用例規(guī)格說明:加入收藏</p><p><b> 顧客</b></p><p><b> 用例規(guī)格說明:結(jié)算</b></p>
31、;<p><b> 顧客</b></p><p><b> 用例規(guī)格說明:退貨</b></p><p><b> 顧客</b></p><p> 用例規(guī)格說明:顧客信息修</p><p><b> 顧客</b></p>
32、<p><b> 2.3 類圖</b></p><p><b> 圖2.3-1 類圖</b></p><p><b> 類描述如下:</b></p><p><b> coustomer</b></p><p> 用戶可以更改自己的姓
33、名、密碼和其它個人信息,也可以查看自己的購物車并在其上添加刪除商品,其后對購物車中的產(chǎn)品進行結(jié)算。用戶還可以對訂單中已付款的商品按照要求進行退貨操作。用戶還可以發(fā)表商品評價和查看商品的來自其他人的評價。</p><p><b> Manager</b></p><p> 管理員所具有的屬性并不多,管理員主要實現(xiàn)對商品的增、刪、改,對用戶個人信息的管理,對訂單的處理
34、協(xié)助用戶退貨。</p><p><b> good</b></p><p> 描述商品對象的抽象。商品的唯一標識是商品ID,商品還有品名、價格、類型編號、圖片、描述、數(shù)量、評價。</p><p> shoppingcart</p><p> 用戶的購物車類,在用戶進行網(wǎng)上瀏覽和準備交易時,可將商品加入購物車,查看
35、購物車,刪除或取消交易。進行交易時會將交易信息入時間、金額、商品列表、優(yōu)惠方式等記錄為購物歷史。購物車對象自帶了計算優(yōu)惠的方式,同時購物車要記錄用戶購買商品時的運送信息。</p><p><b> Order</b></p><p> 訂單記錄了訂單編號,訂單生成時間和用戶ID,訂單通過一個LIST類型記錄了購買的商品。</p><p>&
36、lt;b> 類之間的關(guān)系:</b></p><p> Coustomer 與shoppingcart 為聚合關(guān)系,manger與order是聚合關(guān)系;manger、coustomer類同good類是關(guān)聯(lián)關(guān)系,其中coustomer與good的關(guān)聯(lián)類是shoppingcart類;shoopingcart與order為關(guān)聯(lián)類。</p><p><b> 2.4
37、 順序圖</b></p><p> 支付的順序圖如下圖所示,首先是用戶登錄系統(tǒng),然后用戶通過界面在商品類中查看到自己想要買的商品,然后將商品加入購物車,然后提交訂單,支付訂單,最后進行存檔。</p><p> 圖2.4-1 用戶支付順序圖</p><p> 圖2.4-2 新增商品順序圖</p><p> 圖2.4-3
38、 刪除商品順序圖</p><p> 圖2.4-4 修改商品順序圖</p><p> 退貨的順序圖如下圖所示,首先是用戶登錄系統(tǒng),然后用戶通過界面在訂單中查看到自己已買的商品,然后申請退貨,最后進行退貨。</p><p> 2.4-5 用戶退貨順序圖</p><p><b> 2.5 協(xié)作圖</b><
39、/p><p> 根據(jù)順序圖獲得協(xié)作圖如下:</p><p> 圖2.5-1 用戶支付協(xié)作圖</p><p> 圖2.5-2 新增商品協(xié)作圖</p><p> 圖2.5-3 刪除商品協(xié)作圖</p><p> 圖2.5-4 修改商品協(xié)作圖</p><p> 圖2.5-5 用戶退貨協(xié)作圖
40、</p><p> 2.6 狀態(tài)圖 </p><p> 訂單狀態(tài)圖。主要包括訂單為空狀態(tài)、訂單處理狀態(tài)、增加完成狀態(tài)、刪除完成狀態(tài)、修改完成狀態(tài),支付訂單狀態(tài),訂單存檔狀態(tài)。</p><p> 圖2.6-1 訂單狀態(tài)圖</p><p><b> 3. 系統(tǒng)總體設計</b></p>&l
41、t;p> 3.1 系統(tǒng)體系結(jié)構(gòu)設計</p><p> 3.3 設計數(shù)據(jù)管理子系統(tǒng)</p><p><b> 表3.3-1用戶表</b></p><p> 表3.3-2 管理員表</p><p><b> 表3.3-3商品表</b></p><p><b&
42、gt; 表3.3-4訂單表</b></p><p> 表3.3-5商品類型表</p><p> 圖3.3-1 數(shù)據(jù)表關(guān)系圖</p><p> 3.4 設計人機交互子系統(tǒng)</p><p> 圖3.4-1 注冊界面</p><p> 圖3.4-2 注冊成功界面</p><p>
43、; 圖3.4-3 登陸界面</p><p> 圖3.4-4 主頁界面</p><p> 圖3.4-5 購物車界面</p><p> 圖3.4-6 提交訂單界面</p><p> 圖3.4-7 提交訂單成功界面</p><p><b> 4. 詳細設計</b></p>&l
44、t;p> 提示: 對于復雜的方法給出詳細設計,可以使用偽代碼描述, 也可以使用程序流程圖來描述。</p><p> 4.1.1商品查詢方法</p><p> goodsearch()</p><p><b> {</b></p><p> 創(chuàng)建一個List類型以及標志位flg=false;</p&g
45、t;<p><b> 獲取搜索類型</b></p><p><b> If(按名字查詢)</b></p><p><b> {</b></p><p> 獲取窗口中的關(guān)鍵字;</p><p> 創(chuàng)建數(shù)據(jù)庫查詢語句sql;</p><p
46、> 創(chuàng)建SQLBean對象bean;</p><p> Rs=bean.exacuteQuery(sql);</p><p><b> Try{</b></p><p> 將rs中的信息存入到List中;</p><p><b> }</b></p><p>
47、 Catch(SQLException e)</p><p><b> {</b></p><p><b> 輸出異常信息;</b></p><p><b> }</b></p><p><b> }</b></p><p&g
48、t;<b> If(按分類查詢)</b></p><p><b> {</b></p><p><b> 獲取商品類型;</b></p><p> 創(chuàng)建數(shù)據(jù)庫查詢語句sql;</p><p> 創(chuàng)建SQLBean對象bean;</p><p>
49、 Rs=bean.exacuteQuery(sql);</p><p><b> Try{</b></p><p> 將rs中的信息存入到List中;</p><p><b> }</b></p><p> Catch(SQLException e)</p><p>
50、;<b> {</b></p><p><b> 輸出異常信息;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 返回List</b></p>&l
51、t;p><b> }</b></p><p> 4.1.2登錄界面代碼實現(xiàn)</p><p> package Servlet_Contorlller;</p><p><b> //登錄</b></p><p> public class loginCheck extends Htt
52、pServlet</p><p><b> {</b></p><p> public void doGet(HttpServletRequest request, HttpServletResponse response)</p><p> throws ServletException, IOException</p>
53、<p><b> {</b></p><p> request.setCharacterEncoding("utf-8");</p><p> response.setCharacterEncoding("utf-8");</p><p> PrintWriter out = respo
54、nse.getWriter();</p><p> response.setContentType("text/html");</p><p> String username = request.getParameter("username");</p><p> String password = request.g
55、etParameter("password");</p><p> System.out.println("輸入的密碼:" + password);</p><p> String radio = request.getParameter("logintype");</p><p> // usern
56、ame=new String(username.getBytes(),"gb2312");</p><p> int reginfo = -1;</p><p> if ("".equals(username) || username == null) {</p><p> reginfo = 4;// 用戶名不能為空&
57、lt;/p><p> System.out.println("用戶名為空");</p><p><b> } else {</b></p><p> if (radio.equals("0"))// 個人登錄</p><p><b> {</b></
58、p><p> String sqlString = "select password from customer where username='"</p><p> + username + "'";</p><p> List<String> list = null;</p>&
59、lt;p> SQLBean search = new SQLBean();</p><p><b> try {</b></p><p> search.executeQuery(sqlString);</p><p> System.out.println(sqlString);</p><p> li
60、st = search.getSelectRt();</p><p> search.close();</p><p> } catch (Exception e) {</p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p>
61、<p><b> }</b></p><p> if (list.size() == 0) {</p><p> reginfo = 3;// 用戶不存在</p><p> response.sendRedirect("index.jsp?reginfo=3");</p><p>
62、;<b> } else {</b></p><p> for (String item : list) {</p><p> if (item.equals(password)) {</p><p> System.out.println("sadasdsa");</p><p> reg
63、info = 1;// 登錄成功</p><p> HttpSession session = request.getSession(true);</p><p> session.setAttribute("user", username);</p><p> response.sendRedirect("pagedivide&
64、quot;);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b
65、></p><p><b> }</b></p><p> public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p> throws ServletException, IOException</p><
66、;p><b> {</b></p><p> this.doGet(request, response);</p><p><b> }</b></p><p><b> }</b></p><p> 4.1.3 注冊界面代碼實現(xiàn)</p><
67、p> package Servlet_Contorlller;</p><p> public class registerCheck extends HttpServlet</p><p><b> {</b></p><p> public void doGet(HttpServletRequest request, Http
68、ServletResponse response)</p><p> throws ServletException, IOException</p><p><b> {</b></p><p> this.rtcheck(request, response);</p><p><b> }</
69、b></p><p> public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p> throws ServletException, IOException</p><p><b> {</b></p>&l
70、t;p> //response.sendRedirect("registerCheck.jsp");</p><p> this.rtcheck(request, response);</p><p><b> }</b></p><p> public void rtcheck(HttpServletRequ
71、est request, HttpServletResponse response)</p><p><b> {</b></p><p><b> try {</b></p><p> request.setCharacterEncoding("utf-8");</p><p
72、> } catch (UnsupportedEncodingException e2) {</p><p> // TODO Auto-generated catch block</p><p> e2.printStackTrace();</p><p><b> }</b></p><p> resp
73、onse.setCharacterEncoding("utf-8");</p><p> String name=request.getParameter("cuserid");</p><p> String password=request.getParameter("cpassword");</p><
74、;p> String tel=request.getParameter("ctel");</p><p> String email=request.getParameter("cemail");</p><p> String sex=request.getParameter("select");</p>
75、<p> String age=request.getParameter("cage");</p><p> String repeatpassword=request.getParameter("repeatpassword");</p><p> int reg=0;//0--注冊成功 1--注冊失敗</p>
76、<p> if("".equals(name)||name==null)</p><p><b> {</b></p><p><b> reg=0;</b></p><p><b> try</b></p><p><b>
77、{</b></p><p> System.out.println("跳轉(zhuǎn)");</p><p> response.sendRedirect("register.jsp");</p><p><b> }</b></p><p> catch (IOExcep
78、tion e)</p><p><b> {</b></p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p> System.out.println("重定向異常");</p>
79、;<p><b> }</b></p><p><b> }</b></p><p> else if("".equals(password)||password==null)</p><p><b> {</b></p><p>&l
80、t;b> reg=0;</b></p><p><b> try</b></p><p><b> {</b></p><p> response.sendRedirect("register.jsp");</p><p> System.out.pr
81、intln("跳轉(zhuǎn)2");</p><p><b> }</b></p><p> catch (IOException e)</p><p><b> {</b></p><p> // TODO Auto-generated catch block</p>
82、<p> e.printStackTrace();</p><p> System.out.println("重定向異常");</p><p><b> }</b></p><p><b> }</b></p><p> else if("&qu
83、ot;.equals(tel)||tel==null)</p><p><b> {</b></p><p><b> reg=0;</b></p><p><b> try</b></p><p><b> {</b></p>&l
84、t;p> System.out.println("跳轉(zhuǎn)3");</p><p> response.sendRedirect("register.jsp");</p><p><b> }</b></p><p> catch (IOException e)</p><p
85、><b> {</b></p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p> System.out.println("重定向異常");</p><p><b> }
86、</b></p><p><b> }</b></p><p> else if("".equals(email)||email==null)</p><p><b> {</b></p><p><b> reg=0;</b></
87、p><p><b> try</b></p><p><b> {</b></p><p> System.out.println("跳轉(zhuǎn)4");</p><p> response.sendRedirect("register.jsp");</p&
88、gt;<p><b> }</b></p><p> catch (IOException e)</p><p><b> {</b></p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace
89、();</p><p> System.out.println("重定向異常");</p><p><b> }</b></p><p><b> }</b></p><p> else if("".equals(age)||age==null)<
90、;/p><p><b> {</b></p><p><b> reg=0;</b></p><p><b> try</b></p><p><b> {</b></p><p> System.out.println(&q
91、uot;跳轉(zhuǎn)5");</p><p> response.sendRedirect("register.jsp");</p><p><b> }</b></p><p> catch (IOException e)</p><p><b> {</b><
92、/p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p> System.out.println("重定向異常");</p><p><b> }</b></p><p>
93、;<b> }</b></p><p> else if("".equals(repeatpassword)||repeatpassword==null)</p><p><b> {</b></p><p><b> reg=0;</b></p><p
94、><b> try</b></p><p><b> {</b></p><p> System.out.println("跳轉(zhuǎn)6");</p><p> response.sendRedirect("register.jsp");</p><p&g
95、t;<b> }</b></p><p> catch (IOException e)</p><p><b> {</b></p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p>
96、;<p> System.out.println("重定向異常");</p><p><b> }</b></p><p><b> }</b></p><p> else if(!repeatpassword.equals(password))</p><p&
97、gt;<b> {</b></p><p><b> reg=0;</b></p><p><b> try</b></p><p><b> {</b></p><p> System.out.println("跳轉(zhuǎn)7");
98、</p><p> response.sendRedirect("register.jsp");</p><p><b> }</b></p><p> catch (IOException e)</p><p><b> {</b></p><p&g
99、t; // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p> System.out.println("重定向異常");</p><p><b> }</b></p><p><b> }&l
100、t;/b></p><p><b> else</b></p><p><b> {</b></p><p> String sqlstr="select username from customer";</p><p> SQLBean bean=new SQLB
101、ean();</p><p> List<String> list=new ArrayList();</p><p><b> try</b></p><p><b> {</b></p><p> bean.executeQuery(sqlstr);</p>&l
102、t;p> list=bean.getSelectRt();</p><p> bean.close();</p><p><b> }</b></p><p> catch (Exception e)</p><p><b> {</b></p><p>
103、// TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p> System.out.println("數(shù)據(jù)庫查詢錯誤");</p><p><b> }</b></p><p> for(String li:
104、list)</p><p><b> {</b></p><p> if(li.equals(name))</p><p><b> {</b></p><p> reg=1;//用戶名重復</p><p><b> try</b></p
105、><p><b> {</b></p><p> System.out.println("跳轉(zhuǎn)");</p><p> response.sendRedirect("register.jsp");</p><p><b> }</b></p>
106、<p> catch (IOException e)</p><p><b> {</b></p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p> System.out.println(&q
107、uot;重定向異常");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> sqlstr="insert into customer(userid,username,p
108、assword,tel,email,sex,age) values(null,'"+name+"','"+password+"','"+tel+"','"+email+"','"+sex+"',"+age+")";</p&g
109、t;<p> System.out.println(sqlstr);</p><p> SQLBean bean2=new SQLBean();</p><p><b> try</b></p><p><b> {</b></p><p> bean2.executeUpd
110、ate(sqlstr);</p><p> bean2.close();</p><p><b> }</b></p><p> catch (Exception e)</p><p><b> {</b></p><p> // TODO Auto-generat
111、ed catch block</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> try</b></p><p><b> {</b></p><p> response.
112、sendRedirect("success.jsp");</p><p><b> }</b></p><p> catch (IOException e)</p><p><b> {</b></p><p> // TODO Auto-generated catch
113、block</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b>
114、</p><p> 4.1.4 購物車處理代碼實現(xiàn)</p><p> if(action.equals("buy"))//加入購物車</p><p><b> {</b></p><p> CarBean mycart = (CarBean)session.getAttribute(&quo
115、t;mycart");</p><p> if(mycart==null)</p><p><b> {</b></p><p> mycart = new CarBean();</p><p><b> }</b></p><p> //得到要購買東西的
116、ID</p><p> String gid = request.getParameter("gid");</p><p> mycart.buy(gid,Integer.parseInt(num));</p><p> response.sendRedirect("cart.jsp");</p><
117、p><b> }</b></p><p> else if(action.equals("changeNum"))</p><p><b> {</b></p><p> String gnum = request.getParameter("gnum");</p
118、><p> String gid = request.getParameter("gid");</p><p> int number = 0;</p><p><b> try</b></p><p><b> {</b></p><p> num
119、ber = Integer.parseInt(gnum);</p><p><b> }</b></p><p> catch(Exception e)</p><p><b> {</b></p><p> //修改的數(shù)量不合法時</p><p> String
120、msg = "對不起,數(shù)量修改錯誤!!!";</p><p> //pageForward(msg,request,response); </p><p><b> }</b></p><p> int id = Integer.parseInt(gid);</p><p> int coun
121、t=0;</p><p><b> //得到庫存數(shù)量</b></p><p> String sql = "select goodnum from goods where goodId="+id;</p><p> SQLBean bean=new SQLBean();</p><p><
122、b> try {</b></p><p> bean.executeQuery(sql); </p><p> ResultSet st=bean.getRs();</p><p> if(st!=null)</p><p><b> {</b></p><p>
123、; st.next();</p><p> count =st.getInt(1);</p><p> bean.close();</p><p><b> }</b></p><p> } catch (Exception e) {</p><p> // TODO Auto-gen
124、erated catch block</p><p> e.printStackTrace();</p><p><b> }</b></p><p> if(count<number)</p><p> {//當庫存少于修改的值時</p><p> String msg = &q
125、uot;對不起,庫存不夠,庫存數(shù)量只有 "+count;</p><p> out.println("<p>msg</p>");</p><p> out.println("<a href='cart.jsp'>返回購物車</a>");</p><p&g
126、t;<b> }</b></p><p><b> else</b></p><p><b> {//當庫存夠時</b></p><p> CarBean mycart = (CarBean)session.getAttribute("mycart");</p>
127、<p> if(mycart==null)</p><p><b> {</b></p><p> mycart = new CarBean();</p><p><b> }</b></p><p> //得到用戶的購物車</p><p> Map
128、<String,Integer> cart = mycart.getCart();</p><p><b> //修改商品數(shù)量</b></p><p> cart.put(gid,number);</p><p> session.setAttribute("mycart",mycart);</p&g
129、t;<p> response.sendRedirect("cart.jsp"); </p><p><b> }</b></p><p><b> }</b></p><p> else if(action.equals("delete"))<
130、;/p><p><b> {</b></p><p> String gid = request.getParameter("gid").trim();</p><p> //得到javaBean對象</p><p> CarBean mycart = (CarBean)session.getAt
131、tribute("mycart");</p><p> if(mycart==null)</p><p><b> {</b></p><p> mycart = new CarBean();</p><p><b> }</b></p><p>
132、; mycart.removeItem(gid);</p><p> session.setAttribute("mycart",mycart);</p><p> response.sendRedirect("cart.jsp");</p><p><b> }</b></p>&
133、lt;p><b> 測試</b></p><p> 本系統(tǒng)在進行功能測試時,著重從鏈接和表單兩個方面進行測試:</p><p><b> 5.1注冊頁測試</b></p><p> ?。?)測試數(shù)據(jù):輸入賬戶名ajw 密碼11111111,手機號18001268392</p><p>
134、 郵箱:aa@qq.com 性別:男 年齡:21</p><p><b> 測試結(jié)果:注冊成功</b></p><p> (2)測試數(shù)據(jù):輸入賬戶名ajw 密碼11111111,手機號18001268392</p><p> 郵箱: 性別:男 年齡:21</p><p>
135、 測試結(jié)果:提示未注冊該成功,郵箱為空。</p><p> 圖5.1-1 注冊成功圖 圖5.1-2 注冊未成功圖</p><p><b> 5.2登錄頁測試</b></p><p> ?。?)測試數(shù)據(jù):輸入賬戶名ajw 密碼11111111 </p><p>&
136、lt;b> 測試結(jié)果:登陸成功</b></p><p> ?。?)測試數(shù)據(jù):輸入賬戶名ajw 密碼</p><p> 測試結(jié)果:登陸不成功,未填密碼</p><p> 圖5.2-1 登陸成功,進入主頁面 圖5.2-3 登陸不成功</p><p><b> 5.3購物主頁測試<
137、;/b></p><p> (1)測試數(shù)據(jù):登陸后進入購物主頁</p><p> 測試結(jié)果:進入購物主頁查看商品</p><p> ?。?)測試操作:點擊首頁</p><p> 測試結(jié)果:回到購物首頁</p><p> ?。?)測試操作:點擊購物車</p><p> 測試結(jié)果:跳到
138、購物車頁面</p><p> 圖5.3-1 購物主頁</p><p> 圖5.3-1 購物車</p><p><b> 5.4購物測試</b></p><p> ?。?)測試操作:點擊購買按鈕</p><p> 測試結(jié)果:商品加入購物車并跳到購物車頁面</p><p&g
139、t; ?。?)測試操作:點擊結(jié)算按鈕</p><p> 測試結(jié)果:跳到結(jié)算頁面</p><p> ?。?)測試操作:填寫收貨人信息點擊確認</p><p> 測試結(jié)果:顯示提交成功</p><p> 圖5.4-1 結(jié)算頁面</p><p> 圖5.4-2 提交成功</p><p> 三
140、、課程設計總結(jié)或結(jié)論</p><p> 在本次課程設計期間,我們進行了一個小型網(wǎng)站的構(gòu)建并應用了軟件工程中的面向?qū)ο蠼5姆椒?。首先是需求分析這塊,它很重要。我們根據(jù)老師給的要求,結(jié)合在網(wǎng)上查的一些資料,做了初步的需求分析,本系統(tǒng)的主要功能是實現(xiàn)網(wǎng)站信息的發(fā)布和管理,涉及到前臺用戶對商品信息的瀏覽和后臺管理。在前臺的用戶瀏覽模塊里,一般需要對商品進行分類展示,并需要通過欄目導航進入特定的商品信息模塊。在后臺的管
141、理方面。需要由合法的管理者來管理商品的添加、修改、刪除等,以及管理登錄、注銷的模塊。最重要的是管理網(wǎng)上交易。從后臺管理大體來看,系統(tǒng)實際分為,商品管理、網(wǎng)上購物管理及模塊管理。</p><p> 現(xiàn)在我們談一下做系統(tǒng)總體設計的體會。系統(tǒng)總體設計的好壞直接影響后面的編碼過程。剛開始我們的總體設計不是很完善,導致在具體實現(xiàn)時,我們的模塊劃分的不是很好,數(shù)據(jù)表的設計也不能很好的反映現(xiàn)實情況。后來我們又完善了系統(tǒng)的總體
142、設計,對各個模塊進行了詳細的規(guī)劃,系統(tǒng)層次顯得分明,編碼也相對容易一些。還有很重要的一個環(huán)節(jié)是數(shù)據(jù)庫的設計與實現(xiàn)。在設計一個數(shù)據(jù)庫時,首先應該仔細研究業(yè)務需求。用戶需求將直接決定表的設計。</p><p> 理論知識很必要,實踐也不可缺少,只有在實踐中才能更清楚的了解自己對理論知識的掌握程度,才能學以致用,把所學的知識運用到實踐中去。這次課程設計極大地提高了我們的團隊合作能力和動手能力。</p>
143、<p><b> 四、參考文獻</b></p><p> [1] 鄭人杰.馬素霞.軟件工程概論.北京:機械工業(yè)出版社,2009.11</p><p> [2] 張海藩.軟件工程導論.北京:清華大學出版社,2006.11</p><p> [3] 呂云祥.軟件工程課程設計.北京:機械工業(yè)出版社,2009.1</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- uml課程設計--網(wǎng)上購物系統(tǒng)
- uml網(wǎng)上購物系統(tǒng)課程設計
- uml網(wǎng)上購物系統(tǒng)課程設計
- 課程設計--網(wǎng)上購物系統(tǒng)
- 課程設計---網(wǎng)上購物系統(tǒng)
- jsp課程設計---網(wǎng)上購物系統(tǒng)
- 網(wǎng)上購物系統(tǒng)課程設計報告
- 網(wǎng)上購物課程設計
- 網(wǎng)上購物系統(tǒng)uml建模
- uml課程設計--網(wǎng)上圖書銷售系統(tǒng)
- 課程設計---網(wǎng)上購物系統(tǒng)設計與實現(xiàn)
- c#課程設計--網(wǎng)上購物系統(tǒng)
- 課程設計---網(wǎng)上購物系統(tǒng)設計與實現(xiàn)
- 網(wǎng)上購物課程設計論文
- 數(shù)據(jù)庫課程設計--網(wǎng)上購物系統(tǒng)
- 系統(tǒng)分析課程設計--網(wǎng)上購物
- 基于uml的網(wǎng)上購物系統(tǒng)
- 軟件工程網(wǎng)上購物系統(tǒng)課程設計
- uml大作業(yè)--網(wǎng)上購物系統(tǒng)
- 數(shù)據(jù)庫課程設計----網(wǎng)上購物系統(tǒng)設計
評論
0/150
提交評論