uml網(wǎng)上購(gòu)物系統(tǒng)課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  軟件工程課程設(shè)計(jì)報(bào)告</p><p>  ( 2013 -- 2014 學(xué)年 第二學(xué)期)</p><p>  課程名稱: UML大作業(yè) </p><p>  題 目:網(wǎng)上購(gòu)物系統(tǒng)的分析及設(shè)計(jì) </p><p>  院 系:計(jì)算機(jī)工程學(xué)院</p><p>  班 級(jí): 軟

2、件1002班 </p><p>  學(xué) 號(hào): </p><p>  組 員:</p><p>  指導(dǎo)教師: </p><p>  小組成績(jī): </p><p>  《

3、軟件工程》課程設(shè)計(jì)</p><p><b>  任 務(wù) 書</b></p><p><b>  一、 目的、要求</b></p><p>  通過(guò)軟件開(kāi)發(fā)的實(shí)踐訓(xùn)練,進(jìn)一步掌握軟件工程的方法和技術(shù),提高軟件開(kāi)發(fā)的實(shí)際能力,培養(yǎng)工程設(shè)計(jì)能力和綜合分析、解決問(wèn)題的能力。</p><p><b&

4、gt;  具體如下:</b></p><p>  學(xué)習(xí)和實(shí)踐在分析和設(shè)計(jì)計(jì)算機(jī)應(yīng)用系統(tǒng)所需要的知識(shí),包括面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì),編碼和測(cè)試方面的知識(shí);</p><p>  熟悉自動(dòng)化的軟件開(kāi)發(fā)工具Rational Rose,并將其運(yùn)用于軟件開(kāi)發(fā)的全過(guò)程;</p><p>  進(jìn)一步加強(qiáng)和提高軟件工程文檔的編寫能力;</p><p&g

5、t;  培養(yǎng)協(xié)作能力和團(tuán)隊(duì)精神。</p><p><b>  二、 主要內(nèi)容</b></p><p>  運(yùn)用面向?qū)ο蠹夹g(shù)、UML進(jìn)行網(wǎng)上購(gòu)物系統(tǒng)的需求分析與設(shè)計(jì);</p><p>  使用Rational Rose作為需求分析與設(shè)計(jì)的建模工具,進(jìn)行靜態(tài)建模和動(dòng)態(tài)建模;</p><p>  利用對(duì)象模型自動(dòng)生成數(shù)據(jù)模型,

6、自動(dòng)建立數(shù)據(jù)庫(kù);</p><p>  使用J2EE、HTML、CSS、Javascript語(yǔ)言對(duì)購(gòu)物模塊進(jìn)行界面層的設(shè)計(jì)并給出實(shí)現(xiàn);</p><p><b>  撰寫課程設(shè)計(jì)報(bào)告。</b></p><p><b>  三、任務(wù)分配</b></p><p><b>  四、 進(jìn)度計(jì)劃<

7、/b></p><p><b>  五、 設(shè)計(jì)成果要求</b></p><p>  建立系統(tǒng)分析與設(shè)計(jì)模型;</p><p>  初步建立系統(tǒng)原型,實(shí)現(xiàn)關(guān)鍵的功能;</p><p><b>  編寫課程設(shè)計(jì)報(bào)告。</b></p><p><b>  六、 考核

8、方式</b></p><p><b>  系統(tǒng)演示及講解</b></p><p><b>  占50%。</b></p><p><b>  設(shè)計(jì)報(bào)告</b></p><p><b>  占50%。</b></p><p&g

9、t;  《軟件工程》課程設(shè)計(jì)</p><p><b>  成 績(jī) 評(píng)定</b></p><p><b>  一、 指導(dǎo)教師評(píng)語(yǔ)</b></p><p><b>  二、 成績(jī)</b></p><p><b>  摘要</b></p><

