軟件工程網上購物系統(tǒng)課程設計_第1頁
已閱讀1頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  軟件工程課程設計報告</p><p>  ( 2012 -- 2013 學年 第二學期)</p><p>  課程名稱: 軟件工程課程設計 </p><p>  題 目: 網上購物系統(tǒng) </p><p>  院 系:控制與計算機工程學院</p><p>  班 級

2、: 軟件1002班 </p><p>  組 號: </p><p>  組 長: 艾君偉 </p><p>  組 員:陳肖成、汪豪、李崧榕</p><p>  指導教師: </p><p&

3、gt;  設計周數: 兩周 </p><p>  小組成績: </p><p>  日期:2013 年 7月 12日</p><p>  《軟件工程》課程設計</p><p><b>  任 務 書</b></p><p>&

4、lt;b>  一、 目的、要求</b></p><p>  通過軟件開發(fā)的實踐訓練,進一步掌握軟件工程的方法和技術,提高軟件開發(fā)的實際能力,培養(yǎng)工程設計能力和綜合分析、解決問題的能力。</p><p><b>  具體如下:</b></p><p>  學習和實踐在分析和設計計算機應用系統(tǒng)所需要的知識,包括面向對象的系統(tǒng)分析與

5、設計,編碼和測試方面的知識;</p><p>  熟悉自動化的軟件開發(fā)工具Rational Rose,并將其運用于軟件開發(fā)的全過程;</p><p>  進一步加強和提高軟件工程文檔的編寫能力;</p><p>  培養(yǎng)協(xié)作能力和團隊精神。</p><p><b>  二、 主要內容</b></p><

6、;p>  運用面向對象技術、UML進行網上購物系統(tǒng)的需求分析與設計;</p><p>  使用Rational Rose作為需求分析與設計的建模工具,進行靜態(tài)建模和動態(tài)建模;</p><p>  利用對象模型自動生成數據模型,自動建立數據庫;</p><p>  使用J2EE、HTML、CSS、Javascript語言對購物模塊進行界面層的設計并給出實現;&l

7、t;/p><p><b>  撰寫課程設計報告。</b></p><p><b>  三、任務分配</b></p><p><b>  四、 進度計劃</b></p><p><b>  五、 設計成果要求</b></p><p>  

8、建立系統(tǒng)分析與設計模型;</p><p>  初步建立系統(tǒng)原型,實現關鍵的功能;</p><p><b>  編寫課程設計報告。</b></p><p><b>  六、 考核方式</b></p><p><b>  系統(tǒng)演示及講解</b></p><p&g

9、t;<b>  占50%。</b></p><p><b>  設計報告</b></p><p><b>  占50%。</b></p><p><b>  指導教師:</b></p><p>  日 期:2013年 6 月 28 日</p>

10、<p>  《軟件工程》課程設計</p><p><b>  成 績 評定</b></p><p><b>  一、 指導教師評語</b></p><p><b>  二、 成績</b></p><p>  指導教師: </p&

11、gt;<p>  日期: 2013 年 7 月 12 日</p><p><b>  摘要:</b></p><p>  當今社會,隨著計算機的應用和Internet的普及, Internet網絡給人類社會帶來了巨大變化,網絡在我們的生活中幾乎無處不在。因此,建立網上物品的銷售管理系統(tǒng)是時代的潮流。由于JSP可以在85%以上的服務器上運行,而且JSP技術

12、的應用程序比ASP的應用程序易于維護和管理。所以,通過采用JSP技術設計開發(fā)在線購物系統(tǒng)符合時代的潮流、具有積極的進步意義。</p><p>  網上購物系統(tǒng)可以實現人們遠程逛逛商店和購買商品的愿望。本系統(tǒng)的功能是實現網上購物,主要包括商品信息管理、購物車訂單管理、用戶管理、商品評價管理、商品庫存管理等模塊,主要以對數據庫的增刪改查來實現這些功能。本系統(tǒng)依據模仿現行的B2C網站的需求而設計,運用Rational

