高級語言程序設(shè)計(jì)2-1_第1頁
高級語言程序設(shè)計(jì)2-1_第2頁
高級語言程序設(shè)計(jì)2-1_第3頁
高級語言程序設(shè)計(jì)2-1_第4頁
高級語言程序設(shè)計(jì)2-1_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1高級語言程序設(shè)計(jì)高級語言程序設(shè)計(jì)2-12-1 課程簡介:學(xué)習(xí)一門必須熟練掌握的、用來與計(jì)課程簡介:學(xué)習(xí)一門必須熟練掌握的、用來與計(jì)算機(jī)進(jìn)行算機(jī)進(jìn)行“溝通溝通”、指揮計(jì)算機(jī)為我們做事情的程序、指揮計(jì)算機(jī)為我們做事情的程序設(shè)計(jì)語言,是其他多門必修課程的前導(dǎo)課程。該學(xué)期設(shè)計(jì)語言,是其他多門必修課程的前導(dǎo)課程。該學(xué)期主要學(xué)習(xí)主要學(xué)習(xí)C+C+語言非面向?qū)ο蟛糠值膬?nèi)容,其中包括語言非面向?qū)ο蟛糠值膬?nèi)容,其中包括表達(dá)式、各種語句、分支與循環(huán)處理、數(shù)組與結(jié)構(gòu)、表達(dá)式、各種語句、分支與循環(huán)處理、數(shù)組與結(jié)構(gòu)、函數(shù)及其應(yīng)用等。函數(shù)及其應(yīng)用等。 本課程非常重要!一定要下功夫?qū)W好!本課程非常重要!一定要下功夫?qū)W好!2

2、課時(shí)安排課時(shí)安排 本學(xué)期:每周上課本學(xué)期:每周上課2 2課時(shí),上機(jī)課時(shí),上機(jī)3 3課時(shí)。課時(shí)。 總成績總成績100100分分 平時(shí)成績平時(shí)成績 上機(jī)實(shí)踐上機(jī)實(shí)踐成績期末筆試成績。成績期末筆試成績。 (下學(xué)期:高級語言程序設(shè)計(jì)(下學(xué)期:高級語言程序設(shè)計(jì)2-22-2,每周,每周上課上課3 3課時(shí),上機(jī)課時(shí),上機(jī)4 4課時(shí)?)課時(shí)?)3教學(xué)用書及參考書教學(xué)用書及參考書 教學(xué)用書:教學(xué)用書:高等教育出版社,高等教育出版社,高級語高級語言言C+C+程序設(shè)計(jì)程序設(shè)計(jì),劉,劉璟璟 編著,(編著,(p1-306p1-306,17.317.3元)。元)。 參考書:參考書: (1 1)清華大學(xué)出版社,)清華大學(xué)出

3、版社,C+C+程序設(shè)計(jì)教程序設(shè)計(jì)教程程,錢能,錢能 主編,(主編,(p1-468p1-468,39.539.5元)。元)。4參考書參考書 (2 2)電子工業(yè)出版社,)電子工業(yè)出版社,C+C+語言程序設(shè)計(jì)語言程序設(shè)計(jì),呂,呂風(fēng)翥風(fēng)翥 編著,(編著,(p1-415p1-415,3333元)。元)。 (3 3)高等教育出版社,)高等教育出版社,高級語言高級語言C+C+程序設(shè)計(jì)編程序設(shè)計(jì)編程范例與精解程范例與精解,周玉龍,周玉龍 劉劉璟璟 編著,(編著,(p1-561p1-561,3939元,元,20032003年年4 4月第月第1 1版)。版)。 (4 4)南開大學(xué)出版社,)南開大學(xué)出版社,C+C+

