版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 計 算 機(jī) 與 信 息 工 程 學(xué) 院</p><p> 題目: 校園即時通訊設(shè)計與開發(fā) </p><p> 姓 名: </p><p> 學(xué) 號: </p><p> 專 業(yè): 計算機(jī)科學(xué)與技術(shù) </p><p> 指導(dǎo)教
2、師: </p><p> 起止日期: 12.11.26—13.01.20 </p><p> 計 算 機(jī) 與 信 息 工 程 學(xué) 院</p><p><b> 目 錄</b></p><p><b> 1 引言1</b></p><p>&
3、lt;b> 2 需求分析1</b></p><p><b> 2.1 用例圖1</b></p><p> 2.2 用例描述4</p><p><b> 3 系統(tǒng)設(shè)計8</b></p><p> 3.1 系統(tǒng)架構(gòu)設(shè)計8</p><p>
4、3.2 系統(tǒng)功能模塊劃分9</p><p> 3.3 系統(tǒng)數(shù)據(jù)庫設(shè)計9</p><p><b> 4 系統(tǒng)實現(xiàn)12</b></p><p> 4.1 用戶登陸12</p><p> 4.1.1 用戶登錄12</p><p> 4.1.2 系統(tǒng)主界面14</p>
5、<p> 4.1.3 用戶通訊窗口15</p><p> 4.1.4 校園消息查詢19</p><p> 4.1.5 用戶辦公提醒設(shè)置20</p><p> 4.1.6 個人信息修改22</p><p> 4.1.7 系統(tǒng)設(shè)置24</p><p> 4.1.8 日程安排提醒設(shè)置26&l
6、t;/p><p> 4.1.9 聊天記錄查看28</p><p> 4.2 業(yè)務(wù)邏輯及數(shù)據(jù)庫操作29</p><p> 4.2.1 數(shù)據(jù)庫操作29</p><p> 4.2.2 網(wǎng)絡(luò)通訊31</p><p><b> 5 系統(tǒng)測試33</b></p><p>
7、; 5.1 測試基本要求33</p><p> 5.1.1 內(nèi)容檢查33</p><p> 5.1.2 鏈接檢查34</p><p> 5.1.3 易用性測試34</p><p> 5.1.4 功能檢查34</p><p> 5.1.5 容錯性測試34</p><p>
8、 5.2 測試舉例35</p><p> 5.2.1 輸入域測試35</p><p> 5.2.2 頁面控件檢查35</p><p> 5.2.3 功能測試36</p><p><b> 6 總結(jié)38</b></p><p><b> 7 參考文獻(xiàn)38</b&
9、gt;</p><p><b> 1 引言</b></p><p> 由于即時通信軟件的興起,能夠進(jìn)行即時互通的“內(nèi)容”正迅速由語音全面擴(kuò)展到圖像、文字、數(shù)據(jù)等方面,不過“多功能”還不是即時通信的全部內(nèi)涵,能夠跨越互聯(lián)網(wǎng)、手機(jī)、固定電話等多個平臺進(jìn)行通信才是即時通信未來的價值所在。一位業(yè)內(nèi)人士認(rèn)為,即時通信已經(jīng)跨越原來狹義上的“網(wǎng)絡(luò)”概念,正向更為廣義的方向發(fā)展,
10、未來的即時通信軟件可以隨時隨地和任何人進(jìn)行任何方式的溝通,不僅是語音,還包括圖像、資料、數(shù)據(jù)等等,不僅在電腦上,還可以在手機(jī)、固定電話等任何終端上。</p><p> 現(xiàn)在的大學(xué)網(wǎng)絡(luò)的覆蓋已經(jīng)非常廣泛,對于我們學(xué)校來講已經(jīng)有了非常完善的校園網(wǎng)絡(luò),校園的日益擴(kuò)大也增加了師生之間的聯(lián)系,這樣一來就需要一個能方便師生聯(lián)系的即時通訊系統(tǒng),對于由于大家目前的IM都不統(tǒng)一,所以開發(fā)一款針對大學(xué)校園的即時通訊系統(tǒng)是很有必要的
11、,通過這套系統(tǒng)不僅僅能夠方便師生聯(lián)系,而且還融合了辦公,校園通知等等,加上學(xué)校比較完善的校園網(wǎng)絡(luò),這套系統(tǒng)更能體現(xiàn)出來網(wǎng)絡(luò)校園的特色。</p><p><b> 2 需求分析</b></p><p> 本系統(tǒng)總體目標(biāo)是為了實現(xiàn)網(wǎng)絡(luò)通訊。通過系統(tǒng)實現(xiàn)和對方進(jìn)行在線交流或者發(fā)送離線消息,并且還能通過該信息查詢?nèi)熒幕拘畔?,通過該系統(tǒng)還能夠查詢學(xué)校的最新通知或者之
12、前的通知,并且根據(jù)師生的日常學(xué)習(xí)和工作的需要還能夠設(shè)置工作提醒。</p><p><b> 2.1 用例圖</b></p><p> 用例圖(User Case)是被稱為參與者的外部用戶所能觀察到的系統(tǒng)功能的模型圖,呈現(xiàn)了一些參與者和一些用例,以及它們之間的關(guān)系,主要用于對系統(tǒng)、子系統(tǒng)或類的功能行為進(jìn)行建模。用例圖展示了用例之間以及同用例參與者之間是怎樣相互聯(lián)系的
13、。用例圖用于對系統(tǒng)、子系統(tǒng)或類的行為進(jìn)行可視化,使用戶能夠理解如何使用這些元素。</p><p> 1、IM系統(tǒng)的用例圖(如圖2-1所示)。</p><p> 圖2-1 IM系統(tǒng)用例圖</p><p> 2、登陸子系統(tǒng)的用例圖(如圖2-2所示)。</p><p> 圖2-2 登陸子系統(tǒng)的用例圖</p><p>
14、; 3、通訊子系統(tǒng)的用例圖(如圖2-3所示)。</p><p> 圖 2-3 通訊子系統(tǒng)的用例圖</p><p> 4、信息修改子系統(tǒng)的用例圖(如圖2-4)</p><p> 圖 2-4 信息修改子系統(tǒng)的用例圖</p><p> 5、信息查詢子系統(tǒng)的用例圖(如圖 2-5)</p><p> 圖 2-5 信息
15、查詢子系統(tǒng)的用例圖</p><p><b> 2.2 用例描述</b></p><p> 用例是軟件工程或系統(tǒng)工程中對系統(tǒng)如何反應(yīng)外界請求的描述,是一種通過用戶的使用場景來獲取需求的技術(shù)。每個用例提供了一個或多個場景,該場景說明了系統(tǒng)是如何同最終用戶或其它系統(tǒng)交互(interact)的,也就是誰可以用系統(tǒng)做什么,獲得一個明確的業(yè)務(wù)目標(biāo)。</p>&l
16、t;p> 如下為IM系統(tǒng)的用例描述。</p><p><b> 用例名稱:登錄前臺</b></p><p> 用例目的:登錄前臺,讓用戶顯示主界面</p><p><b> 參與者: 普通用戶</b></p><p> 前置條件:用戶已經(jīng)注冊過</p><p>
17、;<b> 事件流:</b></p><p> 第一步:系統(tǒng)顯示登錄界面</p><p> 第二步:用戶輸入登錄信息</p><p> 第三步:用戶點(diǎn)擊登錄</p><p> 第四步:系統(tǒng)驗證登錄信息正確,是否為空等,如果正確,則進(jìn)入系統(tǒng)主界面,如果不正確則繼續(xù)執(zhí)行第二步</p><p>
18、; 后置條件:用戶登錄成功,系統(tǒng)才會顯示主界面</p><p> 用例名稱:通訊信息的發(fā)送</p><p> 用例目的:成功發(fā)送信息,是對方能成功的接收的信息</p><p><b> 參與者:普通用戶</b></p><p> 前置條件:用戶已經(jīng)登錄,打開聊天界面</p><p>&l
19、t;b> 事件流:</b></p><p><b> 發(fā)送文本信息</b></p><p> 第一步:選中文本信息輸入框</p><p> 第二步:輸入文本信息,如果超過限制的字?jǐn)?shù),則不能再輸入</p><p> 第三步:點(diǎn)擊發(fā)送按鈕</p><p><b>
20、 發(fā)送表情</b></p><p> 第一步:在聊天界面,點(diǎn)擊表情選項,彈出表情列表</p><p> 第二步:選中需要的表情,單擊顯示的信息輸入框內(nèi)</p><p><b> 第三步:點(diǎn)擊發(fā)送</b></p><p><b> 發(fā)送圖片</b></p><
21、p> 第一步:在聊天界面,點(diǎn)擊發(fā)送圖片選項,彈出圖片路徑選擇框</p><p> 第二步:選擇圖片所在路徑,點(diǎn)擊打開按鈕,圖片會顯示在信息輸入框內(nèi)</p><p><b> 第三步:點(diǎn)擊發(fā)送</b></p><p><b> 發(fā)送文件</b></p><p> 第一步:在聊天界面,點(diǎn)
22、擊發(fā)送文件選項,彈出文件路徑選擇框</p><p> 第二步:選擇需要發(fā)送文件的路徑,點(diǎn)擊確定</p><p><b> 第三步:點(diǎn)擊發(fā)送</b></p><p><b> 字體修改</b></p><p> 第一步:在聊天界面,點(diǎn)擊字體選項,彈出字體選擇界面</p><
23、p> 第二步:選擇需要修改的字體大小,字形等,點(diǎn)擊確定</p><p> 后置條件:當(dāng)前處于聊天界面,表情列表,圖片、文件路徑選擇框,字體選擇框點(diǎn)擊彈出</p><p> 用例名稱:帳號信息修改</p><p> 用例目的:讓用戶對自己所用的帳號信息進(jìn)行修改</p><p><b> 參與者:用戶</b>
24、</p><p> 前置條件:該用戶已經(jīng)登錄</p><p><b> 事件流:</b></p><p> 第一步:選中該用戶,點(diǎn)擊修改用戶名及用戶資料</p><p> 第二步:彈出更改用戶名對話框</p><p> 第三步:對相關(guān)條目進(jìn)行修改,點(diǎn)擊確定</p><
25、p> 第四步:系統(tǒng)檢查用戶填寫的新用戶名是否為空,如果不為空則執(zhí)行下一步。否則判斷用戶資料信息是否全部為空,如果用戶資料全為空,則用戶名采用默認(rèn)名稱,執(zhí)行下一步,否則顯示提示對話框,跳轉(zhuǎn)到第三步。</p><p> 第五步:保存修改信息</p><p> 后置條件:更改用戶名對話框關(guān)閉,用戶名顯示修改后信息</p><p> 用例名稱:好友信息修改&l
26、t;/p><p> 用例目的:讓用戶對自己好友所用的用戶名信息進(jìn)行修改</p><p><b> 參與者:用戶</b></p><p> 前置條件:該用戶已經(jīng)登錄,修改對象已加為好友</p><p><b> 事件流:</b></p><p> 第一步:選中該好友,點(diǎn)擊
27、修改用戶名</p><p> 第二步:彈出更改用戶名對話框</p><p> 第三步:對備注名進(jìn)行修改,點(diǎn)擊確定</p><p> 第四步:系統(tǒng)檢查用戶填寫的新用戶名是否為空,如果不為空則執(zhí)行下一步。否則判斷用戶資料信息是否全部為空,如果用戶資料全為空,則用戶名采用好友默認(rèn)名稱,執(zhí)行下一步,否則顯示提示對話框,跳轉(zhuǎn)到第三步。</p><p&
28、gt; 第五步:保存修改信息</p><p> 后置條件:更改用戶名對話框關(guān)閉,該好友用戶名顯示修改后信息</p><p> 用例名稱:好友分組修改</p><p> 用例目的:讓用戶對自己好友分組信息進(jìn)行新增,刪除,修改</p><p><b> 參與者:用戶</b></p><p>
29、 前置條件:該用戶已經(jīng)登錄</p><p><b> 事件流:</b></p><p><b> ?。ㄔ黾樱?lt;/b></p><p> 第一步:點(diǎn)擊新建組,系統(tǒng)顯示新建組名對話框</p><p> 第二步:填寫新建組信息,點(diǎn)擊確定</p><p> 第三步:保存增加
30、信息,系統(tǒng)關(guān)閉新建組名對話框</p><p><b> ?。▌h除)</b></p><p> 第一步:選中所要刪除的分組名</p><p> 第二步:點(diǎn)擊刪除,進(jìn)行該分組信息的刪除</p><p> 第三步:系統(tǒng)提示刪除成功</p><p><b> ?。ㄐ薷模?lt;/b>
31、</p><p> 第一步:選中所要修改的組名</p><p> 第二步:對相關(guān)條目進(jìn)行修改</p><p> 第三步:點(diǎn)擊保存,系統(tǒng)提示修改成功</p><p> 后置條件:頁面自動轉(zhuǎn)跳到即時通訊界面</p><p> 用例名稱:聲音設(shè)置 用例目的:讓用戶選擇消息提示聲音的開關(guān)并自定義消息提示聲音。
32、 參與者:用戶 前置條件:用戶處于已登錄狀態(tài)。 事件流: 第一步:顯示聲音設(shè)置界面。 第二步:用戶設(shè)置消息提示聲音的開關(guān)或者自定義消息聲音,并提交設(shè)置。</p><p> 第三步:系統(tǒng)應(yīng)用聲音設(shè)置。</p><p> 后置條件:聲音設(shè)置已應(yīng)用。</p><p> 用例名稱:快捷鍵設(shè)置
33、用例目的:讓用戶自定義快捷鍵,使軟件使用更快捷方便。 參與者:用戶 前置條件:用戶處于已登錄狀態(tài)。 事件流: 第一步:顯示快捷鍵設(shè)置界面 第二步:用戶自定義快捷鍵,并提交設(shè)置。 第三步:系統(tǒng)判斷已定義快捷鍵是否存在沖突。如果存在,則返回上一步;如
34、 果不存在,則繼續(xù)進(jìn)入下一步。 第四步:系統(tǒng)應(yīng)用快捷鍵設(shè)置。 后置事件:快捷鍵已應(yīng)用。</p><p> 用例名稱:常規(guī)設(shè)置 用例目的:用戶按照個人喜好選擇鎖需要的常規(guī)設(shè)置。 參與者:用戶 前置條件:用戶處于已登錄
35、狀態(tài) 事件流:</p><p> 第一步:顯示常規(guī)設(shè)置界面 第二步:用戶選擇所需要的設(shè)置,并提交。 第三步:系統(tǒng)應(yīng)用常規(guī)設(shè)置。 后置條件:已應(yīng)用常規(guī)設(shè)置。</p><p> 用例名稱:文件設(shè)置 用例目的:設(shè)置文件接收的路徑</p><p> 參與者:用戶 事件流:
36、 第一步:顯示文件設(shè)置界面 第二步:選擇或填寫接收文件的默認(rèn)路徑,并提交</p><p> 第三步:系統(tǒng)判斷默認(rèn)文件接收路徑是否為空。如果為空,返回上一步;如果不為空,則繼續(xù)下一步。 第四步:系統(tǒng)應(yīng)用文件設(shè)置。 后置事件:文件設(shè)置已應(yīng)用。</p><p><b> 用例描述:查詢</b></p>
37、<p> 用例目的:使用戶可以清晰的查看好友的信息,查看學(xué)校的通知信息</p><p><b> 參與者:用戶</b></p><p> 前置條件:查詢界面已經(jīng)打開</p><p><b> 事件流:</b></p><p><b> 好友查詢</b><
38、;/p><p> 第一步:點(diǎn)擊查詢按鈕選,顯示信息查詢界面</p><p> 第二步:選擇好友查詢選項卡,在搜索欄搜索好友信息,如果為空,怎不能搜索,如果查詢信息格式不對,則沒有結(jié)果,成功搜索,會顯示與相關(guān)信息有關(guān)的好友</p><p> 第三步:右擊可以添加好友</p><p> 第四步:提示是否添加該用戶為好友</p>
39、<p> 第五步:添加則點(diǎn)擊確定,不同意則取消</p><p><b> 校園信息查詢</b></p><p> 第一步:點(diǎn)擊校園信息選項卡,顯示校園通知信息</p><p> 第二步:輸入需要查詢的某日期的學(xué)校通知的信息,將顯示此日期的所有校園通知的信息</p><p><b> 第三步:
40、點(diǎn)擊查看</b></p><p> 后置條件:用戶已查詢成功,成功退出查詢界面</p><p> 用例描述: 聊天記錄</p><p> 用例目的:用戶查看聊天記錄</p><p><b> 參與者:用戶</b></p><p> 前置條件:用戶打開聊天界面</p>
41、;<p><b> 事件流:</b></p><p> 第一步:點(diǎn)擊聊天記錄選項,聊天界面右側(cè)彈出聊天記錄界面</p><p> 第二步:在日期搜索欄輸入需要查看的日期記錄</p><p> 第三步:再次點(diǎn)擊聊天記錄按鈕,退出查看</p><p> 后置條件:聊天記錄彈窗關(guān)閉</p>
42、<p> 用例描述:校園即時通知查看</p><p> 用例目的:即時了解校園的通知</p><p><b> 參與者:用戶</b></p><p> 前置條件:用戶在某時間段第一次登錄,學(xué)校在此時間段有消息通知</p><p><b> 事件流:</b></p>
43、<p> 第一步:在軟件圖標(biāo)上會自動彈出信息通知小窗體</p><p> 第二步:點(diǎn)擊查看,則啟動連接,連接到校園信息通知處,取消則推出彈窗</p><p> 后置條件:用戶已查看窗體或取消窗體</p><p><b> 3 系統(tǒng)設(shè)計</b></p><p> 3.1 系統(tǒng)架構(gòu)設(shè)計</p>
44、;<p> 本系統(tǒng)采用三層架構(gòu)設(shè)計,將整個業(yè)務(wù)應(yīng)用劃分為表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層三層。</p><p> 數(shù)據(jù)訪問層DAL:用于實現(xiàn)與數(shù)據(jù)庫的交互和訪問,從數(shù)據(jù)庫獲取數(shù)據(jù)或保存數(shù)據(jù)到數(shù)據(jù)庫的部分。</p><p> 業(yè)務(wù)邏輯層BLL:業(yè)務(wù)邏輯層承上啟下,用于對上下交互的數(shù)據(jù)進(jìn)行邏輯處理,實現(xiàn)業(yè)務(wù)目標(biāo)。</p><p> 表示層UI:主要實
45、現(xiàn)和用戶的交互,接收用戶請求或返回用戶請求的數(shù)據(jù)結(jié)果的展現(xiàn),而具體的數(shù)據(jù)處理則交給業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層去處理。</p><p> 三層架構(gòu)是將系統(tǒng)按其作用分成三部分,每部分解決自己負(fù)責(zé)的流程。</p><p> 3.2 系統(tǒng)功能模塊劃分</p><p> 系統(tǒng)功能模塊圖如圖3-1所示。</p><p> 圖3-1 系統(tǒng)功能模塊圖&l
46、t;/p><p> 3.3 系統(tǒng)數(shù)據(jù)庫設(shè)計</p><p> 本系統(tǒng)采用mysql5.5建立和維護(hù)數(shù)據(jù)庫,該數(shù)據(jù)庫主要是用于以下任務(wù):班級信息,客戶端狀態(tài),院系信息,用戶信息,行政部門信息,專業(yè)信息,校園信息。數(shù)據(jù)庫中主要有以下表:</p><p> ?。?)用戶信息表(im_user),用于保存用戶的基本信息,包括用戶id,登陸密碼,用戶名,性別,簽名,郵箱,電話
47、號碼。用戶信息表結(jié)構(gòu)如圖3-2所示。</p><p> 圖3-2 用戶信息表</p><p> ?。?)客戶端狀態(tài)表(usr_status),主要包括以下字段:用戶id,客戶端登陸ip,最近一次刷新的時間,登陸狀態(tài)??蛻舳藸顟B(tài)表結(jié)構(gòu)如圖3-3所示。</p><p> 圖3-3 客戶端狀態(tài)表</p><p> (3)院系信息表(depar
48、tment)用于保存院系的基本信息,包括院系id,院系名稱。院系信息表結(jié)構(gòu)如圖3-4所示。</p><p> 圖3-4 院系信息表</p><p> (4)未接收信息表(not_receive_message)用于記錄未接收的信息,包括發(fā)送時間,發(fā)送人id,接收人id。未接收信息表結(jié)構(gòu)如圖3-5所示。</p><p> 圖3-5 未接收信息表</p>
49、;<p> (5)專業(yè)信息表(profession)用于保存學(xué)校各個專業(yè)的基本信息,包括專業(yè)id,專業(yè)名稱。專業(yè)信息表結(jié)構(gòu)如圖3-6所示。</p><p> 圖3-6 專業(yè)信息表</p><p> (6)管理者信息表(manager)用于保存管理者所屬行政部門的信息。管理者信息表結(jié)構(gòu)如圖3-7所示。</p><p> 圖3-7 管理者信息表&l
50、t;/p><p> (7)班級信息表(class)用于記錄班級的基本信息,包括班級id,班級名稱。班級信息表結(jié)構(gòu)如圖3-8所示。</p><p> 圖3-8 班級信息表</p><p> (8)學(xué)生信息表(student)用于保存學(xué)生的基本信息,包括用戶id,院系id,專業(yè)id,班級id。學(xué)生信息表結(jié)構(gòu)如圖3-9所示。</p><p>
51、圖3-9 學(xué)生信息表</p><p> (9)教職工信息表(teacher)用于記錄教職工所屬院系的信息。包括教職工id,院系id。教職工信息表結(jié)構(gòu)如圖3-10所示。</p><p> 圖3-10 教職工信息表</p><p><b> 4 系統(tǒng)實現(xiàn)</b></p><p><b> 4.1 用戶登陸&
52、lt;/b></p><p> 4.1.1 用戶登錄</p><p> 用戶登陸如圖4-1所示。如果輸入信息有誤則會提示錯誤信息,需要重新輸入。</p><p> 圖4-1 會員注冊頁面</p><p> 首先程序在啟動時會自動加載上一次的登陸記錄下來的信息。包括服務(wù)器信息,用戶民,如果上次登錄時還選擇了記住密碼則在登陸框中密碼
53、會以“*”代替,直接進(jìn)行登陸。</p><p><b> 讀取配置文件如下:</b></p><p> /// <summary></p><p> /// 讀取配置文件 若讀取不成功,重建配置文件</p><p> /// </summary></p><p&g
54、t; private void ReadINI()</p><p><b> {</b></p><p> this.comboBox1.Text = inifile.Readfile("Login", "server");</p><p> this.textBox1.Text = inifil
55、e.Readfile("Login", "ui");</p><p> if (inifile.Readfile("Login", "pwd") != "")</p><p> this.textBox2.Text = dl.Decrypto(inifile.Readfile("
56、;Login", "pwd"));</p><p> if (inifile.Readfile("Login", "Remember") == "true")</p><p> this.checkBox1.CheckState = CheckState.Checked;</p>&
57、lt;p> if (inifile.Readfile("Login", "AutoLogin") == "true")</p><p> this.checkBox2.CheckState = CheckState.Checked;</p><p><b> }</b></p>&l
58、t;p> 本次登錄成功后,系統(tǒng)會根據(jù)用戶選擇的進(jìn)行保存信息配置信息,以便以后可以快速登錄:代碼如下:</p><p> /// <summary></p><p> /// 寫入配置文件 </p><p> /// </summary></p><p> private void SetINI()<
59、;/p><p><b> {</b></p><p> inifile.Writefile("Login", "server", this.comboBox1.Text);</p><p> inifile.Writefile("Login", "ui", thi
60、s.textBox1.Text);</p><p> inifile.Writefile("Login", "Remember", this.checkBox1.Checked.ToString().ToLower());</p><p> inifile.Writefile("Login", "AutoLogin&
61、quot;, this.checkBox2.Checked.ToString().ToLower());</p><p> if (this.checkBox1.Checked == true)</p><p> inifile.Writefile("Login", "pwd", dl.Encrypto(this.textBox2.Text));
62、</p><p><b> else</b></p><p> inifile.Writefile("Login", "pwd", "");</p><p><b> }</b></p><p> 用戶登錄判斷的代碼如下:</
63、p><p> /// <summary></p><p><b> /// 登陸判斷</b></p><p> /// </summary></p><p> /// <param name="ui">賬號</param></p>&l
64、t;p> /// <param name="pwd">密碼</param></p><p> /// <returns></returns></p><p> private bool Check_Login(string ui, string pwd)</p><p><b>
65、; {</b></p><p> DBHelper.DBHelper db = new DBHelper.DBHelper(this.comboBox1.Text.Trim(), "nyist_im_test", "nyist_im_test", "nyist");</p><p> DataSet ds = n
66、ew DataSet();</p><p> ds= db.Login(ui, dl.Encrypto(pwd));</p><p> if (ds.Tables[0].Rows.Count != 0)</p><p><b> {</b></p><p> //if (db.GetColumn("SE
67、LECT state_num FROM `user_state` WHERE userid='" + ui + "'")=="1")</p><p><b> //{</b></p><p> // return false;</p><p><b> //
68、}</b></p><p> fm = new Frm_Main(db,ds,this.textBox1.Text,this);</p><p> user_name = ds.Tables[0].Rows[0].ItemArray[0].ToString();</p><p> return true;</p><p>&
69、lt;b> }</b></p><p> return false;</p><p><b> }</b></p><p> 4.1.2 系統(tǒng)主界面</p><p> 系統(tǒng)主界面如圖4-3所示。</p><p><b> 圖4-3系統(tǒng)主界面</b>
70、;</p><p> 登錄成功后會太轉(zhuǎn)到系統(tǒng)的主界面,主界面會自動加載校內(nèi)的所有用戶的列表,包括院系,專業(yè),教職工,行政單位等等,</p><p><b> 主要代碼實現(xiàn)如下:</b></p><p> private void Tree_Group_NodeMouseClick(object sender, TreeNodeMouseC
71、lickEventArgs e)</p><p><b> {</b></p><p> if (e.Button == MouseButtons.Right)</p><p><b> {</b></p><p> this.Tree_Group.SelectedNode = e.Node
72、; </p><p> if (Tree_Group.SelectedNode.ImageIndex == 2)</p><p><b> {</b></p><p> contextMenu_tree.Items[0].Visible = true;</p><p> contex
73、tMenu_tree.Items[1].Visible = true;</p><p> contextMenu_tree.Items[2].Visible = true;</p><p><b> }</b></p><p><b> else</b></p><p><b>
74、{</b></p><p> contextMenu_tree.Items[0].Visible = false;</p><p> contextMenu_tree.Items[1].Visible = false;</p><p> contextMenu_tree.Items[2].Visible = false;</p>&l
75、t;p><b> }</b></p><p> this.contextMenu_tree.Show(Tree_Group, e.Location);</p><p> this.str_name = e.Node.Text.ToString();//選中的節(jié)點(diǎn)信息</p><p><b> }</b><
76、;/p><p> else if (e.Button == MouseButtons.Left) </p><p><b> {</b></p><p> if (e.Node.IsExpanded == false)</p><p><b> {</b></p><p>
77、; e.Node.Expand();</p><p> this.Tree_Group.SelectedNode = e.Node;</p><p> if (e.Node.Nodes.Count == 0&&e.Node.ImageIndex!=2)</p><p><b> {</b></p><
78、p> Upload_friend(e.Node.Name,e.Node.Parent.Text,e.Node);</p><p><b> }</b></p><p><b> }</b></p><p> else if (e.Node.IsExpanded == true)</p><
79、p><b> {</b></p><p> e.Node.Collapse();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>
80、; MessageBox.Show("test");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 4.1.3 用戶通訊窗口</p><p&g
81、t; 在如圖4-4所示的就是用戶之間進(jìn)行聊天的窗口</p><p> 圖4-4 用戶聊天窗口</p><p> 當(dāng)用戶主動與對方發(fā)起聊天請求的時候可以通過兩種方式進(jìn)行:</p><p> 1:可以通過雙擊用戶列表中的用戶就能直接彈出聊天窗口</p><p><b> 主要代碼如下:</b></p>
82、<p> //雙擊好友,進(jìn)行聊天</p><p> private void Tree_Group_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)</p><p><b> {</b></p><p> if (e.Node.ImageIn
83、dex == 2)</p><p><b> {</b></p><p> Chat_Show(e.Node.Name,e.Node.Text);</p><p><b> }</b></p><p><b> }</b></p><p> 2
84、:用戶也可以通過右擊用戶節(jié)點(diǎn),會彈出快捷菜單,菜單中有聊天選項,代碼實現(xiàn)如下:</p><p> private void contextMenu_tree_ItemClicked(object sender, ToolStripItemClickedEventArgs e)</p><p><b> {</b></p><p> thi
85、s.contextMenu_tree.Hide();</p><p> switch (e.ClickedItem.Text)</p><p><b> {</b></p><p> case "發(fā)送消息":</p><p> if (this.Tree_Group.SelectedNode.
86、ImageIndex == 2) Chat_Show(this.Tree_Group.SelectedNode.Name, this.Tree_Group.SelectedNode.Text);</p><p><b> break;</b></p><p> case "發(fā)送文件": MessageBox.Show("發(fā)送文件&qu
87、ot;);</p><p><b> break;</b></p><p> case "查看資料":</p><p> if (this.Tree_Group.SelectedNode.ImageIndex == 2)</p><p><b> {</b></p&
88、gt;<p> if (frm_info_show == null||frm_info_show.IsDisposed)</p><p><b> {</b></p><p> frm_info_show = new Frm_Info_Show(str_name, this.Tree_Group.SelectedNode.Name.ToString
89、(), db);</p><p> frm_info_show.Show();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> frm_info_show
90、.Activate();</p><p><b> }</b></p><p> } </p><p><b> break;</b></p><p> case "刷新":</p><p><b>
91、 {</b></p><p> if(Tree_Group.SelectedNode.Nodes.Count!=0)</p><p> if (Tree_Group.SelectedNode.Nodes[0].ImageIndex == 2)</p><p><b> {</b></p><p>
92、if (Tree_Group.SelectedNode.IsExpanded)</p><p><b> {</b></p><p> Tree_Group.SelectedNode.Toggle();</p><p><b> }</b></p><p> Tree_Group.Selec
93、tedNode.Nodes.Clear();</p><p> MessageBox.Show("刷新完畢!");</p><p><b> }</b></p><p><b> }</b></p><p><b> break;</b></p
94、><p><b> }</b></p><p><b> }</b></p><p> 當(dāng)對方像自己發(fā)起聊天請求時,聊天窗口會自動彈出,主要代碼如下:</p><p> /// <summary></p><p> /// 新建聊天窗口</p>
95、<p> /// </summary></p><p> /// <param name="user_id">對方賬號</param></p><p> /// <param name="user_name">對方姓名</param></p><p>
96、; /// <returns>返回新建的窗體對象</returns></p><p> private void Create_Char(string user_id, string user_name,string info)</p><p><b> {</b></p><p><b> try&l
97、t;/b></p><p><b> {</b></p><p> f_chat = new Frm_Chat(user_id, user_name);</p><p> f_chat.from_close += new dell_close(f_chat_from_close);</p><p> f_c
98、hat.SendInfo += new IM.Frm_UI.Communication.Message(f_chat_SendInfo);</p><p> list_chat.Add(f_chat);</p><p> //Application.DoEvents();</p><p> if (info != "") </p>
99、;<p><b> {</b></p><p> ImShoeMessage showinfo = new ImShoeMessage(f_chat.Receive_info);</p><p> this.Invoke(showinfo,info); </p><p><b> }</b></
100、p><p> f_chat.Show();</p><p> //f_chat.Receive_info(info);</p><p> //Application.DoEvents();</p><p> //f_chat.Activate();</p><p><b> }</b><
101、;/p><p> catch (Exception ex)</p><p><b> {</b></p><p> MessageBox.Show("新建聊天窗口");</p><p><b> }</b></p><p><b> }&l
102、t;/b></p><p> 主界面于此同時還在不停的刷新,以便能夠及時接收到其他用戶向本用戶發(fā)送的消息,主要代碼如下:</p><p> /// <summary></p><p> /// 進(jìn)行消息的處理</p><p> /// </summary></p><p> //
103、/ <param name="info">接收的消息</param></p><p> private void Check_info(string info)</p><p><b> {</b></p><p><b> try</b></p><p
104、><b> {</b></p><p> string user_id = "";</p><p> int index = 0;</p><p> for (int i = 0; i < info.Length; i++)</p><p><b> {</b&g
105、t;</p><p> if (info[i] == '(')</p><p> { index = i; break; }</p><p><b> }</b></p><p> if (index == 0) return;</p><p> user_id = in
106、fo.Substring(0, index);</p><p> int x = index; int y = info.IndexOf(')');</p><p> string user_name = info.Substring(x + 1, y - x);</p><p> //string user_name = db.GetColu
107、mn("select name from im_user where userid='" + user_id.Trim() + "'");</p><p> info = info.Substring(y + 1);</p><p> Find_Frm_chat(user_id, user_name, info);</p&g
108、t;<p><b> }</b></p><p> catch (Exception ex)</p><p><b> {</b></p><p> MessageBox.Show("消息處理");</p><p><b> }</b>
109、;</p><p><b> }</b></p><p> 4.1.4 校園消息查詢</p><p> 用戶登錄后可查詢校園的校內(nèi)通知 如圖4-6所示。</p><p> 圖4-6 校內(nèi)通知查詢</p><p><b> 主要代碼如下:</b></p>
110、<p> private void linklable_LinkClicked(object sender,LinkLabelLinkClickedEventArgs e)</p><p><b> {</b></p><p> LinkLabel link = (LinkLabel)sender;</p><p> //S
111、ystem.Diagnostics.Process.Start("iexplore.exe", "http://www.google.cn");</p><p> link.Links[link.Links.IndexOf(e.Link)].Visited = true;</p><p> string targetUrl = e.Link.Li
112、nkData as string;</p><p> //targetUrl = "http://www.google.cn";</p><p> targetUrl = link.Name.ToString();</p><p> if (string.IsNullOrEmpty(targetUrl))</p><p&
113、gt; MessageBox.Show("沒有鏈接地址!");</p><p><b> else</b></p><p> System.Diagnostics.Process.Start(DefaultWebBrowserFilePath(), targetUrl);</p><p><b> }<
114、;/b></p><p> /// 獲取默認(rèn)瀏覽器的路徑</p><p> private String DefaultWebBrowserFilePath()</p><p><b> {</b></p><p> RegistryKey key = Registry.ClassesRoot.OpenSu
115、bKey("http\\shell\\open\\command", false);</p><p> String path = key.GetValue("").ToString();</p><p> if (path.Contains("\""))</p><p><b>
116、 {</b></p><p> path = path.TrimStart('"');</p><p> path = path.Substring(0, path.IndexOf('"'));</p><p><b> }</b></p><p>
117、 key.Close();</p><p> return path;</p><p><b> }</b></p><p> 4.1.5 用戶辦公提醒設(shè)置</p><p> 用戶辦公提醒設(shè)置如圖4-8所示。</p><p> 圖4-8 用戶辦公提醒設(shè)置</p><p
118、><b> 主要代碼如下:</b></p><p> public void Time_Tip(string time,string tip_text)</p><p><b> {</b></p><p> DateTime dt = Convert.ToDateTime(time);</p>
119、<p> string str_time_data = "s";</p><p> long data = DateAndTime.DateDiff(str_time_data, DateTime.Now, dt, FirstDayOfWeek.Sunday, FirstWeekOfYear.FirstFourDays);</p><p> Syst
120、em.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();</p><p> timer.Interval = (int)data*1000;//MessageBox.Show(dt.ToString());</p><p> timer.Tick += new EventHandler(timer_Tick);&l
121、t;/p><p> timer.Tag = time;</p><p> // MessageBox.Show(time);</p><p> // time.Replace(":", "");</p><p> timer.Start();</p><p><b>
122、; }</b></p><p> /*|--fk修改,2012.9。30--*/</p><p> /// <summary></p><p> /// 定時器觸發(fā)事件</p><p> /// </summary></p><p> /// <param name
123、="sender"></param></p><p> /// <param name="e"></param></p><p> public void timer_Tick(object sender, EventArgs e)</p><p><b> {<
124、;/b></p><p> string str_time = ((System.Windows.Forms.Timer)sender).Tag.ToString().Replace(":","");</p><p> // MessageBox.Show(Environment.CurrentDirectory + "\\提醒&
125、quot; + DateTime.Today.Year.ToString() + DateTime.Today.Month.ToString() + DateTime.Today.Day + "\\" + str_time + ".text");</p><p> FileStream fs = new FileStream(Environment.CurrentDire
126、ctory + "\\提醒\\" + DateTime.Today.Year.ToString() + DateTime.Today.Month.ToString() + DateTime.Today.Day + "\\" + str_time + ".txt", FileMode.OpenOrCreate, FileAccess.Read);</p><p
127、> StreamReader sr = new StreamReader(fs,Encoding.GetEncoding("gb2312"));</p><p> string str = sr.ReadToEnd();</p><p> Frm_Message_Tip tip = new Frm_Message_Tip(((System.Windows.F
128、orms.Timer)sender).Tag.ToString(), str);</p><p> tip.Show();</p><p> this.mInidg_remind();</p><p> ((System.Windows.Forms.Timer)sender).Stop();</p><p> ((System.Win
129、dows.Forms.Timer)sender).Dispose();</p><p><b> }</b></p><p> 4.1.6 個人信息修改</p><p> 個人信息更改頁面如圖4-9所示。</p><p> 圖4-9 個人信息更改頁面</p><p><b>
130、主要代碼如下:</b></p><p> //點(diǎn)擊確認(rèn)修改個人信息</p><p> private void bt_alter_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> model = CreatModel();//創(chuàng)
131、建Model</p><p> if (bll.Updata(model,str_uid)>0)</p><p><b> {</b></p><p> MessageBox.Show("個人信息修改成功!");</p><p><b> }</b></p&g
132、t;<p><b> else</b></p><p><b> {</b></p><p> MessageBox.Show("個人信息修改失敗!請檢查...");</p><p><b> }</b></p><p><b&g
133、t; }</b></p><p> //點(diǎn)擊取消修改個人信息</p><p> private void bt_cancle_info_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> mInigB_Info_alter();
134、</p><p><b> }</b></p><p> //點(diǎn)擊確認(rèn)修改密碼</p><p> private void bt_ensure_Click_1(object sender, EventArgs e)</p><p><b> {</b></p><p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 綜合課程設(shè)計---基于socket的即時通訊系統(tǒng)
- 企業(yè)即時通訊軟件的設(shè)計與開發(fā).pdf
- 基于java的即時通訊的設(shè)計與開發(fā)
- 即時通訊畢業(yè)設(shè)計--企業(yè)內(nèi)部即時通訊系統(tǒng)的設(shè)計
- 計算機(jī)綜合課程設(shè)計--即時通訊系統(tǒng)的設(shè)計與實現(xiàn)
- 基于FMS的校園即時通訊系統(tǒng)設(shè)計與實現(xiàn).pdf
- 即時通訊工具畢業(yè)設(shè)計
- 文思海輝即時通訊系統(tǒng)設(shè)計
- 學(xué)術(shù)即時通訊mathq
- 即時通訊聊天系統(tǒng) 畢業(yè)設(shè)計
- 即時通訊軟件的設(shè)計2論文
- 安卓即時通訊
- 網(wǎng)絡(luò)即時通訊系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 博網(wǎng)即時通訊軟件的設(shè)計與實現(xiàn)
- eYouIM即時通訊系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 畢業(yè)設(shè)計(論文)-jsp簡單的即時通訊工具的設(shè)計與開發(fā)
- 電信校園級即時通訊系統(tǒng)的研究.pdf
- 即時通訊源代碼.rar
- 即時通訊源代碼.rar
- 即時通訊系統(tǒng)開題報告
評論
0/150
提交評論