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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  1 前言6</b></p><p><b>  2 需求分析6</b></p><p><b>  2.1 功能分析</b></p><p><b>  2.2

2、方案分析</b></p><p><b>  3 概要設(shè)計6</b></p><p>  3.1 數(shù)據(jù)結(jié)構(gòu)7</p><p>  3.2 邏輯結(jié)構(gòu)與物理結(jié)構(gòu)7</p><p>  3.3 功能模塊劃分9</p><p>  3.4抽象數(shù)據(jù)類定義11</p>&

3、lt;p><b>  4 詳細設(shè)計11</b></p><p>  4.1 數(shù)據(jù)類型定義11</p><p>  4.2 主要模塊內(nèi)部設(shè)計12</p><p>  4.2.1模塊1設(shè)計12</p><p>  4.2.2 模塊2設(shè)計13</p><p>  4.2.3 模塊3設(shè)計

4、14</p><p>  5 實現(xiàn)與調(diào)試分析15</p><p>  5.1 實現(xiàn)環(huán)境15</p><p>  5.2 語言選擇15</p><p>  5.3 調(diào)試分析15</p><p><b>  6 測試分析16</b></p><p>  6.1 測試用

5、例16</p><p>  6.2 測試結(jié)果17</p><p>  6.3 性能分析19</p><p><b>  7用戶手冊20</b></p><p><b>  總 結(jié)20</b></p><p><b>  參考文獻21</b>&

6、lt;/p><p><b>  1 前言</b></p><p>  1.1 即時消息系統(tǒng)的研究現(xiàn)狀 </p><p>  即時消息系統(tǒng)[1](Instant Messenger,IM)是一種在后 PC 時代興起的,以 Internet 網(wǎng)絡(luò)為基礎(chǔ)的,允許交互雙方即時地傳送文字、語音、視頻等信息,能夠跟蹤網(wǎng)絡(luò)用戶在線狀態(tài)的網(wǎng)絡(luò)應(yīng)用軟件。即時消息系統(tǒng)

7、產(chǎn)生有著深刻的社會原因:人們都有渴望社交,獲得社會尊重、實現(xiàn)自我的需求,這正是即時消息軟件風(fēng)行的原動力,而物質(zhì)文明的日益發(fā)達所帶來副作用,又使得人們習(xí)慣與周圍的人保持距離,以致人們更愿意對陌生人敞開心扉,在網(wǎng)絡(luò)中可以跨越年齡、身份、行業(yè)、地域的限制,達到人與人、人與信息之間的零距離交流。從這點上講,即時消息系統(tǒng)的出現(xiàn)改變了人們的溝通方式和交友文化,大大拓展了個人生活交流的空間。</p><p>  1.2本工程的

8、主要內(nèi)容</p><p>  本工程主要是設(shè)計完成一基于P2P的聊天系統(tǒng),本系統(tǒng)主要包括客戶端和服務(wù)器端兩部分,實現(xiàn)類似于QQ的功能。包括用戶注冊、在線朋友的獲取、點對點的聊天等功能。而本項目類容主要是使用VC++實現(xiàn)其中的點對點聊天功能。</p><p><b>  2 需求分析</b></p><p>  此次開發(fā)的網(wǎng)絡(luò)聊天工具可作為個人的

9、交流工具使用。本聊天需包含如下基本功能:</p><p><b>  2.1功能分析</b></p><p><b>  客戶端:</b></p><p><b>  發(fā)送消息;</b></p><p><b>  接收消息;</b></p>

10、<p><b>  消息記錄;</b></p><p><b>  服務(wù)端:</b></p><p>  (1)對客戶端發(fā)來的消息處理并發(fā)送給另一客戶端;</p><p>  (2)將消息類容計入數(shù)據(jù)庫;</p><p> ?。?)對客戶請求作出應(yīng)答并處理。</p><

11、;p><b>  2.2 方案分析</b></p><p>  本項目僅供點對點聊天模塊進行方案分析。</p><p>  本系統(tǒng)實現(xiàn)用戶點對點聊天,通過一客戶端向服務(wù)器發(fā)送消息,服務(wù)器接受消息后將消息信息(消息內(nèi)容和消息時間)記錄到數(shù)據(jù)庫,然后將其發(fā)送給另一用戶,實現(xiàn)聊天功能,并可以向服務(wù)器發(fā)送請求查詢消息記錄。</p><p><