4、實(shí)用編程技術(shù)百例精實(shí)用編程技術(shù)百例精編與妙解編與妙解,周玉龍編著,(,周玉龍編著,(p1-461p1-461,4141元,元,20042004年年1 1月第月第1 1版)。版)。 5第第 1 1章章 C+C+語言概述語言概述 1.0 1.0 計(jì)算機(jī)基礎(chǔ)知識(補(bǔ)充)計(jì)算機(jī)基礎(chǔ)知識(補(bǔ)充) 1.1 1.1 計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展 1.2 1.2 面向?qū)ο笳Z言及其特點(diǎn)面向?qū)ο笳Z言及其特點(diǎn) 1.3 1.3 C+C+簡單程序?qū)嵗唵纬绦驅(qū)嵗?1.4 1.4 簡單實(shí)例程序中的語法點(diǎn)簡單實(shí)例程序中的語法點(diǎn) 1.5 1.5 執(zhí)行執(zhí)行C+C+程序程序61 10 0 計(jì)算機(jī)基礎(chǔ)知識(補(bǔ)充

5、)計(jì)算機(jī)基礎(chǔ)知識(補(bǔ)充) 1 10 01 1 計(jì)算機(jī)組成(硬件)計(jì)算機(jī)組成(硬件) 1 10 02 2 數(shù)的進(jìn)制(二進(jìn)制、八進(jìn)制、十六進(jìn)數(shù)的進(jìn)制(二進(jìn)制、八進(jìn)制、十六進(jìn)制)制)1 10 03 3 不同數(shù)制間的轉(zhuǎn)換不同數(shù)制間的轉(zhuǎn)換1 10 04 4 存儲器單元與機(jī)器指令存儲器單元與機(jī)器指令71 10 01 1 計(jì)算機(jī)組成計(jì)算機(jī)組成(硬件,(硬件,HardwareHardware) 1 1存儲器存儲器(RAM RAM Random Access Random Access MemoryMemory):):存儲程序指令和數(shù)據(jù)。存儲程序指令和數(shù)據(jù)。 2 2 中 央 處 理 器中 央 處 理 器 ( C

6、 P U C P U C e n t r a l C e n t r a l Processing UnitProcessing Unit):):又可細(xì)分為控制器(又可細(xì)分為控制器(CUCU)和運(yùn)算器(和運(yùn)算器(ALUALU),),即,即,CPU = CU + ALUCPU = CU + ALU。 3 3輸入輸出設(shè)備輸入輸出設(shè)備(I/O I/O Input / Input / OutputOutput):):也稱外部設(shè)備,負(fù)責(zé)對數(shù)據(jù)和程序也稱外部設(shè)備,負(fù)責(zé)對數(shù)據(jù)和程序進(jìn)行輸入與輸出進(jìn)行輸入與輸出。8附注:附注: (1 1)控制器控制器(CU CU Control Unit Control Un

7、it):):控控制和協(xié)調(diào)各個(gè)部件正常運(yùn)行。制和協(xié)調(diào)各個(gè)部件正常運(yùn)行。 (2 2)運(yùn)算器運(yùn)算器(ALU ALU Arithmetic Logic Arithmetic Logic UnitUnit):):進(jìn)行算術(shù)和邏輯運(yùn)算。進(jìn)行算術(shù)和邏輯運(yùn)算。另外:相對應(yīng)的另外:相對應(yīng)的計(jì)算機(jī)軟件計(jì)算機(jī)軟件(SoftwareSoftware)包括包括系統(tǒng)軟件(如,操作系統(tǒng)、編譯程序等)和應(yīng)系統(tǒng)軟件(如,操作系統(tǒng)、編譯程序等)和應(yīng)用軟件。用軟件。硬件硬件 - - “看得見,摸得著看得見,摸得著”;軟件軟件 - - “看不見,摸不著看不見,摸不著”。 91 10 02 2 數(shù)的進(jìn)制(二進(jìn)制、八進(jìn)數(shù)的進(jìn)制(二進(jìn)制、八

8、進(jìn)制、十六進(jìn)制)制、十六進(jìn)制) 1 1二進(jìn)制數(shù)(逢二進(jìn)制數(shù)(逢 2 2 進(jìn)進(jìn) 1 1) 每個(gè)每個(gè)二進(jìn)制數(shù)位(二進(jìn)制數(shù)位(BitBit)只有只有 0 0 和和 1 1。每位的每位的權(quán)(權(quán)(weightweight)從右往左依次為:從右往左依次為:2 2n n(n = 0n = 0,1 1,2 2,3 3 )。)。 例如例如, ,具有具有4 4位的二進(jìn)制數(shù)位的二進(jìn)制數(shù)10111011(2 2): :10111011(2 2) = 1 = 12 23 3 + 0 + 02 22 2 + 1 + 12 21 1 + 1 + 12 20 0 = 8 + 0 + 2 = 8 + 0 + 2 + 1 = 1

9、1+ 1 = 11(1010)。)。 最小的具有最小的具有4 4位的二進(jìn)制數(shù)為位的二進(jìn)制數(shù)為0 0,而最大的,而最大的4 4位二進(jìn)制數(shù)位二進(jìn)制數(shù)為為1515。10 與具有與具有4 4位的十進(jìn)制數(shù)位的十進(jìn)制數(shù)10111011進(jìn)行比對:進(jìn)行比對: 1011 = 11011 = 110103 3 + 0 + 010102 2 + 1 + 110101 1 + + 1 110100 0 = 1000 + 0 + 10 + 1 = 1011 = 1000 + 0 + 10 + 1 = 1011。十進(jìn)制數(shù)十進(jìn)制數(shù)5216052160: 52160 = 5 52160 = 510104 4 + 2 + 21

10、0103 3 + 1 + 110102 2 + + 6 610101 1 + 0 + 010100 0。 112 2八進(jìn)制數(shù)(逢八進(jìn)制數(shù)(逢 8 8 進(jìn)進(jìn) 1 1) 每位只能夠出現(xiàn):每位只能夠出現(xiàn):0 0、1 1、2 2、7 7。 每位的每位的權(quán)(權(quán)(weightweight)從右往左依次為:從右往左依次為:8 8n n(n = 0n = 0,1 1,2 2,3 3 )。)。 例如例如, ,具有具有4 4位的八進(jìn)制數(shù)位的八進(jìn)制數(shù)10111011(8 8): :10111011(8 8) = 1 = 18 83 3 + 0 + 08 82 2 + 1 + 18 81 1 + + 1 18 80

11、0 = 512 + 0 + 8 + 1 = 521 = 512 + 0 + 8 + 1 = 521(1010)。)。 12 3 3十六進(jìn)制數(shù)(逢十六進(jìn)制數(shù)(逢 16 16 進(jìn)進(jìn) 1 1) 每位只能夠出現(xiàn):每位只能夠出現(xiàn):0 0、1 1、2 2、9 9、A A、B B、C C、D D、E E、F F。 每位的每位的權(quán)(權(quán)(weightweight)從右往左從右往左依次為:依次為:1616n n(n = 0n = 0,1 1,2 2,3 3 )。)。 例如,具有例如,具有4 4位的十六進(jìn)制數(shù)位的十六進(jìn)制數(shù)10111011(1616):): 1011 1011(1616) = 1 = 116163

12、3 + 0 + 016162 2 + 1 + 116161 1 + + 1 116160 0 = 4096 + 0 + 16 + 1 = 4113 = 4096 + 0 + 16 + 1 = 4113(1010)。)。 13注意:注意:4 4個(gè)個(gè)BitBit位恰好表示位恰好表示 0 0 F F,共共1616個(gè)狀態(tài):個(gè)狀態(tài): 0 0、1 1、2 2、3 3、4 4、5 5、6 6、7 7、8 8、9 9、A A、B B、C C、D D、E E、F F,相當(dāng)于十六進(jìn)制數(shù)的一個(gè)位;而相當(dāng)于十六進(jìn)制數(shù)的一個(gè)位;而3 3個(gè)個(gè)BitBit位可表示位可表示 0 0 7 7,共,共8 8個(gè)狀態(tài),相當(dāng)于八進(jìn)制個(gè)

