2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  學士學位論文</b></p><p>  論文題目: 局域網聊天系統(tǒng)的設計與實現(xiàn) </p><p>  院(部)名 稱: 計算機科學與工程學院 </p><p>  學 生 姓 名: <

2、/p><p>  學 號: 20122115 </p><p>  專 業(yè): 軟件工程 </p><p>  指 導 教 師: </p><p><b>  摘 要</b></p>

3、<p>  隨著互聯(lián)網的不斷進步和發(fā)展,網絡通信在人們的生活中占據(jù)著越來越重要的地位。網絡聊天工具已在不斷更新?lián)Q代,越來越多的聊天工具都有著很多的廣泛的應用。對于人們,網上即時聊天已成為一種相互溝通的重要方式,網絡上購物更是一種方便生活的理想選擇。</p><p>  本文通過對客戶端/服務器與瀏覽器/服務器架構的特點進行分析,再結合系統(tǒng)的實際情況考慮,采用一種全新的C/S與B/S混合模式架構對局域

4、網聊天系統(tǒng)進行設計,簡要介紹了系統(tǒng)的每個功能模塊的設計與實現(xiàn)。</p><p>  本系統(tǒng)采用Java語言,在myEclipse工具上開發(fā),采用Oracle 11數(shù)據(jù)庫來對數(shù)據(jù)進行支撐。在聊天子系統(tǒng)中,采用java中Socket強大的網絡編程功能,是實現(xiàn)客戶端與服務器端相互通信的橋梁;采用IO流來對數(shù)據(jù)的傳輸與訪問;用Java提供的多線程功能實現(xiàn)點對點與點對多聊天。在Web前端子系統(tǒng)和Chat后臺管理中,采用St

5、rut2框架來實現(xiàn)系統(tǒng)的業(yè)務邏輯,使用強大功能的OGNL標簽來對參數(shù)進行傳遞;采用Hibernate框架來對數(shù)據(jù)庫進行操作,它的對象/關系數(shù)據(jù)庫映射特點,在使用時只需要操作對象,使得開發(fā)更具有對象化。局域網聊天系統(tǒng)的實現(xiàn),意味著一個具有聊天、購物、后臺管理的多功能系統(tǒng)的完成。</p><p>  【關鍵字】局域網聊天系統(tǒng),購物,java,socket,框架 </p><p><b&g

6、t;  ABSTRACT</b></p><p>  With the progress and development of the Internet, network communication in the life of people occupies a more and more important position.Network chat tool has been constantl

7、y upgrading, more and more chat tool has a lot of widely used.For people, online instant messaging has become an important way to communicate, shopping on the Internet is the ideal choice for a convenient life. Based

8、 on client/server and browser/server architecture is analyzed, the characteristics of the actual situatio</p><p>  【KEY WORDS】 LAN chat system, shopping, Java, socket, framework</p><p><b>

9、  目 錄</b></p><p><b>  摘 要I</b></p><p>  ABSTRACT2</p><p><b>  目 錄2</b></p><p><b>  第1章緒論6</b></p><p>  1.1系統(tǒng)

10、的開發(fā)背景6</p><p>  1.2國內外的研究現(xiàn)狀6</p><p>  1.3系統(tǒng)需要解決的主要問題7</p><p>  1.4本文的主要工作7</p><p>  第2章系統(tǒng)需求分析8</p><p><b>  2.1系統(tǒng)概述8</b></p><p

11、>  2.1.1總體目標8</p><p>  2.1.2業(yè)務描述8</p><p>  2.2項目開發(fā)過程9</p><p>  2.2.1項目的軟件開發(fā)生命周期模型9</p><p>  2.2.2項目實施計劃12</p><p>  2.3功能性需求分析12</p><p&g

12、t;  2.3.1聊天子系統(tǒng)功能性需求12</p><p>  2.3.2 Web前端子系統(tǒng)功能性需求13</p><p>  2.3.3 Chat后臺管理子系統(tǒng)功能性需求13</p><p>  2.4 非功能性需求分析14</p><p>  2.4.1操作需求14</p><p>  2.4.2產品性能

13、需求14</p><p>  2.4.3系統(tǒng)的安全性14</p><p>  第3章系統(tǒng)設計15</p><p>  3.1系統(tǒng)體系結構設計15</p><p>  3.2功能架構設計16</p><p>  3.3邏輯結構設計19</p><p>  3.3.1用例設計19&l

14、t;/p><p>  3.3.2邏輯數(shù)據(jù)模型設計21</p><p>  3.4數(shù)據(jù)庫設計21</p><p>  3.4.1數(shù)據(jù)庫概念結構設計21</p><p>  3.4.2數(shù)據(jù)庫邏輯結構設計22</p><p>  第4章系統(tǒng)實現(xiàn)26</p><p>  4.1聊天子系統(tǒng)的實現(xiàn)

15、26</p><p>  4.2 Web前端子系統(tǒng)的實現(xiàn)29</p><p>  4.2.1商品展示模塊的實現(xiàn)29</p><p>  4.2.2訂單處理模塊的實現(xiàn)30</p><p>  4.2.3購物車管理模塊的實現(xiàn)32</p><p>  4.2.4安全中心模塊的實現(xiàn)33</p><

16、p>  4.3 Chat后臺管理子系統(tǒng)的實現(xiàn)34</p><p>  4.3.1管理員管理模塊的實現(xiàn)34</p><p>  4.3.2用戶管理模塊的實現(xiàn)35</p><p>  4.3.3報表管理模塊的實現(xiàn)35</p><p>  第5章系統(tǒng)測試與調試37</p><p>  5.1程序調試37&

17、lt;/p><p>  5.2功能調試38</p><p>  5.3測試結果調試43</p><p><b>  總 結45</b></p><p><b>  結束語46</b></p><p><b>  致 謝47</b></p>

