

版權(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> ( 2012 -- 2013 學(xué)年 第二學(xué)期)</p><p> 課程名稱(chēng): 軟件工程課程設(shè)計(jì) </p><p> 題 目: 網(wǎng)上購(gòu)物系統(tǒng) </p><p> 院 系:控制與計(jì)算機(jī)工程學(xué)院</p><p> 班 級(jí)
2、: 軟件1002班 </p><p> 組 號(hào): </p><p> 組 長(zhǎng): 艾君偉 </p><p> 組 員:陳肖成、汪豪、李崧榕</p><p> 指導(dǎo)教師: </p><p&
3、gt; 設(shè)計(jì)周數(shù): 兩周 </p><p> 小組成績(jī): </p><p> 日期:2013 年 7月 12日</p><p> 《軟件工程》課程設(shè)計(jì)</p><p><b> 任 務(wù) 書(shū)</b></p><p>&
4、lt;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> 具體如下:</b></p><p> 學(xué)習(xí)和實(shí)踐在分析和設(shè)計(jì)計(jì)算機(jī)應(yīng)用系統(tǒng)所需要的知識(shí),包括面向?qū)ο蟮南到y(tǒng)分析與
5、設(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)和提高軟件工程文檔的編寫(xiě)能力;</p><p> 培養(yǎng)協(xié)作能力和團(tuán)隊(duì)精神。</p><p><b> 二、 主要內(nèi)容</b></p><
6、;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ù)模型,自動(dòng)建立數(shù)據(jù)庫(kù);</p><p> 使用J2EE、HTML、CSS、Javascript語(yǔ)言對(duì)購(gòu)物模塊進(jìn)行界面層的設(shè)計(jì)并給出實(shí)現(xiàn);&l
7、t;/p><p><b> 撰寫(xiě)課程設(shè)計(jì)報(bào)告。</b></p><p><b> 三、任務(wù)分配</b></p><p><b> 四、 進(jìn)度計(jì)劃</b></p><p><b> 五、 設(shè)計(jì)成果要求</b></p><p>
8、建立系統(tǒng)分析與設(shè)計(jì)模型;</p><p> 初步建立系統(tǒng)原型,實(shí)現(xiàn)關(guān)鍵的功能;</p><p><b> 編寫(xiě)課程設(shè)計(jì)報(bào)告。</b></p><p><b> 六、 考核方式</b></p><p><b> 系統(tǒng)演示及講解</b></p><p&g
9、t;<b> 占50%。</b></p><p><b> 設(shè)計(jì)報(bào)告</b></p><p><b> 占50%。</b></p><p><b> 指導(dǎo)教師:</b></p><p> 日 期:2013年 6 月 28 日</p>
10、<p> 《軟件工程》課程設(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> 指導(dǎo)教師: </p&
11、gt;<p> 日期: 2013 年 7 月 12 日</p><p><b> 摘要:</b></p><p> 當(dāng)今社會(huì),隨著計(jì)算機(jī)的應(yīng)用和Internet的普及, Internet網(wǎng)絡(luò)給人類(lèi)社會(huì)帶來(lái)了巨大變化,網(wǎng)絡(luò)在我們的生活中幾乎無(wú)處不在。因此,建立網(wǎng)上物品的銷(xiāo)售管理系統(tǒng)是時(shí)代的潮流。由于JSP可以在85%以上的服務(wù)器上運(yùn)行,而且JSP技術(shù)
12、的應(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)人們遠(yuǎn)程逛逛商店和購(gòu)買(mǎi)商品的愿望。本系統(tǒng)的功能是實(shí)現(xiàn)網(wǎng)上購(gòu)物,主要包括商品信息管理、購(gòu)物車(chē)訂單管理、用戶管理、商品評(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
13、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ū)ο?,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ì)能力
14、和綜合分析、解決問(wèn)題的能力。</p><p><b> 具體如下:</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>
15、 進(jìn)一步加強(qiáng)和提高軟件工程文檔的編寫(xiě)能力;</p><p> 培養(yǎng)協(xié)作能力和團(tuán)隊(duì)精神。</p><p><b> 二、設(shè)計(jì)正文</b></p><p><b> 概述</b></p><p><b> 設(shè)計(jì)課題</b></p><p> 該系
16、統(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),亞馬遜商城,京東商城等大型電子商務(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>
17、 ?。?)數(shù)據(jù)庫(kù)管理軟件:MySQL</p><p> ?。?)建模工具:Rational Rose</p><p> (3)編程工具:MyEclipse、DreamWeaver</p><p> ?。?)操作系統(tǒng):Windows系列、Tomcat系統(tǒng)</p><p> (5)開(kāi)發(fā)語(yǔ)言:J2EE</p><p>
18、 2 系統(tǒng)需求分析</p><p> 2.1 系統(tǒng)需求概述</p><p> 主要從用戶、管理員兩方面進(jìn)行需求分析。</p><p><b> 用戶功能分析:</b></p><p><b> (1)購(gòu)物車(chē):</b></p><p> 主要功能包括將商品加入購(gòu)物
19、車(chē)——>提交訂單——>支付——>將訂單信息存檔</p><p> (2)個(gè)人中心:功能主要包括四部分:</p><p> 1)查詢自己的購(gòu)買(mǎi)商品記錄,通過(guò)人員id在數(shù)據(jù)庫(kù)中查找。</p><p> 2)商品列表:可以查詢用戶本人在使用,想購(gòu)買(mǎi),和購(gòu)買(mǎi)過(guò)的商品。</p><p> 3)推薦商品:本用例中,推薦商品和新商
20、品通過(guò)控制類(lèi)中的方法實(shí)現(xiàn),偏好是商品通過(guò)人員的個(gè)性分析方法實(shí)現(xiàn)。 </p><p> 4)商品評(píng)價(jià):可以查詢自己的評(píng)論過(guò)的商品的商品信息和評(píng)論信息</p><p><b> (3)賬戶管理:</b></p><p> 主要包括登錄,注冊(cè),修改個(gè)人資料的功能</p><p><b> (4)商品搜索
21、:</b></p><p> 1)字節(jié)搜索:可以通過(guò)商品名稱(chēng),商品序列號(hào)精確搜索</p><p> 2)分類(lèi)搜索:通過(guò)各個(gè)分類(lèi)進(jìn)行搜索。</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)庫(kù)存管理:</b&
23、gt;</p><p> 主要功能包括:修改商品的存貨數(shù)量</p><p><b> (3)用戶管理:</b></p><p> 1)將不良交易次數(shù)用戶較多的用戶加入黑名單</p><p> 2)商品評(píng)價(jià)管理:將被人氣較高的書(shū)評(píng)放入首頁(yè)的推薦書(shū)評(píng)模塊</p><p> (4)商品評(píng)評(píng)管理
24、:</p><p> 主要功能為將違禁商品評(píng)價(jià)刪除</p><p><b> (5)銷(xiāo)量統(tǒng)計(jì):</b></p><p> 主要功能包括:查看營(yíng)業(yè)額,查看銷(xiāo)售排行,查看利潤(rùn)。</p><p><b> 2.2 用例圖</b></p><p> 對(duì)于整個(gè)用例圖,外部角色
25、有管理員、普通用戶即顧客。</p><p> 管理員主要有書(shū)籍的增、刪、改,普通用戶信息管理,訂單管理。</p><p> 普通用戶主要有在線交易、搜索、結(jié)算、加入購(gòu)物車(chē)、加入收藏、結(jié)算、評(píng)價(jià)、賬戶管理等用例。</p><p> 圖2.2-1 總用例圖用例圖</p><p> 圖2.2-2 店鋪管理用例圖</p><
26、;p> 圖2.2-3 購(gòu)物用例圖</p><p> 關(guān)鍵用例正常事件流和異常事件流的描述如下表:</p><p> 用例規(guī)格說(shuō)明:內(nèi)容管理員注冊(cè)</p><p><b> 超級(jí)管理員</b></p><p> 用例規(guī)格說(shuō)明:內(nèi)容管理員登錄</p><p><b> 所有
27、用戶</b></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>
28、<p><b> 內(nèi)容管理員</b></p><p> 用例規(guī)格說(shuō)明:修改訂單</p><p><b> 內(nèi)容管理員</b></p><p> 用例規(guī)格說(shuō)明:取消訂單</p><p><b> 內(nèi)容管理員</b></p><p>&l
29、t;b> 用例規(guī)格說(shuō)明:退貨</b></p><p><b> 內(nèi)容管理員</b></p><p> 用例規(guī)格說(shuō)明:顧客信息修改</p><p><b> 內(nèi)容管理員</b></p><p> 與顧客有關(guān)的用例規(guī)格說(shuō)明</p><p> 用例規(guī)格
30、說(shuō)明:顧客注冊(cè)</p><p><b> 顧客</b></p><p> 用例規(guī)格說(shuō)明:顧客登錄</p><p><b> 顧客</b></p><p><b> 用例規(guī)格說(shuō)明:瀏覽</b></p><p><b> 顧客</b
31、></p><p><b> 用例規(guī)格說(shuō)明:搜索</b></p><p><b> 顧客</b></p><p> 用例規(guī)格說(shuō)明:加入購(gòu)物車(chē)</p><p><b> 顧客</b></p><p> 用例規(guī)格說(shuō)明:加入收藏</p&g
32、t;<p><b> 顧客</b></p><p><b> 用例規(guī)格說(shuō)明:結(jié)算</b></p><p><b> 顧客</b></p><p><b> 用例規(guī)格說(shuō)明:退貨</b></p><p><b> 顧客<
33、/b></p><p> 用例規(guī)格說(shuō)明:顧客信息修</p><p><b> 顧客</b></p><p><b> 2.3 類(lèi)圖</b></p><p><b> 圖2.3-1 類(lèi)圖</b></p><p><b> 類(lèi)描述如
34、下:</b></p><p><b> coustomer</b></p><p> 用戶可以更改自己的姓名、密碼和其它個(gè)人信息,也可以查看自己的購(gòu)物車(chē)并在其上添加刪除商品,其后對(duì)購(gòu)物車(chē)中的產(chǎn)品進(jìn)行結(jié)算。用戶還可以對(duì)訂單中已付款的商品按照要求進(jìn)行退貨操作。用戶還可以發(fā)表商品評(píng)價(jià)和查看商品的來(lái)自其他人的評(píng)價(jià)。</p><p>&l
35、t;b> Manager</b></p><p> 管理員所具有的屬性并不多,管理員主要實(shí)現(xiàn)對(duì)商品的增、刪、改,對(duì)用戶個(gè)人信息的管理,對(duì)訂單的處理協(xié)助用戶退貨。</p><p><b> good</b></p><p> 描述商品對(duì)象的抽象。商品的唯一標(biāo)識(shí)是商品ID,商品還有品名、價(jià)格、類(lèi)型編號(hào)、圖片、描述、數(shù)量、評(píng)
36、價(jià)。</p><p> shoppingcart</p><p> 用戶的購(gòu)物車(chē)類(lèi),在用戶進(jìn)行網(wǎng)上瀏覽和準(zhǔn)備交易時(shí),可將商品加入購(gòu)物車(chē),查看購(gòu)物車(chē),刪除或取消交易。進(jìn)行交易時(shí)會(huì)將交易信息入時(shí)間、金額、商品列表、優(yōu)惠方式等記錄為購(gòu)物歷史。購(gòu)物車(chē)對(duì)象自帶了計(jì)算優(yōu)惠的方式,同時(shí)購(gòu)物車(chē)要記錄用戶購(gòu)買(mǎi)商品時(shí)的運(yùn)送信息。</p><p><b> Order&l
37、t;/b></p><p> 訂單記錄了訂單編號(hào),訂單生成時(shí)間和用戶ID,訂單通過(guò)一個(gè)LIST類(lèi)型記錄了購(gòu)買(mǎi)的商品。</p><p><b> 類(lèi)之間的關(guān)系:</b></p><p> Coustomer 與shoppingcart 為聚合關(guān)系,manger與order是聚合關(guān)系;manger、coustomer類(lèi)同good類(lèi)是關(guān)聯(lián)
38、關(guān)系,其中coustomer與good的關(guān)聯(lián)類(lèi)是shoppingcart類(lèi);shoopingcart與order為關(guān)聯(lián)類(lèi)。</p><p><b> 2.4 順序圖</b></p><p> 支付的順序圖如下圖所示,首先是用戶登錄系統(tǒng),然后用戶通過(guò)界面在商品類(lèi)中查看到自己想要買(mǎi)的商品,然后將商品加入購(gòu)物車(chē),然后提交訂單,支付訂單,最后進(jìn)行存檔。</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),然后用戶通過(guò)界面在訂單中查看到自己已買(mǎi)的商品,然后申請(qǐng)退貨,
40、最后進(jìn)行退貨。</p><p> 2.4-5 用戶退貨順序圖</p><p><b> 2.5 協(xié)作圖</b></p><p> 根據(jù)順序圖獲得協(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)總體設(shè)計(jì)</b></p><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><
43、p> 表3.3-2 管理員表</p><p><b> 表3.3-3商品表</b></p><p><b> 表3.3-4訂單表</b></p><p> 表3.3-5商品類(lèi)型表</p><p> 圖3.3-1 數(shù)據(jù)表關(guān)系圖</p><p> 3.4 設(shè)計(jì)人
44、機(jī)交互子系統(tǒng)</p><p> 圖3.4-1 注冊(cè)界面</p><p> 圖3.4-2 注冊(cè)成功界面</p><p> 圖3.4-3 登陸界面</p><p> 圖3.4-4 主頁(yè)界面</p><p> 圖3.4-5 購(gòu)物車(chē)界面</p><p> 圖3.4-6 提交訂單界面</
45、p><p> 圖3.4-7 提交訂單成功界面</p><p><b> 4. 詳細(xì)設(shè)計(jì)</b></p><p> 提示: 對(duì)于復(fù)雜的方法給出詳細(xì)設(shè)計(jì),可以使用偽代碼描述, 也可以使用程序流程圖來(lái)描述。</p><p> 4.1.1商品查詢方法</p><p> goodsearch()<
46、;/p><p><b> {</b></p><p> 創(chuàng)建一個(gè)List類(lèi)型以及標(biāo)志位flg=false;</p><p><b> 獲取搜索類(lèi)型</b></p><p><b> If(按名字查詢)</b></p><p><b> {
47、</b></p><p> 獲取窗口中的關(guān)鍵字;</p><p> 創(chuàng)建數(shù)據(jù)庫(kù)查詢語(yǔ)句sql;</p><p> 創(chuàng)建SQLBean對(duì)象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(按分類(lèi)查詢)</b></p><p><b> {</b></p><p><b> 獲取商品類(lèi)型;</b>
50、</p><p> 創(chuàng)建數(shù)據(jù)庫(kù)查詢語(yǔ)句sql;</p><p> 創(chuàng)建SQLBean對(duì)象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登錄界面代碼實(shí)現(xiàn)</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"))// 個(gè)人登錄</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 注冊(cè)界面代碼實(shí)現(xiàn)</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--注冊(cè)成功 1--注冊(cè)失敗</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("跳轉(zhuǎn)");</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("跳轉(zhuǎn)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("跳轉(zhuǎn)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、("跳轉(zhuǎn)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("跳轉(zhuǎn)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("跳轉(zhuǎn)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("跳轉(zhuǎn)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、;數(shù)據(jù)庫(kù)查詢錯(cuò)誤");</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;//用戶名重復(fù)</p><p><b> try</b></p><p><b> {</b></p><p> System.out.println("跳轉(zhuǎn)");</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 購(gòu)物車(chē)處理代碼實(shí)現(xiàn)</p><p> if(action.equals("buy"))//加入購(gòu)物車(chē)</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> //得到要購(gòu)買(mǎi)東西的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> //修改的數(shù)量不合法時(shí)</p><p> String msg = "對(duì)不起,數(shù)量修改錯(cuò)誤!!!";</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> //得到庫(kù)存數(shù)量</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> {//當(dāng)庫(kù)存少于修改的值時(shí)</p><p> String msg = "對(duì)不起,庫(kù)存不夠,庫(kù)存數(shù)量只有 "+count;</p><p> out.println("<p>msg</p>");</p><p>
127、; out.println("<a href='cart.jsp'>返回購(gòu)物車(chē)</a>");</p><p><b> }</b></p><p><b> else</b></p><p><b> {//當(dāng)庫(kù)存夠時(shí)</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> //得到用戶的購(gòu)物車(chē)</p><p> Map<String,Integer> cart = mycart.getCart();</p><p><b> //修改商品數(shù)量</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> //得到j(luò)avaBean對(duì)象</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> 測(cè)試</b></p><p> 本系統(tǒng)在進(jìn)行功能測(cè)試時(shí),著重從鏈接和表單兩個(gè)方面進(jìn)行測(cè)試:</p><p><b> 5.1注冊(cè)頁(yè)測(cè)試&
135、lt;/b></p><p> (1)測(cè)試數(shù)據(jù):輸入賬戶名ajw 密碼11111111,手機(jī)號(hào)18001268392</p><p> 郵箱:aa@qq.com 性別:男 年齡:21</p><p><b> 測(cè)試結(jié)果:注冊(cè)成功</b></p><p> (2)測(cè)試數(shù)據(jù):輸入賬戶名ajw 密碼
136、11111111,手機(jī)號(hào)18001268392</p><p> 郵箱: 性別:男 年齡:21</p><p> 測(cè)試結(jié)果:提示未注冊(cè)該成功,郵箱為空。</p><p> 圖5.1-1 注冊(cè)成功圖 圖5.1-2 注冊(cè)未成功圖</p><p><b> 5.2
137、登錄頁(yè)測(cè)試</b></p><p> (1)測(cè)試數(shù)據(jù):輸入賬戶名ajw 密碼11111111 </p><p><b> 測(cè)試結(jié)果:登陸成功</b></p><p> ?。?)測(cè)試數(shù)據(jù):輸入賬戶名ajw 密碼</p><p> 測(cè)試結(jié)果:登陸不成功,未填密碼</p>&l
138、t;p> 圖5.2-1 登陸成功,進(jìn)入主頁(yè)面 圖5.2-3 登陸不成功</p><p><b> 5.3購(gòu)物主頁(yè)測(cè)試</b></p><p> ?。?)測(cè)試數(shù)據(jù):登陸后進(jìn)入購(gòu)物主頁(yè)</p><p> 測(cè)試結(jié)果:進(jìn)入購(gòu)物主頁(yè)查看商品</p><p> ?。?)測(cè)試操作:點(diǎn)擊首頁(yè)<
139、/p><p> 測(cè)試結(jié)果:回到購(gòu)物首頁(yè)</p><p> ?。?)測(cè)試操作:點(diǎn)擊購(gòu)物車(chē)</p><p> 測(cè)試結(jié)果:跳到購(gòu)物車(chē)頁(yè)面</p><p> 圖5.3-1 購(gòu)物主頁(yè)</p><p> 圖5.3-1 購(gòu)物車(chē)</p><p><b> 5.4購(gòu)物測(cè)試</b><
140、;/p><p> ?。?)測(cè)試操作:點(diǎn)擊購(gòu)買(mǎi)按鈕</p><p> 測(cè)試結(jié)果:商品加入購(gòu)物車(chē)并跳到購(gòu)物車(chē)頁(yè)面</p><p> ?。?)測(cè)試操作:點(diǎn)擊結(jié)算按鈕</p><p> 測(cè)試結(jié)果:跳到結(jié)算頁(yè)面</p><p> (3)測(cè)試操作:填寫(xiě)收貨人信息點(diǎn)擊確認(rèn)</p><p> 測(cè)試結(jié)果:顯示
141、提交成功</p><p> 圖5.4-1 結(jié)算頁(yè)面</p><p> 圖5.4-2 提交成功</p><p> 三、課程設(shè)計(jì)總結(jié)或結(jié)論</p><p> 在本次課程設(shè)計(jì)期間,我們進(jìn)行了一個(gè)小型網(wǎng)站的構(gòu)建并應(yīng)用了軟件工程中的面向?qū)ο蠼5姆椒āJ紫仁切枨蠓治鲞@塊,它很重要。我們根據(jù)老師給的要求,結(jié)合在網(wǎng)上查的一些資料,做了初步的需求分析
142、,本系統(tǒng)的主要功能是實(shí)現(xiàn)網(wǎng)站信息的發(fā)布和管理,涉及到前臺(tái)用戶對(duì)商品信息的瀏覽和后臺(tái)管理。在前臺(tái)的用戶瀏覽模塊里,一般需要對(duì)商品進(jìn)行分類(lèi)展示,并需要通過(guò)欄目導(dǎo)航進(jìn)入特定的商品信息模塊。在后臺(tái)的管理方面。需要由合法的管理者來(lái)管理商品的添加、修改、刪除等,以及管理登錄、注銷(xiāo)的模塊。最重要的是管理網(wǎng)上交易。從后臺(tái)管理大體來(lái)看,系統(tǒng)實(shí)際分為,商品管理、網(wǎng)上購(gòu)物管理及模塊管理。</p><p> 現(xiàn)在我們談一下做系統(tǒng)總體設(shè)
143、計(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)的總體設(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í)很必要
144、,實(shí)踐也不可缺少,只有在實(shí)踐中才能更清楚的了解自己對(duì)理論知識(shí)的掌握程度,才能學(xué)以致用,把所學(xué)的知識(shí)運(yùn)用到實(shí)踐中去。這次課程設(shè)計(jì)極大地提高了我們的團(tuán)隊(duì)合作能力和動(dòng)手能力。</p><p><b> 四、參考文獻(xiàn)</b></p><p> [1] 鄭人杰.馬素霞.軟件工程概論.北京:機(jī)械工業(yè)出版社,2009.11</p><p> [2] 張
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件工程項(xiàng)目實(shí)驗(yàn)報(bào)告課程設(shè)計(jì)-網(wǎng)上購(gòu)物系統(tǒng)
- 《軟件工程課程設(shè)計(jì)-網(wǎng)上購(gòu)物系統(tǒng)項(xiàng)目軟件設(shè)計(jì)說(shuō)明書(shū)》
- 網(wǎng)上書(shū)店--軟件工程課程設(shè)計(jì)
- 網(wǎng)上商城軟件工程課程設(shè)計(jì)
- 軟件工程課程設(shè)計(jì)報(bào)告---網(wǎng)上圖書(shū)銷(xiāo)售系統(tǒng)
- 軟件工程課程設(shè)計(jì)---網(wǎng)上購(gòu)書(shū)系統(tǒng)需求分析
- 軟件工程課程設(shè)計(jì)火車(chē)票網(wǎng)上訂票系統(tǒng)
- 軟件工程課程設(shè)計(jì)報(bào)告--網(wǎng)上書(shū)店
- 軟件工程課程設(shè)計(jì)報(bào)告-- 網(wǎng)上書(shū)店
- 網(wǎng)上書(shū)店--軟件工程課程設(shè)計(jì)報(bào)告
- 網(wǎng)上書(shū)店軟件工程課程設(shè)計(jì)報(bào)告
- uml網(wǎng)上購(gòu)物系統(tǒng)課程設(shè)計(jì)--網(wǎng)上購(gòu)物系統(tǒng)
- 軟件工程課程設(shè)計(jì)--個(gè)人網(wǎng)上銀行管理系統(tǒng)
- 課程設(shè)計(jì)--網(wǎng)上購(gòu)物系統(tǒng)
- 軟件工程課程設(shè)計(jì)—選課系統(tǒng)
- 軟件工程課程設(shè)計(jì)管理系統(tǒng)
- 課程設(shè)計(jì)---網(wǎng)上購(gòu)物系統(tǒng)
- 軟件工程課程設(shè)計(jì)
- 軟件工程課程設(shè)計(jì)
- 軟件工程課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論