聊天室畢業(yè)設計說明書_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  為了方便網絡信息的交流,在結合動態(tài)服務網頁(ASP.NET)技術和SQL數(shù)據(jù)庫技術以及常用的C#語言網頁制作工具Visual Studio .NET等之下開發(fā)了這個快截、界面友好的網絡交流系統(tǒng)。本設計使用動態(tài)服務網頁(ASP.NET)技術建設,使用SQL制作系統(tǒng)的數(shù)據(jù)庫,實現(xiàn)了一個功能相對齊全的聊天設計系統(tǒng),網友可以自由地申

2、請和登陸以及與他人溝通,或者交流經驗。該聊天室功能較齊全,在這里可以自由地發(fā)表自己的語言和各種表情的表達,我們還可以用管理員登陸來在線管理聊天室內的用戶。聊天室還有一些特殊的功能,如在線人員顯示、互相悄悄話等。</p><p>  整個個性化頁面生成系統(tǒng)主要由使用Visual Studio .NET開發(fā)的關聯(lián)規(guī)則采掘系統(tǒng)和利用IIS+ASP.NET技術實現(xiàn)的個性化Web頁面生成器兩部分組成。關聯(lián)規(guī)則采掘系統(tǒng)對數(shù)據(jù)

3、庫中的歷史記錄進行分析,產生用戶關聯(lián)規(guī)則表;頁面生成器則負責記錄用戶行為和根據(jù)關聯(lián)規(guī)則表動態(tài)生成用戶個性化Web頁面。二者通過數(shù)據(jù)庫服務器和Web服務器連接。</p><p>  本文作者主要完成Web客戶端及后臺管理中的用戶管理、言論管理、版面管理、數(shù)據(jù)庫管理、瀏覽和查找、短消息功能等設計、實現(xiàn)與完善以及整個實驗網站的組織建立和測試工作。</p><p>  關鍵詞:動態(tài)服務網頁,聊天室

4、</p><p><b>  目 錄</b></p><p>  第1章 緒 論1</p><p>  第2章 開發(fā)技術及運行環(huán)境2</p><p>  2.1 ASP.NET技術的使用2</p><p>  2.1.1 ASP.NET的介紹2</p><p&g

5、t;  2.1.2 ASP.NET技術的使用3</p><p>  2.2 SQL Server 2005的使用4</p><p>  2.3應用MVC結構6</p><p>  2.3.1 MVC設計思想6</p><p>  2.3.2 MVC設計模式的實現(xiàn)7</p><p>  2.4應用C#編程語言

6、8</p><p>  2.5系統(tǒng)流程的實現(xiàn)11</p><p>  第3章 總體設計13</p><p>  3.1項目規(guī)劃13</p><p>  3.2使用操作描述13</p><p>  3.3數(shù)據(jù)庫設計13</p><p>  3.3.1數(shù)據(jù)庫字典13</p>

7、<p>  3.3.2數(shù)據(jù)庫實體分析16</p><p>  第4章 詳細設計18</p><p>  4.1后臺管理功能實現(xiàn)18</p><p>  4.2前臺功能的實現(xiàn)20</p><p>  第5章 編碼實現(xiàn)22</p><p>  5.1顯示信息的代碼22</p>&

8、lt;p>  5.2修改操作數(shù)據(jù)的代碼實現(xiàn)23</p><p>  第6章 軟件部署27</p><p>  6.1系統(tǒng)運行環(huán)境需求27</p><p>  6.2程序工作環(huán)境需求27</p><p><b>  總 結28</b></p><p><b>  致

9、謝29</b></p><p><b>  參考文獻30</b></p><p><b>  第1章 緒 論</b></p><p>  Internet是目前世界上最大的計算機互聯(lián)網絡,它遍布全球,將世界各地各種規(guī)模的網絡連接成一個整體。作為Internet上一種先進的,易于被人們所接受的信息檢索手段

10、,World Wide Web(簡稱WWW)發(fā)展十分迅速,成為目前世界上最大的信息交流寶庫。據(jù)估計,目前Internet上已有上百萬個Web站點,其內容范圍跨越了教育科研、文化事業(yè)、金融、商業(yè)、新聞出版、娛樂、體育等各個領域,其用戶群十分龐大,其中以交友為目地的交友聊天網站更是層次不群,因此在大海一樣的網絡中建設一個好的Web站點對于一個機構的發(fā)展十分重要。近年來,隨著網絡用戶要求的不斷提高及計算機科學的迅速發(fā)展,特別是數(shù)據(jù)庫技術在In

11、ternet中的廣泛應用,Web站點向用戶提供的服務將越來越豐富,越來越人性化。</p><p>  我們發(fā)現(xiàn)這樣一個事實,一個用戶在訪問一個網站時一般來講只對該網站的部分內容感性趣,而且這種興趣會持續(xù)一段時間。這點啟發(fā)了我們,如果能根據(jù)用戶的喜好為不同的用戶進行即時的溝通,將有十分美好的前景。要實現(xiàn)這樣的功能,離不開后臺數(shù)據(jù)庫的支持。用戶驗證信息,收集到的用戶點擊信息,主題層次信息,分析得出的關聯(lián)規(guī)則表等大量的

12、數(shù)據(jù)都由數(shù)據(jù)庫管理系統(tǒng)管理。本文中數(shù)據(jù)庫服務器端采用了Microsoft SQLServer數(shù)據(jù)庫作為SQLConnection數(shù)據(jù)源,并以先進的ADO(ActiveX Data Objects)技術進行數(shù)據(jù)庫存取等操作,使Web與數(shù)據(jù)庫緊密聯(lián)系起來。</p><p>  第2章 開發(fā)技術及運行環(huán)境</p><p>  2.1 ASP.NET技術的使用</p><p&