12、;b>  3 概要設(shè)計 </b></p><p>  聊天主要包括兩方面內(nèi)容:服務(wù)器端和客戶端。 1</p><p>  2.2.1服務(wù)器端功能主要包括:建立連接、接收用戶數(shù)據(jù)、操作數(shù)據(jù)庫。</p><p> ?。?)建立連接:系統(tǒng)啟動時建立一個連接,不斷偵聽是否有客戶端連接或許斷開

13、。</p><p> ?。?)監(jiān)聽客戶請求:服務(wù)器端是一個信息的樞紐,所有客戶端的信息都要傳到服務(wù)器端,再由服務(wù)器根據(jù)要求分發(fā)出去,客戶端在向服務(wù)器發(fā)送各種請求。 </p><p> ?。?)數(shù)據(jù)庫操作:當(dāng)客戶機向服務(wù)器發(fā)送請求時,服務(wù)器需要通過數(shù)據(jù)庫管理軟件對數(shù)據(jù)庫的數(shù)據(jù)進行增、刪和查詢。</p><p>  (4)發(fā)送系統(tǒng)消息:在客戶端管理界面上,可以輸入消息,

14、并發(fā)送給所有的在線用戶。</p><p>  2.2.2客戶端主要功能:發(fā)送消息,接收消息,查詢消息記錄。</p><p> ?。?)客戶端在與好友端建立通信連接后,便可以與好友進行聊天,聊天時發(fā)送的是文本信息,好友端在接收到聊天消息后,會提示收到消息,并由好友端自主打開消息接收界面。</p><p> ?。?)所有的聊天消息都會被保存起來,可以查看與每個好友的聊天

15、記錄。聊天記錄包括內(nèi)容和時間。</p><p><b>  3.1 數(shù)據(jù)結(jié)構(gòu) </b></p><p>  此系統(tǒng)數(shù)據(jù)庫中儲存信息采用字符指針儲存,將用戶的信息用字符的形式進行處理并儲存。</p><p>  3.2 邏輯結(jié)構(gòu)與物理結(jié)構(gòu) </p><p><b> ?。?)邏輯結(jié)構(gòu):</b>&l

16、t;/p><p>  用戶向服務(wù)器發(fā)送請求,服務(wù)器獲取對方IP,若獲取成功,用戶向其發(fā)送消息,服務(wù)器將其處理并將其記錄,然后將消息發(fā)給另一用戶。其E—R圖如下所示:</p><p><b>  2</b></p><p>  將E-R圖轉(zhuǎn)化為關(guān)系模型,建立關(guān)系模型為:</p><p>  消息(內(nèi)容,時間);</p&g

17、t;<p>  記錄信息(內(nèi)容,儲存信息);</p><p>  服務(wù)器(服務(wù)器IP);</p><p><b> ?。?)物理結(jié)構(gòu):</b></p><p>  在關(guān)系數(shù)據(jù)庫中,確定數(shù)據(jù)庫的物理結(jié)構(gòu)主要指確定數(shù)據(jù)庫的儲存位置和儲存結(jié)構(gòu),包括確定關(guān)系索引、日志、備份等數(shù)據(jù)的儲存分配和儲存結(jié)構(gòu),并確定系統(tǒng)配置等。</p>

18、<p>  建立好的數(shù)據(jù)庫物理結(jié)構(gòu)可以提高系統(tǒng)執(zhí)行速率,使得在數(shù)據(jù)庫上運行的各種事務(wù)響應(yīng)時間小、儲存空間利用率高、事務(wù)吞吐率大。還要充分了解所用RDBMS的內(nèi)部特征,特別是系統(tǒng)提供的存取方法忽然儲存結(jié)構(gòu)。</p><p>  a.所引法:對常需要查詢的數(shù)據(jù)建立索引;b.聚簇法:為了提高某個屬性(或?qū)傩越M)的查詢速度,把這個或這些屬性上具有相同值的元組集中存放在連續(xù)的物理塊中;c.hash法:如果一個