13、狀態(tài),相當(dāng)于八進(jìn)制數(shù)的一個(gè)位。數(shù)的一個(gè)位。141 10 03 3 不同數(shù)制間的轉(zhuǎn)換不同數(shù)制間的轉(zhuǎn)換1 1二進(jìn)制、八進(jìn)制、十六進(jìn)制數(shù)化為十進(jìn)制二進(jìn)制、八進(jìn)制、十六進(jìn)制數(shù)化為十進(jìn)制 轉(zhuǎn)換方法:各轉(zhuǎn)換方法:各數(shù)位值數(shù)位值乘以該位的乘以該位的權(quán)值權(quán)值(2 2n n、8 8n n、1616n n),),而后累加到一起。而后累加到一起。 15 2 2十進(jìn)制數(shù)化為二進(jìn)制十進(jìn)制數(shù)化為二進(jìn)制除二求余法除二求余法(“逐次除以逐次除以2 2,倒著排余數(shù),倒著排余數(shù)”)舉例:舉例:1919(1010) = = ?(?(2 2)19 19 2 = 9 2 = 9 1 1 (第一個(gè)余數(shù))(第一個(gè)余數(shù))9 9 2 = 4

14、2 = 4 1 1 (第二個(gè)余數(shù))(第二個(gè)余數(shù))4 4 2 = 2 2 = 2 0 0 2 2 2 = 1 2 = 1 0 0 1 1 2 = 0 2 = 0 1 1 (最后一個(gè)余數(shù))(最后一個(gè)余數(shù))所以:所以:1919(1010)= 10011= 10011(2 2)16常用做法常用做法 除二求余法( “逐次除以除二求余法( “逐次除以2 2,倒著排余數(shù)” ),倒著排余數(shù)” ) 舉例:舉例:1919(1010) = = ?(?(2 2) = 10011= 10011(2 2) 注意:逐次除以注意:逐次除以 2 2,直到商為,直到商為 0 0 時(shí)為止。時(shí)為止。 2 2 2 2 2 0 0 19

15、 9 4 2 1 1 1 1 0 0 余數(shù)余數(shù) 17 3 3八進(jìn)制與二進(jìn)制數(shù)之間的轉(zhuǎn)換八進(jìn)制與二進(jìn)制數(shù)之間的轉(zhuǎn)換 上面提到過:上面提到過:3 3個(gè)個(gè)BitBit位可表示位可表示 0 0 7 7,共,共8 8個(gè)狀態(tài)個(gè)狀態(tài),相當(dāng)于八進(jìn)制數(shù)的一個(gè)位。,相當(dāng)于八進(jìn)制數(shù)的一個(gè)位。 八化二八化二:“一位化三位,按序連一起一位化三位,按序連一起”。527527(8 8)= (101)(010)(111) = 101010111= (101)(010)(111) = 101010111(2 2) 二化八二化八:“三位化一位,按序連一起三位化一位,按序連一起”。101010111101010111(2 2)=

16、(101)(010)(111) = 527= (101)(010)(111) = 527184 4十六進(jìn)制與二進(jìn)制數(shù)之間的轉(zhuǎn)換十六進(jìn)制與二進(jìn)制數(shù)之間的轉(zhuǎn)換 上面提到過:上面提到過:4 4個(gè)個(gè)BitBit位恰好表示位恰好表示 0 0 F F,共共1616個(gè)個(gè)狀態(tài):狀態(tài): 0 0、1 1、2 2、9 9、A A、B B、C C、D D、E E、F F,相當(dāng)于相當(dāng)于十六進(jìn)制數(shù)的一個(gè)位。十六進(jìn)制數(shù)的一個(gè)位。 十六化二十六化二:“一位化四位,按序連一起一位化四位,按序連一起”。9 9F2(16) =(1001)(1111)(0010) =100111110010(2)F2(16) =(1001)(111

17、1)(0010) =100111110010(2) 二化十六二化十六:“四位化一位,按序連一起四位化一位,按序連一起”。100111110010(2) =(1001)(1111)(0010) =9100111110010(2) =(1001)(1111)(0010) =9F2(16) F2(16) 195 5十進(jìn)制轉(zhuǎn)換為十進(jìn)制轉(zhuǎn)換為R R進(jìn)制進(jìn)制(“逐次除以逐次除以R R,倒著排余數(shù)倒著排余數(shù)”) 例例1 1: 4805 4805(1010) ?(?(1616)48054805(1010) 12 12C5C5(1616) 注:也可先注:也可先“十化二十化二”,而后再,而后再“四位化四位化一位一

18、位”。 例例2 2:40194019(1010) ?(?(8 8)40194019(1010) 7663 7663(8 8) 注:也可先注:也可先“十化二十化二”,而后再,而后再“三位化三位化一位一位”。20 1 10 04 4 存儲器單元與機(jī)器指令存儲器單元與機(jī)器指令1 1字節(jié)(字節(jié)(ByteByte) 8 8 個(gè)二進(jìn)制數(shù)位個(gè)二進(jìn)制數(shù)位(8 8 BitBit)定為定為 1 1 個(gè)字節(jié)。個(gè)字節(jié)。 1 1 個(gè)字節(jié)可以表示十進(jìn)制數(shù)個(gè)字節(jié)可以表示十進(jìn)制數(shù) 0 0 255 255。 可表示的最大數(shù):可表示的最大數(shù):1111111111111111(2 2) 255 255(1010)。)。 21數(shù)據(jù)和

19、指令均使用字節(jié)(序列)來存儲數(shù)據(jù)和指令均使用字節(jié)(序列)來存儲 計(jì)算機(jī)只認(rèn)二進(jìn)制數(shù)計(jì)算機(jī)只認(rèn)二進(jìn)制數(shù)(以二進(jìn)制形式存(以二進(jìn)制形式存儲的代碼或數(shù)據(jù))。就是說,在計(jì)算機(jī)中,數(shù)儲的代碼或數(shù)據(jù))。就是說,在計(jì)算機(jī)中,數(shù)據(jù)和指令均使用字節(jié)(序列)來存儲。據(jù)和指令均使用字節(jié)(序列)來存儲。 不同的計(jì)算機(jī)系統(tǒng)、不同類型的數(shù)據(jù)、或不同的計(jì)算機(jī)系統(tǒng)、不同類型的數(shù)據(jù)、或不同的指令所使用的字節(jié)數(shù)以及表達(dá)形式可能不同的指令所使用的字節(jié)數(shù)以及表達(dá)形式可能互不相同?;ゲ幌嗤?22 2 2存儲器單元(也稱存儲單元)存儲器單元(也稱存儲單元) 存儲單元存儲單元:按字節(jié)安排。:按字節(jié)安排。 存儲地址存儲地址:順序號,為每個(gè)

20、存儲單元指定:順序號,為每個(gè)存儲單元指定一個(gè)序碼(號碼)。一個(gè)序碼(號碼)。233 3機(jī)器指令機(jī)器指令 計(jì)算機(jī)設(shè)計(jì)者把計(jì)算機(jī)可以完成的動作計(jì)算機(jī)設(shè)計(jì)者把計(jì)算機(jī)可以完成的動作編輯成一個(gè)機(jī)器指令表,并為每種動作賦予編輯成一個(gè)機(jī)器指令表,并為每種動作賦予一個(gè)二進(jìn)制代碼,通常由指令碼(操作碼)一個(gè)二進(jìn)制代碼,通常由指令碼(操作碼)和內(nèi)存地址(操作數(shù))來構(gòu)成。通過和內(nèi)存地址(操作數(shù))來構(gòu)成。通過機(jī)器指機(jī)器指令令來編寫的程序稱為來編寫的程序稱為機(jī)器語言程序機(jī)器語言程序。 24機(jī)器語言程序示例機(jī)器語言程序示例 例如,使用例如,使用“機(jī)器語言機(jī)器語言”編出的做一次加法編出的做一次加法“TOTAL = PRIC

21、E + TAX”TOTAL = PRICE + TAX”的程序?yàn)椋旱某绦驗(yàn)椋?156 156C / C / 取取6 6C C內(nèi)容送寄存器內(nèi)容送寄存器5 5 166 166D / D / 取取6 6D D內(nèi)容送寄存器內(nèi)容送寄存器6 65056 5056 / / 把二值相加,結(jié)果送寄存器把二值相加,結(jié)果送寄存器0 0 306 306E / E / 把寄存器把寄存器0 0中的結(jié)果送地址中的結(jié)果送地址6 6E E C000 / C000 / 停機(jī)停機(jī)254 4、內(nèi)存中機(jī)器指令的執(zhí)行內(nèi)存中機(jī)器指令的執(zhí)行 計(jì)算:計(jì)算:5+15=5+15=? (1 1)將)將00100010H H存儲單元的數(shù)據(jù)(存儲單元的

22、數(shù)據(jù)(5 5)取出,存放在)取出,存放在ALUALU。 (2 2)將將00110011H H存儲單元的數(shù)據(jù)(存儲單元的數(shù)據(jù)(1515)取出,與)取出,與 ALU ALU 的數(shù)據(jù)相加,運(yùn)算結(jié)果存放在的數(shù)據(jù)相加,運(yùn)算結(jié)果存放在ALUALU。 (3 3)將將 ALU ALU 中的數(shù)據(jù)(中的數(shù)據(jù)(2020)存放到)存放到00120012H H存儲單存儲單元。元。 (4 4)停止執(zhí)行)停止執(zhí)行 計(jì)算機(jī)依賴機(jī)器指令運(yùn)行,機(jī)器指令以及各種被計(jì)算機(jī)依賴機(jī)器指令運(yùn)行,機(jī)器指令以及各種被處理的數(shù)據(jù)都以二進(jìn)制形式存儲。處理的數(shù)據(jù)都以二進(jìn)制形式存儲。26 1.1 1.1 計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)