18、;<p><b>  參考文獻48</b></p><p><b>  緒論</b></p><p>  1.1系統(tǒng)的開發(fā)背景</p><p>  隨著互聯(lián)網的飛速發(fā)展,各種先進的技術給人們的生活帶來了深遠的影響,它極大的改善我們的生活方式。網絡聊天工具已經成為人們即時通訊的一種重要的信息交流工具。目前,

19、出現(xiàn)了很多非常不錯的聊天工具,其中應用比較廣泛的有微信、騰訊QQ等等。雖然局域網聊天工具在市場上很多,比如飛鴿、飛秋等等,適用的范圍也比較廣,用的地方也比較多,但是這些工具目前來說都只是有通訊的功能,并不能滿足人們的生活需要。為了滿足當今社會的需要,做一個具有購物的局域網聊天系統(tǒng)很有必要,實現(xiàn)在局域網內進行溝通與交流,還可以購物,可以簡化我們生活中繁瑣的做事流程,提高工作效率,提高信息交換的速度。使用具有購物的局域網聊天系,可以達到局域

20、網資源共享、建立完備的數(shù)據(jù)交換體系、快速的傳遞信息,可以避免局域網內部的資源通過Internet泄露到外部,從而保護了局域網內部信息的安全,也為我國IT行業(yè)的發(fā)展創(chuàng)建堅實的基礎。</p><p>  隨著用戶對軟件功能的需求不斷提高,網絡通訊工具的不斷地更新?lián)Q代。隨著人們思想覺悟以及生活水平的提高,如今的計算機已經走進了千家萬戶,對于大多數(shù)人來,足不出戶的在自己的計算機上查看自己喜歡的商品,并購買商品已經很普遍了

21、。通訊工具在擴展應用方面有著飛躍的發(fā)展,比如騰訊公司的QQ,最初只能發(fā)文字,如今有QQ游戲、QQ音樂、購物商城等等。人們已經越來越習慣于在家里從網上購物,常見的網上商城有當當網、淘寶網、京東商城等等。在我國,既能即時通訊又能網上購物的一體化產品相對相對較少,具有很大的發(fā)展空間。</p><p>  1.2國內外的研究現(xiàn)狀</p><p>  如今,不管是國內還是國外,網絡聊天系統(tǒng)的開發(fā)技術

22、已經成熟。比如國外開發(fā)得比較早的產品有ICQ,MSN,Yahoo 通等等;還有國內一些比較有名的聊天工具,如騰訊的的QQ、微信,新浪UC等等,這一類網絡聊天工具都實現(xiàn)廣域網上的即時通信、即時聊天、傳輸文件等等,他們所實現(xiàn)的功能都各有各的特點。其實基于局域網的聊天系統(tǒng)只是廣域網聊天系統(tǒng)的一個很小的模塊,最大的區(qū)別就是在于網絡,廣域網的網絡結構本身比局域網要復雜得多,廣域網聊天工具就是利用各種平臺上的網絡通信接口,采用底層的TCP

23、/IP,或者是UDP/IP協(xié)議的軟件產品。局域網聊天工具如飛秋、飛鴿等等。不管是基于什么網的聊天工具,像具有購物功能和即時通信、聊天功能的一體化產品,在國內和國外幾乎都沒有研究。目前雖然有些聊天工具具有購物功能,但是他們是使用或超鏈接者對方的接口,比如騰訊的微信購物功能直接使用京東購物的超鏈接等。</p><p>  1.3系統(tǒng)需要解決的主要問題</p><p>  為了實現(xiàn)人們的即時通訊

24、,提高生活水平與質量,需要解決的問題主要有:</p><p> ?。?)給人們提供一個即時通訊,快捷購物的網絡環(huán)境。</p><p> ?。?)提高信息傳遞的速度,從而提高人們的工作效率。</p><p> ?。?)保障局域網內信息交換的安全性,使用戶可以放心的使用系統(tǒng)。</p><p>  (4)給人們提供一個不出門就可方便又快捷的購物、銷

25、售商品的平臺。</p><p>  1.4本文的主要工作</p><p>  本文通過對人們生活中的業(yè)務需求進行系統(tǒng)性的分析,借鑒對其他聊天系統(tǒng)的通信經驗和購物系統(tǒng)的購物經驗,再結合各個地方的實際情況,采用了非常先進的開發(fā)模式來開發(fā)系統(tǒng)。首先是對局域網聊天系統(tǒng)的需求分析和系統(tǒng)的設計,為系統(tǒng)的實現(xiàn)奠定了堅實的基礎。通過本項目的快速開發(fā)和實施,可以有力地把人們即時通信和購物的思想貫穿在整個信息

26、化系統(tǒng)的建設中,從而正真地提高人們的生活質量。下面是本文的主要工作:</p><p>  其一,是通過比較國內外聊天工具的研究形狀,來確定本項目所開發(fā)的背景及其研究方向。</p><p>  其二,是根據(jù)客戶對本系統(tǒng)所提的需求及自身的一些經驗,來對局域網聊天系統(tǒng)進行需求的分析和定義,確定系統(tǒng)的功能性需求和非功能性需求;確定項目的軟件開發(fā)生命周期模型,并對整個軟件的開發(fā)制定一個合理的進度計劃

27、。</p><p>  其三,是使用RUP方法對局域網聊天系統(tǒng)進行系統(tǒng)設計,首先是設計系統(tǒng)的體系結構、功能加架構,然后以某個用例為主進行類的詳細設計,從而自動生成活動圖、順序圖;最后設計數(shù)據(jù)庫,從數(shù)據(jù)庫的概念結構和邏輯結構展開設計。 </p><p>  其四,是簡要介紹本系統(tǒng)的每個模塊的實現(xiàn)方法,以及展示最終實現(xiàn)的每個模塊的界面。</p><p>  其五,是通過

28、程序調試和功能調試兩種方法來對局域網聊天系統(tǒng)進行調試,使系統(tǒng)能夠達到最終理想的效果,最后通過系統(tǒng)測試,來記錄和分析本系統(tǒng)中的bug。</p><p>  其六,是通過自己在系統(tǒng)的實現(xiàn)過程中所遇到的問題和系統(tǒng)的調試與測試過程來總結本系統(tǒng)的不足之處和其它想法。 </p><p><b>  系統(tǒng)需求分析</b></p><p><b> 

