選好網(wǎng)絡(luò)編程利器.ppt_第1頁(yè)
選好網(wǎng)絡(luò)編程利器.ppt_第2頁(yè)
選好網(wǎng)絡(luò)編程利器.ppt_第3頁(yè)
選好網(wǎng)絡(luò)編程利器.ppt_第4頁(yè)
選好網(wǎng)絡(luò)編程利器.ppt_第5頁(yè)
已閱讀5頁(yè),還剩65頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、,Windows系統(tǒng)編程實(shí)用教程,授課教師: 職務(wù):,第2章 使用Visual Studio 2008開(kāi)發(fā)Visual C+應(yīng)用程序,課程描述 本書(shū)中的程序?qū)嵗际鞘褂肰isual Studio 2008開(kāi)發(fā)的Visual C+應(yīng)用程序,本章將對(duì)這種開(kāi)發(fā)模式的基礎(chǔ)知識(shí)進(jìn)行介紹。由于篇幅所限,本章將不介紹C+的基本語(yǔ)法,需要了解的讀者可以查閱相關(guān)書(shū)籍和資料。,本章知識(shí)點(diǎn),2.1 Visual Studio 2008開(kāi)發(fā)環(huán)境 2.2 MFC編程基礎(chǔ),2.1 Visual Studio 2008開(kāi)發(fā)環(huán)境,Visual Studio是一套完整的開(kāi)發(fā)工具集,可以用于生成ASP.NET Web應(yīng)用程序、桌

2、面應(yīng)用程序和移動(dòng)應(yīng)用程序等。它集成Visual C+、Visual C#、Visual Basic和Visual J#等多種開(kāi)發(fā)語(yǔ)言,并全面支持Microsoft .NET Framework。本節(jié)通過(guò)一個(gè)小例子來(lái)介紹Visual Studio 2008的開(kāi)發(fā)環(huán)境,使讀者對(duì)其有一個(gè)初步的了解。,2.1.1 啟動(dòng)Visual Studio 2008,在“開(kāi)始”菜單中依次選擇“程序”/“Microsoft Visual Studio 2008”/“Microsoft Visual Studio 2008”,啟動(dòng)Microsoft Visual Studio 2008開(kāi)發(fā)環(huán)境窗口,如圖2.1所示。,

3、提示,在啟始頁(yè)中可以查看到最近打開(kāi)的6個(gè)項(xiàng)目,單擊項(xiàng)目名稱可以打開(kāi)該項(xiàng)目。 項(xiàng)目是使用Visual C+開(kāi)發(fā)應(yīng)用程序的基本組織單位,項(xiàng)目中可以包含源代碼文件、資源文件或配置文件。使用項(xiàng)目可以生成.exe或.dll等可執(zhí)行文件。在使用Visual C+開(kāi)發(fā)應(yīng)用程序程序之前,應(yīng)首先創(chuàng)建項(xiàng)目。,2.1.2 創(chuàng)建項(xiàng)目,在“起始頁(yè)”中單擊“創(chuàng)建”標(biāo)簽后面的“項(xiàng)目”超鏈接(或者在菜單中選擇“文件”/“新建”/“項(xiàng)目”),打開(kāi)“新建項(xiàng)目”對(duì)話框,如圖2.2所示。,創(chuàng)建Win32控制臺(tái)應(yīng)用程序項(xiàng)目,在“新建項(xiàng)目”對(duì)話框左側(cè)的“項(xiàng)目類型”列表中選擇Visual C+,在右側(cè)可以看到已經(jīng)安裝的項(xiàng)目模板。在列表中選