23、展1.1.1 1.1.1 機(jī)器語言與匯編語言機(jī)器語言與匯編語言1.1.2 1.1.2 高級語言高級語言1.1.3 1.1.3 面向?qū)ο蟮恼Z言面向?qū)ο蟮恼Z言271.1.1 1.1.1 機(jī)器語言與匯編語言機(jī)器語言與匯編語言 計(jì)算機(jī)剛問世時(shí),它的計(jì)算機(jī)剛問世時(shí),它的“能耐能耐”還比較小,還比較小,只能只能“看懂看懂”或或“理解理解”程序員用原始的程序員用原始的機(jī)器機(jī)器指令指令書寫的所謂書寫的所謂機(jī)器語言程序機(jī)器語言程序。 匯編語言匯編語言將機(jī)器指令映射為一些易于看將機(jī)器指令映射為一些易于看懂、易于記憶的助記符,如懂、易于記憶的助記符,如ADDADD,SUBSUB,MOVMOV等。等。但若要運(yùn)行但若要

24、運(yùn)行( (執(zhí)行執(zhí)行) )用匯編語言寫成的源程序時(shí),用匯編語言寫成的源程序時(shí),必須先運(yùn)行一個(gè)叫做必須先運(yùn)行一個(gè)叫做匯編程序系統(tǒng)匯編程序系統(tǒng)( (Assembler)Assembler)的軟件,由它首先把匯編語言源程序轉(zhuǎn)換為具的軟件,由它首先把匯編語言源程序轉(zhuǎn)換為具有相同功能的機(jī)器指令程序,然后再運(yùn)行機(jī)器有相同功能的機(jī)器指令程序,然后再運(yùn)行機(jī)器指令程序,得到所需的結(jié)果。指令程序,得到所需的結(jié)果。 28 1.1.2 1.1.2 高級語言高級語言 之所以稱其為高級語言,是相對于機(jī)器語之所以稱其為高級語言,是相對于機(jī)器語言與匯編語言來說,言與匯編語言來說,編程人員對它們的理解、編程人員對它們的理解、記憶

25、以及使用都要容易記憶以及使用都要容易的多。高級語言屏蔽了的多。高級語言屏蔽了諸多的機(jī)器細(xì)節(jié)問題,提高了語言的抽象層次,諸多的機(jī)器細(xì)節(jié)問題,提高了語言的抽象層次,更加接近于人們的思維方式以及自然語言。更加接近于人們的思維方式以及自然語言。 應(yīng)用較廣泛的幾種高級語言是:應(yīng)用較廣泛的幾種高級語言是:FORTRANFORTRAN、ALGOLALGOL、COBOLCOBOL、BASICBASIC、PASCALPASCAL、C C、LISPLISP、PROLOGPROLOG等。等。29編譯程序系統(tǒng)編譯程序系統(tǒng)( (Compiler)Compiler)的作用的作用 與對待匯編語言源程序相同,用高級語與對待匯

26、編語言源程序相同,用高級語言寫成的源程序也不能被計(jì)算機(jī)去直接執(zhí)行,言寫成的源程序也不能被計(jì)算機(jī)去直接執(zhí)行,也必須先運(yùn)行一個(gè)叫做也必須先運(yùn)行一個(gè)叫做編譯程序系統(tǒng)編譯程序系統(tǒng)( (Compiler)Compiler)的軟件,由它首先把高級語言源程的軟件,由它首先把高級語言源程序編譯轉(zhuǎn)換為目標(biāo)程序,然后再經(jīng)過連接而成序編譯轉(zhuǎn)換為目標(biāo)程序,然后再經(jīng)過連接而成為具有相同功能的可執(zhí)行程序?yàn)榫哂邢嗤δ艿目蓤?zhí)行程序( (機(jī)器指令程序機(jī)器指令程序) ),最后再運(yùn)行該可執(zhí)行程序最后再運(yùn)行該可執(zhí)行程序( (機(jī)器指令程序機(jī)器指令程序) ),方,方可得到所需的結(jié)果。可得到所需的結(jié)果。30 1.1.3 1.1.3 面向

27、對象的語言面向?qū)ο蟮恼Z言 上述高級語言上述高級語言( (非面向?qū)ο蟮恼Z言非面向?qū)ο蟮恼Z言) )存在的存在的主要問題是程序中的數(shù)據(jù)與操作分離,從而不主要問題是程序中的數(shù)據(jù)與操作分離,從而不能有效地組成與自然界中的具體事物緊密對應(yīng)能有效地組成與自然界中的具體事物緊密對應(yīng)的程序成分。而的程序成分。而面向?qū)ο蟮木幊陶Z言將客觀事面向?qū)ο蟮木幊陶Z言將客觀事物看作是具有屬性和行為的一個(gè)統(tǒng)一的整體物看作是具有屬性和行為的一個(gè)統(tǒng)一的整體 - - - 對象對象。通過抽象找出同一類對象的共同屬性。通過抽象找出同一類對象的共同屬性和行為,從而形成類和行為,從而形成類( (class)class);通過類的繼承通過類的

28、繼承與派生,可以方便地描述客觀世界中存在的事與派生,可以方便地描述客觀世界中存在的事物物( (即對象即對象) )間的那種間的那種“父類父類”與與“子類子類”屬性屬性和行為的繼承關(guān)系,從而能夠很方便地實(shí)現(xiàn)程和行為的繼承關(guān)系,從而能夠很方便地實(shí)現(xiàn)程序代碼的可重用問題。序代碼的可重用問題。31目前常用的面向?qū)ο笳Z言目前常用的面向?qū)ο笳Z言 目前,應(yīng)用最廣的面向?qū)ο笳Z言是在目前,應(yīng)用最廣的面向?qū)ο笳Z言是在C C語語言基礎(chǔ)上擴(kuò)充出來的言基礎(chǔ)上擴(kuò)充出來的C+C+語言語言,而科研前沿目,而科研前沿目前用的最多的要屬前用的最多的要屬M(fèi)icrosoftMicrosoft公司的公司的Visual Visual C+

29、 6.0C+ 6.0(簡稱簡稱VC6.0VC6.0),它是基于它是基于WindowsWindows窗窗口規(guī)范的一個(gè)口規(guī)范的一個(gè)C+C+的具體實(shí)現(xiàn)版本。的具體實(shí)現(xiàn)版本。 其它面向?qū)ο蟮木幊陶Z言還有其它面向?qū)ο蟮木幊陶Z言還有SmalltalkSmalltalk語言、語言、Simula67Simula67語言、以及語言、以及LISPLISP家族的面向?qū)易宓拿嫦驅(qū)ο笳Z言等等。象語言等等。 32 1.2 1.2 面向?qū)ο笳Z言及其特點(diǎn)面向?qū)ο笳Z言及其特點(diǎn)1.2.1 1.2.1 面向過程的面向過程的SPSP結(jié)構(gòu)化程序設(shè)計(jì)方法和結(jié)構(gòu)化程序設(shè)計(jì)方法和面向?qū)ο蟮拿嫦驅(qū)ο蟮腛OPOOP程序設(shè)計(jì)方法程序設(shè)計(jì)方法1.