10、p>  當(dāng)今社會(huì),隨著計(jì)算機(jī)的應(yīng)用和Internet的普及, Internet網(wǎng)絡(luò)給人類社會(huì)帶來(lái)了巨大變化,網(wǎng)絡(luò)在我們的生活中幾乎無(wú)處不在。因此,建立網(wǎng)上物品的銷售管理系統(tǒng)是時(shí)代的潮流。由于JSP可以在85%以上的服務(wù)器上運(yùn)行,而且JSP技術(shù)的應(yīng)用程序比ASP的應(yīng)用程序易于維護(hù)和管理。所以,通過(guò)采用JSP技術(shù)設(shè)計(jì)開(kāi)發(fā)在線購(gòu)物系統(tǒng)符合時(shí)代的潮流、具有積極的進(jìn)步意義。</p><p>  網(wǎng)上購(gòu)物系統(tǒng)可以實(shí)現(xiàn)人

11、們遠(yuǎn)程逛逛商店和購(gòu)買商品的愿望。本系統(tǒng)的功能是實(shí)現(xiàn)網(wǎng)上購(gòu)物,主要包括商品信息管理、購(gòu)物車訂單管理、用戶管理、商品評(píng)價(jià)管理、商品庫(kù)存管理等模塊,主要以對(duì)數(shù)據(jù)庫(kù)的增刪改查來(lái)實(shí)現(xiàn)這些功能。本系統(tǒng)依據(jù)模仿現(xiàn)行的B2C網(wǎng)站的需求而設(shè)計(jì),運(yùn)用Rational Rose、Myeclipse等軟件開(kāi)發(fā)工具實(shí)現(xiàn)系統(tǒng)的分析、設(shè)計(jì)與實(shí)現(xiàn),最后設(shè)計(jì)出來(lái)的系統(tǒng)基本滿足能網(wǎng)上購(gòu)物的功能需求。</p><p>  關(guān)鍵詞:網(wǎng)上購(gòu)物,面向?qū)ο螅?/p>

12、Rational Rose,J2EE</p><p>  一、課程設(shè)計(jì)的目的與要求</p><p>  通過(guò)軟件開(kāi)發(fā)的實(shí)踐訓(xùn)練,進(jìn)一步掌握軟件工程的方法和技術(shù),提高軟件開(kāi)發(fā)的實(shí)際能力,培養(yǎng)工程設(shè)計(jì)能力和綜合分析、解決問(wèn)題的能力。</p><p><b>  具體如下:</b></p><p>  學(xué)習(xí)和實(shí)踐在分析和設(shè)計(jì)計(jì)

13、算機(jī)應(yīng)用系統(tǒng)所需要的知識(shí),包括面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì),編碼和測(cè)試方面的知識(shí);</p><p>  熟悉自動(dòng)化的軟件開(kāi)發(fā)工具Rational Rose,并將其運(yùn)用于軟件開(kāi)發(fā)的全過(guò)程;</p><p>  進(jìn)一步加強(qiáng)和提高軟件工程文檔的編寫能力;</p><p>  培養(yǎng)協(xié)作能力和團(tuán)隊(duì)精神。</p><p><b>  二、設(shè)計(jì)正文&

14、lt;/b></p><p><b>  概述</b></p><p><b>  設(shè)計(jì)課題</b></p><p>  該系統(tǒng)為網(wǎng)上購(gòu)物系統(tǒng)。</p><p><b>  系統(tǒng)目標(biāo)</b></p><p>  調(diào)研目前現(xiàn)有的網(wǎng)上購(gòu)物系統(tǒng),如當(dāng)當(dāng)網(wǎng)

15、,亞馬遜商城,京東商城等大型電子商務(wù)系統(tǒng),設(shè)計(jì)出一個(gè)更適合用戶使用,有更多用戶交互,更人性化的購(gòu)物系統(tǒng)。</p><p><b>  系統(tǒng)開(kāi)發(fā)與運(yùn)行環(huán)境</b></p><p> ?。?)數(shù)據(jù)庫(kù)管理軟件:MySQL</p><p> ?。?)建模工具:Rational Rose</p><p> ?。?)編程工具:MyE

16、clipse、DreamWeaver</p><p> ?。?)操作系統(tǒng):Windows系列、Tomcat系統(tǒng)</p><p> ?。?)開(kāi)發(fā)語(yǔ)言:J2EE</p><p>  2 系統(tǒng)需求分析</p><p>  2.1 系統(tǒng)需求概述</p><p>  主要從用戶、管理員兩方面進(jìn)行需求分析。</p>