13、Rose、Myeclipse等軟件開發(fā)工具實現系統(tǒng)的分析、設計與實現,最后設計出來的系統(tǒng)基本滿足能網上購物的功能需求。</p><p>  關鍵詞:網上購物,面向對象,Rational Rose,J2EE</p><p>  一、課程設計的目的與要求</p><p>  通過軟件開發(fā)的實踐訓練,進一步掌握軟件工程的方法和技術,提高軟件開發(fā)的實際能力,培養(yǎng)工程設計能力

14、和綜合分析、解決問題的能力。</p><p><b>  具體如下:</b></p><p>  學習和實踐在分析和設計計算機應用系統(tǒng)所需要的知識,包括面向對象的系統(tǒng)分析與設計,編碼和測試方面的知識;</p><p>  熟悉自動化的軟件開發(fā)工具Rational Rose,并將其運用于軟件開發(fā)的全過程;</p><p>

15、  進一步加強和提高軟件工程文檔的編寫能力;</p><p>  培養(yǎng)協(xié)作能力和團隊精神。</p><p><b>  二、設計正文</b></p><p><b>  概述</b></p><p><b>  設計課題</b></p><p>  該系

16、統(tǒng)為網上購物系統(tǒng)。</p><p><b>  系統(tǒng)目標</b></p><p>  調研目前現有的網上購物系統(tǒng),如當當網,亞馬遜商城,京東商城等大型電子商務系統(tǒng),設計出一個更適合用戶使用,有更多用戶交互,更人性化的購物系統(tǒng)。</p><p><b>  系統(tǒng)開發(fā)與運行環(huán)境</b></p><p>

17、 ?。?)數據庫管理軟件:MySQL</p><p> ?。?)建模工具:Rational Rose</p><p>  (3)編程工具:MyEclipse、DreamWeaver</p><p> ?。?)操作系統(tǒng):Windows系列、Tomcat系統(tǒng)</p><p>  (5)開發(fā)語言:J2EE</p><p> 

18、 2 系統(tǒng)需求分析</p><p>  2.1 系統(tǒng)需求概述</p><p>  主要從用戶、管理員兩方面進行需求分析。</p><p><b>  用戶功能分析:</b></p><p><b>  (1)購物車:</b></p><p>  主要功能包括將商品加入購物

19、車——>提交訂單——>支付——>將訂單信息存檔</p><p>  (2)個人中心:功能主要包括四部分:</p><p>  1)查詢自己的購買商品記錄,通過人員id在數據庫中查找。</p><p>  2)商品列表:可以查詢用戶本人在使用,想購買,和購買過的商品。</p><p>  3)推薦商品:本用例中,推薦商品和新商

20、品通過控制類中的方法實現,偏好是商品通過人員的個性分析方法實現。 </p><p>  4)商品評價:可以查詢自己的評論過的商品的商品信息和評論信息</p><p><b>  (3)賬戶管理:</b></p><p>  主要包括登錄,注冊,修改個人資料的功能</p><p><b>  (4)商品搜索

21、:</b></p><p>  1)字節(jié)搜索:可以通過商品名稱,商品序列號精確搜索</p><p>  2)分類搜索:通過各個分類進行搜索。</p><p><b>  管理員功能分析:</b></p><p>  (1)商品信息管理:功能主要包括四部分:</p><p><b&

22、gt;  1)增加商品信息</b></p><p><b>  2)刪除商品信息</b></p><p><b>  3)修改商品信息</b></p><p><b>  4)查看商品信息</b></p><p><b>  (2)庫存管理:</b&

23、gt;</p><p>  主要功能包括:修改商品的存貨數量</p><p><b>  (3)用戶管理:</b></p><p>  1)將不良交易次數用戶較多的用戶加入黑名單</p><p>  2)商品評價管理:將被人氣較高的書評放入首頁的推薦書評模塊</p><p>  (4)商品評評管理

24、:</p><p>  主要功能為將違禁商品評價刪除</p><p><b>  (5)銷量統(tǒng)計:</b></p><p>  主要功能包括:查看營業(yè)額,查看銷售排行,查看利潤。</p><p><b>  2.2 用例圖</b></p><p>  對于整個用例圖,外部角色

25、有管理員、普通用戶即顧客。</p><p>  管理員主要有書籍的增、刪、改,普通用戶信息管理,訂單管理。</p><p>  普通用戶主要有在線交易、搜索、結算、加入購物車、加入收藏、結算、評價、賬戶管理等用例。</p><p>  圖2.2-1 總用例圖用例圖</p><p>  圖2.2-2 店鋪管理用例圖</p><