13、gt;  2.1.1 ASP.NET的介紹</p><p>  ASP.NET 不僅僅是下一版本的 Active Server Page (ASP);它是統(tǒng)一的 Web 開發(fā)平臺,用來提供開發(fā)人員生成企業(yè)級 Web 應用程序所需的服務。ASP.NET 的語法在很大程度上與 ASP 兼容,同時它還提供一種新的編程模型和結構,用于生成更安全、可伸縮和穩(wěn)定的應用程序??梢酝ㄟ^在現(xiàn)有 ASP 應用程序中逐漸添加 ASP.

14、NET 功能,隨時增強該 ASP 應用程序的功能。 </p><p>  ASP.NET 是一個已編譯的、基于 .NET 的環(huán)境,可以用任何與 .NET 兼容的語言(包括 Visual Basic .NET、C# 和 JScript .NET.)創(chuàng)作應用程序。另外,任何 ASP.NET 應用程序都可以使用整個 .NET 框架。開發(fā)人員可以方便地獲得這些技術的優(yōu)點,其中包括托管的公共語言運行庫環(huán)境、類型安全、繼承等

15、等。 </p><p>  ASP.NET 可以無縫地與 WYSIWYG HTML 編輯器和其他編程工具(包括 Microsoft Visual Studio .NET)一起工作。這不僅使得 Web 開發(fā)更加方便,而且還能提供這些工具必須提供的所有優(yōu)點,包括開發(fā)人員可以用來將服務器控件拖放到 Web 頁的 GUI 和完全集成的調試支持。</p><p>  在創(chuàng)建 ASP.NET 應用程序

16、、Web 窗體和 Web 服務時,我們可以選擇下列兩個功能,或者以他們認為合適的任何方式將它們結合起來使用。每個功能都能得到同一結構的支持,使我們可以使用身份驗證方案,緩存經常使用的數(shù)據(jù),或者對應用程序的配置進行自定義,這里只是列出幾種可能性而已。 “Web 窗體”用于生成功能強大的基于窗體的 Web 頁。生成這些頁時,可以使用 ASP.NET 服務器控件來創(chuàng)建公共 UI 元素,以及對它們進行編程以用于執(zhí)行常見的任務。這些控件使您能夠用

17、可重復使用的內置或自定義組件生成 Web 窗體,從而簡化頁面的代碼。</p><p>  ASP.NET是一種建立在通用語言上的程序構架,能被用于一臺Web服務器來建立強大的Web應用程序。ASP.NET提供許多比現(xiàn)在的Web開發(fā)模式強大的優(yōu)勢。</p><p>  ASP.NET是把基于通用語言的程序在服務器上運行。不像以前的ASP即時解釋程序,而是將程序在服務器端首次運行時進行編譯,這

18、樣的執(zhí)行效果,當然比一條一條的解釋強很多。</p><p>  因為ASP.NET是基于通用語言的編譯運行的程序,所以它的強大性和適應性,可以使它運行在Web應用軟件開發(fā)者的幾乎全部的平臺上。通用語言的基本庫,消息機制,數(shù)據(jù)接口的處理都能無縫的整合到ASP.NET的Web應用中。ASP.NET同時也是language-independent語言獨立化的,所以,你可以選擇一種最適合你的語言來編寫你的程序,或者把你的

19、程序用很多種語言來寫,現(xiàn)在已經支持的有C#(C++和Java的結合體),VB,Jscript。將來,這樣的多種程序語言協(xié)同工作的能力保護您現(xiàn)在的基于COM+開發(fā)的程序,能夠完整的移植向ASP.NET。</p><p>  并且ASP.NET使運行一些很平常的任務如表單的提交客戶端的身份驗證、分布系統(tǒng)和網站配置變得非常簡單。</p><p>  2.1.2 ASP.NET技術的使用</

20、p><p>  1)可管理性:使用基于文本的、分級的配置系統(tǒng),簡化了將設置應用于服務器環(huán)境和Web應用程序的工作。因為配置信息是存儲為純文本的,因此可以在沒有本地管理工具的幫助下應用新的設置。配置文件的任何變化都可以自動檢測到并應用于應用程序。</p><p>  2)安全:為Web應用程序提供了默認的授權和身份驗證方案。開發(fā)人員可以根據(jù)應用程序的需要很容易地添加、刪除或替換這些方案。<

21、/p><p>  3)易于部署:通過簡單地將必要的文件復制到服務器上,應用程序即可以部署到該服務器上。不需要重新啟動服務器,甚至在部署或替換運行的已編譯代碼時也不需要重新啟動。</p><p>  4)增強的性能:是運行在服務器上的已編譯代碼。與傳統(tǒng)的ActiveServerPages(ASP)不同,能利用早期綁定、實時(JIT)編譯、本機和全新的緩存服務來提高性能。</p>&

22、lt;p>  5)靈活的輸出緩存:根據(jù)應用程序的需要,可以緩存頁數(shù)據(jù)、頁的一部分或整個頁。緩存的項目可以依賴于緩存中的文件或其他項目,或者可以根據(jù)過期策略進行刷新。</p><p>  6)國際化:在內部使用Unicode以表示請求和響應數(shù)據(jù)。可以為每臺計算機、每個目錄和每頁配置國際化設置。</p><p>  7)移動設備支持:支持任何設備上的任何瀏覽器。開發(fā)人員使用與用于傳統(tǒng)的桌

23、面瀏覽器相同的編程技術來處理新的移動設備。</p><p>  8)擴展性和可用性:被設計成可擴展的、具有特別專有的功能來提高群集的、多處理器環(huán)境的性能。此外,Internet信息服務(IIS)和運行時密切監(jiān)視和管理進程,以便在一個進程出現(xiàn)異常時,可在該位置創(chuàng)建新的進程使應用程序繼續(xù)處理請求。</p><p>  9)跟蹤和調試:提供了跟蹤服務,該服務可在應用程序級別和頁面級別調試過程中啟