19、關(guān)系的屬性大小可預(yù)知,而且不變或關(guān)系的大小變動,而且數(shù)據(jù)庫管理系統(tǒng)提供了動態(tài)hash存取方法則可以使用hash存取方法。</p><p>  評價物理數(shù)據(jù)庫的方法完全依賴于所選用的DBMS,主要是從定量估算各種方案的儲存空間、存取時間和維護代價入手,對估算結(jié)果進行權(quán)衡、比較,選擇一個較為優(yōu)化的合理方案設(shè)計物理結(jié)構(gòu)。</p><p><b>  3</b></p&

20、gt;<p>  3.3 功能模塊劃分</p><p><b>  3.3.1結(jié)構(gòu)框圖</b></p><p><b>  3.3.2程序流圖</b></p><p> ?。?)整個系統(tǒng)流程圖如下:</p><p><b>  4</b></p>&

21、lt;p>  3.3.3模塊功能分析及外部設(shè)計</p><p><b>  模塊功能分析:</b></p><p> ?。?)發(fā)送消息:用戶選擇好友,如果好友在線,服務(wù)器便獲取其IP地址,用戶打開消息盒編輯需要發(fā)送的消息,然后發(fā)送,服務(wù)器接受此消息,并處理記錄到記錄表中,然后將其發(fā)送給好友。</p><p> ?。?)接收消息:好友發(fā)送的

22、信息通過服務(wù)器處理并發(fā)送到本用戶,如果設(shè)置為接收消息,則系統(tǒng)提示并可以打開查看此消息,否則服務(wù)器不將此消息發(fā)送到本用戶。</p><p>  (3)消息記錄查詢:用戶向服務(wù)器發(fā)送查詢請求,服務(wù)器作出響應(yīng)并將最近消息記錄發(fā)送到此用戶。</p><p><b>  外部設(shè)計:</b></p><p>  交互設(shè)計是面向最終用戶的設(shè)計,是軟件的外部設(shè)

23、計,交互設(shè)計要求在研究軟</p><p><b>  5</b></p><p>  件技術(shù)問題的同時對人加以研究。用戶是什么樣的人?用戶怎樣與新的計算機系統(tǒng)進行交互?用戶怎樣解釋系統(tǒng)產(chǎn)生的信息?用戶對系統(tǒng)有哪些期望?這些問題僅僅是需要在用戶交互設(shè)計時必須詢問和回答的問題。</p><p>  作為點對點的聊天系統(tǒng),作為服務(wù)使用者得用戶和提供服

24、務(wù)的聊天系統(tǒng)有著互動和交換信息的過程,用戶有請求,系統(tǒng)就必須有應(yīng)答,需要雙方參與。</p><p> ?。?)當(dāng)用戶選擇好友向其發(fā)送消息時,點擊好友,向服務(wù)器發(fā)送請求,如果好友在線,服務(wù)器自動獲取好友IP并建立雙方的連接,進行聊天。否則應(yīng)該提示好友不在,不能聊天或發(fā)送離線信息。</p><p>  (2)用戶查詢聊天信息時,向服務(wù)器發(fā)送查詢請求,服務(wù)器作出響應(yīng)并將相應(yīng)記錄發(fā)送到此用戶界面。

25、</p><p>  通過對產(chǎn)品的界面和行為進行交互設(shè)計,讓產(chǎn)品和它的使用者之間建立一種有機關(guān)系,從而可以有效的達到使用者的目標(biāo),而好的交互設(shè)計會使系統(tǒng)和使用者之間更好的交互,達到“愉悅地合作”,這是交互設(shè)計的最終目的。</p><p>  3.4抽象數(shù)據(jù)類定義</p><p>  此系統(tǒng)主要定義3個抽象數(shù)據(jù)類型:(1)消息(messages);(2記錄(notes

26、); </p><p><b>  4 詳細設(shè)計</b></p><p>  4.1 數(shù)據(jù)類型定義</p><p>  此系統(tǒng)主要定義3個抽象數(shù)據(jù)類型:消息(messages);記錄(notes);設(shè)置信息。</p><p> ?。?)消息(messages):</p><p>  ADT mes