26、;p>  圖2.2-3 購物用例圖</p><p>  關鍵用例正常事件流和異常事件流的描述如下表:</p><p>  用例規(guī)格說明:內容管理員注冊</p><p><b>  超級管理員</b></p><p>  用例規(guī)格說明:內容管理員登錄</p><p><b>  所有

27、用戶</b></p><p>  用例規(guī)格說明:新增商品</p><p><b>  內容管理員</b></p><p>  用例規(guī)格說明:修改商品</p><p><b>  內容管理員</b></p><p>  用例規(guī)格說明:刪除商品</p>

28、<p><b>  內容管理員</b></p><p>  用例規(guī)格說明:修改訂單</p><p><b>  內容管理員</b></p><p>  用例規(guī)格說明:取消訂單</p><p><b>  內容管理員</b></p><p>&l

29、t;b>  用例規(guī)格說明:退貨</b></p><p><b>  內容管理員</b></p><p>  用例規(guī)格說明:顧客信息修改</p><p><b>  內容管理員</b></p><p>  與顧客有關的用例規(guī)格說明</p><p>  用例規(guī)格

30、說明:顧客注冊</p><p><b>  顧客</b></p><p>  用例規(guī)格說明:顧客登錄</p><p><b>  顧客</b></p><p><b>  用例規(guī)格說明:瀏覽</b></p><p><b>  顧客</b

31、></p><p><b>  用例規(guī)格說明:搜索</b></p><p><b>  顧客</b></p><p>  用例規(guī)格說明:加入購物車</p><p><b>  顧客</b></p><p>  用例規(guī)格說明:加入收藏</p&g

32、t;<p><b>  顧客</b></p><p><b>  用例規(guī)格說明:結算</b></p><p><b>  顧客</b></p><p><b>  用例規(guī)格說明:退貨</b></p><p><b>  顧客<

33、/b></p><p>  用例規(guī)格說明:顧客信息修</p><p><b>  顧客</b></p><p><b>  2.3 類圖</b></p><p><b>  圖2.3-1 類圖</b></p><p><b>  類描述如

34、下:</b></p><p><b>  coustomer</b></p><p>  用戶可以更改自己的姓名、密碼和其它個人信息,也可以查看自己的購物車并在其上添加刪除商品,其后對購物車中的產品進行結算。用戶還可以對訂單中已付款的商品按照要求進行退貨操作。用戶還可以發(fā)表商品評價和查看商品的來自其他人的評價。</p><p>&l

35、t;b>  Manager</b></p><p>  管理員所具有的屬性并不多,管理員主要實現對商品的增、刪、改,對用戶個人信息的管理,對訂單的處理協(xié)助用戶退貨。</p><p><b>  good</b></p><p>  描述商品對象的抽象。商品的唯一標識是商品ID,商品還有品名、價格、類型編號、圖片、描述、數量、評

36、價。</p><p>  shoppingcart</p><p>  用戶的購物車類,在用戶進行網上瀏覽和準備交易時,可將商品加入購物車,查看購物車,刪除或取消交易。進行交易時會將交易信息入時間、金額、商品列表、優(yōu)惠方式等記錄為購物歷史。購物車對象自帶了計算優(yōu)惠的方式,同時購物車要記錄用戶購買商品時的運送信息。</p><p><b>  Order&l

37、t;/b></p><p>  訂單記錄了訂單編號,訂單生成時間和用戶ID,訂單通過一個LIST類型記錄了購買的商品。</p><p><b>  類之間的關系:</b></p><p>  Coustomer 與shoppingcart 為聚合關系,manger與order是聚合關系;manger、coustomer類同good類是關聯

38、關系,其中coustomer與good的關聯類是shoppingcart類;shoopingcart與order為關聯類。</p><p><b>  2.4 順序圖</b></p><p>  支付的順序圖如下圖所示,首先是用戶登錄系統(tǒng),然后用戶通過界面在商品類中查看到自己想要買的商品,然后將商品加入購物車,然后提交訂單,支付訂單,最后進行存檔。</p>