24、用??梢赃x擇查看頁面的信息,或者使用應用程序級別的跟蹤查看工具查看信息。在開發(fā)和應用程序處于生產狀態(tài)時,支持使用.NETFramework調試工具進行本地和遠程調試。當應用程序處于生產狀態(tài)時,跟蹤語句能夠留在產品代碼中而不會影響性能。</p><p>  10)與.NETFramework集成:因為是.NETFramework的一部分,整個平臺的功能和靈活性對Web應用程序都是可用的。也可從Web上流暢地訪問.N

25、ET類庫以及消息和數(shù)據(jù)訪問解決方案。是獨立于語言之外的,所以開發(fā)人員能選擇最適于應用程序的語言。另外,公共語言運行庫的互用性還保存了基于COM開發(fā)的現(xiàn)有投資。</p><p>  2.2 SQL Server 2005的使用</p><p>  SQL Server 2005 通過在可伸縮性、數(shù)據(jù)集成、開發(fā)工具和強大的分析等方面的革新更好的確立了微軟在BI領域的領導地位。SQL Serve

26、r 2005 能夠把關鍵的信息及時的傳遞到組織內員工的手中,從而實現(xiàn)了可伸縮的商業(yè)智能。從CEO 到信息工作者,員工可以快速的、容易的處理數(shù)據(jù),以更快更好的做出決策。SQL Server 2005全面的集成、分析和報表功能使企業(yè)能夠提高他們已有應用的價值,即便這些應用是在不同的平臺上。商業(yè)智能增強體現(xiàn)在以下幾個方面:端到端的集成BI平臺,集成服務,分析服務,報表服務,Microsoft Office System的集成。(這里只介紹使用

27、前三種比較好技術)</p><p>  1、端到端的集成BI平臺</p><p>  Microsoft SQL Server 2005 是一個完整的商務智能 (BI) 平臺,其中為用戶提供了可用于構建典型和創(chuàng)新的分析應用程序所需的各種特性、工具和功能。本文簡要介紹了您在構建分析應用程序時將要用到的一些工具,并著重介紹了一些新增功能,這些新增功能使復雜 BI 系統(tǒng)的構建和管理比以往更加輕松

28、。</p><p>  2、Integration Services</p><p>  SQL Server 2005帶來了一個全新的企業(yè)級數(shù)據(jù)整合平臺。此平臺具有出色的ETL和整合能力,使得組織機構能更加容易地管理來自于不同的關系型和非關系型數(shù)據(jù)源的數(shù)據(jù)。通過SQL Server Integration Services(SSIS),組織機構能以整體的視角去考察它們的商業(yè)運營情況,從而

29、能具有競爭優(yōu)勢</p><p>  企業(yè)級數(shù)據(jù)整合平臺SQL Server Integration Services取代了SQL Server 2000中一個非常受歡迎的功能模塊——數(shù)據(jù)轉換服務(DTS)。但SSIS并不是DTS的簡單升級,它是SQL Server 2005中的一個全新的組件,它提供了構建企業(yè)級ETL應用程序所需的功能和性能。SSIS是可編程的、可嵌入的和可擴展的,這些特性使其成為理想的ETL平臺

30、。</p><p>  傳統(tǒng) ETL 之外的SQL Server 2005 支持非傳統(tǒng)的數(shù)據(jù)(Web Service,XML):SSIS 可對不持續(xù)的數(shù)據(jù)進行分析;在數(shù)據(jù)流中的數(shù)據(jù)挖掘和文本挖掘;數(shù)據(jù)流中的數(shù)據(jù)挖掘和分析可用于數(shù)據(jù)質量和數(shù)據(jù)清洗。</p><p>  3、Analysis Services</p><p>  在SQL Server 2005中,分析

31、服務(Analysis Services)第一次提供了一個統(tǒng)一和集成的商業(yè)數(shù)據(jù)視圖,可被用做所有傳統(tǒng)報表、OLAP分析、關鍵績效指標(KPI)記分卡和數(shù)據(jù)挖掘的基礎。</p><p>  統(tǒng)一空間模型Unified Dimensional Model通過結合傳統(tǒng)OLAP分析和關系型報表中的最佳點,Analysis Services 2005提供了一個元數(shù)據(jù)模型用于滿足不同需求。Analysis Services

32、2005中的所有多維數(shù)據(jù)集和維度定義都可從統(tǒng)一空間模型UDM中查閱。UDM是一個中心元數(shù)據(jù)庫,其中定義了業(yè)務實體、業(yè)務邏輯、計算和metrics,可被作為所有報表、電子表格、OLAP瀏覽器、KPI和分析應用程序的源來使用。通過使用新的、功能強大的數(shù)據(jù)源視圖特性、UDM可被映射成后臺異構數(shù)據(jù)源宿主,這樣便可無需考慮數(shù)據(jù)的位置。</p><p>  利用UDM中對業(yè)務實體的友好描述、等級導航、多視角、自動平滑翻譯為本

33、機語言這些功能,最終用戶將會發(fā)現(xiàn)瀏覽公司業(yè)務數(shù)據(jù)是一件容易的事情。</p><p>  Microsoft SQL Server 2005 Data Mining(數(shù)據(jù)挖掘)屬于商務智能技術,它可幫助您構建復雜的分析模型,并使其與您的業(yè)務操作相集成。Microsoft SQL Server 2005分析服務中構建了新的數(shù)據(jù)挖掘平臺——一個易于使用的、容易擴展的、方便訪問的、非常靈活的平臺。對于以前從未考慮過采用數(shù)

34、據(jù)挖掘的組織機構,這無疑是個非常容易接受的解決方案。</p><p>  企業(yè)級產品的架構,與SQL Server產品家族商業(yè)智能功能的緊密集成,豐富的工具、API和算法,這一切使得我們能基于SQL Server創(chuàng)建新型的商業(yè)智能應用程序。通過它所提供的針對各種商業(yè)問題的自定義的數(shù)據(jù)驅動解決方案,能達到提高生產力、增加利潤和減少支出的目的。</p><p>  2.3應用MVC結構<