30、2.2 1.2.2 C+C+語言對面向?qū)ο蠓椒ǖ闹С终Z言對面向?qū)ο蠓椒ǖ闹С?31.2.1 1.2.1 面向過程的面向過程的SPSP結(jié)構(gòu)化程序設(shè)計(jì)方法和面向結(jié)構(gòu)化程序設(shè)計(jì)方法和面向?qū)ο蟮膶ο蟮腛OPOOP程序設(shè)計(jì)方法程序設(shè)計(jì)方法 1. 1. 面向過程的面向過程的SPSP結(jié)構(gòu)化程序設(shè)計(jì)方法結(jié)構(gòu)化程序設(shè)計(jì)方法 結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是:采用自頂向下、的基本思想是:采用自頂向下、逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu);其逐步求精的設(shè)計(jì)方法和單入口單出口的控制結(jié)構(gòu);其程序結(jié)構(gòu)是按功能劃分為若干個(gè)程序結(jié)構(gòu)是按功能劃分為若干個(gè)基本模塊(函數(shù))基本模塊(函數(shù)),各模塊的功能相對獨(dú)立,而且

31、模塊之間的關(guān)系盡可能各模塊的功能相對獨(dú)立,而且模塊之間的關(guān)系盡可能地簡單,另外通過使用參數(shù)機(jī)制來規(guī)范程序模塊間的地簡單,另外通過使用參數(shù)機(jī)制來規(guī)范程序模塊間的調(diào)用接口;每一模塊的內(nèi)部均由順序、選擇和循環(huán)三調(diào)用接口;每一模塊的內(nèi)部均由順序、選擇和循環(huán)三種基本結(jié)構(gòu)來組成。種基本結(jié)構(gòu)來組成。 面向過程的面向過程的SPSP結(jié)構(gòu)化程序設(shè)計(jì)方法存在著一個(gè)主結(jié)構(gòu)化程序設(shè)計(jì)方法存在著一個(gè)主要缺點(diǎn):數(shù)據(jù)和處理數(shù)據(jù)的操作過程要缺點(diǎn):數(shù)據(jù)和處理數(shù)據(jù)的操作過程( (處理函數(shù)處理函數(shù)) )是相是相互獨(dú)立的實(shí)體,當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時(shí),所有相關(guān)的處理互獨(dú)立的實(shí)體,當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時(shí),所有相關(guān)的處理過程過程( (函數(shù)函數(shù)) )都要

32、進(jìn)行相應(yīng)的修改,從而使程序的可重都要進(jìn)行相應(yīng)的修改,從而使程序的可重用性明顯變差。用性明顯變差。 34 2. 2. 面向?qū)ο蟮拿嫦驅(qū)ο蟮腛OPOOP程序設(shè)計(jì)方法程序設(shè)計(jì)方法 面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)正是要彌補(bǔ)面向過程的正是要彌補(bǔ)面向過程的SPSP結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計(jì)方法的那一主要缺點(diǎn),它將數(shù)據(jù)以及對這化程序設(shè)計(jì)方法的那一主要缺點(diǎn),它將數(shù)據(jù)以及對這些數(shù)據(jù)進(jìn)行操作的方法些數(shù)據(jù)進(jìn)行操作的方法( (處理過程處理過程) )放在一起,形成一放在一起,形成一個(gè)相互依存、不可分離的整體個(gè)相互依存、不可分離的整體 - - 對象。通過對事物對象。通過對事物的抽象找出同一類對象的共同屬性的抽象找出同一類對象的

33、共同屬性( (靜態(tài)特征靜態(tài)特征) )和行為和行為( (動態(tài)特征動態(tài)特征) ),從而形成類。,從而形成類。類是面向?qū)ο蟪绦蛟O(shè)計(jì)方類是面向?qū)ο蟪绦蛟O(shè)計(jì)方法中的程序主體法中的程序主體,即是說,即是說,程序結(jié)構(gòu)將劃分為若干類程序結(jié)構(gòu)將劃分為若干類的基本模塊的基本模塊,類中的大多數(shù)數(shù)據(jù)只能用本類的方法進(jìn),類中的大多數(shù)數(shù)據(jù)只能用本類的方法進(jìn)行處理,以保障程序模塊的獨(dú)立性以及數(shù)據(jù)的安全性。行處理,以保障程序模塊的獨(dú)立性以及數(shù)據(jù)的安全性。類通過一個(gè)簡單的公共對外接口與外界發(fā)生聯(lián)系,對類通過一個(gè)簡單的公共對外接口與外界發(fā)生聯(lián)系,對象與對象之間通過消息進(jìn)行通訊。象與對象之間通過消息進(jìn)行通訊。 面向?qū)ο蟪绦蛟O(shè)計(jì)的三

34、大特征面向?qū)ο蟪绦蛟O(shè)計(jì)的三大特征是:封裝性、繼承是:封裝性、繼承性、多態(tài)性。性、多態(tài)性。 35 1.2.2 1.2.2 C+C+語言對面向?qū)ο蠓椒ǖ闹С终Z言對面向?qū)ο蠓椒ǖ闹С?C+C+語言是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,語言是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它對面向?qū)ο蟮某绦蛟O(shè)計(jì)方法進(jìn)行了較全面的它對面向?qū)ο蟮某绦蛟O(shè)計(jì)方法進(jìn)行了較全面的支持。支持。 1. 1. 支持?jǐn)?shù)據(jù)封裝支持?jǐn)?shù)據(jù)封裝 C+C+語言中的類語言中的類( (class)class)是支持?jǐn)?shù)據(jù)封裝的是支持?jǐn)?shù)據(jù)封裝的工具。通過類工具。通過類( (class)class)類型對所要處理的問題類型對所要處理的問題進(jìn)行抽象描述,從而將邏輯上相關(guān)

35、的數(shù)據(jù)與函進(jìn)行抽象描述,從而將邏輯上相關(guān)的數(shù)據(jù)與函數(shù)進(jìn)行封裝。數(shù)進(jìn)行封裝。36 2. 2. 支持繼承性支持繼承性 C+C+語言允許單繼承和多繼承。所謂多繼承,就語言允許單繼承和多繼承。所謂多繼承,就是從多個(gè)父類是從多個(gè)父類( (基類基類) )那兒繼承屬性和行為特征。另外,那兒繼承屬性和行為特征。另外,如有必要,派生類還可以生成它自己的派生類。即是如有必要,派生類還可以生成它自己的派生類。即是說,根據(jù)需要,類之間可形成多層次的派生以及繼承說,根據(jù)需要,類之間可形成多層次的派生以及繼承關(guān)系。關(guān)系。 3. 3. 支持多態(tài)性支持多態(tài)性 允許對函數(shù)和運(yùn)算符進(jìn)行重載體現(xiàn)出一種多態(tài)性。允許對函數(shù)和運(yùn)算符進(jìn)行