17、<p><b>  用戶功能分析:</b></p><p><b>  (1)購(gòu)物車:</b></p><p>  主要功能包括將商品加入購(gòu)物車——>提交訂單——>支付——>將訂單信息存檔</p><p>  (2)個(gè)人中心:功能主要包括四部分:</p><p>  

18、1)查詢自己的購(gòu)買商品記錄,通過(guò)人員id在數(shù)據(jù)庫(kù)中查找。</p><p>  2)商品列表:可以查詢用戶本人在使用,想購(gòu)買,和購(gòu)買過(guò)的商品。</p><p>  3)推薦商品:本用例中,推薦商品和新商品通過(guò)控制類中的方法實(shí)現(xiàn),偏好是商品通過(guò)人員的個(gè)性分析方法實(shí)現(xiàn)。 </p><p>  4)商品評(píng)價(jià):可以查詢自己的評(píng)論過(guò)的商品的商品信息和評(píng)論信息</p&

19、gt;<p><b>  (3)賬戶管理:</b></p><p>  主要包括登錄,注冊(cè),修改個(gè)人資料的功能</p><p><b>  (4)商品搜索:</b></p><p>  1)字節(jié)搜索:可以通過(guò)商品名稱,商品序列號(hào)精確搜索</p><p>  2)分類搜索:通過(guò)各個(gè)分類進(jìn)

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)庫(kù)存管理:</b></p><p>  主要功能包括:修改商品的存貨數(shù)量</p><p><b>  (3)用戶管理:</b><

22、/p><p>  1)將不良交易次數(shù)用戶較多的用戶加入黑名單</p><p>  2)商品評(píng)價(jià)管理:將被人氣較高的書評(píng)放入首頁(yè)的推薦書評(píng)模塊</p><p>  (4)商品評(píng)評(píng)管理:</p><p>  主要功能為將違禁商品評(píng)價(jià)刪除</p><p><b>  (5)銷量統(tǒng)計(jì):</b></p&g

23、t;<p>  主要功能包括:查看營(yíng)業(yè)額,查看銷售排行,查看利潤(rùn)。</p><p><b>  2.2 用例圖</b></p><p>  對(duì)于整個(gè)用例圖,外部角色有管理員、普通用戶即顧客。</p><p>  管理員主要有書籍的增、刪、改,普通用戶信息管理,訂單管理。</p><p>  普通用戶主要有在

24、線交易、搜索、結(jié)算、加入購(gòu)物車、加入收藏、結(jié)算、評(píng)價(jià)、賬戶管理等用例。</p><p>  圖2.2-1 總用例圖用例圖</p><p>  圖2.2-2 店鋪管理用例圖</p><p>  圖2.2-3 購(gòu)物用例圖</p><p>  關(guān)鍵用例正常事件流和異常事件流的描述如下表:</p><p>  用例規(guī)格說(shuō)明:內(nèi)

25、容管理員注冊(cè)</p><p><b>  超級(jí)管理員</b></p><p>  用例規(guī)格說(shuō)明:內(nèi)容管理員登錄</p><p><b>  所有用戶</b></p><p>  用例規(guī)格說(shuō)明:新增商品</p><p><b>  內(nèi)容管理員</b><

26、;/p><p>  用例規(guī)格說(shuō)明:修改商品</p><p><b>  內(nèi)容管理員</b></p><p>  用例規(guī)格說(shuō)明:刪除商品</p><p><b>  內(nèi)容管理員</b></p><p>  用例規(guī)格說(shuō)明:修改訂單</p><p><b&

27、gt;  內(nèi)容管理員</b></p><p>  用例規(guī)格說(shuō)明:取消訂單</p><p><b>  內(nèi)容管理員</b></p><p><b>  用例規(guī)格說(shuō)明:退貨</b></p><p><b>  內(nèi)容管理員</b></p><p>