4、擇“Win32控制臺(tái)應(yīng)用程序”,然后輸入項(xiàng)目的名稱,選擇保存項(xiàng)目的目錄。默認(rèn)目錄為C:Documents and SettingsAdministratorMy DocumentsVisual Studio 2008Projects(在不同操作系統(tǒng)下默認(rèn)目錄的位置會(huì)有差別)。配置完成后,單擊“確定”按鈕,打開(kāi)創(chuàng)建Win32應(yīng)用程序向?qū)?,如圖2.3所示。,創(chuàng)建Win32控制臺(tái)應(yīng)用程序項(xiàng)目,單擊“下一步”按鈕,打開(kāi)應(yīng)用程序設(shè)置窗口,如圖2.4所示。,創(chuàng)建Win32控制臺(tái)應(yīng)用程序項(xiàng)目,用戶可以選擇要?jiǎng)?chuàng)建項(xiàng)目的類型,包括Windows應(yīng)用程序、控制臺(tái)應(yīng)用程序、DLL和靜態(tài)庫(kù)等。選擇“控制臺(tái)應(yīng)用程序”單

5、選按鈕,然后單擊“完成”按鈕,完成創(chuàng)建項(xiàng)目的操作。默認(rèn)的控制臺(tái)應(yīng)用程序的主文件中包含一個(gè)主函數(shù)_tmain(),代碼如下: int _tmain(int argc, _TCHAR* argv) return 0; 在運(yùn)行控制臺(tái)應(yīng)用程序時(shí),將首先調(diào)用_tmain()函數(shù)。函數(shù)中包含兩個(gè)參數(shù),參數(shù)argc表示命令行參數(shù)的數(shù)量(其中包含應(yīng)用程序名本身),參數(shù)argv表示包含命令行參數(shù)的數(shù)組。,2.1.3 應(yīng)用程序的開(kāi)發(fā)界面,在Visual Studio 2008中編輯Win32控制臺(tái)應(yīng)用程序項(xiàng)目的界面如圖2.5所示。,提示,解決方案是項(xiàng)目的容器,一個(gè)解決方案可以包含許多項(xiàng)目,并且可以用 Visual

6、 Studio 提供的任何語(yǔ)言進(jìn)行編碼。Visual Studio 開(kāi)發(fā)環(huán)境可以處理項(xiàng)目間的依賴項(xiàng)、各個(gè)項(xiàng)目配置、項(xiàng)目部署和源代碼控制。此方法很適合大型應(yīng)用程序使用。,1窗體設(shè)計(jì)及代碼編輯器,窗體設(shè)計(jì)及代碼編輯器位于Visual Studio窗體的核心位置,它是程序員設(shè)計(jì)界面和編輯代碼的主要工作區(qū)。在開(kāi)發(fā)MFC應(yīng)用程序時(shí),可以在該區(qū)域中設(shè)計(jì)對(duì)話框的界面和編輯代碼。,2解決方案資源管理器,在解決方案資源管理器中,以樹(shù)狀結(jié)構(gòu)顯示當(dāng)前解決方案中包含的項(xiàng)目、以及每個(gè)項(xiàng)目中包含的頭文件、源文件和資源文件列表。 在解決方案資源管理器中,可以向解決方案中添加項(xiàng)目、刪除項(xiàng)目、向項(xiàng)目中增加類和資源等。 關(guān)于解決

7、方案資源管理器的具體使用方法將在后面章節(jié)中結(jié)合具體情況介紹。,3屬性窗口,在屬性窗口中,可以顯示和設(shè)置對(duì)話框中控件的屬性。在解決方案資源管理器中,選擇一個(gè)文件,在屬性窗口中也會(huì)顯示其屬性信息,如圖2.6所示。,2.1.4 一個(gè)控制臺(tái)應(yīng)用程序的小實(shí)例,參照2.1.2小節(jié)介紹的方法創(chuàng)建一個(gè)Win32控制臺(tái)應(yīng)用程序項(xiàng)目,項(xiàng)目名稱為HelloWorld。項(xiàng)目的主文件為HelloWorld.cpp。 HelloWorld.cpp中包含的默認(rèn)代碼如下: #include stdafx.h int _tmain(int argc, _TCHAR* argv) return 0; ,提示,Stdafx.h的英