36、重載體現(xiàn)出一種多態(tài)性。通過在基類及其派生類間對虛函數(shù)進(jìn)行使用體現(xiàn)出另通過在基類及其派生類間對虛函數(shù)進(jìn)行使用體現(xiàn)出另一種多態(tài)性。一種多態(tài)性。 37 1.3 1.3 C+C+簡單程序?qū)嵗唵纬绦驅(qū)嵗?. 1. 在屏幕上顯示一句話在屏幕上顯示一句話 # #include include .h void main(void)void main(void) coutcoutHello world!Hello world!endlendl; ; 程序執(zhí)行后的輸出結(jié)果為程序執(zhí)行后的輸出結(jié)果為: :Hello world! Hello world! 38 2. 2. 求兩個(gè)數(shù)的和與積求兩個(gè)數(shù)的和與積# #in

37、clude include .h void main()void main()intint a,b,sum,prod; a,b,sum,prod;a=3;a=3;b=15;b=15;sum=a+b;sum=a+b;prod=aprod=a* *b;b;coutcoutThe sum is sumThe sum is sumendlendl; ; coutcoutThe prod is prodThe prod is prodendlendl; ; 39程序執(zhí)行后的輸出結(jié)果為程序執(zhí)行后的輸出結(jié)果為: :The sum is 18The sum is 18The prod is 45The pro

38、d is 45 40 3. 3. 計(jì)算圓面積與周長計(jì)算圓面積與周長# #include include .h void main()void main()const float const float paipai=3.14; =3.14; float radius;float radius;coutcoutEnter radius:;radius;radius;float area=float area=paipai* *radiusradius* *radius; radius; coutcoutnThenThe area of circle is ; area of circle is

39、; coutcoutareaareaendlendl; ; float circum=2float circum=2* *paipai* *radius; radius; coutcoutThe circum of circle is circumThe circum of circle is circumendlendl; ; 41程序執(zhí)行后的輸出結(jié)果為程序執(zhí)行后的輸出結(jié)果為: :Enter radius:Enter radius:2.52.5The area of circle is 19.625The area of circle is 19.625The circum of circl

40、e is 15.7The circum of circle is 15.742 1.4 1.4 簡單實(shí)例程序中的語法點(diǎn)簡單實(shí)例程序中的語法點(diǎn) 1.1. mainmain函數(shù)函數(shù)是所有是所有C+C+程序所必須的。最簡單的程序所必須的。最簡單的合法合法C+C+程序是:程序是:main()main()它沒有錯(cuò)誤,但什么事都不做。它沒有錯(cuò)誤,但什么事都不做。 2.2. 以雙斜杠以雙斜杠(/)(/)開頭直到行末的全體開頭直到行末的全體( (符號符號) )稱稱為為注解注解。注解將被當(dāng)作空格處理。注解將被當(dāng)作空格處理。C+C+還允許使用第二還允許使用第二種注解方式:以有序雙符號種注解方式:以有序雙符號 /

41、/* * 開始開始( (往后往后), ), 直到直到第一次遇見有序雙符號第一次遇見有序雙符號 * */ / 為止的全體為止的全體( (符號符號) )也稱也稱為注解。第二種注解方式可以占一行至任意多行。為注解。第二種注解方式可以占一行至任意多行。43 3.3. 程序中涉及的數(shù)據(jù),以程序中涉及的數(shù)據(jù),以常量和變量常量和變量的的形式出現(xiàn),變量的值在程序執(zhí)行中可以被改變。形式出現(xiàn),變量的值在程序執(zhí)行中可以被改變。常量又分為字面常量和有名常量,如常量又分為字面常量和有名常量,如3 3與與1515等等都為字面常量,而通過都為字面常量,而通過“const float const float paipai=3

42、.14;”=3.14;”說明的說明的paipai則被稱為有名常量則被稱為有名常量, , 它它們的值在程序中均不可改變。們的值在程序中均不可改變。 常量和變量都具有各自的數(shù)據(jù)類型常量和變量都具有各自的數(shù)據(jù)類型。C+C+的四種基本數(shù)據(jù)類型為:的四種基本數(shù)據(jù)類型為:intint、floatfloat、charchar、voidvoid,它們分別代表整型它們分別代表整型( (intint) ),浮點(diǎn)型浮點(diǎn)型( (float)float),字符型字符型( (char)char),以及無值型以及無值型( (void)void)。 44 程序中用到的所有程序中用到的所有變量以及有名常量都必須在使變量以及有名

43、常量都必須在使用前先說明其數(shù)據(jù)類型用前先說明其數(shù)據(jù)類型。通過如下格式的語句來說明。通過如下格式的語句來說明一批一批( (如如n n個(gè)個(gè)) )變量的數(shù)據(jù)類型:變量的數(shù)據(jù)類型: , . , , . , ;n; 變量名由用戶任起,但要求滿足以下變量名由用戶任起,但要求滿足以下C+C+標(biāo)識符的標(biāo)識符的語法:語法:標(biāo)識符標(biāo)識符是由字母或下劃線開頭的后跟是由字母或下劃線開頭的后跟0 0到任意多到任意多個(gè)字母、數(shù)字或下劃線所組成的符號串。除變量名外,個(gè)字母、數(shù)字或下劃線所組成的符號串。除變量名外,程序員為有名常量、用戶自定義類型、函數(shù)及其參數(shù)、程序員為有名常量、用戶自定義類型、函數(shù)及其參數(shù)、類、對象等各種成