35、/p><p>  2.3.1 MVC設計思想</p><p>  MVC英文即Model-View-Controller,即把一個應用的輸入、處理、輸出流程按照Model、View、Controller的方式進行分離,這樣一個應用被分成三個層——模型層、視圖層、控制層</p><p>  視圖(View)代表用戶交互界面,對于Web應用來說,可以概括為HTML界面,但有

36、可能為XHTML、XML和Applet。隨著應用的復雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。一個應用可能有很多不同的視圖,MVC設計模式對于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請求,而不包括在視圖上的業(yè)務流程的處理。業(yè)務流程的處理交予模型(Model)處理。比如一個訂單的視圖只接受來自模型的數(shù)據(jù)并顯示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請求傳遞給控制和模型。</p><p>  模型(Model):

37、就是業(yè)務流程/狀態(tài)的處理以及業(yè)務規(guī)則的制定。業(yè)務流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數(shù)據(jù),并返回最終的處理結果。業(yè)務模型的設計可以說是MVC最主要的核心。目前流行的EJB模型就是一個典型的應用例子,它從應用技術實現(xiàn)的角度對模型做了進一步的劃分,以便充分利用現(xiàn)有的組件,但它不能作為應用設計模型的框架。它僅僅告訴你按這種模型設計就可以利用某些技術組件,從而減少了技術上的困難。對一個開發(fā)者來說,就可以專注于業(yè)務模型的設計。

38、MVC設計模式告訴我們,把應用的模型按一定的規(guī)則抽取出來,抽取的層次很重要,這也是判斷開發(fā)人員是否優(yōu)秀的設計依據(jù)。抽象與具體不能隔得太遠,也不能太近。MVC并沒有提供模型的設計方法,而只告訴你應該組織管理這些模型,以便于模型的重構和提高重用性。我們可以用對象編程來做比喻,MVC定義了一個頂級類,告訴它的子類你只能做這些,但沒法限制你能做這些。這點對編程的開發(fā)人員非常重要。</p><p>  控制(Control

39、ler)可以理解為從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。例如,用戶點擊一個連接,控制層接受請求后, 并不處理業(yè)務信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個模型可能對應多個視圖,一個視圖可能對應多個模型。</p&g

40、t;<p>  模型、視圖與控制器的分離,使得一個模型可以具有多個顯示視圖。如果用戶通過某個視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應反映到這些變化。因此,無論何時發(fā)生了何種數(shù)據(jù)變化,控制器都會將變化通知所有的視圖,導致顯示的更新。這實際上是一種模型的變化傳播機制。</p><p>  2.3.2 MVC設計模式的實現(xiàn)</p><p>  本文通過MVC實

41、現(xiàn)了QQ聊天室的功能如下圖2-1所示的其中Admin放的是關于后臺管理頁面,根目錄下的幾個便是前臺的頁面顯示,我們的主要代碼則放在APP_Code這里面,放入實現(xiàn)類和它相應的操作方法,用的時候,可以直接調用。</p><p><b>  圖2-1項目架構圖</b></p><p>  2.4應用C#編程語言</p><p><b> 

42、 1.C#的特點</b></p><p>  開發(fā)本系統(tǒng)采用的是C#編程語言。C#是一門簡單、現(xiàn)代、面向對象、類型安全、平臺獨立的組建編程語言,是.NET的關鍵性語言,也是整個.NET平臺的基礎,它使程序員能快速的為新一代Microsoft.NET平臺開發(fā)出應用程序。它的特點主要是:</p><p><b> ?。ㄒ唬┖啙嵉恼Z法</b></p>

43、<p>  在缺省的情況下,C#的代碼在.NET框架提供的“可操縱”環(huán)境下運行,不允許直接地內存操作。它所帶來的最大的特色是沒有了指針。與此相關的是,那些在C++中被瘋狂使用的操作符(例如:“::”、“->”和“.,”)已經不再出現(xiàn)。C#只支持一個“.”,對于我們來說,現(xiàn)在需要理解的一切僅僅是名字的嵌套而已。</p><p>  C#用真正的關鍵字換掉了那些的活動模板庫(Active Temp

44、late Library,ALT)和COM搞得亂糟糟的偽關鍵字,如OLE_COLOR、BOOL、VARIANT_BOOL、DISPID_X等等。每種C#操作符在.NET類庫中都有了新名字。</p><p>  語法中的冗余是C++中的常見的問題,比如"const"和"#define"、各種各樣的字符類型等等。C#對此進行了簡化,只保留了常見的形式,而別的冗余形式從它的語法結

45、構中被清除了出去。</p><p> ?。ǘ┚牡拿嫦驅ο笤O計</p><p>  在C#的類型系統(tǒng)中,每種類型都可以看作一個對象。C#提供了一個叫做裝箱(boxing)與拆箱(unboxing)的機制來完成這種操作,而不給使用者帶來麻煩。</p><p>  C#只允許單繼承,即一個類不會有多個基類,從而避免了類型定義的混亂。整個C#的類模型是建立在.NET虛擬

46、對象系統(tǒng)(Visual Object System,VOS)的基礎之上,其對象模型是.NET基礎架構的一部分,而不再是其本身的組成部分。</p><p>  (三)與Web的緊密結合</p><p>  .NET中新的應用程序開發(fā)模型意味著越來越多的解決方案需要與Web標準相統(tǒng)一,例如超文本標記語言(Hypertext Markup Language,HTML)和XML。由于歷史的原因,現(xiàn)