8、文全稱為Standard Application Frame Extend,用于實(shí)現(xiàn)頭文件預(yù)編譯。頭文件預(yù)編譯是指把一個(gè)項(xiàng)目中使用的一些標(biāo)準(zhǔn)頭文件(例如Windows.h和Afxwin.h)預(yù)先編譯,以后該工程編譯時(shí),不再編譯這部分頭文件,僅僅使用預(yù)編譯的結(jié)果。這樣可以加快編譯速度,節(jié)省時(shí)間。,2在_tmain()函數(shù)中添加代碼,#include stdafx.h #include stdlib.h int _tmain(int argc, _TCHAR* argv) printf(Hello World!rn); system(pause); return 0; ,3運(yùn)行程序,在菜單中選擇“

9、調(diào)試”/“啟動(dòng)調(diào)試”,或在工具欄中單擊“啟動(dòng)調(diào)試”按鈕 可以運(yùn)行當(dāng)前的項(xiàng)目,如圖2.7所示。,4在程序中添加注釋,(1)注釋符/ / 文件名:HelloWorld.cpp / 描述:主程序文件 / 作者:?jiǎn)⒚餍?/ 日期:2009-12-18 int a = 0; / 聲明一個(gè)整型變量a,初始值為0 (2)注釋符/*/ /* 文件名:HelloWorld.cpp 描述:主程序文件 作者:?jiǎn)⒚餍?日期:2011-03-18 */ int a = 0; /* 聲明一個(gè)整型變量a,初始值為0 */ int b /*變量b*/ = 0;,2.1.5 配置應(yīng)用程序,設(shè)置常規(guī)屬性,設(shè)置調(diào)試屬性,設(shè)置C/C

10、+的常規(guī)配置屬性,設(shè)置鏈接器的輸入配置屬性,2.1.6 調(diào)試應(yīng)用程序,在編譯應(yīng)用程序的時(shí)候,可以選擇兩種主要的編譯器配置模式,即Debug(調(diào)試)模式和Release(發(fā)行版)模式。在Debug模式下,編譯的可執(zhí)行程序中包含了許多調(diào)試信息,因此程序相對(duì)比較大,但比較易于對(duì)程序進(jìn)行調(diào)試;在Release模式下,編譯的可執(zhí)行程序比較小,編譯速度快,但不便于對(duì)程序進(jìn)行調(diào)試。Release版本的程序通常是最后提交給用戶使用的。 在Visual Studio 2008的工具欄中可以選擇編譯器配置模式,如圖2.13所示。,“配置管理器”對(duì)話框,1設(shè)置斷點(diǎn),斷點(diǎn)是程序中的一行代碼,程序在運(yùn)行到斷點(diǎn)時(shí)將中斷,

11、用戶可以查看變量的值,單步調(diào)試程序,對(duì)程序的運(yùn)行情況進(jìn)行分析。 在代碼窗口中,單擊一行代碼左側(cè)的灰色區(qū)域,可以在該行代碼上設(shè)置斷點(diǎn)。斷點(diǎn)的表現(xiàn)是在代碼行前面顯示一個(gè)紅色的圓點(diǎn),如圖2.15所示。,調(diào)試應(yīng)用程序時(shí)暫停在斷點(diǎn)位置,查看變量的值,在程序處于中斷狀態(tài)下,右鍵單擊一個(gè)變量,在彈出菜單中選擇“快速監(jiān)視”,可以打開(kāi)快速監(jiān)視對(duì)話框,查看選擇變量的值,如圖2.17所示。 將鼠標(biāo)移至變量上,會(huì)彈出懸浮窗口,并在其中顯示當(dāng)前變量的值,如圖2.18所示。,2調(diào)試窗口,OutputDebugString()函數(shù),在程序中使用OutputDebugString()函數(shù)可以在輸出窗口中輸出調(diào)試信息,器函數(shù)原

12、型如下: void WINAPI OutputDebugString( _in_opt LPCTSTR lpOutputString ); 參數(shù)lpOutputString表示要輸出的調(diào)試信息。,【例2.1】,【例2.1】編寫(xiě)程序,計(jì)算1+2+100的結(jié)果,并使用OutputDebugString()函數(shù)在輸出窗口中輸出中間計(jì)算結(jié)果,代碼如下: #include stdafx.h #include Windows.h int _tmain(int argc, _TCHAR* argv) int sum = 0 ; char msg100; for(int i=1; i 1) sprintf(m