27、sages{</p><p>  數(shù)據(jù)對象:D={發(fā)送的信息U1..Un,|U1..Un∈CHAR}</p><p>  數(shù)據(jù)關(guān)系:R={<U1,U2>,<U2,U3>,..,<Un-1,Un>}</p><p><b>  基本操作:</b></p><p>  Receive me

28、ssages(&T,InetAddress,t)</p><p>  操作結(jié)果:將端口為InetAddress的信息包t的內(nèi)容傳給T,用T返回。</p><p><b>  6</b></p><p>  Send messages(t,InetAddress)</p><p>  操作結(jié)果:將信息包發(fā)送到端口I

29、netAddress;</p><p>  }ADT messages</p><p> ?。?)記錄(notes):</p><p>  ADT notes{</p><p>  數(shù)據(jù)對象:D={記錄表中的信息U1..Un,|U1..Un∈CHAR}</p><p>  數(shù)據(jù)關(guān)系:R={<U1,U2>,&

30、lt;U2,U3>,..,<Un-1,Un>}</p><p><b>  基本操作:</b></p><p>  Check notes(&T,InetAddress,t)</p><p>  操作結(jié)果:將信息記錄表中的信息發(fā)送到端口InetAddress,并用T返回。</p><p>  D

31、elete notes(&t,i)</p><p>  操作結(jié)果:如果i=1,將信息記錄表中的信息刪除。</p><p>  Memory notes(&t,InetAddress,T)</p><p>  操作結(jié)果:將端口InetAddress發(fā)來的信息包T的內(nèi)容記錄到消息記錄表中。</p><p>  }ADT notes

32、</p><p>  4.2 主要模塊內(nèi)部設(shè)計</p><p>  此點對點聊天系統(tǒng)主要包括以下模塊:(1)發(fā)送消息;(2)接收消息;(3)查詢消息記錄。每個模塊的主要執(zhí)行功能函數(shù)及算法如下。</p><p>  4.2.1模塊1設(shè)計</p><p>  4.2.1.1 模塊算法</p><p><b>  

33、模塊一:發(fā)送消息:</b></p><p>  發(fā)送消息函數(shù):send messages(char *p,InetAdrress);</p><p>  發(fā)送消息后自動執(zhí)行儲存函數(shù):memory messages(InetAdrress,char *p);</p><p>  4.2.1.2 流程圖</p><p><b&g

34、t;  7</b></p><p><b>  模塊2設(shè)計</b></p><p>  4.2.2.1 模塊算法</p><p><b>  模塊二:接收消息:</b></p><p>  接收消息消息函數(shù): *receive messages(InetAdrress,char *p);

35、</p><p>  接收消息后自動執(zhí)行儲存消息函數(shù):memory messages(InetAdrress,char *p);</p><p>  4.2.2.2 流程圖:</p><p><b>  8</b></p><p><b>  模塊3設(shè)計</b></p><p&g

36、t;  4.2.3.1 模塊算法</p><p>  模塊三:消息記錄查詢:</p><p>  執(zhí)行發(fā)送請求函數(shù):*check notes(InetAdrress,char *p);</p><p>  刪除記錄函數(shù):delete notes(InetAdrress);</p><p>  自動執(zhí)行接收消息函數(shù):*receive messa

37、ges(InetAdrress,char *p);</p><p><b>  4.2.3.2 </b></p><p><b>  流程圖:</b></p><p><b>  9</b></p><p><b>  實現(xiàn)與調(diào)試分析</b></p&

38、gt;<p><b>  5.1 實現(xiàn)環(huán)境</b></p><p>  硬件:本系統(tǒng)選擇在windows操作系統(tǒng)上實現(xiàn),使用于windows操作之間的用戶。</p><p>  軟件:VC++平臺;</p><p><b>  5.2 語言選擇</b></p><p>  本系統(tǒng)采用C

39、++實現(xiàn)。</p><p><b>  5.3 調(diào)試分析</b></p><p>  首先應(yīng)該明確的是本系統(tǒng)的目的是什么。調(diào)試是在程序運行成功后進行的排除錯誤過程。常用的調(diào)試方法有回溯法、蠻干法和原因排除法。本系統(tǒng)采用回溯法和</p><p><b>  10</b></p><p>  原因排除法