47、存的一些開發(fā)工具不能與Web緊密地結合。SOAP的使用使得C#克服了這一缺陷,大規(guī)模深層次的分布式開發(fā)從此成為可能。</p><p>  由于有了Web服務框架的幫助,對程序員來說,網絡服務看起來就象是C#的本地對象。程序員們能夠利用他們已有的面向對象的知識與技巧開發(fā)Web服務。僅需要使用簡單的C#語言結構,C#組件將能夠方便地為Web服務,并允許它們通過Internet被運行在任何操作系統(tǒng)上的任何語言所調用。舉

48、個例子,XML已經成為網絡中數(shù)據(jù)結構傳遞的標準,為了提高效率,C#允許直接將XML數(shù)據(jù)映射成為結構。這樣就可以有效的處理各種數(shù)據(jù)。</p><p>  (四)完整的安全性與錯誤處理</p><p>  語言的安全性與錯誤處理能力,是衡量一種語言是否優(yōu)秀的重要依據(jù)。任何人都會犯錯誤,即使是最熟練的程序員也不例外:忘記變量的初始化,對不屬于自己管理范圍的內存空間進行修改。這些錯誤常常產生難以預

49、見的后果。一旦這樣的軟件被投入使用,尋找與改正這些簡單錯誤的代價將會是讓人無法承受的。C#的先進設計思想可以消除軟件開發(fā)中的許多常見錯誤,并提供了包括類型安全在內的完整的安全性能。為了減少開發(fā)中的錯誤,C#會幫助開發(fā)者通過更少的代碼完成相同的功能,這不但減輕了編程人員的工作量,同時更有效地避免了錯誤的發(fā)生。</p><p><b>  (五)版本處理技術</b></p><

50、;p>  C#提供內置的版本支持來減少開發(fā)費用,使用C#將會使開發(fā)人員更加輕易地開發(fā)和維護各種商業(yè)用戶。</p><p>  升級軟件系統(tǒng)中的組件(模塊)是一件容易產生錯誤的工作。在代碼修改過程中可能對現(xiàn)存的軟件產生影響,很有可能導致程序的崩潰。為了幫助開發(fā)人員處理這些問題,C#在語言中內置了版本控制功能。</p><p> ?。╈`活性和兼容性</p><p&

51、gt;  在簡化語法的同時,C#并沒有失去靈活性。盡管它不是一種無限制語言,比如:它不能用來開發(fā)硬件驅動程序,在默認的狀態(tài)下沒有指針等等,但是,在學習過程中你將發(fā)現(xiàn),它仍然是那樣的靈巧。</p><p>  2.C#語言編程環(huán)境</p><p>  C#(讀作C sharp)是微軟開發(fā)的一種面向對象的編程語言,是微軟.NET開發(fā)環(huán)境的重要組成部分。而Microsoft Visual C#2

52、005是微軟開發(fā)的C#編程集成開發(fā)環(huán)境(同種產品還有Borland公司的C# Builder),它是為生成在.NET Framework上運行的多種應用程序而設計的。C#簡單、功能強大、類型安全,而且是面向對象的。C#憑借它的許多創(chuàng)新,在保持C樣式語言的表示形式和優(yōu)美的同時,實現(xiàn)了應用程序的快速開發(fā)。</p><p>  Visual Studio.net包含Visual C#,這是通過功能齊全的代碼編輯器、項目

53、模板、設計器、代碼向導、功能強大且易于使用的調試器以及其他工具實現(xiàn)的。通過.NET Framework 類庫,可以訪問多種操作系統(tǒng)服務和其他有用的精心設計的類,這些類可顯著加快開發(fā)周期。</p><p>  2.5系統(tǒng)流程的實現(xiàn)</p><p><b>  1.后臺管理流程圖</b></p><p>  圖2-2 后臺管理流程圖</p&

54、gt;<p><b>  2.前臺實現(xiàn)流程圖</b></p><p>  圖2-3 前臺實現(xiàn)流程圖</p><p><b>  第3章 總體設計</b></p><p><b>  3.1項目規(guī)劃</b></p><p>  QQ聊天室是前臺和后臺共用一個小網

55、站,主要是為了在一些網站做補充,為了使我網站更有吸引力,增加網站的內容主要內容如下所示:</p><p> ?。?)“會員的管理”用于維護(刪除、查詢)會員的基本信息。主要是根據(jù)會員編號和名稱進行管理。</p><p> ?。?)“管理員的管理”用于維護管理員的基本信息。其內容包括管理員的(增加,刪除,修改密碼)及權限的設置。</p><p> ?。?)“公告信息”

56、用于公告的(增加,刪除,修改,查詢)情況,便于更快的實行信息的公告,從而對聊天室的管理。其內容主要是公告的內容詳細設置。</p><p> ?。?)“聊天內容管理”用于管理聊天內容的信息。主要是為了健康的上網,對一些內容的刪除。</p><p><b>  3.2使用操作描述</b></p><p><b>  方便性:</b&

57、gt;</p><p>  只要有個IE瀏覽器就可以使用,避免繁瑣的安裝。</p><p><b>  快捷性:</b></p><p>  管理方便,網站只要加入本功能,就能使用,占用系統(tǒng)少。</p><p><b>  3.3數(shù)據(jù)庫設計</b></p><p>  3.3

58、.1數(shù)據(jù)庫字典</p><p>  數(shù)據(jù)庫是系統(tǒng)的最底層,它存儲系統(tǒng)的所有數(shù)據(jù)。根據(jù)對系統(tǒng)的分析,得出數(shù)據(jù)庫表如下:</p><p>  1.聊天信息表(Chat)</p><p>  聊天信息表用于保存管理相應會員的聊天內空,時間,其中包括格式、密碼、性別以及年齡。管理人員信息表的字段說明如表3-1所示。</p><p>  表3-1 表

59、Chat的結構</p><p>  2.會員信息表(Users)</p><p>  會員信息表存儲會員的信息。會員信息表的字段說明如表3-2所示。</p><p>  表3-2 表Users的結構</p><p>  3.管理員信息表(adminLogin)</p><p>  管理員信息表用于存儲每個管理員的詳細