13、sg, 1+. +%d= %dn, i, sum ); OutputDebugString(msg); printf(sum= %d, sum); return 0; ,【例2.1】的運(yùn)行結(jié)果,3單步執(zhí)行,當(dāng)程序處于中斷狀態(tài)時(shí),按下F10鍵可以逐過(guò)程地單步執(zhí)行程序,即在執(zhí)行函數(shù)時(shí)不會(huì)進(jìn)入函數(shù)體單步執(zhí)行其中的語(yǔ)句,而是直接執(zhí)行完函數(shù),并返回結(jié)果;按下F11鍵可以逐語(yǔ)句地單步執(zhí)行程序,即在執(zhí)行函數(shù)時(shí)會(huì)進(jìn)入函數(shù)體,單步執(zhí)行函數(shù)體中的語(yǔ)句。在函數(shù)體中調(diào)試程序時(shí),可以按Shift+F11鍵跳出函數(shù)體,繼續(xù)調(diào)試程序。,4刪除斷點(diǎn),在代碼窗口中單擊斷點(diǎn)圖標(biāo),可以刪除當(dāng)前的斷點(diǎn)。 在菜單中選擇“調(diào)試”/“刪除

14、所有斷點(diǎn)”,可以刪除當(dāng)前項(xiàng)目中的所有斷點(diǎn)。,2.2 MFC編程基礎(chǔ),2.2.1 MFC的基本概念 2.2.2 MFC的類層次 2.2.3 應(yīng)用程序結(jié)構(gòu)類 2.2.4 窗口類 2.2.5 簡(jiǎn)單值類型類 2.2.6 集合類 2.2.7 其他常用的MFC類,2.2.1 MFC的基本概念,MFC是Mircrosoft Foundation Class的縮寫(xiě),是微軟提供的在Windows操作系統(tǒng)中使用C+編寫(xiě)應(yīng)用程序的框架和引擎。MFC框架定義了開(kāi)發(fā)Windows應(yīng)用程序的輪廓,并且提供了實(shí)現(xiàn)用戶接口的標(biāo)準(zhǔn)方法,程序員只要根據(jù)預(yù)定義的接口把具體應(yīng)用程序的特性化的代碼添加到這個(gè)輪廓中。,MFC 9.0的主

15、要特性,提供對(duì)一些通用類的支持,例如列表類、數(shù)組類、集合類、字符串類、時(shí)間日期類、文件訪問(wèn)類等。 支持豐富的用戶界面,包括單文檔視圖(SDI)結(jié)構(gòu)、多文檔視圖(MDI)結(jié)構(gòu)、對(duì)話框、菜單、常用控件、打印預(yù)覽和打印等。 可以方便地開(kāi)發(fā)動(dòng)態(tài)鏈接庫(kù)(DLL)應(yīng)用程序。 支持多種數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù),包括ODBC API、MFC ODBC、DAO、OLEDB和ADO等。 使用ISAPI(網(wǎng)絡(luò)服務(wù)接口)、Windows Socket以及封裝的Win32 Internet接口,使網(wǎng)絡(luò)編程更加輕松便捷。 支持對(duì)象嵌入、對(duì)象鏈接和自動(dòng)化的OLE服務(wù)器和容器。 可以方便地生成和使用ActiveX控件。,在控制臺(tái)應(yīng)用程

16、序中使用MFC,2.2.2 MFC的類層次,2.2.3 應(yīng)用程序結(jié)構(gòu)類,1應(yīng)用程序線程支持類 2文檔類 3文檔模板類 4消息映射類 5CCmdUI類,2.2.4 窗口類,1框架窗口類 2視圖類 3對(duì)話框類 4通用控件類 5控件欄類 6屬性類 7文檔/視圖結(jié)構(gòu),2.2.5 簡(jiǎn)單值類型類,1Cstring類,聲明CString對(duì)象的方法如下: CString str1; 也可以在聲明CString對(duì)象時(shí)用字符串常量或者已經(jīng)聲明的CString對(duì)象為其賦值,例如: CString str2(This is a string.); 或者在聲明CString對(duì)象時(shí)使用賦值運(yùn)算符“=”給對(duì)象賦值,例如:

