版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 簡單聊天系統(tǒng)的設(shè)計(jì)與開發(fā) 摘 要隨著計(jì)算機(jī)的普及和快速發(fā)展,計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)滲入到我們的日常生活中,而網(wǎng)絡(luò)聊天系統(tǒng)的使用最為頻繁。網(wǎng)絡(luò)聊天系統(tǒng)可以使人在很遠(yuǎn)的距離內(nèi)進(jìn)行聊天,甚至包括語音和視頻的,通過網(wǎng)絡(luò)聊天系統(tǒng),不僅可以聯(lián)絡(luò)人們之間的感情,增進(jìn)人們之間的友誼,而且還使這個(gè)世界越來越小,同時(shí)也越來越方便。因此,研究網(wǎng)絡(luò)聊天系統(tǒng)是十分有意義的。 該聊天系統(tǒng)是一個(gè)基于c/s架構(gòu)(即客戶機(jī)/服務(wù)器的系統(tǒng)),采用visual studio 2005作為該聊天系統(tǒng)的開發(fā)環(huán)境,c#作為開發(fā)語言,運(yùn)行的環(huán)境為windows xp操作系統(tǒng),后臺的數(shù)據(jù)庫使用microsoft sql server 2005。該
2、聊天系統(tǒng)能在局域網(wǎng)實(shí)現(xiàn)聊天功能,提供用戶注冊、登錄、聊天、修改個(gè)人信息、查找/添加好友、更換皮膚、聽音樂等功能。關(guān)鍵詞:網(wǎng)絡(luò)聊天系統(tǒng);數(shù)據(jù)庫 microsoft sql server 2005;visual studio 2005 abstractwith the development of computer, internet has entered our daily life, the most frequently use of internet is internet chatting system. therefore, it is very valuable and meani
3、ngful to study and research internet chatting system. internet chatting system can help people in chatting with other people far away. you can also have visual talk with other people through internet chatting system.so, it can help people to develop friendship with any people who are able to search
4、internet in the world. the earth looks like smaller than before because you can have relationship with people more convenient.it is based on the system of c/s, use visual studio 2005 as exploit language of the environment. its running environment is windows xp operating system. and uses microsoft sq
5、l server 2005 as its background database management system. clients can run this internet chatting system under windows xp environment.this system can do a full management on scientific project and scientific and technology paper, providing necessary functions of everyday management, for example, da
6、ta input, query with more conditions, statistics, report forms output etc. and easy to use.keywords:scientific research project management system;database sql server 2005;visual studio 2005目 錄摘 要iabstractii第一章 引言11.1 課題的研究背景和目的11.2 課題的研究現(xiàn)狀11.3 課題的研究意義11.4 課題的設(shè)計(jì)開發(fā)平臺21.4.1 開發(fā)平臺21.4.2 選型的原則21.5 論文總體結(jié)構(gòu)2
7、第二章 系統(tǒng)分析42.1 概述42.2 需求分析42.3 開發(fā)目標(biāo)4第三章 數(shù)據(jù)庫設(shè)計(jì)53.1 數(shù)據(jù)庫概念設(shè)計(jì)53.2 數(shù)據(jù)庫邏輯設(shè)計(jì)53.3 數(shù)據(jù)庫物理設(shè)計(jì)113.3.1 數(shù)據(jù)庫選型113.3.2 完整性規(guī)則113.3.3 安全性考慮123.4數(shù)據(jù)庫訪問接口設(shè)計(jì)123.4.1 數(shù)據(jù)訪問接口選擇123.4.2 具體實(shí)現(xiàn)12第四章 系統(tǒng)設(shè)計(jì)134.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)134.2 登錄界面134.3 主界面設(shè)計(jì)154.4 好友管理模塊設(shè)計(jì)164.5 個(gè)人設(shè)置模塊設(shè)計(jì)164.6 聊天模塊設(shè)計(jì)174.7 系統(tǒng)托盤模塊的設(shè)計(jì)204.8 找回密碼模塊的設(shè)計(jì)204.9 myqq音樂模塊的設(shè)計(jì)20第五章 系統(tǒng)
8、測試分析225.1 系統(tǒng)測試的目標(biāo)225.2 系統(tǒng)功能的驗(yàn)證235.3 系統(tǒng)測試結(jié)論23結(jié)束語24致 謝25參考文獻(xiàn)26第一章 引言1.1 課題的研究背景和目的網(wǎng)絡(luò)聊天系統(tǒng)是通過多終端的通訊技術(shù)打造了一種集文字、聲音、圖像于一體的綜合通訊平臺,對人們的學(xué)習(xí)和生活產(chǎn)生了深遠(yuǎn)的影響,同時(shí)也提出了諸多的研究課題。網(wǎng)絡(luò)聊天系統(tǒng)是一種以網(wǎng)絡(luò)為中介的即時(shí)同步的通訊平臺。即時(shí)通訊不僅具有軟件產(chǎn)品的特性,而且還體現(xiàn)了網(wǎng)絡(luò)產(chǎn)品的特性,同時(shí)又兼有網(wǎng)絡(luò)信息服務(wù)業(yè)的特性。鑒于此,研究網(wǎng)絡(luò)聊天系統(tǒng)是非常有必要的,而且是非常有意義的。一方面可以對網(wǎng)絡(luò)聊天系統(tǒng)有個(gè)更加深入的了解,熟悉網(wǎng)絡(luò)聊天系統(tǒng)的細(xì)節(jié)流程;另一方面可以通過
9、研究網(wǎng)絡(luò)聊天系統(tǒng),檢驗(yàn)自己,在研究中不斷的進(jìn)步。1.2 課題的研究現(xiàn)狀在現(xiàn)在這個(gè)信息爆炸的時(shí)代,計(jì)算機(jī)發(fā)揮了自己強(qiáng)大的功能,人們之間的通信交流也都由計(jì)算機(jī)所取代。關(guān)于網(wǎng)絡(luò)聊天系統(tǒng),它經(jīng)過了四個(gè)階段。1. 單一的即時(shí)通訊系統(tǒng),如qq、msn messenger和yahoo messenger。 特點(diǎn)主要是進(jìn)行通訊,包括語音、文本甚至視頻。2. 在通訊上附加了娛樂,p2p功能。如uc和popo,他們除了可以進(jìn)行聊天之外,還可以傳輸文件,既快捷又方便。3. 以p2p功能為主,同時(shí)可以進(jìn)行文本聊天。4. 在一個(gè)軟件中可以把其他聊天通訊系統(tǒng)集成過來,當(dāng)然這種集成是可以通過多種方式的,比如trillian
10、是安裝一個(gè)軟件替代其他的,并可以與其他的進(jìn)行通訊。目前我們處于第四階段,即處在一個(gè)軟件中可以把其他聊天通訊系統(tǒng)集成過來并可以與其進(jìn)行通訊。1.3 課題的研究意義網(wǎng)絡(luò)聊天系統(tǒng)可以使人在很遠(yuǎn)的距離內(nèi)進(jìn)行聊天,甚至包括語音和視頻的。通過網(wǎng)絡(luò)聊天系統(tǒng),在可以即時(shí)聊天的同時(shí),還可以增進(jìn)人們之間的感情,使這個(gè)世界越來越小,越來越方便。除此之外,它還越來越多地被作為辦公系統(tǒng)來使用。如此多的優(yōu)點(diǎn)之下開發(fā)一個(gè)簡單聊天系統(tǒng)是很有意義的。1.4 課題的設(shè)計(jì)開發(fā)平臺1.4.1 開發(fā)平臺聊天系統(tǒng)采用的數(shù)據(jù)庫是microsoft sql server 2005數(shù)據(jù)庫1,開發(fā)語言為c#。microsoft visual s
11、tudio 2005(簡稱vs2005)作為前臺的開發(fā)系統(tǒng),用sql server 2005作為后臺數(shù)據(jù)庫,通過visual studio 2005的服務(wù)器資源管理器來連接sql server 2005并對其編程來實(shí)現(xiàn)各種功能。1.4.2 選型的原則在選擇開發(fā)平臺時(shí)主要考慮以下因素:1開發(fā)系統(tǒng)的性能(1) 穩(wěn)定和可靠2。這是人們最關(guān)心的性能,開發(fā)系統(tǒng)不能經(jīng)常發(fā)生錯(cuò)誤或在訪問數(shù)據(jù)庫時(shí)經(jīng)常出現(xiàn)問題。(2) 可視化的開發(fā)。只須用鼠標(biāo)拖拉控件就可以完成界面的設(shè)計(jì),并且畫出來的界面非常漂亮,可以根據(jù)自己的喜好設(shè)置背景圖片。(3) 提供可擴(kuò)展的第四代編程語言。這樣開發(fā)人員就不需要關(guān)心復(fù)雜的底層工作,只需要
12、把控件和類庫中的方法拿過來用就行了。(4) 對windows技術(shù)的廣泛支持。包括對windows 95/98上32位計(jì)算的支持以及對ddl、ole、mdi等的支持。(5) 可以生成真正的可執(zhí)行文件。直接雙擊生成的.exe文件就可以運(yùn)行程序,較之于偽代碼真正的機(jī)器代碼會使應(yīng)用的速度和效率得到大幅度提高。2數(shù)據(jù)庫的訪問能力(1) 能夠支持jdbc(java 數(shù)據(jù)庫連接)、odbc(開放式數(shù)據(jù)庫連接)和數(shù)據(jù)庫專用接口。(2) 提供多種數(shù)據(jù)表現(xiàn)形式。完成對后臺數(shù)據(jù)庫的查詢和操作是前端開發(fā)系統(tǒng)的主要任務(wù)。因此開發(fā)系統(tǒng)必須提供簡便而功能強(qiáng)大的數(shù)據(jù)訪問手段,并提供多種數(shù)據(jù)表現(xiàn)形式,可以生成復(fù)雜的報(bào)表3。1.
13、5 論文總體結(jié)構(gòu) 論文總共分五章來介紹簡單聊天系統(tǒng)的開發(fā)與設(shè)計(jì)。 第一章引言,介紹了課題研究的背景和目的,課題研究的現(xiàn)狀及意義,除此之外還介紹了課題的設(shè)計(jì)開發(fā)平臺。第二章系統(tǒng)分析,詳述系統(tǒng)的需求分析,通過功能需求擬定開發(fā)目標(biāo)。第三章數(shù)據(jù)庫設(shè)計(jì),描述了數(shù)據(jù)庫概念設(shè)計(jì),數(shù)據(jù)庫邏輯設(shè)計(jì),數(shù)據(jù)庫物理設(shè)計(jì)和數(shù)據(jù)庫訪問接口設(shè)計(jì)。第四章系統(tǒng)設(shè)計(jì),重點(diǎn)研究系統(tǒng)的總體結(jié)構(gòu),各個(gè)功能的具體實(shí)現(xiàn)。第五章系統(tǒng)測試分析,介紹了系統(tǒng)測試目標(biāo)和系統(tǒng)功能驗(yàn)證。第二章 系統(tǒng)分析2.1 概述網(wǎng)絡(luò)聊天系統(tǒng)是通過多終端的通訊技術(shù)打造了一種集文字、聲音、圖像于一體的綜合通訊平臺,它是一種即時(shí)的通訊平臺。因此,在進(jìn)行系統(tǒng)分析的時(shí)候需要考
14、慮很多因素。首先應(yīng)該對網(wǎng)絡(luò)聊天系統(tǒng)的現(xiàn)狀進(jìn)行分析,提出新的聊天系統(tǒng)要達(dá)到的目標(biāo),然后確定目標(biāo)系統(tǒng)的功能,為系統(tǒng)設(shè)計(jì)提供基礎(chǔ)。其主要任務(wù)是將在對網(wǎng)絡(luò)聊天系統(tǒng)的詳細(xì)調(diào)查中所得的文檔資料集中在一起,并對這些資料進(jìn)行分析,目的是將該聊天系統(tǒng)的功能需求確定下來。其中的需求分析是聊天系統(tǒng)開發(fā)工作中最重要的環(huán)節(jié)之一,是聊天系統(tǒng)設(shè)計(jì)的依據(jù)。需求分析已經(jīng)成為一門獨(dú)立的學(xué)科,稱為需求工程,即應(yīng)用已證實(shí)有效的技術(shù)、方法進(jìn)行需求分析,確定用戶需求,幫助開發(fā)人員理解問題并定義目標(biāo)系統(tǒng)的所有外部特征。2.2 需求分析 (1) 注冊新賬號:用戶注冊時(shí)需要填寫兩類信息,基本資料和選填資料。即可獲取系統(tǒng)分配給用戶的一個(gè)唯一的m
15、yqq賬號。(2) 用戶登錄:用戶輸入myqq賬號和myqq密碼,系統(tǒng)根據(jù)用戶輸入的賬號和密碼進(jìn)行驗(yàn)證。通過在數(shù)據(jù)庫中查詢,如果輸入正確,進(jìn)入聊天主窗體;否則會出現(xiàn)相應(yīng)的系統(tǒng)提示。(3) 修改個(gè)人信息:用戶在登錄后可以隨時(shí)修改自己的個(gè)人信息,包括基本設(shè)置和安全設(shè)置兩項(xiàng)。(4) 聊天功能:可以實(shí)現(xiàn)一對一、一對多、多對多的聊天功能。(5) 查找/添加好友:包括基本查找和高級查找,有單個(gè)用戶的查找,也有群的查找,同時(shí)可以將選中的對象加為好友。(6) 其他功能:實(shí)現(xiàn)查看聊天記錄、更換myqq皮膚、聽myqq音樂等功能。2.3 開發(fā)目標(biāo)針對本聊天系統(tǒng)的需求分析,提出以下開發(fā)目標(biāo):(1) 在用戶登錄時(shí),即
16、時(shí)的提醒用戶填寫的內(nèi)容是否為空,防止sql語句注入4。(2) 在用戶修改個(gè)人信息時(shí),即時(shí)的顯示用戶修改過的信息并且更新。(3) 在聊天時(shí)如果有信息,會給用戶一個(gè)提示,頭像閃動(dòng)加聲音提示。(4) 實(shí)現(xiàn)群聊功能。(5) 該聊天系統(tǒng)應(yīng)易于修改和擴(kuò)充。第三章 數(shù)據(jù)庫設(shè)計(jì)3.1 數(shù)據(jù)庫概念設(shè)計(jì)該聊天系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)涉及到十一張表:用戶表、好友表、群表、消息表、群用戶表、群消息表、個(gè)人通訊錄表、好友策略表、星座表、血型表、消息類型表。每張表都有一個(gè)主鍵id,是自增的列,不允許為空。3.2 數(shù)據(jù)庫邏輯設(shè)計(jì)該聊天系統(tǒng)由以下十一個(gè)表構(gòu)成,其模式結(jié)構(gòu)如下:(1) 用戶表(id號,密碼,用戶狀態(tài),好友策略,昵稱,頭
17、像,性別,年齡,姓名,星座,血型,密碼保護(hù)問題,密碼保護(hù)問題答案)用戶表er圖設(shè)計(jì)如圖3.1所示:用戶表id號密碼好友策略頭像性別年齡姓名星座血型密碼保護(hù)問題答案昵稱用戶狀態(tài)密碼保護(hù)問題圖3.1 用戶表e-r圖各字段的定義及說明如表3.1所示:表3.1 用戶表字段定義列名數(shù)據(jù)類型允許空備注idint否主鍵loginpwdvarchar(50)否userstatevarchar(20)否friendshippolicyidint否nicknamevarchar(50)否faceidint否sexvarchar(8)否ageint否續(xù)表(3.1 用戶表字段定義)列名數(shù)據(jù)類型允許空備注namevar
18、char(50)否staridint否bloodtypeidint是questionntext是answerntext是(2) 好友表(id號,myqq號,好友的myqq號)好友表er圖設(shè)計(jì)如圖3.2所示:好友的myqq號id號myqq號好友表圖3.2 好友表e-r圖各字段的定義及說明如表3.2所示:表3.2 好友表字段定義列名數(shù)據(jù)類型允許空備注idint否主鍵hostidintfriendidint(3) 群表(id號,群公告,管理員myqq號,群名稱)群表er圖設(shè)計(jì)如圖3.3所示:群表id號群名稱管理員myqq號群公告圖3.3 群表e-r圖各字段的定義及說明如表3.3所示:表3.3 群表字
19、段定義列名數(shù)據(jù)類型允許空備注idint否主鍵informationntext否adminidint否groupnamevarchar(50)是(4) 消息表(id號,發(fā)消息id,接收消息id,消息內(nèi)容,消息類型,消息狀態(tài),消息時(shí)間,是否響應(yīng))消息表er圖設(shè)計(jì)如圖3.4所示:消息表id號消息內(nèi)容接收消息id發(fā)消息id消息類型消息狀態(tài)消息時(shí)間是否響應(yīng)圖3.4 消息表e-r圖各字段的定義及說明如表3.4所示:表3.4 消息表字段定義列名數(shù)據(jù)類型允許空備注idint否主鍵fromuseridint否touseridint否messagentext是messagetypeidint否messagesta
20、teint否messagetimedatetime否isringedint否(5) 群用戶表(id號,myqq號,姓名,電話,手機(jī),對方qq號碼,郵箱,備注)群用戶表er圖設(shè)計(jì)如圖3.5所示:群用戶表id號是否接收消息群號用戶myqq號圖3.5 群用戶表e-r圖各字段的定義及說明如表3.5所示:表3.5 群用戶表字段定義列名數(shù)據(jù)類型允許空備注idint否主鍵groupidint否useridint否hasmessageint否(6) 群消息表(id號,群號,發(fā)消息id,消息內(nèi)容,消息時(shí)間)群消息表er圖設(shè)計(jì)如圖3.6所示:群消息表id號消息內(nèi)容發(fā)消息id群號消息時(shí)間圖3.6 群消息表e-r圖各
21、字段的定義及說明如表3.6所示:表3.6 群消息表字段定義列名數(shù)據(jù)類型允許空備注idint否主鍵groupidint否fromuseridint否messagentext否messagetimedatetime否(7) 個(gè)人通訊錄表(id號,myqq號,姓名,電話,手機(jī),對方qq號碼,郵箱,備注)個(gè)人通訊錄表er圖設(shè)計(jì)如圖3.7所示:個(gè)人通訊錄表id號電話姓名myqq號手機(jī)對方qq號碼郵箱備注圖3.7 個(gè)人通訊錄表e-r圖各字段的定義及說明如表3.7所示:表3.7 個(gè)人通訊錄表字段定義列名數(shù)據(jù)類型允許空備注idint否主鍵qqidint否namevarchar(50)否telephonevar
22、char(16)否mobilevarchar(16)否qqvarchar(16)否emailvarchar(16)否remarkvarchar(8)是(8) 好友策略表(id號,好友策略)好友策略表er圖設(shè)計(jì)如圖3.8所示:好友策略表id號好友策略圖3.8 好友策略表e-r圖各字段的定義及說明如表3.8所示:表3.8 好友策略表字段定義列名數(shù)據(jù)類型允許空備注idint否主鍵friendshippolicyvarchar(16)否(9) 星座表(id號,星座)星座表er圖設(shè)計(jì)如圖3.9所示:星座表id號星座圖3.9 星座表e-r圖各字段的定義及說明如表3.9所示:表3.9 星座表字段定義列名數(shù)據(jù)
23、類型允許空備注idint否主鍵starvarchar(24)否(10) 血型表(id號,血型)血型表er圖設(shè)計(jì)如圖3.10所示:血型表id號血型圖3.10 血型表e-r圖各字段的定義及說明如表3.10所示:表3.10 血型表字段定義列名數(shù)據(jù)類型允許空備注idint否主鍵bloodtypevarchar(8)否(11) 消息類型表(id號,消息類型)消息類型表er圖設(shè)計(jì)如圖3.11所示:消息類型表id號消息類型圖3.11 消息類型表e-r圖各字段的定義及說明如表3.11所示:表3.11 消息類型表字段定義列名數(shù)據(jù)類型允許空備注idint否主鍵messagetypevarchar(8)否3.3 數(shù)
24、據(jù)庫物理設(shè)計(jì)3.3.1 數(shù)據(jù)庫選型網(wǎng)絡(luò)聊天系統(tǒng)是一種以網(wǎng)絡(luò)為中介的即時(shí)同步的通訊平臺。根據(jù)該系統(tǒng)的要求,選擇的數(shù)據(jù)庫管理系統(tǒng)需要考慮到如下因素:(1) 符合關(guān)系型的標(biāo)準(zhǔn): sql server 2005是比較流行的關(guān)系型數(shù)據(jù)庫。(2) 數(shù)據(jù)庫的體系結(jié)構(gòu): 數(shù)據(jù)庫系統(tǒng)應(yīng)該是基于客戶機(jī)/服務(wù)器體系結(jié)構(gòu)的分布式數(shù)據(jù)庫,用戶的應(yīng)用程序運(yùn)行在不同的工作站上5。(3) 事務(wù)的完整性和恢復(fù): 數(shù)據(jù)庫服務(wù)器應(yīng)具有事務(wù)完整性機(jī)制,如日志文件、回退,并能從各種異常情況下恢復(fù)數(shù)據(jù)。(4) 分布式處理: 數(shù)據(jù)庫必須支持分布式環(huán)境中節(jié)點(diǎn)自治的原則,以保證數(shù)據(jù)的分布式管理和完整性,對用戶提供分布式透明以便于應(yīng)用系統(tǒng)的使用
25、。(5) 應(yīng)用開發(fā): 數(shù)據(jù)庫所支持的宿主語言應(yīng)包括c#,還必須能提供足夠的系統(tǒng)供開發(fā)者選擇,這些系統(tǒng)應(yīng)涉及數(shù)據(jù)庫分析設(shè)計(jì)、應(yīng)用開發(fā)、調(diào)試和運(yùn)行等各個(gè)不同的階段。 根據(jù)上述要求,結(jié)合現(xiàn)實(shí)網(wǎng)絡(luò)聊天系統(tǒng)的具體情況,選用microsoft sql server 2005作為該聊天系統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)。sql server 2005是一個(gè)多用戶的關(guān)系型數(shù)據(jù)庫系統(tǒng),它結(jié)合了 microsoft windows xp操作系統(tǒng)的能力,提供一個(gè)安全的、可擴(kuò)展的、易管理、高性能的客戶機(jī)/服務(wù)器平臺;提供了一套圖形化的方便易用的系統(tǒng);對多用戶應(yīng)用提供了充足的保護(hù)措施,能夠阻止沖突和防止錯(cuò)誤產(chǎn)生,并且能高效地給多用戶
26、分配可用的資源6。3.3.2 完整性規(guī)則所謂數(shù)據(jù)的完整性規(guī)則是指數(shù)據(jù)的正確性和相容性,完整性規(guī)則是保證數(shù)據(jù)庫中數(shù)據(jù)正確的有力系統(tǒng)。本系統(tǒng)中數(shù)據(jù)完整性規(guī)則包括:主鍵完整性規(guī)則:每個(gè)基本關(guān)系中id號的值必須是唯一的,不允許重復(fù);其他完整性規(guī)則:上述完整性規(guī)則都應(yīng)在系統(tǒng)中實(shí)現(xiàn),以保證系統(tǒng)中的數(shù)據(jù)的正確,能真實(shí)反映客觀世界的情況,這些完整性規(guī)則有的通過應(yīng)用程序?qū)崿F(xiàn),有的通過規(guī)范的操作過程來控制。3.3.3 安全性考慮數(shù)據(jù)庫安全性是數(shù)據(jù)庫系統(tǒng)的一個(gè)重要方面,它是指保護(hù)數(shù)據(jù)庫防止被不合法的使用,包括惡意的破壞和非法的存取等。但由于本系統(tǒng)涉及到的數(shù)據(jù)都不是保密性數(shù)據(jù),無須采取很復(fù)雜的安全措施,只須防止數(shù)據(jù)被
27、人隨意改動(dòng)即可7。系統(tǒng)采取的安全措施是利用sql server 2005與windows xp的安全性集成功能 。3.4數(shù)據(jù)庫訪問接口設(shè)計(jì)3.4.1 數(shù)據(jù)訪問接口選擇對于一個(gè)數(shù)據(jù)庫應(yīng)用程序來說,選擇一個(gè)合適的數(shù)據(jù)訪問接口是很重要的,它與應(yīng)用程序的性能密切相關(guān)。在 visual studio 2005 中,可用的數(shù)據(jù)訪問接口有三種:activex 數(shù)據(jù)對象(ado)、遠(yuǎn)程數(shù)據(jù)對象(rdo) 和數(shù)據(jù)訪問對象(dao)。數(shù)據(jù)訪問接口是一個(gè)對象模型,它代表了訪問數(shù)據(jù)的各個(gè)方面。使用visual studio 2005,可以在任何應(yīng)用程序中通過編程控制連接、語句生成器和供使用的返回?cái)?shù)據(jù)8。ado是為 m
28、icrosoft最新和最強(qiáng)大的數(shù)據(jù)訪問范例 ole db 而設(shè)計(jì)的,是一個(gè)便于使用的最新的應(yīng)用程序?qū)咏涌?。ole db 為任何數(shù)據(jù)源提供了高性能的訪問,這些數(shù)據(jù)源包括關(guān)系和非關(guān)系數(shù)據(jù)庫、電子郵件和文件系統(tǒng)、文本和圖形、自定義業(yè)務(wù)對象等等。ado 在關(guān)鍵的 internet 方案中使用最少的網(wǎng)絡(luò)流量,并且在前端和數(shù)據(jù)源之間使用最少的層數(shù),總之,ado提供了一個(gè)輕量、高性能的接口。鑒于以上的分析,我們選用ado2.0作為本系統(tǒng)的數(shù)據(jù)訪問接口,并且ado是未來的發(fā)展趨勢,將取代所有其他接口,所以選用ado能增強(qiáng)應(yīng)用程序的可擴(kuò)充性9。3.4.2 具體實(shí)現(xiàn)通過ado訪問數(shù)據(jù)庫有兩種方式:ado date
29、控件和代碼。通過ado date控件訪問數(shù)據(jù)庫最大的優(yōu)點(diǎn)是實(shí)現(xiàn)方法簡單,編程量少。但由于本應(yīng)用程序有多個(gè)涉及到數(shù)據(jù)庫訪問的窗口,每個(gè)窗口訪問不同的表,所以必須為每個(gè)窗口都放置一個(gè)控件,這樣就產(chǎn)生了代碼重復(fù)的問題,并且最主要的是會造成在應(yīng)用程序的運(yùn)行過程中不斷連接和斷開數(shù)據(jù)庫,而連接數(shù)據(jù)庫是很費(fèi)時(shí)的操作,這是用戶所不能容忍的。為此選擇采用純代碼的方式,根據(jù)面向?qū)ο蟮脑O(shè)計(jì)原則,將與數(shù)據(jù)庫的連接代碼封裝成一個(gè)類,取名為dbhelper,通過該類可以實(shí)現(xiàn)與數(shù)據(jù)庫的連接10。第四章 系統(tǒng)設(shè)計(jì)4.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)根據(jù)聊天系統(tǒng)的功能需求,本聊天系統(tǒng)的總體結(jié)構(gòu)由用戶注冊、用戶登錄、聊天、用戶的基本操作、系
30、統(tǒng)托盤模塊組成。系統(tǒng)總體結(jié)構(gòu)圖如圖4.1所示:聊天系統(tǒng)注冊基本資料選填詳細(xì)資料忘記密碼注冊新號碼用戶注冊用戶登錄系統(tǒng)托盤模塊透明度更換皮膚用戶基本操作個(gè)人設(shè)置查找/添加好友刷 新系統(tǒng)消息用戶登錄創(chuàng)建群個(gè)人通訊錄myqq音樂聊 天多對多一對一一對多圖4.1 系統(tǒng)總體結(jié)構(gòu)圖4.2 登錄界面 在登錄界面,由用戶輸入myqq賬號和myqq密碼,系統(tǒng)根據(jù)用戶輸入的賬號和密碼進(jìn)行驗(yàn)證。如果輸入的內(nèi)容為空或者輸入了不合法的字符,系統(tǒng)會給出相應(yīng)的提示;當(dāng)輸入的內(nèi)容不為空且合法時(shí),系統(tǒng)會到數(shù)據(jù)庫中進(jìn)行查詢。如果該用戶存在且密碼正確,則登錄成功,進(jìn)入主窗體;否則登錄失敗,當(dāng)然,系統(tǒng)也會給出相應(yīng)的信息,提示用戶登錄
31、失敗。除此之外,如果選中隱身登錄,則登錄后好友看不到其在線狀態(tài)。登錄窗體界面設(shè)計(jì)如圖4.2所示:圖4.2 登錄窗體如果用戶沒有myqq賬號,則可以進(jìn)入注冊新賬號窗體進(jìn)行注冊。注冊新賬號窗體界面設(shè)計(jì)如圖4.3所示:圖4.3 注冊新賬號窗體其中基本資料是必填項(xiàng),因?yàn)樵谠O(shè)計(jì)數(shù)據(jù)庫表時(shí),這些字段不允許為空;選填資料可以填也可以不填,因?yàn)樵谠O(shè)計(jì)數(shù)據(jù)庫表時(shí),這些字段是允許為空的。在填完以上信息后,單擊注冊按鈕,此時(shí),系統(tǒng)會根據(jù)用戶輸入的內(nèi)容進(jìn)行合法性驗(yàn)證(比如說兩次輸入的密碼是否一致等),驗(yàn)證通過后,如果注冊成功,系統(tǒng)會分配給用戶一個(gè)唯一的myqq賬號;如果系統(tǒng)故障或是出現(xiàn)其他異常,系統(tǒng)會提示稍后再試。用
32、戶登錄流程圖如圖4.4所示:用戶登錄無用戶注冊有無賬號有登 錄否用戶名和密碼是否正確是主界面圖4.4 用戶登錄流程圖 4.3 主界面設(shè)計(jì)主界面主要是用戶的好友列表、陌生人列表、群列表,名稱為frmmain。其中聊天、修改個(gè)人信息、查找/添加好友、播放myqq音樂等都是通過該界面來實(shí)現(xiàn)的。該界面的設(shè)計(jì)使用了一個(gè)第三方控件sidebar,它是一個(gè)能夠以分組形式顯示項(xiàng)目列表的控件,能夠?qū)崿F(xiàn)類似qq的好友分組功能11。主界面窗體設(shè)計(jì)如圖4.5所示:圖4.5 主界面窗體4.4 好友管理模塊設(shè)計(jì)用戶可以查找/添加在線好友(包括基本查找和高級查找兩種查找),此外,用戶還可以對群進(jìn)行查詢。在基本查找中,用戶可
33、以查找所有人,這主要是通過查詢數(shù)據(jù)庫中用戶表來實(shí)現(xiàn)的,將從用戶表中讀出來的數(shù)據(jù)顯示出來。查找/添加好友窗體界面設(shè)計(jì)如圖4.6所示:圖4.6 查找/添加好友窗體此外,用戶還可以進(jìn)行精確查找,當(dāng)用戶選中精確查找時(shí),groupbox的visible屬性變?yōu)閠rue,用戶可以輸入對方賬號或?qū)Ψ疥欠Q,通過用戶輸入的條件從數(shù)據(jù)庫中的用戶表中查詢符合條件的用戶,并且將查詢的結(jié)果顯示出來;高級查找,即輸入年齡和性別,通過用戶輸入的年齡和性別從數(shù)據(jù)庫中的用戶表中查詢符合條件的用戶,并將查詢出來的結(jié)果顯示出來;群查找,即輸入群號,通過用戶輸入的群號從數(shù)據(jù)庫中的群表中查找符合條件的群,并將查詢的結(jié)果顯示出來。4.5
34、 個(gè)人設(shè)置模塊設(shè)計(jì)用戶在進(jìn)入主窗體以后,單擊個(gè)人設(shè)置按鈕會進(jìn)入修改個(gè)人信息窗體。在這里,用戶可以修改自己的基本信息(包括昵稱、性別、年齡、頭像、星座、血型等),也可以修改自己的密碼和安全策略。關(guān)于修改個(gè)人信息,當(dāng)點(diǎn)擊“個(gè)人設(shè)置”按鈕后,系統(tǒng)會根據(jù)當(dāng)前用戶的myqq號碼查詢到這個(gè)用戶的所有個(gè)人資料,并將這些個(gè)人資料顯示在對應(yīng)的位置上。當(dāng)用戶修改完個(gè)人信息點(diǎn)擊“確定”按鈕后,系統(tǒng)將取得用戶修改過后的個(gè)人資料,并將這些個(gè)人資料重新寫入到數(shù)據(jù)庫中的用戶表中,從而達(dá)到更新個(gè)人信息的作用。個(gè)人設(shè)置窗體界面設(shè)計(jì)如圖4.7所示:圖4.7 個(gè)人設(shè)置窗體關(guān)于安全設(shè)置,當(dāng)點(diǎn)擊“個(gè)人設(shè)置”按鈕后,系統(tǒng)會根據(jù)當(dāng)前用戶的
35、myqq號碼查詢到這個(gè)用戶的密碼和好友策略,并將這些信息顯示在對應(yīng)的位置上。當(dāng)用戶修改完安全信息點(diǎn)擊“確定”按鈕后,系統(tǒng)將取得用戶修改過后的安全信息,并將這些安全信息重新寫入到數(shù)據(jù)庫中的用戶表中,從而達(dá)到更新安全信息的作用。安全設(shè)置界面設(shè)計(jì)如圖4.8所示:圖4.8 安全設(shè)置窗體4.6 聊天模塊設(shè)計(jì)網(wǎng)絡(luò)聊天系統(tǒng)最主要的功能就是要能聊天。該網(wǎng)絡(luò)聊天系統(tǒng)可以實(shí)現(xiàn)一對一、一對多、多對多的聊天。當(dāng)用戶點(diǎn)擊“發(fā)送”按鈕時(shí),系統(tǒng)會獲取用戶輸入的內(nèi)容(下方的textbox中的內(nèi)容),并將這些內(nèi)容存入數(shù)據(jù)庫中的消息表中,根據(jù)主窗體上設(shè)置的timer控件,定時(shí)掃描數(shù)據(jù)庫表,如果有給該用戶發(fā)送的消息,則發(fā)送消息方的
36、頭像會閃,并且將發(fā)送的消息顯示在上方的textbox控件中(顯示內(nèi)容包括對方昵稱、發(fā)送時(shí)間、發(fā)送內(nèi)容)。一對一聊天:當(dāng)用戶a給用戶b發(fā)送消息時(shí),會獲取用戶b的id號并且將獲取的id號和發(fā)送的消息存入到消息表中,當(dāng)用戶b登錄時(shí),系統(tǒng)會定時(shí)掃描數(shù)據(jù)庫中的消息表,并讀出未讀消息,實(shí)現(xiàn)a與b的一對一聊天。一對多聊天:當(dāng)用戶a給多個(gè)用戶發(fā)送消息時(shí),會分別獲取各個(gè)用戶的id號,并將它們的id號和所發(fā)送的消息一一對應(yīng)的存放到數(shù)據(jù)庫中的消息表中,當(dāng)這些用戶登錄時(shí),系統(tǒng)會同樣掃描消息表,并將未讀消息顯示出來,這些用戶同樣也可以給用戶a發(fā)送消息,實(shí)現(xiàn)了一對多聊天。多對多聊天:相當(dāng)于群聊,利用數(shù)組,數(shù)組名為該群的群
37、號,每個(gè)用戶id相當(dāng)于各個(gè)數(shù)組元素的值,它們把發(fā)送的消息存入群消息表中,當(dāng)這個(gè)群的任何一個(gè)或多個(gè)用戶登錄時(shí),都會看到該群其他用戶發(fā)送的消息,并且發(fā)送消息給該群的所有用戶,實(shí)現(xiàn)了多對多的聊天。以一對一聊天為例,發(fā)送及接收消息功能的主要代碼及流程圖如下:發(fā)送消息流程圖如圖4.9所示:輸入內(nèi)容是否為空選擇好友打開聊天對話框否將輸入內(nèi)容寫入數(shù)據(jù)庫消息表是圖4.9 發(fā)送消息流程圖發(fā)送消息功能的主要代碼:string sqlupdatemessagetext = string.format(select id,message,messagetime from messages where fromuser
38、id=0 and touserid=1 and messagetypeid=1 and messagestate=0, userhelper.id, frmmain.friendid); sqlcommand cmdshow = new sqlcommand(sqlupdatemessagetext, dbhelper.connection); sqldatareader datareader = cmdshow.executereader(); while (datareader.read() string messagetime = convert.todatetime(datareade
39、rmessagetime).tostring(); string messagetext = (string)datareadermessage; string showtext = string.format(0 1rn2rnrn, userhelper.nickname, messagetime, messagetext); txtmessage.appendtext(showtext); txtwrite.text = ; txtwrite.focus(); datareader.close();接收消息流程圖如圖4.10所示:timerfind_tick()定時(shí)掃描數(shù)據(jù)庫消息表是否有發(fā)
40、給自己的消息結(jié)束自己是否在線無有消息表中的isringed為1并顯示消息消息表中的isringed為0是否圖4.10 接收消息流程圖接收并顯示消息功能的主要代碼:dbhelper.connection.open();sqldatareader datareader2 = cmdgetmessages.executereader();while (datareader2.read() messageidstring += convert.tostring(datareader2id) + _; string messagetime = convert.todatetime(datareader2
41、messagetime).tostring(); string messagetext = (string)datareader2message; string showtext = string.format(0 1rn2rnrn, friendnickname, messagetime, messagetext); txtmessage.appendtext(showtext); datareader2.close();聊天窗體界面設(shè)計(jì)如圖4.11所示:圖4.11 聊天窗體4.7 系統(tǒng)托盤模塊的設(shè)計(jì)通過右擊電腦右下角的系統(tǒng)托盤顯示窗體,可以將隱藏的主窗體顯示出來。在該系統(tǒng)中,除了這以外,還
42、把其他的一些功能(如更換皮膚和透明度等)加入到了系統(tǒng)托盤中。要實(shí)現(xiàn)系統(tǒng)托盤,必須要為窗體添加notifyicon控件和contextmenustrip控件12。notifyicon控件主要實(shí)現(xiàn)系統(tǒng)運(yùn)行期間在windows任務(wù)欄右側(cè)的通知區(qū)域顯示myqq圖標(biāo),contextmenustrip控件主要實(shí)現(xiàn)當(dāng)用戶右擊系統(tǒng)托盤上的myqq圖標(biāo)時(shí)顯示快捷菜單。系統(tǒng)托盤效果如圖4.12所示:圖4.12 系統(tǒng)托盤效果圖4.8 找回密碼模塊的設(shè)計(jì)找回密碼主要是當(dāng)用戶忘記自己的密碼時(shí),可以根據(jù)注冊新賬號時(shí)填寫的密碼保護(hù)問題進(jìn)行找回密碼,如果密碼保護(hù)問題回答正確,則找回密碼成功;否則找回密碼失敗。密碼保護(hù)問題界面
43、設(shè)計(jì)如圖4.13所示:圖4.13 密碼保護(hù)問題窗體4.9 myqq音樂模塊的設(shè)計(jì)用戶在登錄成功后,可以單擊myqq音樂按鈕,進(jìn)入myqq音樂界面。當(dāng)用戶選中音樂后,系統(tǒng)會動(dòng)態(tài)的根據(jù)用戶選擇的音樂獲取該音樂的大小和位置,并且啟動(dòng)播放功能。當(dāng)用戶點(diǎn)擊“播放”按鈕時(shí),播放功能又重新啟動(dòng)。系統(tǒng)獲取音樂后,會根據(jù)選中音樂的大小動(dòng)態(tài)的計(jì)算進(jìn)度條的顯示速度。該模塊使用了windows自帶system.media.sound_player,聲音 api 只支持播放 pcm(.wav格式) 波形文件。myqq音樂窗體界面設(shè)計(jì)如圖4.14所示:圖4.14 myqq音樂窗體第五章 系統(tǒng)測試分析5.1 系統(tǒng)測試的目標(biāo)
44、為了設(shè)計(jì)出有效的系統(tǒng)測試方案,g.myers給出了關(guān)于測試的一些規(guī)則,這些規(guī)則也可以看做是測試的目標(biāo)或定義。(1) 測試是為了發(fā)現(xiàn)系統(tǒng)中的錯(cuò)誤而執(zhí)行系統(tǒng)的過程。(2) 好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測試方案。(3) 成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測試。從上述規(guī)則可以看出,測試的正確定義是“為了發(fā)現(xiàn)系統(tǒng)中的錯(cuò)誤而執(zhí)行系統(tǒng)的過程”。這和某些人通常想象的“測試是為了表明系統(tǒng)是正確的”,“成功的測試是沒有發(fā)現(xiàn)錯(cuò)誤的測試”等是完全相反的。正確認(rèn)識測試的目標(biāo)是十分重要的,測試目標(biāo)決定了測試方案的設(shè)計(jì)。如果為了表明系統(tǒng)是正確的而進(jìn)行測試,就會設(shè)計(jì)一些不易暴露的測試方案;相反,如
45、果測試為了發(fā)現(xiàn)系統(tǒng)中的錯(cuò)誤,就會力求設(shè)計(jì)出最能暴露錯(cuò)誤的測試方案13。一般有兩種不同的方法考慮測試數(shù)據(jù):黑盒方法和白盒方法14。黑盒方法又稱為功能測試或數(shù)據(jù)驅(qū)動(dòng)測試方法,按這一方法進(jìn)行測試時(shí),程序被看作不能打開的黑盒,在完全不考慮程序內(nèi)部結(jié)構(gòu)的情況下,依靠程序的規(guī)格說明書,從可能的輸入條件和輸出條件中確定測試數(shù)據(jù),也就是根據(jù)程序的功能或程序的外部特征設(shè)計(jì)測試數(shù)據(jù)。白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動(dòng)測試,這種測試允許測試者檢查程序的內(nèi)部結(jié)構(gòu)。一個(gè)系統(tǒng)產(chǎn)品在交付使用前需經(jīng)歷三種測試:(1) 單元測試也稱為模塊測試,是針對各個(gè)程序單元或模塊單獨(dú)進(jìn)行的測試。單元測試一般和程序編寫結(jié)合起來,著重發(fā)現(xiàn)和解決
46、程序編寫中產(chǎn)生的錯(cuò)誤。(2) 集成測試把已經(jīng)通過單元測試的模塊連接起來,著重檢驗(yàn)?zāi)K間接口以及系統(tǒng)設(shè)計(jì)中的一些問題,通常使用功能測試的方法。(3) 驗(yàn)收測試驗(yàn)收測試是為了確認(rèn)已開發(fā)的系統(tǒng)能否滿足驗(yàn)收標(biāo)準(zhǔn),客戶決定是否接受的正式測試過程。需求是否達(dá)到,特別是功能是否達(dá)到是最主要的檢驗(yàn)?zāi)繕?biāo)。驗(yàn)收測試是對系統(tǒng)質(zhì)量的全面考核,驗(yàn)收測試常常由客戶主持或參加15。由于實(shí)際條件的限制,要對本系統(tǒng)做嚴(yán)格意義上的測試是不可能的。例如,對系統(tǒng)測試應(yīng)由其他程序員來完成,但開發(fā)本系統(tǒng)自始至終都是由一個(gè)人完成的,并且該系統(tǒng)只是作為一個(gè)利用現(xiàn)成的數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)庫應(yīng)用程序,絕大多數(shù)對數(shù)據(jù)的處理都是由數(shù)據(jù)庫管理系統(tǒng)來完成,所以對輸入條件的測試沒有很大意義。實(shí)際上,對于單元測試和集成測試,已經(jīng)在編碼過程中進(jìn)行了,所發(fā)現(xiàn)的錯(cuò)誤都即時(shí)予于改正,所以這里主要進(jìn)行的是驗(yàn)收測試,即主要對系統(tǒng)的各項(xiàng)功能進(jìn)行測試,驗(yàn)證系統(tǒng)是否達(dá)到系統(tǒng)的開發(fā)目標(biāo)。具體做法是模擬現(xiàn)實(shí)生活中的網(wǎng)絡(luò)聊天系統(tǒng),逐一對系統(tǒng)提供的功能進(jìn)行驗(yàn)證。5.2 系統(tǒng)功能的驗(yàn)證系統(tǒng)功能驗(yàn)證的目的是在系統(tǒng)測試過程中,驗(yàn)證系統(tǒng)各個(gè)功能是否可以完成預(yù)期目標(biāo),以及在測試中出現(xiàn)錯(cuò)誤時(shí)如何改正以達(dá)到其擬定功能16。下面以登錄功能驗(yàn)證為例進(jìn)行說明:用戶在注冊新賬號后,系統(tǒng)給定了其一個(gè)唯一的賬號,登錄功能驗(yàn)證主要驗(yàn)證用戶根據(jù)自己的賬號和密碼是否能夠登錄系統(tǒng)。具體做法是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人貴金屬交易融資合同范本民間版4篇
- 二零二五年度網(wǎng)絡(luò)安全股份公司成立股東數(shù)據(jù)安全協(xié)議3篇
- 2025版危險(xiǎn)品運(yùn)輸駕駛員勞動(dòng)合同標(biāo)準(zhǔn)范本3篇
- 2025年高標(biāo)準(zhǔn)圍墻建設(shè)及維護(hù)服務(wù)合同細(xì)則3篇
- 二零二五年酒類企業(yè)產(chǎn)品追溯與防偽技術(shù)合作合同3篇
- 2024破樁勞務(wù)分包合同
- 2025年食堂承包合同補(bǔ)充協(xié)議強(qiáng)調(diào)食品安全與衛(wèi)生規(guī)范3篇
- 與物業(yè)公司合同范本(2024版)
- 鄭州科技學(xué)院《藝術(shù)考察與創(chuàng)新設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度戶外景觀門窗工程分包合同范本8篇
- 南通市2025屆高三第一次調(diào)研測試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學(xué)一模試卷
- 2025中國人民保險(xiǎn)集團(tuán)校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 勞務(wù)派遣招標(biāo)文件范本
- 信息安全意識培訓(xùn)課件
- Python試題庫(附參考答案)
- 碳排放管理員 (碳排放核查員) 理論知識考核要素細(xì)目表三級
- 2024年河北省中考數(shù)學(xué)試題(含答案解析)
- 小學(xué)二年級數(shù)學(xué)口算練習(xí)題1000道
- 納布啡在產(chǎn)科及分娩鎮(zhèn)痛的應(yīng)用
- DZ/T 0462.4-2023 礦產(chǎn)資源“三率”指標(biāo)要求 第4部分:銅等12種有色金屬礦產(chǎn)(正式版)
評論
0/150
提交評論