40、比較合適。</p><p>  本系統(tǒng)中每個模塊實現(xiàn)一個功能,當(dāng)主函數(shù)調(diào)用這些函數(shù)時,就會從接口輸入一些信息,如果程序算法正確,則預(yù)期可以得到結(jié)果,通過功能函數(shù)的處理,應(yīng)該輸出處理結(jié)果,和預(yù)期結(jié)果比較,如果不能實現(xiàn)預(yù)期的功能,則說明程序中存在隱藏的問題。</p><p>  當(dāng)選擇好友聊天時,如果輸入聊天信息,,如果好友在線,則好友可以收到此消息,而且在服務(wù)器的記錄表中應(yīng)該記錄此消息的相關(guān)

41、記錄,當(dāng)用戶發(fā)送查詢請求時可以返回其聊天記錄。</p><p>  當(dāng)發(fā)生錯誤時,那一功能不能實現(xiàn),就去從新審查實現(xiàn)此功能函數(shù)的代碼,注意實現(xiàn)功能的關(guān)鍵代碼部分,為什么不能得到預(yù)期的結(jié)果。</p><p>  不管采用什么辦法,調(diào)試的任務(wù)就是找到此系統(tǒng)錯誤的原因并改正。</p><p><b>  6 測試分析</b></p>&

42、lt;p>  在實現(xiàn)本系統(tǒng)的同時每設(shè)計一個模塊,就實現(xiàn)模塊測試,使其能實現(xiàn)該函數(shù)需要實現(xiàn)的功能,此階段為白盒測試。此階段將此模塊作為單獨的一個實體來測試,而且比較容易實際檢驗?zāi)K正確性的測試方案,保證每個模塊單元的正確運行,來確定編碼和詳細設(shè)計的錯誤。</p><p>  然后集成測試。集成測試階段,先將單元測試成功的模塊放在一起形成一個子系統(tǒng)來測試,以解決模塊間的協(xié)調(diào)和通信問題。然后將子系統(tǒng)測試通過的模塊

43、放在一起形成一個完整的系統(tǒng)測試,檢驗功能,來發(fā)現(xiàn)需求報告中的錯誤。</p><p><b>  6.1 測試用例</b></p><p>  為了檢驗此系統(tǒng)的正確性,設(shè)計了以下的一些測試用例:</p><p><b> ?。?)發(fā)送消息</b></p><p>  選擇好友輸入信息:“你好!”<

44、;/p><p>  然后選擇“查詢消息記錄”</p><p><b>  (2)接收消息</b></p><p>  好友發(fā)來消息選擇接收。</p><p>  然后恢復(fù)消息:“你好!”</p><p>  然后選擇“查詢消息記錄”</p><p><b>  11&

45、lt;/b></p><p><b> ?。?)查詢消息記錄</b></p><p>  選擇“查詢消息記錄”</p><p>  通過以上此時用例,看此系統(tǒng)能否實現(xiàn)其聊天功能。當(dāng)發(fā)送消息時,檢測好友端是否輸出“你好!”,當(dāng)點擊“查詢消息記錄”時,檢測用戶端是否有“你好!”輸出。</p><p>  不同的測試數(shù)據(jù)

46、發(fā)現(xiàn)程序錯誤的能力差別很大,為了提高測試效率低測試成本,應(yīng)該選擇高效的測試用例,數(shù)據(jù)盡量少,做到盡可能完備的測試就可以了。</p><p><b>  6.2 測試結(jié)果</b></p><p>  此系統(tǒng)測試結(jié)果如下列圖:</p><p>  (1)發(fā)送消息測試結(jié)果如下:</p><p><b>  12<

47、;/b></p><p> ?。?)返回選擇另一好友聊天測試如下:</p><p> ?。?)退出重復(fù)好友聊天測試結(jié)果:</p><p>  (4)查詢消息記錄測試結(jié)果:</p><p><b>  6.3 性能分析</b></p><p><b>  13</b>&l

48、t;/p><p>  下面從時間性能和空間性能分析此系統(tǒng):</p><p>  時間性能:本系統(tǒng)采用文件保存方式對用戶的信息進行保存并處理,方便了信息的網(wǎng)絡(luò)拷貝,傳輸和下載,縮短了系統(tǒng)對用戶請求的響應(yīng)時間,而且,文件保存方便了文件打包壓縮處理,為系統(tǒng)處理,傳輸節(jié)約時間。</p><p>  空間性能:本系統(tǒng)在用戶輸入數(shù)據(jù)時采用數(shù)據(jù)緩沖區(qū),解決了高速運行的 CPU工作分配