28、  用例規(guī)格說(shuō)明:顧客信息修改</p><p><b>  內(nèi)容管理員</b></p><p>  與顧客有關(guān)的用例規(guī)格說(shuō)明</p><p>  用例規(guī)格說(shuō)明:顧客注冊(cè)</p><p><b>  顧客</b></p><p>  用例規(guī)格說(shuō)明:顧客登錄</p>

29、<p><b>  顧客</b></p><p><b>  用例規(guī)格說(shuō)明:瀏覽</b></p><p><b>  顧客</b></p><p><b>  用例規(guī)格說(shuō)明:搜索</b></p><p><b>  顧客</b&

30、gt;</p><p>  用例規(guī)格說(shuō)明:加入購(gòu)物車</p><p><b>  顧客</b></p><p>  用例規(guī)格說(shuō)明:加入收藏</p><p><b>  顧客</b></p><p><b>  用例規(guī)格說(shuō)明:結(jié)算</b></p>

31、;<p><b>  顧客</b></p><p><b>  用例規(guī)格說(shuō)明:退貨</b></p><p><b>  顧客</b></p><p>  用例規(guī)格說(shuō)明:顧客信息修</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、名、密碼和其它個(gè)人信息,也可以查看自己的購(gòu)物車并在其上添加刪除商品,其后對(duì)購(gòu)物車中的產(chǎn)品進(jìn)行結(jié)算。用戶還可以對(duì)訂單中已付款的商品按照要求進(jìn)行退貨操作。用戶還可以發(fā)表商品評(píng)價(jià)和查看商品的來(lái)自其他人的評(píng)價(jià)。</p><p><b>  Manager</b></p><p>  管理員所具有的屬性并不多,管理員主要實(shí)現(xiàn)對(duì)商品的增、刪、改,對(duì)用戶個(gè)人信息的管理,對(duì)訂單的處理

34、協(xié)助用戶退貨。</p><p><b>  good</b></p><p>  描述商品對(duì)象的抽象。商品的唯一標(biāo)識(shí)是商品ID,商品還有品名、價(jià)格、類型編號(hào)、圖片、描述、數(shù)量、評(píng)價(jià)。</p><p>  shoppingcart</p><p>  用戶的購(gòu)物車類,在用戶進(jìn)行網(wǎng)上瀏覽和準(zhǔn)備交易時(shí),可將商品加入購(gòu)物車,查看

35、購(gòu)物車,刪除或取消交易。進(jìn)行交易時(shí)會(huì)將交易信息入時(shí)間、金額、商品列表、優(yōu)惠方式等記錄為購(gòu)物歷史。購(gòu)物車對(duì)象自帶了計(jì)算優(yōu)惠的方式,同時(shí)購(gòu)物車要記錄用戶購(gòu)買商品時(shí)的運(yùn)送信息。</p><p><b>  Order</b></p><p>  訂單記錄了訂單編號(hào),訂單生成時(shí)間和用戶ID,訂單通過(guò)一個(gè)LIST類型記錄了購(gòu)買的商品。</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),然后用戶通過(guò)界面在商品類中查看到自己想要買的商品,然后將商品加入購(gòu)物車,然后提交訂單,支付訂單,最后進(jìn)行存檔。</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),然后用戶通過(guò)界面在訂單中查看到自己已買的商品,然后申請(qǐng)退貨,最后進(jìn)行退貨。</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)總體設(shè)計(jì)</b></p>&l