44、分所起的名字也都必須是一個(gè)標(biāo)識類、對象等各種成分所起的名字也都必須是一個(gè)標(biāo)識符。符。 45 4. 4. 每個(gè)每個(gè)C+C+程序都是一個(gè)符號的序列。程序都是一個(gè)符號的序列。C+C+語言的基本符號由數(shù)字語言的基本符號由數(shù)字(0-9)(0-9)、大小寫英、大小寫英文字母文字母( (A-ZA-Z,a-z)a-z)、以及包括空格在內(nèi)的特以及包括空格在內(nèi)的特殊符號組成。殊符號組成。 由由符號符號構(gòu)成構(gòu)成單詞單詞,由單詞構(gòu)成,由單詞構(gòu)成語句語句,由語句構(gòu)成,由語句構(gòu)成程序程序( (相當(dāng)于文章相當(dāng)于文章) )。 特殊符號可充當(dāng)運(yùn)算符特殊符號可充當(dāng)運(yùn)算符( (如:如:+ - + - * * / / = ! 等等)

45、 )、分割符、分割符( (如:,如:, ; : 等等) )。另外,下劃線、空格、句點(diǎn)等也屬于特。另外,下劃線、空格、句點(diǎn)等也屬于特殊符號。殊符號。 46 5. 5. C+C+語言的單詞主要分為以下五種:語言的單詞主要分為以下五種:關(guān)鍵字關(guān)鍵字( (也稱保留字,如,也稱保留字,如,intint、floatfloat、constconst等等) ),標(biāo)識符標(biāo)識符 ( (如,變量名及有名常量名等各種名字如,變量名及有名常量名等各種名字) ),字面常量字面常量( (如,如,4343、3.143.14等等) ),運(yùn)算符運(yùn)算符( (如,如,+ +、= =、* * 等等) ),分割符分割符( (如,如, 、

46、 、;等、;等) )。 每一個(gè)每一個(gè)C+C+關(guān)鍵字關(guān)鍵字( (保留字保留字) )都具有自己特定的使都具有自己特定的使用含義,用戶程序中不可再將它們用作自定義標(biāo)識符。用含義,用戶程序中不可再將它們用作自定義標(biāo)識符。C+C+預(yù)定義的關(guān)鍵字均由小寫字母構(gòu)成,今后將在不同預(yù)定義的關(guān)鍵字均由小寫字母構(gòu)成,今后將在不同章節(jié)陸續(xù)用到那些關(guān)鍵字章節(jié)陸續(xù)用到那些關(guān)鍵字( (注意,對于某一個(gè)具體的編注意,對于某一個(gè)具體的編譯實(shí)現(xiàn)來說,可能還會再擴(kuò)充一些不同的關(guān)鍵字,使譯實(shí)現(xiàn)來說,可能還會再擴(kuò)充一些不同的關(guān)鍵字,使用時(shí)請留意用時(shí)請留意) )。請參看書。請參看書p33p33的表的表2.22.2(其中列出了(其中列出了

47、C+C+基本關(guān)鍵字)?;娟P(guān)鍵字)。 47 6. 6. C+C+語言的語言的基本語句基本語句主要分為以下幾種:主要分為以下幾種:數(shù)據(jù)說明數(shù)據(jù)說明( (定義定義) )語句、賦值語句、表達(dá)式語句、語句、賦值語句、表達(dá)式語句、流程控制語句、復(fù)合語句等。流程控制語句、復(fù)合語句等。 如,語句如,語句“intint a,b,sum,prod;” a,b,sum,prod;”為為數(shù)據(jù)數(shù)據(jù)說明說明( (定義定義) )語句語句,它說明,它說明a a、b b、sumsum及及prodprod為為4 4個(gè)個(gè)intint型型( (整型整型) )變量,程序中可將它們當(dāng)作變量,程序中可將它們當(dāng)作4 4個(gè)個(gè)整型數(shù)據(jù)來使用。

48、而語句整型數(shù)據(jù)來使用。而語句“sum=a+b;”sum=a+b;”則為則為賦賦值語句值語句,負(fù)責(zé)算出,負(fù)責(zé)算出a+ba+b之值并把結(jié)果值賦給變之值并把結(jié)果值賦給變量量sumsum。48 7. 7. 數(shù)據(jù)的數(shù)據(jù)的輸入輸出輸入輸出是每個(gè)實(shí)用程序必不是每個(gè)實(shí)用程序必不可少的組成部分??缮俚慕M成部分?!拜斎胼斎搿毕虺绦蛱峁┮庸は虺绦蛱峁┮庸さ某跏紨?shù)據(jù),而的初始數(shù)據(jù),而“輸出輸出”則將運(yùn)算結(jié)果顯示則將運(yùn)算結(jié)果顯示( (或保存或保存) )到某個(gè)指定文件中。到某個(gè)指定文件中。 C+C+含有兩個(gè)特殊文件,一個(gè)為標(biāo)準(zhǔn)流對含有兩個(gè)特殊文件,一個(gè)為標(biāo)準(zhǔn)流對象象cincin,它代表鍵盤它代表鍵盤,是,是C+C+的

49、標(biāo)準(zhǔn)輸入設(shè)備;的標(biāo)準(zhǔn)輸入設(shè)備;而另一個(gè)為標(biāo)準(zhǔn)流對象而另一個(gè)為標(biāo)準(zhǔn)流對象coutcout,它代表屏幕它代表屏幕,是,是C+C+的標(biāo)準(zhǔn)輸出設(shè)備。的標(biāo)準(zhǔn)輸出設(shè)備。 49 往往coutcout( (即屏幕即屏幕) )上輸出信息時(shí),通過上輸出信息時(shí),通過“插插入入”運(yùn)算符運(yùn)算符“” (“” (也稱輸出運(yùn)算符也稱輸出運(yùn)算符) ) 來實(shí)現(xiàn),來實(shí)現(xiàn),如,語句如,語句“coutcoutThe sum is sum;” The sum is ”(“”(也稱抽取或輸入運(yùn)算符也稱抽取或輸入運(yùn)算符) )來來實(shí)現(xiàn),如,語句實(shí)現(xiàn),如,語句“cincinradius;”radius;”的執(zhí)行將等的執(zhí)行將等待用戶從鍵盤輸入一個(gè)

50、浮點(diǎn)數(shù),而后系統(tǒng)將該待用戶從鍵盤輸入一個(gè)浮點(diǎn)數(shù),而后系統(tǒng)將該數(shù)賦值給變量數(shù)賦值給變量radiusradius。 50 8. 8. 字符串常量字符串常量( (簡稱為字符串簡稱為字符串) )是由雙引號括起來是由雙引號括起來的字符序列。雙引號為定界符的字符序列。雙引號為定界符, , 不屬于字符串常量的不屬于字符串常量的一部分。雖然字符串中的每個(gè)字符在內(nèi)存中只占一部分。雖然字符串中的每個(gè)字符在內(nèi)存中只占1 1個(gè)字個(gè)字節(jié),但整個(gè)字符串所占內(nèi)存的字節(jié)數(shù)卻為字符串的長節(jié),但整個(gè)字符串所占內(nèi)存的字節(jié)數(shù)卻為字符串的長度加一。是因?yàn)橄到y(tǒng)自動在每個(gè)字符串常量的末字符度加一。是因?yàn)橄到y(tǒng)自動在每個(gè)字符串常量的末字符后加

51、上了一個(gè)后加上了一個(gè)“空字符空字符”(”(作為結(jié)束標(biāo)志作為結(jié)束標(biāo)志) )。系統(tǒng)使用。系統(tǒng)使用轉(zhuǎn)義字符轉(zhuǎn)義字符00來表示來表示“空字符空字符”。注意,。注意,字符字符AA在內(nèi)存占在內(nèi)存占1 1個(gè)字節(jié),而字符串個(gè)字節(jié),而字符串“A”A”則占則占2 2個(gè)字節(jié)個(gè)字節(jié)。 往往coutcout( (即屏幕即屏幕) )上輸出字符串常量可以對用戶起上輸出字符串常量可以對用戶起到提示作用。對字符串的處理通常與字符數(shù)組和指針到提示作用。對字符串的處理通常與字符數(shù)組和指針有關(guān)。有關(guān)。 51 1.5 1.5 執(zhí)行執(zhí)行C+C+程序程序一一. . 一般步驟一般步驟 每一個(gè)每一個(gè)C+C+程序從輸入計(jì)算機(jī)到執(zhí)行(運(yùn)行)都要程