29、 2.1系統(tǒng)概述</b></p><p><b>  2.1.1總體目標</b></p><p>  (1)通過查閱資料,不斷總結聊天和購物的經驗;通過現(xiàn)場訪問人們的需求,來完善對局域網聊天系統(tǒng)的需求的定義,要有效地收集和管理對本系統(tǒng)所涉及到的需求;對自己的研究方向有一個明確的定位;熟悉整個項目的業(yè)務流程,為系統(tǒng)做一個詳細的設計。</p>&

30、lt;p>  (2)局域網聊天系統(tǒng)是一個具有購物功能的綜合性管理系統(tǒng),因此把局域網聊天系統(tǒng)設計為三個子系統(tǒng),分別是聊天子系統(tǒng)、Web前端子系統(tǒng)、Chat后臺管理系統(tǒng);其中聊天子系統(tǒng)主要是基于java中的socket編程,來實現(xiàn)即時通信;Web前端子系統(tǒng)和Chat后臺管理系統(tǒng)都是基于Web開發(fā)。</p><p> ?。?)本項目中需要采用兩種應用服務器,其中Web前端子系統(tǒng)與Chat后臺管理系統(tǒng)需要采用tom

31、cat中間件,聊天子系統(tǒng)需要開發(fā)出一個Chat服務器,只處理聊天系統(tǒng)之間的數(shù)據(jù)交換。聊天子系統(tǒng)跟另外兩個子系統(tǒng)需要具有獨立性,Chat客戶端需要具有很好的移植性。</p><p> ?。?)本項目的實現(xiàn)要能做到讓人們在生活中正真地體驗到生活的方便,足不出門即可辦到想要做的事情,能夠保障人們在通信之中的信息安全。</p><p><b>  2.1.2業(yè)務描述</b>&

32、lt;/p><p>  局域網聊天系統(tǒng)從使用對象的角度來看,所涉及到的業(yè)務包括三大方面:</p><p>  第一,是用戶涉及到的業(yè)務,用戶自己可以自由在局域網內其它pc機上裝chat客戶端,如果本地服務器地址不是系統(tǒng)默認的服務器地址,則需要聯(lián)系管理員把chat登錄客戶端的服務器地址長期固定下來,這樣可以避免每次登錄客戶端都要修改服務器地址所帶來的麻煩;用戶可以用注冊的賬號來登錄客戶端,而非真

33、實姓名,保護好自己的信息;用戶為了及時地相應對方好友,可以發(fā)窗體抖動來提醒對方;用戶具有一個多功能的環(huán)境,可以聊天、自由地播放背景音樂、發(fā)圖片、購物等等;有的用戶需要在購物時喜歡直接購買一種商品,還有的則是先把放入購物中,最后一起去購買;用戶為了能夠管理好自己的信息和訂單等等,則需要在Web前端子系統(tǒng)進行登錄,用戶在登錄之后,不僅可以查看訂單,還可以對訂單進行操作,比如繼續(xù)支付、確認收貨等等;大多數(shù)用戶都提出,制定一種積分規(guī)則,只有積分

34、滿足的情況下,才可以在局域網商城做商家;有的用戶提出需要對自己的賬號進行安全性的保護,比如像QQ的那種,可以對自己的賬號進行密保設置,以便密碼忘記時找回密碼;對于新用戶來說,他們需要下載一個用戶操作手冊進行參考,以便熟悉使用系統(tǒng)。</p><p>  第二,是局域網內管理員所涉及的業(yè)務,管理員需要chat服務器和Tomcat中間件進行控制和管理,以便應用能夠正常的使用,管理員需要對整個系統(tǒng)進行圖形化的后臺管理,比

35、如可以添加其它權限不同的管理員,還可以對用戶、商品、訂單進行管理;管理員還需要對本系統(tǒng)商品交易情況或者用戶進行報表統(tǒng)計。</p><p>  第三,是我們的實施人員需要接觸到的業(yè)務,比如把系統(tǒng)交互給用戶時,需要部署到用戶的服務器上,涉及到裝oracle數(shù)據(jù)庫、創(chuàng)建表空間、創(chuàng)建用戶、創(chuàng)建表、裝中間件、部署應用等等。</p><p>  圖2-1給出了局域網聊天系統(tǒng)數(shù)據(jù)流圖。</p>

36、;<p>  圖2-1局域網聊天系統(tǒng)數(shù)據(jù)流圖</p><p><b>  2.2項目開發(fā)過程</b></p><p>  2.2.1項目的軟件開發(fā)生命周期模型</p><p>  本系統(tǒng)才用迭代模型開發(fā)</p><p>  圖2-2基于迭代開發(fā)的生命周期模型圖</p><p><

37、;b> ?。?)理由</b></p><p>  局域網聊天系統(tǒng)開發(fā)包括發(fā)送文字、發(fā)送圖片、聽音樂、購物、密保管理、報表統(tǒng)計等多方面的內容,涉及的功能非常多,范圍非常廣泛,開發(fā)人員又少,工期特別的緊張。在軟件的開發(fā)過程中,需要通過快速原型向用戶演示一下系統(tǒng)功能,以便更好的收集用戶對系統(tǒng)的反饋,及時地修改對用戶需求的理解差異,從而確保所開發(fā)的系統(tǒng)能夠解決用戶的實際問題??刂坪瞄_發(fā)項目的風險度。盡可

38、能推廣每一個成熟的功能,使廣大用戶能夠早早地使用局域網聊天系統(tǒng),滿足用戶對系統(tǒng)的迫切需求。由于早期需求可能會發(fā)生變化,選用迭代模型開發(fā)有利于降低風險度,并且可以在后續(xù)階段中不斷的細化,知道了問題的焦點所在,我的工作會更有效率,會加快整個開發(fā)工作的進度。迭代方法在設法解決項目重要度和風險度較低的方面之前,先開發(fā)最重要和風險高的方面,由此來降低在一個增量上的開支風險。在開發(fā)早期就確定風險,可以盡早來解決而不至于在開發(fā)后期匆匆忙忙。開發(fā)人員清