49、,解放CPU,大大提高了系統(tǒng)的運行速度。</p><p><b>  7用戶手冊</b></p><p>  此系統(tǒng)的用戶手冊包括:此系統(tǒng)的功能,安裝文檔,使用手冊。</p><p> ?。?)系統(tǒng)功能:此系統(tǒng)的功能為實現(xiàn)用戶的聊天信息交互。并能對聊天記錄進行查詢。</p><p> ?。?)安裝手冊:在使用此系統(tǒng)之前需

50、要對此系統(tǒng)的安裝,通過VC++平臺將代碼輸入,然后編譯,連接,運行,出現(xiàn)應(yīng)用控制臺進行聊天。需要說明的是在編譯之前需要設(shè)置服務(wù)器的IP設(shè)置,將代碼中的服務(wù)器IP地址輸入正確后才可以連接到服務(wù)器進行聊天。</p><p>  (3)使用手冊:當(dāng)進入聊天界面后,選擇在線好友,選擇聊天,輸入信息,然后選擇發(fā)送,服務(wù)器將信息儲存后送給好友,等待好友回復(fù)信息。當(dāng)好友回復(fù)后,用戶可以繼續(xù)聊天。</p><

51、p>  當(dāng)需要查詢消息記錄時,選擇“消息記錄查詢”,將在界面顯示聊天信息。當(dāng)聊天結(jié)束時,選擇“下線”,用戶可以斷開與服務(wù)器的連接,實現(xiàn)下線功能。</p><p><b>  總 結(jié) </b></p><p>  軟件開發(fā)過程是一個復(fù)雜的過程,這就要求將其分成若干個階段,若干個部分。</p><p>  把此系統(tǒng)劃分為若干個階段,每個階段的

52、任務(wù)獨立,而且比較簡單,便于管理,從而降低了軟件開發(fā)的難道,在每個階段采用科學(xué)的管理技術(shù)和良好的技術(shù)方法,而且在每個階段結(jié)束之前都從技術(shù)和管理兩個角度進行嚴格的審查,合格后才進行下一步的工作,這就使開發(fā)工程的全過程以一種有條不紊的方式進行,保證了系統(tǒng)的質(zhì)量,提高了系統(tǒng)的可維護性。</p><p>  總之采用生命周期方法學(xué)可以大大提高此系統(tǒng)的開發(fā)成功率。其次,維護占軟件投資的很大比例,所以在開發(fā)時應(yīng)該提高系統(tǒng)的可

53、維護性。</p><p><b>  14</b></p><p><b>  參考文獻 </b></p><p>  [1] 張海藩. 軟件工程導(dǎo)論,清華大學(xué)出版社,2004</p><p>  [2] 陳明. 實用軟件工程基礎(chǔ),清華大學(xué)出版社,2003</p><p> 

54、 [3] 殷人昆.實用軟件工程,清華大學(xué)出版社,2003</p><p>  [4] 宋波.UML面向?qū)ο蠹夹g(shù)與實踐,科學(xué)出版社,2004 </p><p>  #include<iostream.h></p><p>  #include<string.h></p><p>  #include<fstream