39、<p>  圖2.4-1 用戶支付順序圖</p><p>  圖2.4-2 新增商品順序圖</p><p>  圖2.4-3 刪除商品順序圖</p><p>  圖2.4-4 修改商品順序圖</p><p>  退貨的順序圖如下圖所示,首先是用戶登錄系統(tǒng),然后用戶通過界面在訂單中查看到自己已買的商品,然后申請退貨,

40、最后進行退貨。</p><p>  2.4-5 用戶退貨順序圖</p><p><b>  2.5 協(xié)作圖</b></p><p>  根據順序圖獲得協(xié)作圖如下:</p><p>  圖2.5-1 用戶支付協(xié)作圖</p><p>  圖2.5-2 新增商品協(xié)作圖</p><

41、;p>  圖2.5-3 刪除商品協(xié)作圖</p><p>  圖2.5-4 修改商品協(xié)作圖</p><p>  圖2.5-5 用戶退貨協(xié)作圖</p><p>  2.6 狀態(tài)圖 </p><p>  訂單狀態(tài)圖。主要包括訂單為空狀態(tài)、訂單處理狀態(tài)、增加完成狀態(tài)、刪除完成狀態(tài)、修改完成狀態(tài),支付訂單狀態(tài),訂單存檔狀態(tài)。</

42、p><p>  圖2.6-1 訂單狀態(tài)圖</p><p><b>  3. 系統(tǒng)總體設計</b></p><p>  3.1 系統(tǒng)體系結構設計</p><p>  3.3 設計數據管理子系統(tǒng)</p><p><b>  表3.3-1用戶表</b></p><

43、p>  表3.3-2 管理員表</p><p><b>  表3.3-3商品表</b></p><p><b>  表3.3-4訂單表</b></p><p>  表3.3-5商品類型表</p><p>  圖3.3-1 數據表關系圖</p><p>  3.4 設計人

44、機交互子系統(tǒng)</p><p>  圖3.4-1 注冊界面</p><p>  圖3.4-2 注冊成功界面</p><p>  圖3.4-3 登陸界面</p><p>  圖3.4-4 主頁界面</p><p>  圖3.4-5 購物車界面</p><p>  圖3.4-6 提交訂單界面</

45、p><p>  圖3.4-7 提交訂單成功界面</p><p><b>  4. 詳細設計</b></p><p>  提示: 對于復雜的方法給出詳細設計,可以使用偽代碼描述, 也可以使用程序流程圖來描述。</p><p>  4.1.1商品查詢方法</p><p>  goodsearch()<

46、;/p><p><b>  {</b></p><p>  創(chuàng)建一個List類型以及標志位flg=false;</p><p><b>  獲取搜索類型</b></p><p><b>  If(按名字查詢)</b></p><p><b>  {

47、</b></p><p>  獲取窗口中的關鍵字;</p><p>  創(chuàng)建數據庫查詢語句sql;</p><p>  創(chuàng)建SQLBean對象bean;</p><p>  Rs=bean.exacuteQuery(sql);</p><p><b>  Try{</b></p&

48、gt;<p>  將rs中的信息存入到List中;</p><p><b>  }</b></p><p>  Catch(SQLException e)</p><p><b>  {</b></p><p><b>  輸出異常信息;</b></p>

49、;<p><b>  }</b></p><p><b>  }</b></p><p><b>  If(按分類查詢)</b></p><p><b>  {</b></p><p><b>  獲取商品類型;</b>

50、</p><p>  創(chuàng)建數據庫查詢語句sql;</p><p>  創(chuàng)建SQLBean對象bean;</p><p>  Rs=bean.exacuteQuery(sql);</p><p><b>  Try{</b></p><p>  將rs中的信息存入到List中;</p>

51、<p><b>  }</b></p><p>  Catch(SQLException e)</p><p><b>  {</b></p><p><b>  輸出異常信息;</b></p><p><b>  }</b></p>

52、;<p><b>  }</b></p><p><b>  返回List</b></p><p><b>  }</b></p><p>  4.1.2登錄界面代碼實現</p><p>  package Servlet_Contorlller;</p&g

53、t;<p><b>  //登錄</b></p><p>  public class loginCheck extends HttpServlet</p><p><b>  {</b></p><p>  public void doGet(HttpServletRequest request, Http