39、楚問題的焦點所在,我們的工作會更有效率。其次,用戶在開發(fā)期間可以較早的體驗產品由,由于用戶的需求并不能在一開始就做出完全的界定我們通常會在后續(xù)階段中不斷細化。如果,項目需放棄,通常出現(xiàn)在項目早期,因此可以降低損失</p><p> ?。?)生命周期模型的描述與概要解釋</p><p>  基于迭代開發(fā)相聯(lián)系的4個階段是:開端、細化、構建和轉換。</p><p>  

40、開端階段:定義項目的開發(fā)范圍,準備好業(yè)務的例子,準備好架構,準備項目的開發(fā)環(huán)境。在本項目中,比較重要的有,開發(fā)人員要參與人們的實際生活中,去了解用戶在生活中存在著哪些業(yè)務,分析他們對局域網聊天系統(tǒng)的業(yè)務需求,與用戶在系統(tǒng)的業(yè)務需求上達成一個統(tǒng)一的共識,對系統(tǒng)最終的目標能做出比較明確的定位,確定項目的可行性,理解用戶需求,并準備一份軟件開發(fā)計劃。</p><p>  細化階段:本階段主要是對用戶的需求進行細化,并確

41、定好系統(tǒng)的架構,為后面構建階段創(chuàng)造一個很好的基礎。在此階段,開發(fā)人員需要清晰地認識到項目的邊界和目標,使需求的變更變少,能夠讓用戶也參與到項目的開發(fā)中,能夠積極地配合需求的細化工作,增進對問題域的理解,給出項目計劃并識別關鍵項目風險。</p><p>  構建階段:構建階段要對資源進行控制和管理,要關心的是系統(tǒng)設計,還要進行開發(fā)和測試。系統(tǒng)的各個功能模塊并行開發(fā),在開發(fā)過程中需要不斷測試,要保證整個開發(fā)過程不會與

42、用戶的需求產生分離,測試的結果要讓用戶能夠認可,最后把各個功能模塊集成在一起,組成一個完整的系統(tǒng),然會進入轉換階段。</p><p>  轉換階段:轉換階段主要涉及到跟用戶之間產品的交互過程,部署局域網聊天系統(tǒng),對用戶進行培訓,試運行等工作。一般系統(tǒng)試運行二三個月,把軟件所出現(xiàn)的故障排除掉,等待系統(tǒng)運行穩(wěn)定以后,然后準備項目的驗收。</p><p> ?。?)生命周期模型各階段說明(階段目

43、標、輸入、階段的行為與任務、輸出)</p><p>  開端階段:確定項目的可行性和范圍,做出初步的成本估計,識別所有與系統(tǒng)交互的外部實體并定義這些交互。然后使用這些信息評估系統(tǒng)對業(yè)務的貢獻。如果這個貢獻是微小的,那么項目就要在此階段結束時被取消。 </p><p>  細化階段:明確成本,完成系統(tǒng)的需求模型,可能是一組用UML描述的用例、體系結構描述和開發(fā)計劃。開發(fā)人員經過前期的溝通,為

44、進一步細化需求做好了比較充分的準備,對系統(tǒng)構架設計影響最大的需求和用例有了比較清晰的認識,并通過一個或多個構架原型進行構架穩(wěn)定性的討論和評估。本階段產生了比較詳細的項目計劃,細化的需求規(guī)格說明書以及架構設計說明書。</p><p>  構建階段:需要進行嚴格的成本監(jiān)控,并且用戶手冊的編寫貫穿該階段。得到一個能工作的軟件系統(tǒng),還有能交付給用戶的相關文檔。移交階段的需求變更已經比較少,在本階段的制品除了可試運行的產品

45、外,還進行了部署計劃的編制和培訓計劃、培訓文檔編寫的初期工作。</p><p>  轉換階段:在實際環(huán)境當中投入并使用系統(tǒng),通過不斷完善系統(tǒng)所出現(xiàn)的bug,最后得到一個完整的系統(tǒng)和操作手冊交給用戶。 </p><p>  2.2.2項目實施計劃</p><p>  圖2-3項目實施進度計劃</p><p>  2.3功能性需求分析</p

46、><p>  2.3.1聊天子系統(tǒng)功能性需求</p><p>  1) 用戶可以打開客戶端登錄窗體的注冊按鈕進入web前端子系統(tǒng)的注冊頁面進行注冊。</p><p>  2)客戶端登錄窗體根據(jù)chat服務器的各種狀態(tài)返回給用戶各種提示信息。</p><p>  3)客戶端好友管理器窗體中我的在線好友可以自動更新當前局域網內的在線好友,并且可以選擇

47、某個好友發(fā)送消息。</p><p>  4)客戶端好友管理器窗體中我的群可以向局域網內所有的在線好友發(fā)送消息。 </p><p>  5)客戶端好友管理器窗體中可以 播放與暫停背景音樂。</p><p>  6)客戶端好友管理器可以點擊幫助按鈕,查看系統(tǒng)信息;可以點擊注銷,結束應用。</p>

48、<p>  7)用戶在好友管理器中雙擊聊天對象,可以打開相應的聊天窗體進行聊天。</p><p>  8)客戶端對話窗體發(fā)送消息具有快捷鍵,可以點擊發(fā)送和關閉。</p><p>  9)客戶端對話窗體可以發(fā)送窗體抖動,文件。</p><p>  10)客戶端通信器負責客戶端與chat服務器之間通信最低層的數(shù)據(jù)傳輸與控制等工作。</p>&l

49、t;p>  11)服務器控制器開啟服務,用戶即可通過客戶端登錄到服務器端。</p><p>  12)服務器控制器停止服務,所有客戶端自動掉線。</p><p>  13)服務器控制器退出,即結束服務器端所有進程。</p><p>  14)服務器控制器可以向所有客戶端發(fā)送系統(tǒng)消息。</p><p>  15)服務器傳輸器負責chat服