60、信息。管理員信息表的字段說明如表3-3所示。</p><p>  表3-3 表AdminLogin的結構</p><p>  4.請求類型表(NewAsk)</p><p>  請求表用于提供請求信息。請求表的字段說明如表3-4所示。</p><p>  表3-4 表NewAsk的結構</p><p>  3.3.

61、2數(shù)據(jù)庫實體分析</p><p><b>  1.聊天實體結構圖</b></p><p>  圖3-1 聊天實體結構圖</p><p><b>  2.會員實體結構圖</b></p><p>  圖3-2 會員實體結構圖</p><p>  3.管理員實體結構圖<

62、/p><p>  圖3-3 管理員實體結構圖</p><p>  4.好友請求實體結構圖</p><p>  圖3-4 請求實體結構圖</p><p><b>  第4章 詳細設計</b></p><p>  4.1后臺管理功能實現(xiàn)</p><p>  管理員登錄模塊為本

63、系統(tǒng)的后臺頁面,此頁面必須是特定的操作人員有相關的賬號和密碼才能登陸管理的主要頁面。管理員登錄頁面必須通過驗證用戶名、密碼正確與否,只有合法的用戶才可以進入系統(tǒng)的核心。當用戶名沒有輸入用戶名、密碼時,系統(tǒng)會通過非空驗證再用戶名和密碼的后面顯示“不允許為空”的字樣。當輸入信息正確點擊“確定” 按鈕時,就會彈出“登陸成功”的消息提示框,進入系統(tǒng)的主界面進行操作;如輸入錯誤信息將彈出“用戶名或密碼錯誤,請檢查!”的消息提示框,無法進入界面。單

64、擊“退出” 按鈕可關閉當前頁面,如圖4-1所示。</p><p>  在管理員登錄頁面中的“管理員名稱”處輸入管理員用戶名“admin”,在密碼處輸入“admin”,單擊“確定”按鈕,進入如圖4-2所示。</p><p>  系統(tǒng)主要包括:會員的信息管理、公告信息的管理、聊天內容顯示的管理、以及管理員系統(tǒng)密碼的修改。期中增加、刪除、修改、查詢的操作方法相似,下面以管理員維護為例,講解其操作

65、方法。</p><p>  公告的管理主要有:公告信息的添加、刪除和修改等操作,由于這些信息的執(zhí)行操作大致是相同的,所以我們在這里主要介紹管理員修改的各種操作。</p><p>  會員信息設置模塊包括會員信息列表、添加會員、修改會員信息和刪除會員4部分功能。</p><p>  在功能區(qū)中單擊“管理員信息”按鈕,進入管理員頁面。此頁面主要實現(xiàn)添加管理員信息的操作功

66、能。單擊“增加”按鈕,進入編輯管理員信息的頁面。此頁面主要實現(xiàn)的是顯示管理員的信息、修改、刪除、會員信息等功能。</p><p>  對管理員頁面的操作方法如下:</p><p>  添加管理員密碼。單擊“新建管理員”按鈕,進入如圖4-3所示的頁面,輸入本次管理員密碼,在管理員用戶名、密碼、確認密碼,驗證碼處添加相關內容,然后單擊“確定”按鈕,完成添加操作。</p><

67、p><b>  窗體設計界面</b></p><p>  圖4-1 管理員登錄圖</p><p>  圖4-2 后臺管理頁面圖</p><p>  圖4-3 管理員修改信息圖</p><p>  4.2前臺功能的實現(xiàn)</p><p>  登錄聊天:在前臺直接登錄,進入如圖4-5所示的頁

68、面,可以直接輸入名稱進入,也可注冊會員登錄,登錄以后會保存用戶的聊天記錄。</p><p>  聊天內容窗體:顯示現(xiàn)在會員的聊天內容,這個窗口也可按一定的時間自動更新的。 </p><p>  發(fā)聊天信息:這個窗體可以發(fā)聊天信息,對所有人選擇可以聊天,也可以私聊,要發(fā)的信息只能對相應選擇的人觀看,其它人看不到,其中右邊還有選擇自己在上面顯示窗體上的字體大小或是顏色。如圖4-6所示。<

69、;/p><p><b>  窗體設計界面</b></p><p>  圖4-4 前臺會員或是游客進入聊天圖</p><p>  圖4-5 顯示聊天信息圖</p><p>  圖4-6 發(fā)聊天信息圖</p><p><b>  第5章 編碼實現(xiàn)</b></p>

70、<p>  5.1顯示信息的代碼</p><p>  此聊天頁面的信息主要就是在頁面上顯示來客的聊天信息,我們可以很容易的顯示我們的發(fā)言,讓其它人看到,其中的顏色和大小可以區(qū)分不同的說話者。在這里我們主要用到的是把數(shù)據(jù)庫中的數(shù)據(jù)讀出來顯示在一個頁面,然后在當前頁面對其調用,另一個頁面是自動刷新的。</p><p><b>  實現(xiàn)代碼如下:</b></

71、p><p>  /// <summary></p><p>  /// 顯示聊天信息</p><p>  /// </summary></p><p>  /// <returns></returns></p><p>  public DataSet ShowTopChat

72、()</p><p><b>  {</b></p><p>  DataSet dst =new DataSet () ;</p><p><b>  try</b></p><p><b>  {</b></p><p>  cmd = new Sq

73、lCommand("SELECT TOP 10 * FROM Chat order by CreateTime desc ", con.ConOpen());</p><p>  sda = new SqlDataAdapter(cmd );</p><p>  sda.Fill(dst);</p><p><b>  }</b

74、></p><p>  catch (Exception)</p><p><b>  {</b></p><p><b>  }</b></p><p><b>  finally</b></p><p><b>  {</b&g

75、t;</p><p>  con.ConClose();</p><p><b>  }</b></p><p>  return dst ;</p><p><b>  }</b></p><p>  /// <summary></p><p