54、ServletResponse response)</p><p>  throws ServletException, IOException</p><p><b>  {</b></p><p>  request.setCharacterEncoding("utf-8");</p><p> 

55、 response.setCharacterEncoding("utf-8");</p><p>  PrintWriter out = response.getWriter();</p><p>  response.setContentType("text/html");</p><p>  String username

56、 = request.getParameter("username");</p><p>  String password = request.getParameter("password");</p><p>  System.out.println("輸入的密碼:" + password);</p><p

57、>  String radio = request.getParameter("logintype");</p><p>  // username=new String(username.getBytes(),"gb2312");</p><p>  int reginfo = -1;</p><p>  if (&q

58、uot;".equals(username) || username == null) {</p><p>  reginfo = 4;// 用戶名不能為空</p><p>  System.out.println("用戶名為空");</p><p><b>  } else {</b></p>&l

59、t;p>  if (radio.equals("0"))// 個人登錄</p><p><b>  {</b></p><p>  String sqlString = "select password from customer where username='"</p><p>  +

60、username + "'";</p><p>  List<String> list = null;</p><p>  SQLBean search = new SQLBean();</p><p><b>  try {</b></p><p>  search.execut

61、eQuery(sqlString);</p><p>  System.out.println(sqlString);</p><p>  list = search.getSelectRt();</p><p>  search.close();</p><p>  } catch (Exception e) {</p>&l

62、t;p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  if (list.size() == 0) {</p><p>  reginfo = 3;// 用戶不存在&l

63、t;/p><p>  response.sendRedirect("index.jsp?reginfo=3");</p><p><b>  } else {</b></p><p>  for (String item : list) {</p><p>  if (item.equals(passwo

64、rd)) {</p><p>  System.out.println("sadasdsa");</p><p>  reginfo = 1;// 登錄成功</p><p>  HttpSession session = request.getSession(true);</p><p>  session.setAttr

65、ibute("user", username);</p><p>  response.sendRedirect("pagedivide");</p><p><b>  }</b></p><p><b>  }</b></p><p><b> 

66、 }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  public void doPost(HttpServletRequest request, HttpSer

67、vletResponse response)</p><p>  throws ServletException, IOException</p><p><b>  {</b></p><p>  this.doGet(request, response);</p><p><b>  }</b>

68、</p><p><b>  }</b></p><p>  4.1.3 注冊界面代碼實現</p><p>  package Servlet_Contorlller;</p><p>  public class registerCheck extends HttpServlet</p><p>

69、;<b>  {</b></p><p>  public void doGet(HttpServletRequest request, HttpServletResponse response)</p><p>  throws ServletException, IOException</p><p><b>  {</b&

70、gt;</p><p>  this.rtcheck(request, response);</p><p><b>  }</b></p><p>  public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p>

71、;  throws ServletException, IOException</p><p><b>  {</b></p><p>  //response.sendRedirect("registerCheck.jsp");</p><p>  this.rtcheck(request, response);</

72、p><p><b>  }</b></p><p>  public void rtcheck(HttpServletRequest request, HttpServletResponse response)</p><p><b>  {</b></p><p><b>  try {&l

73、t;/b></p><p>  request.setCharacterEncoding("utf-8");</p><p>  } catch (UnsupportedEncodingException e2) {</p><p>  // TODO Auto-generated catch block</p><p&

74、gt;  e2.printStackTrace();</p><p><b>  }</b></p><p>  response.setCharacterEncoding("utf-8");</p><p>  String name=request.getParameter("cuserid");&l

75、t;/p><p>  String password=request.getParameter("cpassword");</p><p>  String tel=request.getParameter("ctel");</p><p>  String email=request.getParameter("cem

76、ail");</p><p>  String sex=request.getParameter("select");</p><p>  String age=request.getParameter("cage");</p><p>  String repeatpassword=request.getParam

77、eter("repeatpassword");</p><p>  int reg=0;//0--注冊成功 1--注冊失敗</p><p>  if("".equals(name)||name==null)</p><p><b>  {</b></p><p><b>

78、;  reg=0;</b></p><p><b>  try</b></p><p><b>  {</b></p><p>  System.out.println("跳轉");</p><p>  response.sendRedirect("regi

79、ster.jsp");</p><p><b>  }</b></p><p>  catch (IOException e)</p><p><b>  {</b></p><p>  // TODO Auto-generated catch block</p><p

80、>  e.printStackTrace();</p><p>  System.out.println("重定向異常");</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if("".equ

81、als(password)||password==null)</p><p><b>  {</b></p><p><b>  reg=0;</b></p><p><b>  try</b></p><p><b>  {</b></p>

82、<p>  response.sendRedirect("register.jsp");</p><p>  System.out.println("跳轉2");</p><p><b>  }</b></p><p>  catch (IOException e)</p>&l

83、t;p><b>  {</b></p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p>  System.out.println("重定向異常");</p><p><b>

84、  }</b></p><p><b>  }</b></p><p>  else if("".equals(tel)||tel==null)</p><p><b>  {</b></p><p><b>  reg=0;</b></p

85、><p><b>  try</b></p><p><b>  {</b></p><p>  System.out.println("跳轉3");</p><p>  response.sendRedirect("register.jsp");</p&g

86、t;<p><b>  }</b></p><p>  catch (IOException e)</p><p><b>  {</b></p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace(

87、);</p><p>  System.out.println("重定向異常");</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if("".equals(email)||email==null)

88、</p><p><b>  {</b></p><p><b>  reg=0;</b></p><p><b>  try</b></p><p><b>  {</b></p><p>  System.out.println

89、("跳轉4");</p><p>  response.sendRedirect("register.jsp");</p><p><b>  }</b></p><p>  catch (IOException e)</p><p><b>  {</b>&

90、lt;/p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p>  System.out.println("重定向異常");</p><p><b>  }</b></p><p

91、><b>  }</b></p><p>  else if("".equals(age)||age==null)</p><p><b>  {</b></p><p><b>  reg=0;</b></p><p><b>  try&

92、lt;/b></p><p><b>  {</b></p><p>  System.out.println("跳轉5");</p><p>  response.sendRedirect("register.jsp");</p><p><b>  }</

93、b></p><p>  catch (IOException e)</p><p><b>  {</b></p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p>  Syste

94、m.out.println("重定向異常");</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if("".equals(repeatpassword)||repeatpassword==null)</p>

95、<p><b>  {</b></p><p><b>  reg=0;</b></p><p><b>  try</b></p><p><b>  {</b></p><p>  System.out.println("跳轉6&q

96、uot;);</p><p>  response.sendRedirect("register.jsp");</p><p><b>  }</b></p><p>  catch (IOException e)</p><p><b>  {</b></p>&

97、lt;p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p>  System.out.println("重定向異常");</p><p><b>  }</b></p><p><b>

98、;  }</b></p><p>  else if(!repeatpassword.equals(password))</p><p><b>  {</b></p><p><b>  reg=0;</b></p><p><b>  try</b></p

99、><p><b>  {</b></p><p>  System.out.println("跳轉7");</p><p>  response.sendRedirect("register.jsp");</p><p><b>  }</b></p>

100、<p>  catch (IOException e)</p><p><b>  {</b></p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p>  System.out.println(&

101、quot;重定向異常");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Stri

102、ng sqlstr="select username from customer";</p><p>  SQLBean bean=new SQLBean();</p><p>  List<String> list=new ArrayList();</p><p><b>  try</b></p>

103、<p><b>  {</b></p><p>  bean.executeQuery(sqlstr);</p><p>  list=bean.getSelectRt();</p><p>  bean.close();</p><p><b>  }</b></p>

104、<p>  catch (Exception e)</p><p><b>  {</b></p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p>  System.out.println("

105、;數據庫查詢錯誤");</p><p><b>  }</b></p><p>  for(String li:list)</p><p><b>  {</b></p><p>  if(li.equals(name))</p><p><b>  {&

106、lt;/b></p><p>  reg=1;//用戶名重復</p><p><b>  try</b></p><p><b>  {</b></p><p>  System.out.println("跳轉");</p><p>  respon

107、se.sendRedirect("register.jsp");</p><p><b>  }</b></p><p>  catch (IOException e)</p><p><b>  {</b></p><p>  // TODO Auto-generated ca

108、tch block</p><p>  e.printStackTrace();</p><p>  System.out.println("重定向異常");</p><p><b>  }</b></p><p><b>  }</b></p><p>

109、<b>  }</b></p><p>  sqlstr="insert into customer(userid,username,password,tel,email,sex,age) values(null,'"+name+"','"+password+"','"+tel+"&

110、#39;,'"+email+"','"+sex+"',"+age+")";</p><p>  System.out.println(sqlstr);</p><p>  SQLBean bean2=new SQLBean();</p><p><b> 

111、 try</b></p><p><b>  {</b></p><p>  bean2.executeUpdate(sqlstr);</p><p>  bean2.close();</p><p><b>  }</b></p><p>  catch (Ex

112、ception e)</p><p><b>  {</b></p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><

113、;b>  try</b></p><p><b>  {</b></p><p>  response.sendRedirect("success.jsp");</p><p><b>  }</b></p><p>  catch (IOException e

114、)</p><p><b>  {</b></p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }

115、</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  4.1.4 購物車處理代碼實現</p><p>  if(action.equals("buy"))//加入購物車</p><p>

116、<b>  {</b></p><p>  CarBean mycart = (CarBean)session.getAttribute("mycart");</p><p>  if(mycart==null)</p><p><b>  {</b></p><p>  myc

117、art = new CarBean();</p><p><b>  }</b></p><p>  //得到要購買東西的ID</p><p>  String gid = request.getParameter("gid");</p><p>  mycart.buy(gid,Integer.pa

118、rseInt(num));</p><p>  response.sendRedirect("cart.jsp");</p><p><b>  }</b></p><p>  else if(action.equals("changeNum"))</p><p><b>

119、;  {</b></p><p>  String gnum = request.getParameter("gnum");</p><p>  String gid = request.getParameter("gid");</p><p>  int number = 0;</p><p&

120、gt;<b>  try</b></p><p><b>  {</b></p><p>  number = Integer.parseInt(gnum);</p><p><b>  }</b></p><p>  catch(Exception e)</p>

121、<p><b>  {</b></p><p>  //修改的數量不合法時</p><p>  String msg = "對不起,數量修改錯誤!!!";</p><p>  //pageForward(msg,request,response); </p><p><b>  

122、}</b></p><p>  int id = Integer.parseInt(gid);</p><p>  int count=0;</p><p><b>  //得到庫存數量</b></p><p>  String sql = "select goodnum from goods wh

123、ere goodId="+id;</p><p>  SQLBean bean=new SQLBean();</p><p><b>  try {</b></p><p>  bean.executeQuery(sql); </p><p>  ResultSet st=bean.getRs();&l

124、t;/p><p>  if(st!=null)</p><p><b>  {</b></p><p>  st.next();</p><p>  count =st.getInt(1);</p><p>  bean.close();</p><p><b>  

125、}</b></p><p>  } catch (Exception e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>

126、;  if(count<number)</p><p>  {//當庫存少于修改的值時</p><p>  String msg = "對不起,庫存不夠,庫存數量只有 "+count;</p><p>  out.println("<p>msg</p>");</p><p>

127、;  out.println("<a href='cart.jsp'>返回購物車</a>");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {//當庫存夠時</b><

128、/p><p>  CarBean mycart = (CarBean)session.getAttribute("mycart");</p><p>  if(mycart==null)</p><p><b>  {</b></p><p>  mycart = new CarBean();</p

129、><p><b>  }</b></p><p>  //得到用戶的購物車</p><p>  Map<String,Integer> cart = mycart.getCart();</p><p><b>  //修改商品數量</b></p><p>  cart

130、.put(gid,number);</p><p>  session.setAttribute("mycart",mycart);</p><p>  response.sendRedirect("cart.jsp"); </p><p><b>  }</b></p><

131、;p><b>  }</b></p><p>  else if(action.equals("delete"))</p><p><b>  {</b></p><p>  String gid = request.getParameter("gid").trim();<

132、;/p><p>  //得到javaBean對象</p><p>  CarBean mycart = (CarBean)session.getAttribute("mycart");</p><p>  if(mycart==null)</p><p><b>  {</b></p>&l

133、t;p>  mycart = new CarBean();</p><p><b>  }</b></p><p>  mycart.removeItem(gid);</p><p>  session.setAttribute("mycart",mycart);</p><p>  resp

134、onse.sendRedirect("cart.jsp");</p><p><b>  }</b></p><p><b>  測試</b></p><p>  本系統(tǒng)在進行功能測試時,著重從鏈接和表單兩個方面進行測試:</p><p><b>  5.1注冊頁測試&

135、lt;/b></p><p>  (1)測試數據:輸入賬戶名ajw 密碼11111111,手機號18001268392</p><p>  郵箱:aa@qq.com 性別:男 年齡:21</p><p><b>  測試結果:注冊成功</b></p><p> ?。?)測試數據:輸入賬戶名ajw 密碼

136、11111111,手機號18001268392</p><p>  郵箱: 性別:男 年齡:21</p><p>  測試結果:提示未注冊該成功,郵箱為空。</p><p>  圖5.1-1 注冊成功圖 圖5.1-2 注冊未成功圖</p><p><b>  5.2

137、登錄頁測試</b></p><p> ?。?)測試數據:輸入賬戶名ajw 密碼11111111 </p><p><b>  測試結果:登陸成功</b></p><p> ?。?)測試數據:輸入賬戶名ajw 密碼</p><p>  測試結果:登陸不成功,未填密碼</p>&l

138、t;p>  圖5.2-1 登陸成功,進入主頁面 圖5.2-3 登陸不成功</p><p><b>  5.3購物主頁測試</b></p><p> ?。?)測試數據:登陸后進入購物主頁</p><p>  測試結果:進入購物主頁查看商品</p><p>  (2)測試操作:點擊首頁<

139、/p><p>  測試結果:回到購物首頁</p><p>  (3)測試操作:點擊購物車</p><p>  測試結果:跳到購物車頁面</p><p>  圖5.3-1 購物主頁</p><p>  圖5.3-1 購物車</p><p><b>  5.4購物測試</b><

140、;/p><p>  (1)測試操作:點擊購買按鈕</p><p>  測試結果:商品加入購物車并跳到購物車頁面</p><p> ?。?)測試操作:點擊結算按鈕</p><p>  測試結果:跳到結算頁面</p><p> ?。?)測試操作:填寫收貨人信息點擊確認</p><p>  測試結果:顯示

141、提交成功</p><p>  圖5.4-1 結算頁面</p><p>  圖5.4-2 提交成功</p><p>  三、課程設計總結或結論</p><p>  在本次課程設計期間,我們進行了一個小型網站的構建并應用了軟件工程中的面向對象建模的方法。首先是需求分析這塊,它很重要。我們根據老師給的要求,結合在網上查的一些資料,做了初步的需求分析

142、,本系統(tǒng)的主要功能是實現網站信息的發(fā)布和管理,涉及到前臺用戶對商品信息的瀏覽和后臺管理。在前臺的用戶瀏覽模塊里,一般需要對商品進行分類展示,并需要通過欄目導航進入特定的商品信息模塊。在后臺的管理方面。需要由合法的管理者來管理商品的添加、修改、刪除等,以及管理登錄、注銷的模塊。最重要的是管理網上交易。從后臺管理大體來看,系統(tǒng)實際分為,商品管理、網上購物管理及模塊管理。</p><p>  現在我們談一下做系統(tǒng)總體設

143、計的體會。系統(tǒng)總體設計的好壞直接影響后面的編碼過程。剛開始我們的總體設計不是很完善,導致在具體實現時,我們的模塊劃分的不是很好,數據表的設計也不能很好的反映現實情況。后來我們又完善了系統(tǒng)的總體設計,對各個模塊進行了詳細的規(guī)劃,系統(tǒng)層次顯得分明,編碼也相對容易一些。還有很重要的一個環(huán)節(jié)是數據庫的設計與實現。在設計一個數據庫時,首先應該仔細研究業(yè)務需求。用戶需求將直接決定表的設計。</p><p>  理論知識很必要

144、,實踐也不可缺少,只有在實踐中才能更清楚的了解自己對理論知識的掌握程度,才能學以致用,把所學的知識運用到實踐中去。這次課程設計極大地提高了我們的團隊合作能力和動手能力。</p><p><b>  四、參考文獻</b></p><p>  [1] 鄭人杰.馬素霞.軟件工程概論.北京:機械工業(yè)出版社,2009.11</p><p>  [2] 張

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論