17、CString str3 = str2; CString str4 = This is a string.; 可以使用GetAt()函數(shù)和SetAt()函數(shù)訪問(wèn)CString對(duì)象中的單個(gè)字符,例如: str2.SetAt(0, t);/ str2將變成this is a string. char c = sr2.GetAt(0);/ 字符變量c的值為t 還可以像訪問(wèn)數(shù)組元素一樣,使用運(yùn)算符()訪問(wèn)單個(gè)字符的值,索引值從0開(kāi)始,例如: str20 = t;/ str2將變成this is a string. char c = sr20;/ 字符變量c的值為t,【例2.2】演示字符串之間的串聯(lián)操作

18、,CString str1 = This; CString str2 = str1 + ; str2 += is; CString str3(a string.); str2 += ; str2 += str3; printf(str2); 上面程序的輸出結(jié)果如下: This is a string.,【例2.3】演示使用比較運(yùn)算符對(duì)字符串進(jìn)行比較操作,CString str1 = boy; CString str2 = girl; int value = str1 = str2; / 因?yàn)閟tr1和str2不相等,所以value的值為0 printf(value=%dn, value); v

19、alue = str1 != str2;/ 因?yàn)閟tr1和str2不相等,所以value的值為1 printf(value=%dn, value); value = str1 str2;/ 因?yàn)閟tr1的值小于str2,所以value的值為1 printf(value=%dn, value);,【例2.4】演示使用Compare()函數(shù)和CompareNoCase()函數(shù)對(duì)字符串進(jìn)行比較操作的方法,CString str1 = boy; CString str2 = Boy; / 因?yàn)镃ompare()函數(shù)區(qū)分大小寫(xiě),所以value的值為1 int value = str1.Compare(s

20、tr2); printf(value=%dn, value); /因?yàn)镃ompareNoCase()函數(shù)區(qū)分不區(qū)分大小寫(xiě),所以value的值為0 value = str1.CompareNoCase(str2); printf(value=%dn, value);,【例2.5】演示使用Mid()函數(shù)、Left()函數(shù)和Right()函數(shù)對(duì)字符串進(jìn)行截取子串操作的方法,CString str1 = hello; printf(n%s, str1.Mid(1,2); printf(n%s, str1.Left(3); printf(n%s, str1.Right(2); 運(yùn)行結(jié)果如下: el he

21、l lo,【例2.6】演示使用Find()函數(shù)、ReverseFind()函數(shù)和FindOneOf()函數(shù)對(duì)字符串進(jìn)行查詢操作的方法,CString str1 = hello; printf(n%d, str1.Find(l); printf(n%d, str1.ReverseFind(l); printf(n%d, str1.FindOneOf(abcl); 運(yùn)行結(jié)果如下: 2 3 2,CTime類,CTime類用于管理日期和時(shí)間。每個(gè)CTime對(duì)象都和一個(gè)time_t類型的數(shù)據(jù)相對(duì)應(yīng)。實(shí)際上,time_t就是long類型,因此每個(gè)CTime對(duì)象表示的時(shí)間都對(duì)應(yīng)一個(gè)長(zhǎng)整型數(shù)據(jù)。CTime類可

22、以和CTimeSpan類結(jié)合使用,CTimeSpan代表兩個(gè)CTime對(duì)象的時(shí)間間隔。,(1)CTime對(duì)象的創(chuàng)建和賦值,CTime提供了多個(gè)構(gòu)造函數(shù),因此創(chuàng)建一個(gè)CTime對(duì)象的方法也很多。最簡(jiǎn)單的創(chuàng)建CTime對(duì)象的方法如下: CTime time1; 可以使用GetCurrentTime()函數(shù)將當(dāng)前系統(tǒng)日期和時(shí)間賦值到CTime對(duì)象中,代碼如下: time1 = CTime:GetCurrentTime(); 在創(chuàng)建CTime對(duì)象時(shí),可以在后面的括號(hào)中使用CTime對(duì)象為其賦值,例如: CTime time2(time1); 也可以在創(chuàng)建CTime對(duì)象時(shí)在后面的括號(hào)中使用年、月、日、時(shí)

23、、分、秒的值為其賦值,例如: CTime time2(2010, 2, 14, 12, 00, 00); 因?yàn)槊總€(gè)CTime對(duì)象都和一個(gè)time_t數(shù)據(jù)類型相對(duì)應(yīng),所以可以利用time_t數(shù)據(jù)給CTime對(duì)象賦值,例如: CTime time1 = CTime:GetCurrentTime(); time_t tt = time1.GetTime(); CTime time4(tt);,(2)CTime對(duì)象的格式輸出,為了方便獲取時(shí)間信息,可以利用Format()函數(shù)構(gòu)造CTime對(duì)象的文本字符串,例如: CTime time1 = CTime:GetCurrentTime(); CStrin

24、g str = time1.Format(%Y-%m-%d %H:%M:%S); printf(%sn, str.GetBuffer(); %Y表示4位年份,%m表示月份,%d表示日期中天的部分,%H表示小時(shí),%M表示分鐘,%S表示秒。,(3)獲取時(shí)間和日期的具體信息,GetYear,獲取CTime對(duì)象中的年份數(shù)字。 GetMonth,獲取CTime對(duì)象中的月份數(shù)字。 GetDay,獲取CTime對(duì)象日期中天的部分對(duì)應(yīng)的數(shù)字。 GetHour,獲取CTime對(duì)象中小時(shí)的數(shù)字。 GetMinute,獲取CTime對(duì)象中分鐘的數(shù)字。 GetSecond,獲取CTime對(duì)象中秒的數(shù)字。 GetDay

25、OfWeek,獲取CTime對(duì)象中星期對(duì)應(yīng)的數(shù)字。,【例2.7】演示獲取當(dāng)前系統(tǒng)日期和時(shí)間的具體信息的方法,CTime time1 = CTime:GetCurrentTime(); CString str = time1.Format(%Y-%m-%d %H:%M:%S); str.Format(%d年-%d月-%d日%d時(shí):%d分:%d秒星期%d, time1.GetYear(), time1.GetMonth(), time1.GetDay(), time1.GetHour(), time1.GetMinute(), time1.GetSecond(), time1.GetDayOfWe

26、ek(); printf(str.GetBuffer();,(4)使用CTimeSpan類處理時(shí)間段信息,CTimeSpan類表示兩個(gè)CTime對(duì)象的時(shí)間間隔,相當(dāng)于兩個(gè)CTime對(duì)象的差。CTimeSpan對(duì)象使用天數(shù)、小時(shí)數(shù)、分鐘數(shù)和秒數(shù)來(lái)描述時(shí)間間隔,定義一個(gè)CTimeSpan對(duì)象的方式如下: CTimeSpan span1(2, 1, 2, 0); / 設(shè)置2天1小時(shí)2分鐘的時(shí)間間隔 CTimeSpan span1(0, 2, 0, 10); / 設(shè)置2小時(shí)零10秒的時(shí)間間隔,【例2.8】演示利用運(yùn)算符(+=、+、-)操作CTime類和CTimeSpan對(duì)象,CTime time1 =

27、 CTime:GetCurrentTime(); CString strDateTime = time1.Format(%Y-%m-%d %H:%M:%S); printf(%sn, strDateTime.GetBuffer(); CTimeSpan span1(0, 1, 2, 0);/ 設(shè)置小時(shí)分鐘的時(shí)間間隔 time1 += span1;/ 在time1上加上小時(shí)分鐘的時(shí)間間隔 strDateTime = time1.Format(%Y-%m-%d %H:%M:%S); printf(%sn, strDateTime.GetBuffer(); CTime time2 = CTime:G

28、etCurrentTime(); CTimeSpan span2 = time1 - time2; printf(time1和time2的時(shí)間間隔為: %dn, span2.GetTotalSeconds();,2.2.6 集合類,1CStringArray類 2CStringList類,1CStringArray類,CStringArray是數(shù)組集合類,是CArray類的派生類,因此它擁有對(duì)象數(shù)組的一切特性。CStringArray類保存了一組連續(xù)存放的CString對(duì)象,而CString對(duì)象是可變長(zhǎng)度的。 (1)創(chuàng)建CStringArray對(duì)象 創(chuàng)建CStringArray對(duì)象的方法如下:

29、 CStringArray strArr; 可以使用GetAt()函數(shù)來(lái)訪問(wèn)CStringArray對(duì)象中的數(shù)組元素,也可以使用運(yùn)算符來(lái)獲取數(shù)組元素CString字符串,索引值從0開(kāi)始。 (2)在對(duì)象末尾添加元素 使用Add()函數(shù)可以在CStringArray對(duì)象數(shù)組的末尾添加一個(gè)新的CString對(duì)象。,【例2.9】演示使用Add()函數(shù)在CStringArray對(duì)象數(shù)組末尾添加新元素的方法,CStringArray strArr; CString str1(white); CString str2(yellow); strArr.Add(str1); strArr.Add(str2);

30、for(int i=0; istrArr.GetSize(); i+) printf(%sn, strArri); ,【例2.10】在例2.9的基礎(chǔ)上將CStringArray對(duì)象的第1個(gè)數(shù)組元素設(shè)置為blue,strArr.SetAt(0, blue); for(int i=0; istrArr.GetSize(); i+) printf(%sn, strArri); 運(yùn)行結(jié)果如下: blue yellow,【例2.11】在例2.9的基礎(chǔ)上在CStringArray對(duì)象的第1個(gè)數(shù)組元素后面添加一個(gè)元素,元素值為blue,strArr.InsertAt(1, blue); for(int i=

31、0; istrArr.GetSize(); i+) printf(%sn, strArri); 運(yùn)行結(jié)果如下: white blue yellow,【例2.12】在例2.9的基礎(chǔ)上向strArr對(duì)象中添加一個(gè)CStringArray對(duì)象strArr1,然后再查看strArr對(duì)象的內(nèi)容,CStringArray strArr1;/ 定義一個(gè)新的CStringArray對(duì)象 strArr1.Add(dog);/ 設(shè)置元素dog strArr1.Add(cat);/ 設(shè)置元素cat strArr.Append(strArr1);/ 在數(shù)組strArr后面添加strArr1 / 輸出數(shù)組strArr的

32、內(nèi)容,確認(rèn)其中包含strArr1 for(int i=0; istrArr.GetSize(); i+) printf(%sn, strArri); 運(yùn)行結(jié)果如下: white yellow dog cat,【例2.13】在例2.9的基礎(chǔ)上將數(shù)組對(duì)象strArr中的元素都賦值到新建的數(shù)組對(duì)象strArrary中,CStringArray strArray;/ 定義一個(gè)新的CStringArray對(duì)象 strArray.Copy(strArr); / 輸出數(shù)組strArr的內(nèi)容 for(int i=0; istrArr.GetSize(); i+) printf(%sn, strArri); 運(yùn)

33、行結(jié)果如下: white yellow,2CStringList類,(1)創(chuàng)建CStringList對(duì)象 創(chuàng)建CStringList對(duì)象的方法如下: CStringList strlist;,【例2.14】演示在鏈表的頭部和末端添加、獲取和刪除元素的方法,CStringList list; list.AddHead(white); printf(The head element is : %sn, list.GetHead().GetBuffer(); list.AddHead(red); printf(The head element is : %sn, list.GetHead().GetBuffer(); printf(The tail element is : %sn, list.GetTail().GetBuffer(); list.AddTail(black); printf(The tail element is : %sn, list.GetTail().GetBuffer(); list.RemoveHead(); printf(The head element is : %sn, list.GetHead().GetBuffer(); list.RemoveTail(); printf(The tail element is

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論