52、序從輸入計(jì)算機(jī)到執(zhí)行(運(yùn)行)都要按照如下的步驟來進(jìn)行:按照如下的步驟來進(jìn)行: = = 編輯編輯 = = 編譯編譯 = = 連接連接 = = 運(yùn)行。運(yùn)行。 1. 1. 編輯編輯 : : 借助某個(gè)編輯器把程序代碼輸入到計(jì)借助某個(gè)編輯器把程序代碼輸入到計(jì)算機(jī)中。算機(jī)中。 2. 2. 編譯編譯 : : 借助編譯器把源程序編譯成目標(biāo)程序,借助編譯器把源程序編譯成目標(biāo)程序,通常生成擴(kuò)展名為通常生成擴(kuò)展名為. .objobj的目標(biāo)文件。的目標(biāo)文件。 3. 3. 連接連接 : : 用連接器將編譯成功的目標(biāo)文件與庫用連接器將編譯成功的目標(biāo)文件與庫文件等連接成為一個(gè)可執(zhí)行文件。可執(zhí)行文件的擴(kuò)展文件等連接成為一個(gè)可

53、執(zhí)行文件??蓤?zhí)行文件的擴(kuò)展名為名為. .exeexe。 4. 4. 運(yùn)行運(yùn)行 : : 執(zhí)行上述連接成功的執(zhí)行上述連接成功的. .exeexe可執(zhí)行文件。可執(zhí)行文件。 52書書P51P51的圖的圖2.22.2 運(yùn)行 圖 2.2 源程序編譯為目標(biāo)程序 源程序 (C+語言) 目標(biāo)程序 (機(jī)器語言) 編譯系統(tǒng) (Compiler) 53書書P52P52的圖的圖2.32.3 圖 2.3 C+程序的編寫,編譯,運(yùn)行過程 54 二二. . 在在VC6.0VC6.0集成開發(fā)環(huán)境下執(zhí)行集成開發(fā)環(huán)境下執(zhí)行C+C+程序的最簡單程序的最簡單步驟步驟 - - 詳細(xì)用法請參看書詳細(xì)用法請參看書p288p288的附錄的附錄

54、A A 首先啟動并運(yùn)行首先啟動并運(yùn)行VC6.0VC6.0,進(jìn)入到它的進(jìn)入到它的集成開發(fā)環(huán)集成開發(fā)環(huán)境境窗口。接著創(chuàng)建窗口。接著創(chuàng)建工程工程并輸入源程序代碼。其操作步并輸入源程序代碼。其操作步驟為:驟為:“File” “New” “Projects” File” “New” “Projects” “Win32 Console Application” “Win32 Console Application” (右上處第二行)右上處第二行)“Location”Location”文本框中填入如文本框中填入如“d:d:mydirmydir”(右上右上處第一行)處第一行)“Project name”Pro

55、ject name”文本框中填入如文本框中填入如“proj1” “OK” “Finish” “OK” proj1” “OK” “Finish” “OK” “Project” “Add To Project” “New” “Project” “Add To Project” “New” “C+ Source File” “C+ Source File” (右中處)右中處)“File”File”文本框文本框中填入如中填入如“exe1”exe1”的文件名(此時(shí)系統(tǒng)將使用的文件名(此時(shí)系統(tǒng)將使用exe1.exe1.cppcpp的文件來保存所鍵入的源程序)的文件來保存所鍵入的源程序) “ “OK” OK

56、” 鍵入具體程序。鍵入具體程序。 55 例如:例如:# #include include .h void main()void main()coutcoutHello world!Hello world!endlendl; ; 注意:在注意:在“Location”Location”文本框中填入如文本框中填入如“d:d:mydirmydir”,這這是假設(shè)準(zhǔn)備在是假設(shè)準(zhǔn)備在d d磁盤的磁盤的mydirmydir文件夾即子目錄下存放與文件夾即子目錄下存放與工程工作區(qū)工程工作區(qū)相關(guān)的所有文件及其相關(guān)信息(當(dāng)相關(guān)的所有文件及其相關(guān)信息(當(dāng)d d磁盤上不存在磁盤上不存在mydirmydir文件夾時(shí),文件夾

57、時(shí),系統(tǒng)將自動創(chuàng)建出該名字的文件夾。若準(zhǔn)備指定其他位置,則要系統(tǒng)將自動創(chuàng)建出該名字的文件夾。若準(zhǔn)備指定其他位置,則要在此處填入其相關(guān)在此處填入其相關(guān)“路徑路徑”),當(dāng)然也可通過點(diǎn)擊其右部的),當(dāng)然也可通過點(diǎn)擊其右部的“”按鈕去選擇并指定另外的已存在文件夾位置。按鈕去選擇并指定另外的已存在文件夾位置。56 最后對所輸入的程序進(jìn)行最后對所輸入的程序進(jìn)行編譯編譯、鏈接鏈接而后而后運(yùn)行運(yùn)行(得(得出結(jié)果)。此出結(jié)果)。此3 3個(gè)步驟所使用的菜單命令依次為:個(gè)步驟所使用的菜單命令依次為: “Build”“Compiler Build”“Compiler ”; “Build”“Build “Build”“

58、Build ”; “Build”“Execute “Build”“Execute ”。 程序執(zhí)行結(jié)束后,可通過程序執(zhí)行結(jié)束后,可通過“File” “Close File” “Close Workspace”Workspace”關(guān)閉相關(guān)的工作區(qū)窗口關(guān)閉相關(guān)的工作區(qū)窗口,從而結(jié)束了一個(gè),從而結(jié)束了一個(gè)程序從輸入到執(zhí)行的全過程,而重新回到剛剛啟動程序從輸入到執(zhí)行的全過程,而重新回到剛剛啟動VC6.0VC6.0時(shí)的那一個(gè)初始畫面(窗口)。時(shí)的那一個(gè)初始畫面(窗口)。57 若要若要打開某個(gè)已關(guān)閉的工作區(qū)打開某個(gè)已關(guān)閉的工作區(qū)WorkspaceWorkspace去去再一次修改或執(zhí)行其相關(guān)程序時(shí),可通過再一

59、次修改或執(zhí)行其相關(guān)程序時(shí),可通過“File” “Open Workspace”File” “Open Workspace”,并在并在“查查找范圍找范圍”處指定具體的工程文件夾(如,處指定具體的工程文件夾(如,“mydirmydir”下的下的“proj1”proj1”),),而后通過鼠標(biāo)單而后通過鼠標(biāo)單擊選定擊選定“j1.dswdsw”,再單擊右下角處的再單擊右下角處的“打開打開”。 注:打開某個(gè)已關(guān)閉工作區(qū)注:打開某個(gè)已關(guān)閉工作區(qū)WorkspaceWorkspace的另的另一種常用方法是,通過一種常用方法是,通過“資源管理器資源管理器”找到相找到相關(guān)的工程文件夾,如關(guān)的工程文

60、件夾,如“mydirmydir”下的下的“proj1”proj1”,選定該文件夾下的選定該文件夾下的“j1.dswdsw”,雙擊該文雙擊該文件。件。58例:從編程到運(yùn)行一個(gè)完整程序例:從編程到運(yùn)行一個(gè)完整程序 編程序,從鍵盤輸入整數(shù)編程序,從鍵盤輸入整數(shù)x x、y y,計(jì)算計(jì)算出出 x x2 2 + x + x y y 以及以及w = 2x + yw = 2x + y2 2,并將結(jié)果顯示在屏幕上。并將結(jié)果顯示在屏幕上。59【程序編制】【程序編制】# #include include .h void main() void main() intint x,y; double w

溫馨提示

  • 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

提交評論