55、.h></p><p>  void chat();</p><p>  void checkmessage();</p><p>  void menu();</p><p>  void main()</p><p>  { int k;</p><p><b>  m

56、enu();</b></p><p>  while(k!=3)</p><p><b>  {cin>>k;</b></p><p><b>  switch(k)</b></p><p>  { case 1:chat();menu();break;</p&g

57、t;<p>  case 2:checkmessage();menu</p><p>  ();break;}</p><p><b>  }</b></p><p><b>  }</b></p><p>  void chat()</p><p>  {

58、 int m;</p><p><b>  char *p;</b></p><p>  p=new char[200];</p><p>  ofstream file1;</p><p>  file1.open</p><p>  ("D:\\file1.txt"

59、;,ios::ate);</p><p>  ofstream file2;</p><p>  file2.open</p><p>  ("D:\\file2.txt",ios::ate);</p><p>  ofstream file3;</p><p>  file3.open<

60、/p><p>  ("D:\\file3.txt",ios::ate);</p><p>  while(m!=4){ </p><p>  cout<<"請選擇好友:"<<endl;</p><p>  cout<<"1.張明"<<en

61、dl;</p><p>  cout<<"2.王林"<<endl;</p><p>  cout<<"3.李強"<<endl;</p><p>  cout<<"4.返回"<<endl;</p><p><

62、b>  cin>>m;</b></p><p><b>  switch(m)</b></p><p><b>  {</b></p><p><b>  case 1:{</b></p><p>  cout<<"請輸入消息

63、:</p><p><b>  \n";</b></p><p>  cout<<"李林:";</p><p>  char v[]="李林:";</p><p><b>  cin>>p;</b></p>&

64、lt;p>  cout<<"張明:你好!你</p><p>  叫什么名字?"<<endl;</p><p>  char q[]="張明:你好!</p><p><b>  你叫什么名字?";</b></p><p>  //file1.seek

65、p</p><p>  (0,ios::end);</p><p>  file1.write(v,strlen</p><p><b>  (v));</b></p><p>  file1.write(p,strlen</p><p><b>  (p));</b>

66、</p><p>  file1.write(q,strlen</p><p><b>  (q));</b></p><p>  cout<<"李林:";</p><p><b>  cin>>p;</b></p><p>  

67、cout<<"張明:我叫張明</p><p>  ,在四川大學(xué)讀書!今年20歲,你</p><p>  呢?"<<endl;</p><p>  char s[]="張明:我叫</p><p>  張明,在四川大學(xué)讀書,今年20歲,你呢?";</p><

68、p>  file1.write(v,strlen</p><p><b>  (v));</b></p><p>  file1.write(p,strlen</p><p><b>  (p));</b></p><p>  file1.write(s,strlen</p>

69、<p><b>  (s));</b></p><p>  cout<<"李林:";</p><p><b>  cin>>p;</b></p><p>  cout<<"張明:好,再見</p><p><b&g

70、t;  !"<<endl;</b></p><p>  char t[]="張明:好,再見! </p><p><b>  ";</b></p><p>  file1.write(v,strlen</p><p><b>  (v));</b&g

71、t;</p><p>  file1.write(p,strlen</p><p><b>  (p));</b></p><p>  file1.write(t,strlen</p><p>  (t));file1.close();}</p><p><b>  break;&l

72、t;/b></p><p><b>  case 2:</b></p><p>  { cout<<"請輸入消息:</p><p><b>  \n";</b></p><p>  cout<<"李林:";</p>

73、<p>  char v[]="李林:";</p><p>  cin>>p; </p><p>  cout<<"王林:你好!你</p><p>  叫什么名字!"<<endl;</p><p>  char q[]="王林:你好!

74、</p><p><b>  你叫什么名字!";</b></p><p>  // file2.seekp</p><p>  (0,ios::end);</p><p>  file2.write(v,strlen</p><p><b>  (v));</b>

75、;</p><p>  file2.write(p,strlen</p><p><b>  (p));</b></p><p>  file2.write(q,strlen</p><p><b>  (q));</b></p><p>  cout<<&q

76、uot;李林:";</p><p><b>  cin>>p;</b></p><p>  cout<<"王林:我叫王林</p><p>  ,在北京大學(xué)讀書!今年21歲,你呢!"<<endl;</p><p>  char s[]="王林:我

77、叫</p><p>  王林,在北京大學(xué)讀書,今年21歲,你呢!";</p><p>  file2.write(v,strlen</p><p><b>  (v));</b></p><p>  file2.write(p,strlen</p><p><b>  (

78、p));</b></p><p>  file2.write(s,strlen</p><p><b>  (s));</b></p><p>  cout<<"李林:";</p><p><b>  cin>>p;</b></p>

79、;<p>  cout<<"王林:好,拜拜</p><p><b>  !"<<endl;</b></p><p>  char t[]="王林:好,拜拜! </p><p><b>  "; </b></p><p>

80、;  file2.write(v,strlen</p><p><b>  (v));</b></p><p>  file2.write(p,strlen</p><p><b>  (p));</b></p><p>  file2.write(t,strlen</p>&l

81、t;p>  (t));file2.close();}break;</p><p><b>  case 3:{</b></p><p>  cout<<"請輸入消息:</p><p><b>  \n";</b></p><p>  cout<<&

82、quot;李林:";</p><p>  char v[]="李林:";</p><p>  cin>>p; </p><p>  cout<<"李強:你好!你</p><p>  叫什么名字!"<<endl;</p><p>

83、;  char q[]="李強:你好!</p><p><b>  你叫什么名字?";</b></p><p>  // file3.seekp</p><p>  (0,ios::end);</p><p>  file3.write(v,strlen</p><p>

84、<b>  (v));</b></p><p>  file3.write(p,strlen</p><p><b>  (p));</b></p><p>  file3.write(q,strlen</p><p><b>  (q));</b></p>

85、<p>  cout<<"李林:";</p><p><b>  cin>>p;</b></p><p>  cout<<"李強:我叫李強</p><p>  ,在上海大學(xué)讀書!今年22歲,你呢?"<<endl;</p><p

86、>  char s[]="李強:我叫</p><p>  李強,在上海大學(xué)讀書,今年22歲,你呢?";</p><p>  file3.write(v,strlen</p><p><b>  (v));</b></p><p>  file3.write(p,strlen</p&g

87、t;<p><b>  (p));</b></p><p>  file3.write(s,strlen</p><p><b>  (s));</b></p><p>  cout<<"李林:";</p><p><b>  cin>

88、>p;</b></p><p>  cout<<"李強:好,拜拜</p><p><b>  !"<<endl;</b></p><p>  char t[]="李強:好,拜拜! </p><p><b>  "; </

89、b></p><p>  file3.write(v,strlen</p><p><b>  (v));</b></p><p>  file3.write(p,strlen</p><p><b>  (p));</b></p><p>  file3.writ

90、e(t,strlen</p><p>  (t)); file3.close();}break;</p><p>  //case 4: break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  file1.close