50、務器與客戶端之間和服務器與數(shù)據(jù)庫之間通信最低層的數(shù)據(jù)傳輸與控制等工作。</p><p>  2.3.2 Web前端子系統(tǒng)功能性需求</p><p>  1)用戶狀態(tài):如果用戶已經注冊為chat用戶,則輸入用戶信息直接登錄;如果用戶是新用戶,則輸入詳細信息進行注冊,對新用戶獎勵10積分;如果用戶忘記密碼,可以打開找回密碼進入安全中心去找回。

51、 </p><p>  2)商品展示:用戶可根據(jù)對商品的分類瀏覽和輸入關鍵字進行本站包含商品的查找瀏覽,單擊圖片或者名稱可以查看商品的詳情。</p><p>  3)熱銷排行榜:對暢銷量高的前10種商品進行排行,為用戶提供熱門商品的選擇。 </p><p>  4)我的用戶:用戶登陸之后可以查看和修改個人信息;瀏覽我的訂單,如果訂單狀態(tài)還未支

52、付,可以去支付、查看訂單明細;我的用戶,若積分大于10分,即可開通用戶,開通之后可以發(fā)布商品、下架商品和編輯商品,還可以統(tǒng)計我的寶貝數(shù)量、月銷售額等信息。</p><p>  5)安全中心:修改密碼、設置密保、找回密碼。</p><p>  6)購物車功能:用戶可以先把自己想要購買的商品加入購物車,在購物車中可以修改商品數(shù)量和刪除商品;購物車自動統(tǒng)計每一個商品的價格及所有商品的總價格,最后

53、把所有商品一起去支付。</p><p>  7)訂單處理功能:用戶在確認訂單信息時,可以修改所選擇的商品的數(shù)量和刪除商品,也可以選擇快遞方式;確認訂單之后,選擇支付方式進行付款;付款成功,即訂單處理完成,可以查看自己的訂單明細。 </p><p>  8)用戶每成功交易一筆,則自己的積分增加1分。</p><p>  9)幫助:下載操作手冊,介紹如何使用局

54、域網聊天系統(tǒng)。</p><p>  2.3.3 Chat后臺管理子系統(tǒng)功能性需求</p><p>  1)管理員狀態(tài):管理員輸入登錄信息后可以登錄,也可以重置。登錄之后,可以點擊注銷,退出應用。</p><p>  2)管理員管理:超級管理員對本系統(tǒng)所有的管理員進行瀏覽、修改、刪除、查看詳情。 </p><p>  3)商品管理:商

55、品管理員對商品進行瀏覽、查看詳情、刪除、添加、修改。</p><p>  4)訂單管理:訂單管理員訂單的查詢和刪除。</p><p>  5)用戶管理:用戶管理員實現(xiàn)對用戶的瀏覽、查詢和刪除。 </p><p>  6)報表統(tǒng)計:統(tǒng)計管理員對系統(tǒng)的用戶、商品、訂單進行統(tǒng)計,以便通知其他管理員制定新的方針和計劃。 </p><p>

56、  7)所有管理員都可以查看和修改自己的詳細信息,并且超級管理員擁有Chat后臺管理子系統(tǒng)所有功能。</p><p>  2.4 非功能性需求分析</p><p><b>  2.4.1操作需求</b></p><p>  1)用戶界面是一個非常美觀的界面,用戶在使用過程中能夠輕松愉快的完成操作。使用戶能夠建立起比較精確的心理模型,便于用戶操作

57、。</p><p>  2)本軟件對硬件或者硬件接口沒有太大的要求,只需要在Windows2008系統(tǒng)以上的PC機上即可運行。 </p><p>  3)只需要正確配置好網絡,即可使用系統(tǒng),在Windows2008或者更高版本的操作系統(tǒng)上可以運行。 </p><p>  4)正常使用時不會出現(xiàn)任何錯誤,在運行時,不管系統(tǒng)內部出現(xiàn)什么錯誤,都能保證

58、數(shù)據(jù)庫中的數(shù)據(jù)完好無損。</p><p>  5)本系統(tǒng)能夠滿足用戶的需求,可以實所需要的各種功能。</p><p>  2.4.2產品性能需求</p><p>  1) 數(shù)據(jù)精確度:本系統(tǒng)對數(shù)據(jù)的查詢采用兩種方式,一種是精確查詢,另一種是模糊查詢。 在查詢具體的某一條數(shù)據(jù)時,采用精確查詢,如果輸入格式不對,不會得到處理。模糊查詢,只需要輸入一個關鍵字,即

59、可幫助我們查詢大量的信息。</p><p>  2) 時間特性:在用戶操作之后,響應時間不能超過2s。</p><p>  3) 適應性:能滿足用戶生活的需求。對系統(tǒng)所需要的運行環(huán)境都能滿足。  </p><p>  2.4.3系統(tǒng)的安全性</p><p>  1) 任何人都不能修改用戶的信息,保證用戶自身的信息安全性;超

60、級管理員可以對其它普通管理員進行管理,如修改角色、刪除等。</p><p>  2) 用戶的封閉性很好,用戶所進行的每一步操作,都有溫馨提示。</p><p><b>  系統(tǒng)設計</b></p><p>  3.1系統(tǒng)體系結構設計</p><p><b>  (1)體系結構</b></p&g

61、t;<p>  本系統(tǒng)所采用B/S和C/S混合體系結構開發(fā),B/S(Browser/Server)結構即瀏覽器和服務器結構,C/S(Client/Server)結構即客戶端和服務器結構。本系統(tǒng)包含三個子系統(tǒng),聊天子系統(tǒng)采用C/S結構,Chat后臺管理子系統(tǒng)和Web前端子系統(tǒng)均采用B/S結構。C/S是一種兩層架構,其中客戶端是在用戶的電腦上運行的程序,響應速度快,可移植性較強,且界面美觀已操作,但是也有缺點,比如維護成本很高