41、t;p>  3.1 系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)</p><p>  3.3 設(shè)計(jì)數(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 設(shè)計(jì)人機(jī)交互子系統(tǒng)</p><p>  圖3.4-1 注冊(cè)界面</p><p>  圖3.4-2 注冊(cè)成功界面</p><p>

43、;  圖3.4-3 登陸界面</p><p>  圖3.4-4 主頁(yè)界面</p><p>  圖3.4-5 購(gòu)物車界面</p><p>  圖3.4-6 提交訂單界面</p><p>  圖3.4-7 提交訂單成功界面</p><p><b>  4. 詳細(xì)設(shè)計(jì)</b></p>&l

44、t;p>  提示: 對(duì)于復(fù)雜的方法給出詳細(xì)設(shè)計(jì),可以使用偽代碼描述, 也可以使用程序流程圖來(lái)描述。</p><p>  4.1.1商品查詢方法</p><p>  goodsearch()</p><p><b>  {</b></p><p>  創(chuàng)建一個(gè)List類型以及標(biāo)志位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ù)庫(kù)查詢語(yǔ)句sql;</p><p

46、>  創(chuàng)建SQLBean對(duì)象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ù)庫(kù)查詢語(yǔ)句sql;</p><p>  創(chuàng)建SQLBean對(duì)象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登錄界面代碼實(shí)現(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"))// 個(gè)人登錄</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 注冊(cè)界面代碼實(shí)現(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--注冊(cè)成功 1--注冊(cè)失敗</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ù)庫(kù)查詢錯(cuò)誤");</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;//用戶名重復(fù)</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 購(gòu)物車處理代碼實(shí)現(xiàn)</p><p>  if(action.equals("buy"))//加入購(gòu)物車</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>  //得到要購(gòu)買東西的

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ù)量不合法時(shí)</p><p>  String

120、msg = "對(duì)不起,數(shù)量修改錯(cuò)誤!!!";</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>  //得到庫(kù)存數(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>  {//當(dāng)庫(kù)存少于修改的值時(shí)</p><p>  String msg = &q

125、uot;對(duì)不起,庫(kù)存不夠,庫(kù)存數(shù)量只有 "+count;</p><p>  out.println("<p>msg</p>");</p><p>  out.println("<a href='cart.jsp'>返回購(gòu)物車</a>");</p><p&g

126、t;<b>  }</b></p><p><b>  else</b></p><p><b>  {//當(dāng)庫(kù)存夠時(shí)</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>  //得到用戶的購(gòu)物車</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>  //得到j(luò)avaBean對(duì)象</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>  測(cè)試</b></p><p>  本系統(tǒng)在進(jìn)行功能測(cè)試時(shí),著重從鏈接和表單兩個(gè)方面進(jìn)行測(cè)試:</p><p><b>  5.1注冊(cè)頁(yè)測(cè)試</b></p><p>  (1)測(cè)試數(shù)據(jù):輸入賬戶名ajw 密碼11111111,手機(jī)號(hào)18001268392</p><p>

134、  郵箱:aa@qq.com 性別:男 年齡:21</p><p><b>  測(cè)試結(jié)果:注冊(cè)成功</b></p><p> ?。?)測(cè)試數(shù)據(jù):輸入賬戶名ajw 密碼11111111,手機(jī)號(hào)18001268392</p><p>  郵箱: 性別:男 年齡:21</p><p> 

135、 測(cè)試結(jié)果:提示未注冊(cè)該成功,郵箱為空。</p><p>  圖5.1-1 注冊(cè)成功圖 圖5.1-2 注冊(cè)未成功圖</p><p><b>  5.2登錄頁(yè)測(cè)試</b></p><p> ?。?)測(cè)試數(shù)據(jù):輸入賬戶名ajw 密碼11111111 </p><p>&

136、lt;b>  測(cè)試結(jié)果:登陸成功</b></p><p>  (2)測(cè)試數(shù)據(jù):輸入賬戶名ajw 密碼</p><p>  測(cè)試結(jié)果:登陸不成功,未填密碼</p><p>  圖5.2-1 登陸成功,進(jìn)入主頁(yè)面 圖5.2-3 登陸不成功</p><p><b>  5.3購(gòu)物主頁(yè)測(cè)試<

137、;/b></p><p>  (1)測(cè)試數(shù)據(jù):登陸后進(jìn)入購(gòu)物主頁(yè)</p><p>  測(cè)試結(jié)果:進(jìn)入購(gòu)物主頁(yè)查看商品</p><p> ?。?)測(cè)試操作:點(diǎn)擊首頁(yè)</p><p>  測(cè)試結(jié)果:回到購(gòu)物首頁(yè)</p><p>  (3)測(cè)試操作:點(diǎn)擊購(gòu)物車</p><p>  測(cè)試結(jié)果:跳到