91、();</p><p>  file2.close();</p><p>  file3.close();</p><p><b>  }</b></p><p>  void checkmessage()</p><p>  { int t;</p><p>  ch

92、ar str[1000]="";</p><p>  ifstream file1("D:\\file1.txt");</p><p>  ifstream file2("D:\\file2.txt");</p><p>  ifstream file3("D:\\file3.txt")

93、;</p><p>  while(t!=4){</p><p>  cout<<"\n請輸入要查詢和哪位好友</p><p>  的消息記錄:\n";</p><p>  cout<<"1.張明"<<endl;</p><p>  cout

94、<<"2.王林"<<endl;</p><p>  cout<<"3.李強"<<endl;</p><p>  cout<<"4.返回"<<endl;</p><p><b>  cin>>t;</b>

95、</p><p><b>  switch(t)</b></p><p><b>  {case 1:</b></p><p>  file1.read(str,1000);</p><p>  cout<<str;file1.close();break;</p><

96、p><b>  case 2:</b></p><p>  file2.read(str,1000);</p><p>  cout<<str;file2.close();break;</p><p><b>  case 3:</b></p><p>  file3.read(s

97、tr,1000);</p><p>  cout<<str;file3.close();break;</p><p><b>  }}</b></p><p>  file1.close();</p><p>  file2.close();</p><p>  file3.close

98、();</p><p><b>  }</b></p><p>  void menu(){</p><p>  cout<<" </p><p>  **********************"<<endl;</p>

99、;<p>  cout<<" </p><p>  **********************"<<endl;</p><p>  cout<<" </p><p>  ***歡迎進入聊天系

100、統(tǒng)***"<<endl;</p><p>  cout<<" </p><p>  **********************"<<endl;</p><p>  cout<<" &

101、lt;/p><p>  ***1. 聊天 ***"<<endl;</p><p>  cout<<" </p><p>  ***2. 消息記錄查詢 ***"<<endl;</p><p>  cout<<

102、" </p><p>  ***3. 下線 ***"<<endl;</p><p>  cout<<" </p><p>  **********************"<<en

103、dl;</p><p>  cout<<" </p><p>  **********************"<<endl;</p><p>  cout<<" </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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論