76、>  /// 綁定聊天信息</p><p>  /// </summary></p><p>  public void InitData()</p><p><b>  {</b></p><p>  ChatOper chatOper=new ChatOper ();</p><

77、p>  DataSet ds = chatOper.ShowTopChat();</p><p>  // DataSet ds = Application["Chat"].ToString();</p><p>  if (ds != null)</p><p><b>  {</b></p><

78、p>  foreach( DataRow dr in ds.Tables[0].Rows )</p><p><b>  {</b></p><p>  Response.Write("<font color=" + dr["Color"].ToString() + ">");//顏色&

79、lt;/p><p>  Response.Write(dr["CreateTime"].ToString());//發(fā)言時間</p><p>  Response.Write("【" + dr["UserName"].ToString() + "】");//發(fā)言用戶</p><p&

80、gt;  Response.Write(dr["Emotion"].ToString());//表情</p><p>  Response.Write("說道:");</p><p>  Response.Write(dr["Context"].ToString());//發(fā)言內容</p><

81、;p>  Response.Write("</font><br>");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  5.2修改操作數(shù)

82、據(jù)的代碼實現(xiàn)</p><p>  在修信息時,點擊要修改的內容,根據(jù)編號從而進入相關修改的信息頁,顯示出這信息,這樣就可以修改它的內容了。</p><p>  修改信息時要提取修改內容的Id信息,這就用到了數(shù)據(jù)回填的內容。下面以我們常用到的注冊用戶實現(xiàn)代碼如下:</p><p>  /// <summary></p><p>&l

83、t;b>  /// 用戶注冊</b></p><p>  /// </summary></p><p>  /// <param name="userEntity">用戶實體信息</param></p><p>  /// <returns>結果信息</returns>

84、</p><p>  public string InsertUsers(UserEntity userEntity)</p><p><b>  {</b></p><p>  string str = "";</p><p><b>  try</b></p>

85、<p><b>  {</b></p><p>  cmd = new SqlCommand(" insert into Users (UserID,userPwd,userName,Sex,Tel,Area,brithday,myInfo,mail) values('" + userEntity.UserID + "','&q

86、uot; + userEntity.UserPwd + "','" + userEntity.UserName + "','" + userEntity.Sex + "','" + userEntity.Tel + "','" + userEntity.Area + "',&#

87、39;" + userEntity.Birthday + "','" + userEntity.MyInfo + "','"+userEntity.Mail +"')", con.ConOpen());</p><p>  int i = cmd.ExecuteNonQuery();</p>

88、<p>  if (i == 1)</p><p><b>  {</b></p><p>  str = "OK";</p><p><b>  }</b></p><p><b>  else</b></p><p>

89、<b>  {</b></p><p>  str = "失敗,請檢查!";</p><p><b>  }</b></p><p><b>  }</b></p><p>  catch (SqlException ex)</p><p

90、><b>  {</b></p><p>  if (ex.Number == 2627)</p><p><b>  {</b></p><p>  str = "已存在此用戶!";</p><p><b>  }</b></p>&l

91、t;p><b>  else</b></p><p><b>  {</b></p><p>  str = "系統(tǒng)錯誤!";</p><p><b>  }</b></p><p><b>  }</b></p>

92、<p><b>  finally</b></p><p><b>  {</b></p><p>  con.ConClose();</p><p><b>  }</b></p><p>  return str;</p><p><

93、b>  }</b></p><p>  /// <summary></p><p>  /// 根據(jù)相關的ID要刪除用戶</p><p>  /// </summary></p><p>  /// <param name="UserIDs">用戶組</param

94、></p><p>  /// <returns></returns></p><p>  public string DelUsers(string UserIDs)</p><p><b>  {</b></p><p>  string str = "";</

95、p><p><b>  try</b></p><p><b>  {</b></p><p>  cmd = new SqlCommand(" DELETE FROM Users WHERE UserID='" + UserIDs + "' ", con.ConOp

96、en());</p><p>  int i = cmd.ExecuteNonQuery();</p><p>  if (i > 0)</p><p><b>  {</b></p><p>  str = "OK";</p><p><b>  }</

97、b></p><p><b>  else</b></p><p><b>  {</b></p><p>  str = "失敗,請檢查!";</p><p><b>  }</b></p><p><b>  }&

98、lt;/b></p><p>  catch (SqlException ex)</p><p><b>  {</b></p><p>  str = "系統(tǒng)錯誤!";</p><p><b>  }</b></p><p><b>  

99、finally</b></p><p><b>  {</b></p><p>  con.ConClose();</p><p><b>  }</b></p><p>  return str;</p><p><b>  }</b>&l

100、t;/p><p>  /// <summary></p><p>  /// 用戶自己對信息的修改</p><p>  /// </summary></p><p>  /// <param name="userEntity">信息實體</param></p>&l

101、t;p>  /// <returns>結果信息</returns></p><p>  public string UpdateUsers(UserEntity userEntity)</p><p><b>  {</b></p><p>  string str = "";</p>

102、;<p><b>  try</b></p><p><b>  {</b></p><p>  cmd = new SqlCommand(" UPDATE Users SET UserPwd='" + userEntity.UserPwd + "',userName='&qu

103、ot; + userEntity.UserName + "',Sex='" + userEntity.Sex + "',Tel='" + userEntity.Tel + "',Area='" + userEntity.Area + " ',brithday='" + userEntity.Bi

104、rthday + "',myInfo='" + userEntity.MyInfo + "' where UserID='" + userEntity.UserID + "' ", con.ConOpen());</p><p>  int i = cmd.ExecuteNonQuery();</p>

105、<p>  if (i == 1)</p><p><b>  {</b></p><p>  str = "OK";</p><p><b>  }</b></p><p><b>  else</b></p><p>

106、<b>  {</b></p><p>  str = "失敗,請檢查!";</p><p><b>  }</b></p><p><b>  }</b></p><p>  catch (SqlException ex)</p><p

107、><b>  {</b></p><p>  str = "系統(tǒng)錯誤!";</p><p><b>  }</b></p><p><b>  finally</b></p><p><b>  {</b></p>

108、<p>  con.ConClose();</p><p><b>  }</b></p><p>  return str;</p><p><b>  }</b></p><p>  /// <summary></p><p>  /// 得到用戶數(shù)