62、,每一次升級都要修改程序。B/S是一種三層架構,適應性很強,用戶只需要安裝Web瀏覽器即可訪問或操作系統(tǒng),升級也容易,只需要升級服務器即可,但也有缺點,如在擴瀏覽器時,界面的樣式不盡人意等等。綜合B/S與C/S架構的特點,故設計為三層架構,即表現(xiàn)層、業(yè)務邏輯層、數(shù)據(jù)訪問層。表現(xiàn)層主要對用戶的請求進行接收和數(shù)據(jù)的返回,業(yè)務邏輯層主要是實現(xiàn)業(yè)務邏輯,數(shù)據(jù)訪問層主要是對數(shù)據(jù)庫進行操作。系統(tǒng)的體系結構圖,見圖3-1。</p>&l

63、t;p><b>  (2)硬件基礎</b></p><p>  硬件要求:CPU在CPU Intel MMX 233MHz以上;內存在512M以上;硬盤空間7G以上(主分區(qū)、NTFS);顯卡在8MB以上的PCI或AGP顯卡。</p><p>  操作系統(tǒng):Windows xp / Windows 7或更高版本。 </p><p>

64、;  網絡配置:必須正確配置服務器的網卡,添加固定的“TCP/IP”協(xié)議,使用多個交換機時,要保證有一臺交換機是主交換機,并且沒有寫入固定的IP地址數(shù)據(jù),倘若該交換機接入了互聯(lián)網,不想影響用戶使用互聯(lián)網,則需要在本地連接中先固定互聯(lián)網IP,然后高級屬性里面添加系統(tǒng)所部屬的服務器IP,需要保證整個網絡是同一個局域網。</p><p>  服務器配置:配置java環(huán)境,安裝如下軟件:myeclipse,tomcat7

65、.0,oracle,sqldeveloper。</p><p>  客戶端配置:需要裝java,正確配置環(huán)境變量保證Chat客戶端正常運行;正確配置Chat客戶端的服務器地址;裝Web瀏覽器來訪問或操作Web前端子系統(tǒng)。</p><p>  (3)技術框架及開發(fā)環(huán)境</p><p>  本設計中,UML建模工具采用Visio2003、PowerDesigner 12

66、、RationalRose,圖片處理工具采用PhotoShop5。聊天子系統(tǒng)的chat客服端和chat服務器均采用java面向對象、socket網絡編程等技術;Web前端子系統(tǒng)與chat后臺管理子系統(tǒng)的編程技術采用java面向對象、jdbc、jsp、javascript、hibernate、struts2、css等等,服務器采用Tomcat 7.0,數(shù)據(jù)庫采用Oracle 11g,數(shù)據(jù)庫可視化管理工具采用sqldeveloper。

67、 </p><p>  圖3-1系統(tǒng)體系結構圖</p><p><b>  3.2功能架構設計</b></p><p>  局域網聊天系統(tǒng)包括聊天子系統(tǒng)、Web前端子系統(tǒng)、Chat后臺管理子系統(tǒng),其總功能模塊圖如下:</p><p>  圖3-2局域網聊天系統(tǒng)總功能模塊圖</p><p>

68、;  聊天子系統(tǒng)功能模塊圖如下:</p><p>  圖3-3聊天子系統(tǒng)功能模塊圖</p><p>  Web前端子系統(tǒng)功能模塊圖如下:</p><p>  圖3-4 Web前端系統(tǒng)功能模塊圖</p><p>  Chat后臺管理子系統(tǒng)系統(tǒng)功能如下:</p><p>  圖3-5 Chat后臺管理子系統(tǒng)系統(tǒng)功能模塊圖&

69、lt;/p><p><b>  3.3邏輯結構設計</b></p><p><b>  3.3.1用例設計</b></p><p>  局域網聊天系統(tǒng)涉及到兩個角色,用戶和管理員,其總用列圖如下:</p><p>  圖3-6局域網聊天系統(tǒng)總用例圖</p><p>  以其中發(fā)送

70、文字用例為主進行解說如下:</p><p><b>  表1.1</b></p><p>  3.3.2邏輯數(shù)據(jù)模型設計</p><p>  圖3-7 局域網聊天系統(tǒng)數(shù)據(jù)建模</p><p><b>  3.4數(shù)據(jù)庫設計</b></p><p>  3.4.1數(shù)據(jù)庫概念結構

71、設計</p><p>  對局域網聊天系統(tǒng)進行數(shù)據(jù)庫概念結構設計,本系統(tǒng)包括商品、用戶、訂單、密保、管理員、角色、權限、運單八個實體,其實體關系圖如下:</p><p>  圖 4-1 局域網聊天系統(tǒng)E-R模型圖</p><p>  3.4.2數(shù)據(jù)庫邏輯結構設計</p><p>  (1)數(shù)據(jù)庫表清單如下:</p><p&

72、gt;  表3.1數(shù)據(jù)庫表清單</p><p><b> ?。?)數(shù)據(jù)表定義</b></p><p>  表3.2用戶表(CHAT_USER)</p><p>  表3.3 密保表(CHAT_SECURITY)</p><p>  表3.4商品表(CHAT_COMMODITY)</p><p> 

73、 表3.5 運單表(CHAT_WAYBILL)</p><p>  表3.6 訂單表(CHAT_ORDER)</p><p><b>  說明:</b></p><p>  1.訂單跟用戶是一對一關系,即一個訂單只屬于一個用戶(注意:用戶沒有關聯(lián)訂單,所以不能理解為用戶跟訂單是一對多的關系)</p><p>  2.訂單

74、狀態(tài): 0表示:等待買家付款,1,表示:已付款且已發(fā)貨,2 交易成功</p><p>  表3.7 訂單商品表(CHAT_ORDER_COMMODITY)</p><p><b>  說明:</b></p><p>  1.訂單跟商品是多對對的關系,即一個訂單可以擁有多種商品,一種商品可以被多個訂單所包含4.7 角色表(CHAT_ROLE)&l