138、購(gòu)物車頁(yè)面</p><p>  圖5.3-1 購(gòu)物主頁(yè)</p><p>  圖5.3-1 購(gòu)物車</p><p><b>  5.4購(gòu)物測(cè)試</b></p><p> ?。?)測(cè)試操作:點(diǎn)擊購(gòu)買按鈕</p><p>  測(cè)試結(jié)果:商品加入購(gòu)物車并跳到購(gòu)物車頁(yè)面</p><p&g

139、t; ?。?)測(cè)試操作:點(diǎn)擊結(jié)算按鈕</p><p>  測(cè)試結(jié)果:跳到結(jié)算頁(yè)面</p><p> ?。?)測(cè)試操作:填寫收貨人信息點(diǎn)擊確認(rèn)</p><p>  測(cè)試結(jié)果:顯示提交成功</p><p>  圖5.4-1 結(jié)算頁(yè)面</p><p>  圖5.4-2 提交成功</p><p>  三

140、、課程設(shè)計(jì)總結(jié)或結(jié)論</p><p>  在本次課程設(shè)計(jì)期間,我們進(jìn)行了一個(gè)小型網(wǎng)站的構(gòu)建并應(yīng)用了軟件工程中的面向?qū)ο蠼5姆椒?。首先是需求分析這塊,它很重要。我們根據(jù)老師給的要求,結(jié)合在網(wǎng)上查的一些資料,做了初步的需求分析,本系統(tǒng)的主要功能是實(shí)現(xiàn)網(wǎng)站信息的發(fā)布和管理,涉及到前臺(tái)用戶對(duì)商品信息的瀏覽和后臺(tái)管理。在前臺(tái)的用戶瀏覽模塊里,一般需要對(duì)商品進(jìn)行分類展示,并需要通過(guò)欄目導(dǎo)航進(jìn)入特定的商品信息模塊。在后臺(tái)的管

141、理方面。需要由合法的管理者來(lái)管理商品的添加、修改、刪除等,以及管理登錄、注銷的模塊。最重要的是管理網(wǎng)上交易。從后臺(tái)管理大體來(lái)看,系統(tǒng)實(shí)際分為,商品管理、網(wǎng)上購(gòu)物管理及模塊管理。</p><p>  現(xiàn)在我們談一下做系統(tǒng)總體設(shè)計(jì)的體會(huì)。系統(tǒng)總體設(shè)計(jì)的好壞直接影響后面的編碼過(guò)程。剛開(kāi)始我們的總體設(shè)計(jì)不是很完善,導(dǎo)致在具體實(shí)現(xiàn)時(shí),我們的模塊劃分的不是很好,數(shù)據(jù)表的設(shè)計(jì)也不能很好的反映現(xiàn)實(shí)情況。后來(lái)我們又完善了系統(tǒng)的總體

142、設(shè)計(jì),對(duì)各個(gè)模塊進(jìn)行了詳細(xì)的規(guī)劃,系統(tǒng)層次顯得分明,編碼也相對(duì)容易一些。還有很重要的一個(gè)環(huán)節(jié)是數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)。在設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)時(shí),首先應(yīng)該仔細(xì)研究業(yè)務(wù)需求。用戶需求將直接決定表的設(shè)計(jì)。</p><p>  理論知識(shí)很必要,實(shí)踐也不可缺少,只有在實(shí)踐中才能更清楚的了解自己對(duì)理論知識(shí)的掌握程度,才能學(xué)以致用,把所學(xué)的知識(shí)運(yùn)用到實(shí)踐中去。這次課程設(shè)計(jì)極大地提高了我們的團(tuán)隊(duì)合作能力和動(dòng)手能力。</p>

143、<p><b>  四、參考文獻(xiàn)</b></p><p>  [1] 鄭人杰.馬素霞.軟件工程概論.北京:機(jī)械工業(yè)出版社,2009.11</p><p>  [2] 張海藩.軟件工程導(dǎo)論.北京:清華大學(xué)出版社,2006.11</p><p>  [3] 呂云祥.軟件工程課程設(shè)計(jì).北京:機(jī)械工業(yè)出版社,2009.1</p>

溫馨提示

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

評(píng)論

0/150

提交評(píng)論