109、據(jù)表</p><p>  /// </summary></p><p>  /// <returns>用戶數(shù)據(jù)表</returns></p><p>  public DataTable GetUserList()</p><p><b>  {</b></p><

110、p>  SqlDataAdapter sda = null;</p><p>  DataTable dt = null;</p><p><b>  try</b></p><p><b>  {</b></p><p>  cmd = new SqlCommand("select

111、 * from Users ", con.ConOpen());</p><p>  sda = new SqlDataAdapter(cmd);</p><p>  sda.Fill(dt);</p><p>  if (dt.Rows.Count == 0)</p><p><b>  {</b></

112、p><p>  foreach (DataRow dtr in dt.Rows)</p><p><b>  {</b></p><p>  dtr[2] = "沒有用戶信息!";</p><p>  dt.Rows.Add(dtr);</p><p><b>  }&l

113、t;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  catch (SqlException)</p><p><b>  {</b></p><p><b>  }</b&

114、gt;</p><p><b>  finally</b></p><p><b>  {</b></p><p>  con.ConClose();</p><p><b>  }</b></p><p>  return dt;</p>

115、<p><b>  }</b></p><p><b>  第6章 軟件部署</b></p><p>  6.1系統(tǒng)運行環(huán)境需求</p><p>  客戶端:帶有IE的瀏覽器都可以使用。</p><p>  服務器:win2003 server,XP, CPU:2.8GHZ以上;內存2

116、56建議1G,硬盤:80G,必要的網絡設備。</p><p>  6.2程序工作環(huán)境需求</p><p><b>  (1)硬件平臺:</b></p><p>  CPU:Pentium Ⅲ及其兼容處理器,建議主頻600MHz或更高;</p><p>  內存:512MB以上;</p><p>&

117、lt;b> ?。?)軟件平臺:</b></p><p>  操作系統(tǒng):Windows XP;</p><p>  數(shù)據(jù)庫:SQL Server 2005數(shù)據(jù)庫;</p><p>  開發(fā)工具:Microsoft Visual Studio 2005;</p><p>  開發(fā)語言:C#語言;</p><p

118、>  服務器:IIS 6.0;</p><p>  瀏覽器:IE 6.0 。</p><p><b>  總 結</b></p><p>  完成這個QQ聊天室對我的收獲很大。從做的那一天起我就開始慢慢的明白做一個程序是很不容易的,我要不停的做下去,只有這樣才能好好發(fā)展我自己,所以一直到現(xiàn)在。在這個過程,我想過粗心地做一下就行了,但是還

119、是用心的去做了,這樣才能提高自我,慢慢的明白了一個好的東西是多么的不容易呀,這樣的慢慢的把這個做完了。</p><p>  做完自己的東西才明白,別人做出來是多少的難,也開始愛惜別人做的程序了,讓我很有成就感,同時發(fā)現(xiàn)軟件這東西不是我們一個人就能很好的完成的,它要很多人的心血,一個好的軟件是經過N次的調試,調出來的,真的很不容易,讓我感到一個作品的勞動要多少心苦的。</p><p>  我

120、明確知道我做的這個程序只是很大的一個系統(tǒng)中的一小部分,而且它的內容不一定能適合到很大的項目中,要和其它的軟件合為一體,還是要做很多工作的,所以我下去以還會認真的愛惜我的程序的。</p><p><b>  致 謝</b></p><p>  一個好的軟件經過一個人的開發(fā)是不夠的,所以我要感謝所有幫助過我完成此功能的老師與同學們。如果沒有他們的幫助,可能我的項目也不會

121、完成的那么好。</p><p>  在完成我的項目期間,老師們認真的負責,每個細節(jié)都詳細的和我講解,從不嫌我麻煩。老師們這樣的工作態(tài)度使我非常的感動,這樣的認真態(tài)度是我們要學習的。</p><p>  我要特別感謝我的設計輔導老師,她不斷地為我改進系統(tǒng)的不足之處,細心地和我講解每個步驟與方法,使我受益匪淺。謝謝老師對我的指導與支持。</p><p>  感謝在背后默

122、默支持我的父母,他們每天辛勤的勞動工作,就是為了讓我今后有出頭之日。沒有你們的支持,我也不會走到大學這一步,謝謝我最愛的父母。</p><p>  最后,感謝我身邊每一個幫助和支持我的人,謝謝你們了。</p><p><b>  參考文獻</b></p><p>  [1] 肖桂東,SQL Server 疑難解析,電子工業(yè)出版社,2006,86

123、-162</p><p>  [2] 劉瑞新,程序設計教程,機械工業(yè)出版社,2003,20-36</p><p>  [3] 張慶華,ASP.NET 2.0完全自學手冊,機械工業(yè)出版社,2007,73-112</p><p>  [4] 邱錦倫,Visual C#.NET 程序設計,清華大學出版社,2006,147-406</p><p> 

124、 [5] 賽奎春,C#程序設計范例寶典,北京人民郵電出版社,2006</p><p>  [6] 張學志,C#+SQL Server項目開發(fā)實踐, 中國鐵道出版社,2005,1-398</p><p>  [7] 張樹亮、李超,ASP.NET 2.0+SQL Server網絡應用系統(tǒng)開發(fā)案例精解,清華大學出版社,2006,36-50</p><p>  [8] 宋昆

溫馨提示

  • 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

提交評論