75、t;/p><p>  表3.8 管理員表(CHAT_ADMIN)</p><p>  表3.9 權限表(CHAT_RIGHT)</p><p>  表3.10 角色權限表(CHAT_ ROLE _RIGHT)</p><p><b>  系統(tǒng)實現(xiàn)</b></p><p>  4.1聊天子系統(tǒng)的實現(xiàn)&l

76、t;/p><p>  (1)聊天子系統(tǒng)主要實現(xiàn)要點:</p><p>  1)用戶首先登錄驗證,通過new 一個socket,先跟服務器端建立連接,服務器連接成功后把這個socket交給線程池,然后把用戶信息在此次通信socket里,進行分離,看操作命令,如果是檢測用戶命令,則拿到數(shù)據(jù)庫中用戶表去查詢,如果驗證不成功把原因反饋給用戶,并關閉此次連接,如果存在,服務器則更新在線人數(shù),并把在線人數(shù)

77、和自己的用戶名發(fā)給所有的用戶;把用戶名和輸出流放到一個map集合中;同時把此次的socket和用戶名保存到另一個map集合中;利用輸出流返回客戶端。</p><p>  2)用戶上線時,用戶驗證通過后,先返回一個消息,通知客戶端,讓他打開好友管理界面,把服務器在線的名字全部接收過來,對于本客戶端,則把服務器給我的名單加載我的列表中,其他客戶端上線或下線時,則自動更新自己的好友列表。</p><

78、p>  3)用Jtree來描述好友列表,自動增刪Jtree節(jié)點不太容易,并且添加節(jié)點不注意會添加重復的,因此選擇把用一個Set集合來存放名字,作為一個中間變量,對于名字的增刪在Set集合中操作,每一次操作完之后,把Jtree清空,重新添加。</p><p>  4)對于聊天窗體對象的問題,為了實現(xiàn)只要在線就能接受好友的信息,采用List集合來存儲聊天對象,有多少好友包括群,就創(chuàng)建多少聊天窗口對象,只要更新好

79、友,就創(chuàng)建。只是不讓它顯示,這樣就能保證只要在線就能收到消息</p><p>  5)關于socket關閉的問題,當客服端在登陸時,如果用戶驗證不通過,則先關閉服務器端的socket通信連接,然后再關閉當前對象的socket通信;當客服端已經與服務器建立了連接,即登陸成功時,需要關閉時,先要通知服務器,讓服務器把當前跟自己通信的socket關閉連接這樣才能才能讓服務器,結束當前與之當前交互的線程,把時間片留給其它

80、線程,還能夠統(tǒng)計客服端下線的等功能。</p><p> ?。?)Chat客戶端實現(xiàn)部分代碼如下: </p><p><b>  /**</b></p><p>  * 發(fā)送消息給服務器</p><p>  * @param name 本機客戶端</p><p>  * @param object

81、Name 目標客戶端</p><p>  * @param message 消息內容 注:這時不需要考慮message中是否包含分隔符 因為服務器按順序取</p><p><b>  */</b></p><p>  public void sendMessageToServer(String name, String objectName,&

82、lt;/p><p>  String messageType,String message) {</p><p>  if (message.equals("")) {</p><p>  message = " ";// 保證服務器,發(fā)空白</p><p><b>  }</b>

83、;</p><p>  pw.println(messageType + SEPSTR + name + SEPSTR + objectName + SEPSTR</p><p>  + message);</p><p><b>  }</b></p><p><b>  /**</b></

84、p><p><b>  * 關閉通信</b></p><p><b>  */</b></p><p>  public static void closeSocket() {</p><p>  if (pw != null) {</p><p>  pw.println(C

85、LOSESOCKET);// 通知服務器關閉</p><p><b>  }</b></p><p><b>  try {</b></p><p>  if (socket != null) {</p><p>  socket.close();</p><p><b

86、>  }</b></p><p>  } catch (IOException e) {</p><p><b>  }</b></p><p><b>  }</b></p><p> ?。?)Chat服務器端實現(xiàn)部分代碼如下: </p><p><

