上機(jī)調(diào)試程序方法.ppt_第1頁
上機(jī)調(diào)試程序方法.ppt_第2頁
上機(jī)調(diào)試程序方法.ppt_第3頁
上機(jī)調(diào)試程序方法.ppt_第4頁
上機(jī)調(diào)試程序方法.ppt_第5頁
已閱讀5頁,還剩75頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

面向?qū)ο蟪绦蛟O(shè)計(jì),計(jì)算機(jī)與信息學(xué)院 李麗珊,學(xué)時(shí)安排,本課程共60學(xué)時(shí),3.5學(xué)分,理論教學(xué)40學(xué)時(shí),實(shí)踐教學(xué)20學(xué)時(shí),教學(xué)內(nèi)容與教材章節(jié)對應(yīng)關(guān)系,補(bǔ)充知識: 面向?qū)ο笙嚓P(guān)知識 MFC基礎(chǔ)和ViC可視化開發(fā)基礎(chǔ) UML相關(guān)知識,目錄,第1章 C+語言特點(diǎn),了解: C+與C的關(guān)系以及二者的相同點(diǎn)和不同點(diǎn); 掌握: C+的非面向?qū)ο笳Z言特征。,目的要求,C+的起源和特點(diǎn)、與C的關(guān)系 最簡單的C+程序 C+對C的擴(kuò)充 C+程序的編寫和實(shí)現(xiàn) 關(guān)于C+上機(jī)實(shí)踐,授課內(nèi)容,1.1 C+的起源和特點(diǎn)、與C的關(guān)系,C語言是七十年代初貝爾實(shí)驗(yàn)室的Dennis Richie 等人在B語言基礎(chǔ)上開發(fā)出來的。C最初是作為UNIX操作系統(tǒng)的開發(fā)語言為人們所認(rèn)識。七十年代末,隨著微型計(jì)算機(jī)的發(fā)展,C語言開始移植到非UNIX環(huán)境中,并逐步脫離UNIX系統(tǒng)成為一種獨(dú)立的程序設(shè)計(jì)語言。C 語言版本很多,為了讓開發(fā)出來的代碼能夠在多種平臺上運(yùn)行,1988年美國國家標(biāo)準(zhǔn)協(xié)會ANSI對C語言進(jìn)行了標(biāo)準(zhǔn)化,產(chǎn)生了ANSI C。,(1)C語言既具備高級語言的結(jié)構(gòu)和編程環(huán)境,又提供類似于匯編語言那樣的系統(tǒng)資源操縱能力及程序執(zhí)行效率。適合解決有實(shí)時(shí)要求的問題。,C 語言的主要特點(diǎn):,(2)有豐富的運(yùn)算符和數(shù)據(jù)類型,表達(dá)式類型多樣化,可以方便地實(shí)現(xiàn)在其他語言中較難實(shí)現(xiàn)的運(yùn)算,對各種不同類型的程序設(shè)計(jì)都有良好的適應(yīng)性。,(3)以函數(shù)為基礎(chǔ)實(shí)現(xiàn)程序的結(jié)構(gòu)化設(shè)計(jì),支持大型程序的多文件構(gòu)成及單個(gè)文件獨(dú)立編譯,適合大型復(fù)雜程序的設(shè)計(jì)。,(4)語言簡潔、緊湊,使用方便、靈活,書寫形式自由。,(5)可移植性好。,C+是由C發(fā)展成為的以面向?qū)ο鬄橹饕卣鞯恼Z言。作為C語言的超集,C+繼承了C的所有優(yōu)點(diǎn),又對數(shù)據(jù)類型做了擴(kuò)充,使得編譯系統(tǒng)可以檢查出更多類型錯(cuò)誤。,C+支持面向?qū)ο蟪绦蛟O(shè)計(jì),通過類和對象的概念把數(shù)據(jù)和對數(shù)據(jù)的操作封裝在一起,通過派生、繼承、重載和多態(tài)性等特征實(shí)現(xiàn)了軟件重用和程序自動生成,使得大型復(fù)雜軟件的構(gòu)造和維護(hù)變得更加有效和容易。,此外,在一致性(Consistency)檢查機(jī)制方面也作了加強(qiáng),提高了軟件開發(fā)的效率和質(zhì)量。,C+與C完全兼容,很多用C編寫的庫函數(shù)和應(yīng)用程序都可以為C+所用。,但正是由于與C兼容,使得C+不是純正的面向?qū)ο蟮恼Z言,它既支持面向?qū)ο蟪绦蛟O(shè)計(jì),也支持面向過程設(shè)計(jì)。但我們應(yīng)當(dāng)注意用面向?qū)ο蟮乃枷脒M(jìn)行設(shè)計(jì),以發(fā)揮出C+的優(yōu)勢。,C+有許多版本,國內(nèi)較為流行的有Microsoft公司的Visual C+。,C+對C的“增強(qiáng)”,表現(xiàn)在兩個(gè)方面: (1) 在原來面向過程的機(jī)制基礎(chǔ)上,對C語言的功能做了不少擴(kuò)充。 (2) 增加了面向?qū)ο蟮臋C(jī)制。 面向?qū)ο蟪绦蛟O(shè)計(jì),是針對開發(fā)較大規(guī)模的程序而提出來的,目的是提高軟件開發(fā)的效率。 學(xué)習(xí)C+,既要會利用C+進(jìn)行面向過程的結(jié)構(gòu)化程序設(shè)計(jì),也要會利用C+進(jìn)行面向?qū)ο蟮某绦蛟O(shè)計(jì)。,運(yùn)行結(jié)果: This is a C+ program.,1.2 最簡單的C+程序,#include /包含頭文件iostream using namespace std; /使用命名空間std int main( ) coutThis is a C+ program.; return 0; ,例1.1,用main代表“主函數(shù)”的名字。每一個(gè)C+程序都必須有一個(gè) main 函數(shù)。必須聲明main函數(shù)的類型,無返回值時(shí)要聲明為void類型。一般聲明為int,如程序正常結(jié)束,向操作系統(tǒng)返回一個(gè)零值,不能正常結(jié)束時(shí)返回一個(gè)非0值。,在初學(xué)C+時(shí),只需知道: 如果程序有輸入或輸出時(shí),必須使用“#include ”命令以提供必要的信息,同時(shí)要用“using namespace std;” ,使程序能夠使用這些信息,否則程序編譯時(shí)將出錯(cuò)。,“using namespace std; ” 的意思是“使用命名空間std”。C+標(biāo)準(zhǔn)庫中的類和函數(shù)是在命名空間std中聲明的,因此程序中如果需要用到C+標(biāo)準(zhǔn)庫,就需要用“using namespace std; ”作聲明,表示要用到命名空間std中的內(nèi)容。,文件iostream的作用是向程序提供輸入或輸出時(shí)所需要的一些信息。iostream是i-o-stream 3個(gè)詞的組合,代表“輸入輸出流”的意思。,#include using namespace std; int main( ) int a,b,sum; cinab; sum=a+b; cout“a+b=”sumendl; return 0; ,例1.2,#include using namespace std; int max(int x,int y) int z; if(xy) z=x; else z=y; return(z); int main( ) int a,b,m; cinab; m=max(a,b); cout“max=”m n; return 0; ,例1.3,例1.3的程序可以改寫如下: #include using namespace std; int main( ) int max(int x,int y); /對max函數(shù)作聲明 int a,b,c; cinab; c=max(a,b); /調(diào)用max函數(shù) couty) z=x; else z=y; return(z); ,int main( ) stud1.setdata( ); stud2.setdata( ); stud1.display( ); stud2.display( ); return 0; ,程序運(yùn)行情況如下: 1001 98.5 1002 76.5 輸出結(jié)果: num=1001 score=98.5 num=1002 score=76.5,#include using namespace std; class Student private: int num; int score; public: void setdata( ) cinnum; cinscore; void display( ) coutnum=numendl; coutscore=scoreendl; ; ; Student stud1,stud2;,例1.4:一個(gè)包含類和對象的C+程序。,在一個(gè)類中包含兩種成員: 數(shù)據(jù)和函數(shù),分別稱為數(shù)據(jù)成員和成員函數(shù)。在C+中把一組數(shù)據(jù)和有權(quán)調(diào)用這些數(shù)據(jù)的函數(shù)封裝在一起,組成一種稱為“類(class)”的數(shù)據(jù)結(jié)構(gòu)。 成員函數(shù)是用來對數(shù)據(jù)成員進(jìn)行操作的。也就是說,一個(gè)類是由一批數(shù)據(jù)以及對其操作的函數(shù)組成的。類可以體現(xiàn)數(shù)據(jù)的封裝性和信息隱蔽。 在大多數(shù)情況下,會把所有數(shù)據(jù)指定為私有,以實(shí)現(xiàn)信息隱蔽。 具有“類”類型特征的變量稱為“對象”(object)。,在上面的程序中: 數(shù)據(jù)成員num,score和成員函數(shù)setdata,display組成了一個(gè)名為Student的“類”類型。 在聲明Student類時(shí),把類中的數(shù)據(jù)和函數(shù)分為兩大類: private(私有的)和public(公用的)。 把全部數(shù)據(jù)(num,score)指定為私有的,把全部函數(shù)(setdata,display)指定為公用的。,1.3 C+對C的擴(kuò)充,使用以”/”開頭的注釋 對變量的定義可以出現(xiàn)在程序中的任何行(但必須在引用該變量之前) 提供了標(biāo)準(zhǔn)輸入輸出流cin和cout 用const定義常變量 函數(shù)模板,簡化同一類型的函數(shù)的編程工作 使用帶默認(rèn)值的參數(shù)的函數(shù),使函數(shù)的調(diào)用更加靈活,提供變量的引用類型,將引用作為函數(shù)形參,可以實(shí)現(xiàn)通過函數(shù)的調(diào)用來改變實(shí)參變量的值 增加了內(nèi)置函數(shù)(內(nèi)嵌函數(shù)),以提高程序的執(zhí)行效率 作用域運(yùn)算符:,這樣在局部變量作用域內(nèi)也能引用全局變量 用string類定義字符串變量,使字符串運(yùn)算更加方便 用new和delete運(yùn)算符代替malloc和free函數(shù),使分配動態(tài)空間更加方便,1.3 C+對C的擴(kuò)充(續(xù)),1.3.1 C+的輸入輸出,輸入和輸出并不是C+語言中的正式組成成分, 而是在編譯系統(tǒng)提供的I/O庫中定義的。 C+的輸出和輸入是用“流”(stream)的方式實(shí)現(xiàn)的。 C+中, 可以用cin和cout函數(shù)進(jìn)行輸入輸出.,cout語句的一般格式為 cout變量1變量2變量n; 在定義流對象時(shí),系統(tǒng)會在內(nèi)存中開辟一段緩沖區(qū),用來暫存輸入輸出流的數(shù)據(jù)。 在執(zhí)行cout語句時(shí),先把插入的數(shù)據(jù)順序存放在輸出緩沖區(qū)中,直到輸出緩沖區(qū)滿或遇到cout語句中的endl(或n,ends,flush)為止,此時(shí)將緩沖區(qū)中已有的數(shù)據(jù)一起輸出,并清空緩沖區(qū)。輸出流中的數(shù)據(jù)在系統(tǒng)默認(rèn)的設(shè)備(一般為顯示器)輸出。,1.3.2 用const定義常變量,加上關(guān)鍵字const,變量的值在程序運(yùn)行期間不能改變,這種變量稱為常變量(constant variable)。 在定義常變量時(shí)必須同時(shí)對它初始化(即指定其值),此后它的值不能再改變。 可以用表達(dá)式對常變量初始化 例:const int a=3; /用const來聲明為常變量,指定其值始終為3 const int b=3+6,c=3*cos(1.5); /b的值被指定為9,c的值被指定為3*cos(1.5),1.3.3 函數(shù)原型聲明,C+要求在函數(shù)調(diào)用之前必須對所調(diào)用的函數(shù)做函數(shù)原型聲明. 函數(shù)聲明的一般形式為: 函數(shù)類型 函數(shù)名(參數(shù)表); 參數(shù)表中一般包括參數(shù)類型和參數(shù)名,1.3.4 函數(shù)的重載,C+允許用同一函數(shù)名定義多個(gè)函數(shù),這些函數(shù)的參數(shù)個(gè)數(shù)和參數(shù)類型不同。這就是函數(shù)的重載(function overloading)。即對一個(gè)函數(shù)名重新賦予它新的含義,使一個(gè)函數(shù)名可以多用。 重載函數(shù)的參數(shù)個(gè)數(shù)、參數(shù)類型或參數(shù)順序3者中必須至少有一種不同,函數(shù)返回值類型可以相同也可以不同。,例1.6 求3個(gè)數(shù)中最大的數(shù),#include using namespace std; int main( ) int max(int a,int b,int c); double max(double a,double b,double c); long max(long a,long b,long c); int i1,i2,i3,i; cini1i2i3; i=max(i1,i2,i3); coutd1d2d3; d=max(d1,d2,d3); coutg1g2g3; g=max(g1,g2,g3); coutg_max=gendl; ,int max(int a,int b,int c) if(ba) a=b; if(ca) a=c; return a; double max(double a,double b,double c) if(ba) a=b; if(ca) a=c; return a; long max(long a,long b,long c) if(ba) a=b; if(ca) a=c; return a; ,運(yùn)行情況如下: 185 -76 567 (輸入3個(gè)整數(shù)) 56.87 90.23 -3214.78 (輸入3個(gè)實(shí)數(shù)) 67854 -912456 673456 (輸入3個(gè)長整數(shù)) i_max=567 (輸出3個(gè)整數(shù)的最大值) d_max=90.23 (輸出3個(gè)雙精度數(shù)的最大值) g_max=673456 (輸出3個(gè)長整數(shù)的最大值),#include using namespace std; int main( ) int max(int a,int b,int c); int max(int a,int b); int a=8,b=-12,c=27; couta) a=b; if(ca) a=c; return a; int max(int a,int b) if(ab) return a; else return b; ,例1.7 求兩個(gè)整數(shù)或3個(gè)整數(shù)中的最大數(shù)。,運(yùn)行情況如下: max(a,b,c)=27 max(a,b)=8,1.3.5 函數(shù)模板,所謂函數(shù)模板,實(shí)際上是建立一個(gè)通用函數(shù),其函數(shù)類型和形參類型不具體指定,用一個(gè)虛擬的類型來代表。這個(gè)通用函數(shù)就稱為函數(shù)模板。 凡是函數(shù)體相同的函數(shù)都可以用這個(gè)模板來代替,不必定義多個(gè)函數(shù),只需在模板中定義一次即可。在調(diào)用函數(shù)時(shí)系統(tǒng)會根據(jù)實(shí)參的類型來取代模板中的虛擬類型,從而實(shí)現(xiàn)了不同函數(shù)的功能。 用函數(shù)模板比函數(shù)重載更方便,程序更簡潔。,#include using namespace std; template /模板聲明,其中T為類型參數(shù) T max(T a,T b,T c) /定義一個(gè)通用函數(shù),用T作虛擬的類型名 if(ba) a=b; if(ca) a=c; return a; int main( ) int i1=185,i2=-76,i3=567,i; double d1=56.87,d2=90.23,d3=-3214.78,d; long g1=67854,g2=-912456,g3=673456,g; i=max(i1,i2,i3); /調(diào)用模板函數(shù),此時(shí)T被int取代 d=max(d1,d2,d3); /調(diào)用模板函數(shù),此時(shí)T被double取代 g=max(g1,g2,g3); /調(diào)用模板函數(shù),此時(shí)T被long取代 couti_max=iendl; coutf_max=fendl; coutg_max=gendl; return 0; ,例1.8 :,定義函數(shù)模板的一般形式為 template 或 template 通用函數(shù)定義 通用函數(shù)定義 類型參數(shù)可以不只一個(gè),可以根據(jù)需要確定個(gè)數(shù)。如 template 注意:只適用于函數(shù)的參數(shù)個(gè)數(shù)相同而類型不同,且函數(shù)體相同的情況,如果參數(shù)的個(gè)數(shù)不同,則不能用函數(shù)模板。,1.3.6 有默認(rèn)參數(shù)的函數(shù),多次調(diào)用同一函數(shù)且用同樣的實(shí)參,可以給形參一個(gè)默認(rèn)值。 這種方法比較靈活,可以簡化編程,提高運(yùn)行效率。 例1:函數(shù)聲明 float area(float r=6.5); 函數(shù)調(diào)用: area( ); /相當(dāng)于area(6.5); area(7.5); /不想取默認(rèn)值,通過實(shí)參另行給出。,有多個(gè)形參,可以使每個(gè)形參有一個(gè)默認(rèn)值,也可以只對一部分形參指定默認(rèn)值,另一部分形參不指定默認(rèn)值。 例2:函數(shù)聲明: float volume(float h,float r=12.5); 函數(shù)調(diào)用: volume(45.6); /相當(dāng)于volume(45.6,12.5) volume(34.2,10.4) /h的值為34.2,r的值為10.4 實(shí)參與形參的結(jié)合是從左至右順序進(jìn)行的。因此指定默認(rèn)值的參數(shù)必須放在形參表列中的最右端,否則出錯(cuò)。,例3: 函數(shù)聲明: void f1(float a,int b=0,int c,char d=a); /不正確 void f2(float a,int c,int b=0, char d=a); /正確 函數(shù)調(diào)用: f2(3.5, 5, 3, x) /形參的值全部從實(shí)參得到 f2(3.5, 5, 3) /最后一個(gè)形參的值取默認(rèn)值a f2(3.5, 5) /最后兩個(gè)形參的值取默認(rèn)值,b=0,d=a 在調(diào)用有默認(rèn)參數(shù)的函數(shù)時(shí),實(shí)參的個(gè)數(shù)可以與形參的個(gè)數(shù)不同,實(shí)參未給定的,從形參的默認(rèn)值得到值。,在使用帶有默認(rèn)參數(shù)的函數(shù)時(shí)有兩點(diǎn)要注意: (1) 什么時(shí)候設(shè)定默認(rèn)值: 函數(shù)定義中給出:函數(shù)的定義在函數(shù)調(diào)用之前 函數(shù)聲明中給出:函數(shù)的定義在函數(shù)調(diào)用之后,在函數(shù)定義時(shí)可以不給出默認(rèn)值。 (2) 一個(gè)函數(shù)不能既作為重載函數(shù),又作為有默認(rèn)參數(shù)的函數(shù)。,1.3.7 變量的引用,引用又稱別名。 例:int a; int 說明: (1)引用不是一種獨(dú)立的數(shù)據(jù)類型,必須與某一種類型的數(shù)據(jù)相聯(lián)系。 (2)引用與其所代表的變量共享同一內(nèi)存單元。 (3)區(qū)別聲明引用變量還是取地址操作:引用的聲明前面有類型符。 (4)對引用的初始化,可以用一個(gè)變量名,也可以用另一個(gè)引用 (5)引用初始化后不能再重新聲明為另一個(gè)變量的別名,1.3.8 內(nèi)置函數(shù),能在編譯時(shí)將所調(diào)用函數(shù)的代碼直接嵌入到主調(diào)函數(shù)中的函數(shù)稱為內(nèi)置函數(shù)(inline function),又稱內(nèi)嵌函數(shù)。在有些書中把它譯成內(nèi)聯(lián)函數(shù)。節(jié)省了調(diào)用函數(shù)所需要的時(shí)間和空間的開銷。 在函數(shù)首行的左端加一個(gè)關(guān)鍵字inline即可指定內(nèi)置函數(shù)。,例1.13 函數(shù)指定為內(nèi)置函數(shù)。 #include using namespace std; inline int max(int,int, int); /聲明函數(shù),注意左端有inline int main( ) int i=10,j=20,k=30,m; m=max(i,j,k); couta) a=b; /求a,b,c中的最大者 if(ca) a=c; return a;,例1.15 用內(nèi)置函數(shù)實(shí)現(xiàn)求平方值 #include using namespace std; inline int power( int x) return x*x ; int main( ) coutpower(2)endl; coutpower(1+1)endl; return 0; 運(yùn)行結(jié)果是: 4 (輸出power(2)的值) 4 (輸出power(1+1)的值),注意: 在聲明函數(shù)和定義函數(shù)時(shí)同時(shí)寫inline,或只在其中一處聲明inline,都能按內(nèi)置函數(shù)處理。 使用內(nèi)置函數(shù)可以節(jié)省運(yùn)行時(shí)間,但卻增加了目標(biāo)程序的長度。 內(nèi)置函數(shù)中不能包括復(fù)雜的控制語句,如循環(huán)語句和switch語句。 只有那些規(guī)模較小而又被頻繁調(diào)用的簡單函數(shù),才適合于聲明為inline函數(shù)。,1.3.9 作用域運(yùn)算符,作用域運(yùn)算符:,能指定所需要的作用域。 注意:不能用”:”訪問函數(shù)中的局部變量 見教材P26例1.16,1.3.10 字符串變量,C+新的一種數(shù)據(jù)類型字符串類型(string類型),可以用來定義變量,這就是字符串變量用一個(gè)名字代表一個(gè)字符序列。 實(shí)際上,string并不是C+語言本身具有的基本類型,它是在C+標(biāo)準(zhǔn)庫中聲明的一個(gè)字符串類,用這種類可以定義對象。每一個(gè)字符串變量都是string類的一個(gè)對象。 要使用string類的功能時(shí),必須有文件包含 #include ,1. 定義字符串變量:用類名string 2. 對字符串變量的賦值 可以用賦值語句對它賦予一個(gè)字符串常量 也可以用一個(gè)字符串變量給另一個(gè)字符串變量賦值。不要求兩個(gè)字符川長度相同。 可以對字符串變量中某一字符進(jìn)行操作 例1: string string1; /定義string1為字符串變量 string string2=China; /定義string2同時(shí)對其初始化 string1=Canada; string2=string1; 例2: string word=“Then”; /定義并初始化字符串變量word word2=a; /修改后word的值為”Than”,3. 字符串變量的輸入輸出 用在cin,cout語句中直接用字符串變量名輸入輸出字符串 如:cin string1; cout string2; 4. 字符串變量的運(yùn)算 字符串復(fù)制用賦值號“=” string1=string2; 字符串連接用加號“+” string string1=C+; string string2=Language; string1=string1 + string2; 字符串比較直接用關(guān)系運(yùn)算符,5. 字符串?dāng)?shù)組 在一個(gè)字符串?dāng)?shù)組中包含若干個(gè)元素,每個(gè)元素相當(dāng)于一個(gè)字符串變量。 不要求每個(gè)字符串元素具有相同的長度,即使對同一個(gè)元素而言,它的長度也是可以變化的。 在字符串?dāng)?shù)組的每一個(gè)元素中存放一個(gè)字符串。 每一個(gè)字符串元素中只包含字符串本身的字符而不包括0。,如: string name5; /定義一個(gè)字符串?dāng)?shù)組,它包含5個(gè)字符串元素 string name5=“Zhang”,”Li”,”Fun”,”Wang”,”Tan; 此時(shí)name數(shù)組的狀況如圖所示。,1.2.4 字符串運(yùn)算舉例,例1.17 輸入3個(gè)字符串,要求將字母按由小到大的順序輸出。 #include int main( ) string string1,string2,string3,temp; coutstring1string2string3; if(string2string3) temp=string2;string2=string3;string3=temp; /使串2串3 if(string1=string2) coutstring1“ “string2“ “string3endl; /如果串1串2,則串1串2串3 else if(string1=string3) coutstring2“ “string1“ “string3endl; /如果串1串2,且串1串3,則串2串1串3 else coutstring2“ “string3“ “string1endl; /如果串1串2,且串1串3,則串2串3串1 ,運(yùn)行情況如下: please input three strings: China U.S.A. Germany China Germany U.S.A.,1.3.11 動態(tài)分配/撤銷內(nèi)存的運(yùn)算符,C+提供了運(yùn)算符new和delete來取代C語言中的malloc和free函數(shù)。 new運(yùn)算符使用的一般格式為 new 類型 初值 用new分配數(shù)組空間時(shí)不能指定初值。如果由于內(nèi)存不足等原因而無法正常分配空間,則new會返回一個(gè)空指針NULL。 delete運(yùn)算符使用的一般格式為 delete 指針變量,#include #include using namespace std; struct Student /聲明結(jié)構(gòu)體類型Student string name; int num; char sex; ; int main( ) Student *p; /定義指向結(jié)構(gòu)體類型Student的數(shù)據(jù)的指針變量 p=new Student; /用new運(yùn)算符開辟一個(gè)存放Student數(shù)據(jù)的空間 p-name=Wang Fun; /向結(jié)構(gòu)體變量的成員賦值 p-num=10123; p-sex=m; coutnamenumsexendl; delete p; /撤銷該空間 return 0; ,例1.18 開辟空間以存放一個(gè)結(jié)構(gòu)體變量。,從C+源程序到可執(zhí)行程序的步驟: 編輯、預(yù)處理、編譯、連接、調(diào)試,1.4 C+程序的編寫和實(shí)現(xiàn),編輯是將源程序輸入計(jì)算機(jī),生成后綴為.cpp的文件。 編譯(compile)是將程序的源代碼轉(zhuǎn)換成機(jī)器語言代碼。編譯后,會生成一個(gè).obj的目標(biāo)文件,為源程序的目標(biāo)代碼。 目標(biāo)代碼需要相互銜接成為一個(gè)適應(yīng)一定操作系統(tǒng)環(huán)境的程序整體,即連接(link)。C+程序通常是通過同時(shí)連接一個(gè)或多個(gè)目標(biāo)文件以及一個(gè)或幾個(gè)庫而創(chuàng)建的。 庫(.lib)是一組由機(jī)器指令構(gòu)成的程序代碼,是可連接文件。庫有標(biāo)準(zhǔn)庫和用戶生成的庫。標(biāo)準(zhǔn)庫是由C+提供的,用戶生成的庫是由軟件開發(fā)商或程序員提供的。文件與庫連接的結(jié)果,即生成一個(gè)后綴為.exe的計(jì)算機(jī)可執(zhí)行程序。,1.5 關(guān)于C+上機(jī)實(shí)踐,C+的運(yùn)行環(huán)境,Microsoft公司的Visual C+ 6.0,Borland公司的Borland C+ 5.02等等,在Visual C+ 6.0 運(yùn)行環(huán)境中建立C+應(yīng)用程序的過程演示,建立新工程(Project),建立新文件(File),編輯、編譯及運(yùn)行程序,實(shí)例程序: /* 功 能:從鍵盤接收兩個(gè)整數(shù),輸出顯示其中的較大數(shù)。 */ # include void main( ) int a , b , max ; /聲明三個(gè)整型變量 cout a b ; /從鍵盤接收兩個(gè)整數(shù)賦給a、b if (a = b) max = a ; /若a b 則將a賦給max else max = b ; /否則將b賦給max cout “The max is : “ max endl ; /輸出max并換行 ,.cpp文件 .h文件 .exe文件,存入軟盤,將結(jié)果,關(guān)閉工程, 準(zhǔn)備輸入下一個(gè)程序,ALT COMAPP向?qū)?com應(yīng)用) 資源類創(chuàng)建向?qū)?普通 app向?qū)?app就是application應(yīng)用程序) 數(shù)據(jù)類程序 開發(fā)和設(shè)計(jì)附加向?qū)?擴(kuò)展存儲程序向?qū)?api擴(kuò)展向?qū)?制作文件 控制向?qū)?mfc app 向?qū)?用于生成dll) mfc app 向?qū)?用于生成exe) 新建數(shù)據(jù)類型向?qū)?通用程序 win32 應(yīng)用程序(做有界面的) win32 控制臺應(yīng)用程序(黑框) win32 動態(tài)鏈接庫 win32 靜態(tài)鏈接庫,比較Win32 Application和Win32 Console Application 都是工作在32位Windows環(huán)境的程序。 其中

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論