87、b>  /**</b></p><p>  * 初始化服務器相關內容</p><p><b>  */</b></p><p>  public Server() {</p><p><b>  try {</b></p><p>  serverSocke

88、t = new ServerSocket(8182);</p><p>  ip = InetAddress.getLocalHost().getHostAddress();</p><p>  port = serverSocket.getLocalPort();</p><p>  allPw = new HashMap<String, PrintWrit

89、er>();</p><p>  threadPool = Executors.newFixedThreadPool(120);</p><p>  sockets = new HashMap<String, Socket>();</p><p>  onlineNum = 0;</p><p>  // sendOnlin

90、eList();</p><p>  } catch (IOException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  /**

91、</b></p><p><b>  * 服務器開始工作</b></p><p><b>  */</b></p><p>  public void serverStart() {</p><p><b>  f = true;</b></p>&l

92、t;p>  doEve = new Thread() {</p><p><b>  @Override</b></p><p>  public void run() {</p><p>  while (f) {</p><p><b>  try {</b></p><

93、;p>  socket = serverSocket.accept();</p><p>  threadPool.execute(new SendClientMessage(socket));</p><p>  } catch (Exception e) {</p><p><b>  try {</b></p><

94、;p>  serverSocket.close();</p><p>  } catch (IOException e1) {</p><p>  e1.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p>

95、<p><b>  }</b></p><p><b>  }</b></p><p><b>  };</b></p><p>  doEve.start();</p><p><b>  }</b></p><p>&

96、lt;b>  /**</b></p><p><b>  * 關閉服務器</b></p><p><b>  */</b></p><p>  public void serverClose() {</p><p>  //先通知每個客戶端,服務器要停止了</p>

97、<p>  String message="由于系統(tǒng)升級維護中,你也被迫掉線,請稍候重新登錄";</p><p>  sendClientMessageToOtherClient("server",GROUPSEND,SERVERSTOPMESSAGE,message);</p><p>  //方式一:遍歷集合中的key,再用遍歷器<

98、;/p><p><b>  // 先關閉服務器</b></p><p>  Set<String> keys = sockets.keySet();</p><p>  //由于sockets集合在不斷的更新,所以遍歷會出現(xiàn)異常ConcurrentModificationException</p><p>  /

99、/解決:將keys先轉化為數(shù)組</p><p>  String []keyArr=keys.toArray(new String[]{});</p><p>  for(int i=0;i<keyArr.length;i++){</p><p>  String key=keyArr[i];</p><p><b>  tr

100、y {</b></p><p>  sockets.get(key).close();</p><p>  } catch (IOException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><

101、b>  }</b></p><p>  sockets.clear();//清空所有的socket</p><p>  f = false;// 停止鏈接</p><p><b>  try {</b></p><p>  serverSocket.close();</p><p

102、>  } catch (IOException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p>  4.2 Web前端子系統(tǒng)的實現(xiàn)</p><p> 

103、 4.2.1商品展示模塊的實現(xiàn)</p><p> ?。?)主要實現(xiàn)要點:</p><p>  商品展示模塊主要實現(xiàn)的功能有在首頁默認分頁瀏覽所有商品,查看商品排行榜,還可以通過商品名稱檢索或分類查詢所得的結果集進行分頁展示,這里最重要的一點就是三種方式中分頁功能要分別實現(xiàn);然后就是展示商品詳情的時候,需要把查詢幾個跟該種類相同的商品作為猜你還喜歡的部分,來增加頁面顯示的內容,給用戶的快捷的

104、選擇。這里最總要的實現(xiàn)有兩點,一是自己發(fā)布的商品不允許購買,而是加入購物車只能一次。</p><p>  (2)其中實現(xiàn)進入首頁的部分java代碼如下:</p><p>  public List<Commodity> getCommodities() {</p><p>  return commodities;</p><p>

105、;<b>  }</b></p><p>  public void setCommodities(List<Commodity> commodities) {</p><p>  this.commodities = commodities;</p><p><b>  }</b></p>&l

106、t;p>  public String execute(){</p><p>  ICommodityDao commodityDao=DaoFactoryUtil.getCommodityDao();</p><p>  totalPage=commodityDao.totalPage(myPage);</p><p>  if(page!=0){</

107、p><p>  myPage.setPage(page);</p><p><b>  }</b></p><p><b>  try {</b></p><p>  commodities=commodityDao.findByPage(myPage);</p><p>  }

108、 catch (Exception e) {</p><p>  e.printStackTrace();</p><p>  return "error";</p><p><b>  }</b></p><p>  return "success";</p>&l

109、t;p><b>  }</b></p><p>  4.2.2訂單處理模塊的實現(xiàn)</p><p><b> ?。?)主要實現(xiàn)要</b></p><p>  1)訂單處理和購物車管理都有一個實現(xiàn)的共性,那就是采用商品容器對象,商品容器就是用來描述你所選擇的商品,它有三個屬性,分別是所選商品集合、所選商品總金額、所選商品

110、總件數(shù),所選商品集合又是由所選擇的每件商品及對應的數(shù)量、金額屬性所組成。這樣實現(xiàn)的目的有兩個,一是為了好管理和統(tǒng)計商品容器中的信息;二是為了使商品容器的功能能夠得到共享,比如可以構造成一個購物車,或者直接用在確認訂單信息和查看訂單詳情時。</p><p>  2)訂單處理另外一個重要的地方就是商品在成功購買時,數(shù)據(jù)庫中的庫存量要相應的進行變化。</p><p> ?。?)其中實現(xiàn)確認訂單信

111、息的部分java 代碼如下:</p><p>  //判斷session中是否包含haveDifferOper,有,則移除</p><p>  if(mySession.containsKey("haveDifferOper")){</p><p>  mySession.remove("haveDifferOper");&l

112、t;/p><p><b>  }</b></p><p>  //獲取用戶默認的收貨地址</p><p>  User user =(User) mySession.get("user");</p><p>  defaultAddress=user.getAddress()+" "+

113、user.getPostCode()+" ("+user.getRealName()+"收) "+user.getPhone();</p><p>  // 若購買購物車中的商品,由于存在session中的,要修改數(shù)據(jù),對購物車修改就可以了,</p><p>  // 因此可以直接返回</p><p>  if (method

114、 != null && method.equals("car")) {</p><p>  commoditiesInfo = (CommodityContainer) mySession.get("myCar");</p><p>  // 移出出之前存放的myCar</p><p>  mySession.

115、remove("myCar");</p><p>  mySession.put("commoditiesInfo", commoditiesInfo);</p><p>  return "success";</p><p><b>  }</b></p><p&

116、gt;<b>  // 購買某種商品</b></p><p>  if (id > 0) {</p><p>  // 為了保證購買單本商品,如果還沒有下訂單,則重新選擇商品時,列表中應是一本新書</p><p>  if (mySession.get("commoditiesInfo") != null) {<

117、/p><p>  mySession.remove("commoditiesInfo");</p><p><b>  }</b></p><p>  ICommodityDao commodityDao = DaoFactoryUtil.getCommodityDao();</p><p>  Comm

118、odity dbCommodity = commodityDao.findById(id);</p><p>  SelectedCommodity selectedCommodity = new SelectedCommodity();</p><p>  selectedCommodity.setCommodity(dbCommodity);</p><p> 

119、 selectedCommodity.setNum(1);</p><p>  selectedCommodity.setSubtotal(selectedCommodity.getNum() * dbCommodity.getPrice());</p><p>  List<SelectedCommodity> selectedCommodities = new ArrayL

120、ist<SelectedCommodity>();</p><p>  selectedCommodities.add(selectedCommodity);</p><p>  commoditiesInfo = new CommodityContainer();</p><p>  commoditiesInfo.setSelectedCommodi

溫馨提示

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

評論

0/150

提交評論