




已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C+語言程序設(shè)計(jì),課程的性質(zhì)、任務(wù)與要求,C+語言是從C語言發(fā)展演變而來的。它包含了C的全部功能,并克服了C的不足,是目前使用廣泛的程序設(shè)計(jì)語言。它包含兩部分內(nèi)容: 1. C+結(jié)構(gòu)化程序設(shè)計(jì)基礎(chǔ)知識(shí)及設(shè)計(jì)方法(18章) 2. C+面向?qū)ο蟮幕舅枷爰霸O(shè)計(jì)方法(912章) 課程要求:通過學(xué)習(xí)能在VC環(huán)境下編程、調(diào)試程序(編輯、編譯、連接、運(yùn)行程序)。 考核方法:期末全院統(tǒng)考(統(tǒng)一命題、統(tǒng)一時(shí)間、統(tǒng)一閱卷)。,第1章 緒 論,1.1 程序設(shè)計(jì)概述 1.2 C+語言發(fā)展史簡(jiǎn)介 1.3 C+語言的基本語法成份 1.4 C+程序的開發(fā)步驟和結(jié)構(gòu) 附錄A 程序的調(diào)試與運(yùn)行,1.1 程序設(shè)計(jì)概述,1.1.1 計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展,1.機(jī)器語言:由一條條二進(jìn)制代碼組成(面向機(jī)器). 2.匯編語言:由一些助記符號(hào)代替二進(jìn)制代碼(同上). 3.高級(jí)語言:由一些命令或語句組成(面向過程).,程序(program)是為實(shí)現(xiàn)特定目標(biāo)或解決特定問題而用計(jì)算機(jī)語言編寫的命令序列的集合。,是計(jì)算機(jī)自身的語言,是計(jì)算機(jī)唯一能夠直接理解執(zhí)行的語言。機(jī)器語言程序是由一系列指令組成的,指令是計(jì)算機(jī)可識(shí)別的逐條執(zhí)行的基本命令。,用計(jì)算機(jī)語言編寫的程序稱為源程序。匯編程序把匯編語言翻譯成機(jī)器語言的過程稱為匯編。匯編的結(jié)果是生成目標(biāo)程序,目標(biāo)程序經(jīng)過連接后生成可執(zhí)行文件,由計(jì)算機(jī)執(zhí)行。,CPU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成 如:10000000 加 10010000 減,用助記符號(hào)描述的指令系統(tǒng) 如 ADD A, B,面向機(jī)器的語言,程序設(shè)計(jì)是數(shù)據(jù)被加工的過程,客觀世界可以分類,對(duì)象是類的實(shí)例 對(duì)象是數(shù)據(jù)和方法的封裝 對(duì)象間通過發(fā)送和接受消息發(fā)生聯(lián)系,程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對(duì)象,翻譯程序,編譯方式: 是指利用事先編好的一個(gè)稱為編譯程序的機(jī)器語言程序,作為系統(tǒng)軟件存放在計(jì)算機(jī)內(nèi),當(dāng)用戶將高級(jí)語言源程序輸入計(jì)算機(jī)后,編譯程序便把源程序整個(gè)地翻譯成用機(jī)器語言表示的與之等價(jià)的目標(biāo)程序,然后計(jì)算機(jī)再執(zhí)行該目標(biāo)程序,以完成源程序要處理的運(yùn)算并取得結(jié)果。,解釋方式: 是指源程序輸入計(jì)算機(jī)后,解釋程序?qū)υ闯绦蜻厭呙柽吔忉?,解釋一句,?jì)算機(jī)執(zhí)行一句,并不產(chǎn)生目標(biāo)程序。,50年代的程序都是用指令代碼或匯編語言編寫的,這種程序的設(shè)計(jì)相當(dāng)麻煩,編制和調(diào)試一個(gè)稍大一點(diǎn)的程序常常要花費(fèi)很長(zhǎng)時(shí)間,培養(yǎng)一個(gè)熟練的程序員更需經(jīng)過長(zhǎng)期訓(xùn)練和實(shí)習(xí),這種局面嚴(yán)重影響了計(jì)算機(jī)的普及應(yīng)用。 60年代高級(jí)語言的出現(xiàn)大大簡(jiǎn)化了程序設(shè)計(jì),縮短了解題周期,因此顯示出強(qiáng)大的生命力。這個(gè)時(shí)期,隨著計(jì)算機(jī)的應(yīng)用日益廣泛地滲透到各學(xué)科和技術(shù)領(lǐng)域,發(fā)展了一系列不同風(fēng)格的、為不同目標(biāo)服務(wù)的程序設(shè)計(jì)語言。其中較為著名的有FORTRAN、COBOL、ALGOL、LISP、PL/1、PASCAL等十幾種語言。高級(jí)語言的蓬勃興起,使得編譯和形式語言理論相應(yīng)日趨完善,這是該時(shí)期的主要特征。但就整個(gè)程序設(shè)計(jì)方法而言,并無實(shí)質(zhì)性的改進(jìn)。,1.1.2 程序設(shè)計(jì)的發(fā)展歷程,自60年代末到70年代初,出現(xiàn)了大型軟件系統(tǒng),如操作系統(tǒng)、數(shù)據(jù)庫(kù),這給程序設(shè)計(jì)帶來了新的問題。大型系統(tǒng)的研制需要花費(fèi)大量的資金和人力,可是研制出來的產(chǎn)品卻可靠性差,錯(cuò)誤多,且不易維護(hù)和修改。人們稱這種現(xiàn)象為“軟件危機(jī)”。 為了克服60年代出現(xiàn)的軟件危機(jī),1968年北約組織提出“軟件工程”的概念。對(duì)程序設(shè)計(jì)語言的認(rèn)識(shí)從強(qiáng)調(diào)表達(dá)能力為重點(diǎn)轉(zhuǎn)向以結(jié)構(gòu)化和簡(jiǎn)明性為重點(diǎn),將程序從語句序列轉(zhuǎn)向相互作用的模塊集合。1969年,E.W.Dijkstra首先提出了結(jié)構(gòu)化程序設(shè)計(jì)的概念,強(qiáng)調(diào)從程序結(jié)構(gòu)和風(fēng)格上來研究程序設(shè)計(jì)。用結(jié)構(gòu)化程序設(shè)計(jì)的方法編寫出來的程序不僅結(jié)構(gòu)良好,易寫易讀,而且易于證明其正確性。,1.1.2 程序設(shè)計(jì)的發(fā)展歷程,進(jìn)入80年代,由于一系列高技術(shù)的研究,迫切要求大型的軟件系統(tǒng)作為支撐。他們所用的數(shù)據(jù)類型也超出了常規(guī)的結(jié)構(gòu)化數(shù)據(jù)類型的范疇,提出對(duì)圖象、聲音、規(guī)則等非結(jié)構(gòu)化信息的管理。由于結(jié)構(gòu)化語言的數(shù)據(jù)類型較為簡(jiǎn)單,所以不能勝任對(duì)非結(jié)構(gòu)化數(shù)據(jù)的定義與管理,采用過程調(diào)用機(jī)制也不夠靈活,獨(dú)立性較差。 為了適應(yīng)高技術(shù)發(fā)展的需要,消除結(jié)構(gòu)化編程語言的局限,自80年代以來,出現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計(jì)流派,研制出了多種面向?qū)ο缶幊陶Z言(簡(jiǎn)稱為OOPL),如Ada,Smalltalk,C+和當(dāng)前使用在Internet上的平臺(tái)無關(guān)語言Java等。,1.1.2 程序設(shè)計(jì)的發(fā)展歷程,由于OOPL的對(duì)象、類具有高度的抽象性,所以它能很好地表達(dá)任何復(fù)雜的數(shù)據(jù)類型,也允許程序員靈活地定義自己所需要的數(shù)據(jù)類型。類本身具有很完整的封裝性,可以使用它作為編程中的模塊單元,滿足模塊獨(dú)立自治的需求。再加上繼承性和多態(tài)性,更有助于簡(jiǎn)化大型軟件和大量重復(fù)定義的模塊,增強(qiáng)了模塊的可重用性,提高了軟件的可靠性,縮短了軟件的開發(fā)周期。,1.1.2 程序設(shè)計(jì)的發(fā)展歷程,程序設(shè)計(jì),我們寫的程序主要由兩個(gè)不同方面構(gòu)成: (1)算法的集合(也就是解決問題的指令集合) (2)配合算法以提供解決方案的數(shù)據(jù) 算法與數(shù)據(jù)間的關(guān)系被稱為程序設(shè)計(jì)的思維模式。 兩種主要的程序設(shè)計(jì)思維: 結(jié)構(gòu)化程序設(shè)計(jì) 面向?qū)δ愠绦蛟O(shè)計(jì),11,1.自頂向下、逐步求精:結(jié)構(gòu)化程序設(shè)計(jì)的主要思想是功能分解并逐步求精。當(dāng)一些任務(wù)復(fù)雜以至無法描述時(shí),可以將它拆分為一系列較小的功能部件,直到這些完備的子任務(wù)小到易于理解的程度。這種方法叫“自頂向下,逐步求精”。 2.模塊化設(shè)計(jì):在拿到一個(gè)程序模塊(實(shí)際上是程序模塊的任務(wù)書)以后,根據(jù)程序模塊的功能將它劃分為若干個(gè)子模塊。這個(gè)過程采用自頂向下方法來實(shí)現(xiàn)。 3.結(jié)構(gòu)化編碼:在設(shè)計(jì)好一個(gè)結(jié)構(gòu)化的算法之后,還要善于進(jìn)行結(jié)構(gòu)化編碼。即用高級(jí)語言語句正確地實(shí)現(xiàn)順序、選擇、循環(huán)三種基本結(jié)構(gòu)。,1.1.3 結(jié)構(gòu)化程序設(shè)計(jì),程序的任務(wù)是描述問題并解決問題,可用下面的式子表示程序: 程序=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計(jì)語言+語言環(huán)境,結(jié)構(gòu)化程序設(shè)計(jì)的主要思想是功能分解并逐步求精。 為什么要采用結(jié)構(gòu)化? 在于定義一組結(jié)構(gòu)完善的程序代碼及程序流控制,以幫助程序設(shè)計(jì)人員更快、更正確地開發(fā)程序。 模塊化設(shè)計(jì) 就是用函數(shù)來包裝程序代碼,讓程序不再需要從無到有,若有現(xiàn)成的函數(shù)可用時(shí),直接在程序里調(diào)用該函數(shù)即可,這樣可以讓程序代碼被重用,并加快開發(fā)的時(shí)間 。 流程控制結(jié)構(gòu) 使用三種控制結(jié)構(gòu)來控制執(zhí)行流程,13,順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu),14,1.1.4 面向?qū)ο蟪绦蛟O(shè)計(jì),面向?qū)ο蟪绦蛟O(shè)計(jì)將數(shù)據(jù)及對(duì)數(shù)據(jù)的操作放在一起,作為一個(gè)相互依存、不可分割的整體來處理,它采用了數(shù)據(jù)抽象和信息隱藏技術(shù)。在面向?qū)ο蟪绦蛟O(shè)計(jì)中可以用下面的式子表示程序: 程序=對(duì)象+對(duì)象+對(duì)象 對(duì)象=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計(jì)語言+語言環(huán)境,OOP以結(jié)構(gòu)化程序設(shè)計(jì) 為基礎(chǔ),并對(duì)它加以改進(jìn)后所形成的。 本質(zhì)是使用封裝的概念將數(shù)據(jù)與程序代碼作為一個(gè)模塊,這樣構(gòu)成的的一個(gè)模塊稱作是對(duì)象、類 以類為基礎(chǔ),通過分門別類的觀念,也就是使用繼承來更進(jìn)一步地將上層的數(shù)據(jù)與程序代碼交由下面類來分享,即重用。 所以可以把OOP想象成是披上了面向?qū)ο髮拥慕Y(jié)構(gòu)化程序設(shè)計(jì),換句話,構(gòu)成OOP的底層仍然是結(jié)構(gòu)化程序設(shè)計(jì)的組件,只不過這些組件都披上了面向?qū)ο髮铀拥耐庖隆?OOP三大法則:封裝、繼承、多態(tài),16,1.對(duì)象:是計(jì)算機(jī)內(nèi)存中的一塊區(qū)域,通過將內(nèi)存分塊,每個(gè)模塊(即對(duì)象)在功能上相互之間保持相對(duì)獨(dú)立。當(dāng)對(duì)象的一個(gè)成員函數(shù)被調(diào)用時(shí),對(duì)象執(zhí)行其內(nèi)部的代碼來響應(yīng)這個(gè)調(diào)用,這使對(duì)象呈現(xiàn)出一定的行為。 2.面向?qū)ο螅嚎陀^世界是由各種各樣的實(shí)體,也就是對(duì)象組成的。每種對(duì)象都有自己的內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律,不同對(duì)象間的相互聯(lián)系和相互作用就構(gòu)成了各種不同的系統(tǒng),并進(jìn)而構(gòu)成整個(gè)客觀世界。按照這樣的思想設(shè)計(jì)程序,就是面向?qū)ο蟮某绦蛟O(shè)計(jì)。 3.面向?qū)ο蟪绦蛟O(shè)計(jì):是在面向過程的程序設(shè)計(jì)基礎(chǔ)上的質(zhì)的飛躍。面向?qū)ο蟮募夹g(shù)在系統(tǒng)程序設(shè)計(jì)、數(shù)據(jù)庫(kù)及多媒體應(yīng)用等領(lǐng)域都得到廣泛應(yīng)用。 4. 面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn):抽象性、封裝性、繼承性和多態(tài)性,1.1.4 面向?qū)ο蟪绦蛟O(shè)計(jì),1.2 C+語言發(fā)展史簡(jiǎn)介,C語言具有以下一些特點(diǎn): (1)語言簡(jiǎn)潔、緊湊,使用方便、靈活。 (2)運(yùn)算符和數(shù)據(jù)結(jié)構(gòu)豐富,具有結(jié)構(gòu)化的控制語句,生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。 (3)語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。 (4)與其他高級(jí)語言相比,具有可以直接訪問物理地址,能進(jìn)行位運(yùn)算的優(yōu)點(diǎn),適合解決有實(shí)時(shí)要求的問題。 (5)與匯編語言相比,具有良好的可讀性和可移植性。 (6)以函數(shù)為基礎(chǔ)實(shí)現(xiàn)程序的結(jié)構(gòu)化設(shè)計(jì),支持大型程序的多文件構(gòu)成及單個(gè)文件獨(dú)立編譯。,1.2 C+語言發(fā)展史簡(jiǎn)介,C+語言具有如下一些特點(diǎn): (1)支持面向?qū)ο蟪绦蛟O(shè)計(jì) (2)支持泛型程序設(shè)計(jì) (3)C+語言提供了功能強(qiáng)大的標(biāo)準(zhǔn)模板庫(kù) (4)C+語言是一種更好的“C語言”,1.3 C+語言的基本語法成分,1.3.1 C+語言的字符集 1.3.2 C+語言的標(biāo)識(shí)符 1.3.3 C+語言的關(guān)鍵字 1.3.4 C+語言的運(yùn)算符 1.3.5 C+語言的分隔符 1.3.6 C+語言的空白符,1.3.1 字 符 集,C+字符集是由下列字符組成的: (ASCII碼字符集的子集) 大小寫英文字母:a z A Z 10 個(gè) 數(shù) 字 :0 9 特殊字符: 空格 ! % ? ( ) 用C+字符集中字符可以構(gòu)造各種詞法符號(hào)。,1.3.2 標(biāo) 識(shí) 符,標(biāo)識(shí)符是一個(gè)字符序列,用來標(biāo)記變量名、常量名、函數(shù)名、對(duì)象名和類型名等。 標(biāo)識(shí)符由大小寫字符、0 9的數(shù)字和下劃線組成,標(biāo)識(shí)符的命名規(guī)則如下: (1)以字母或下劃線打頭。 (2)其后可跟零個(gè)或多個(gè)字母、數(shù)字或下劃線。 例如:name、day、NAME、prg_1 、a_1、b1、double_list、等都是合法的標(biāo)識(shí)符; 而2b、D$7、name 1、x+y則是不合 法的標(biāo)識(shí)符。,使用標(biāo)識(shí)符時(shí)注意: (1)在C+語言中,大小寫字母不等價(jià)。如MAX、Max和max是不同的標(biāo)識(shí)符。習(xí)慣上符號(hào)常量用大寫字母表示, 變量名用小寫字母表示。 (2)最好不要定義以下劃線打頭的標(biāo)識(shí)符,以免和C+系統(tǒng)庫(kù)中的符號(hào)沖突。 (3)不要在標(biāo)識(shí)符內(nèi)部使用連續(xù)的兩個(gè)下劃線。 (4)標(biāo)識(shí)符取名時(shí)不能與C+的關(guān)鍵字同名, 也不能與系統(tǒng)預(yù)先定義的標(biāo)準(zhǔn)標(biāo)識(shí)符(如標(biāo)準(zhǔn)函數(shù))同名。 (5)標(biāo)識(shí)符要有意義、見名知義、簡(jiǎn)潔、易區(qū)分,以便程序易讀,編程時(shí)不易犯錯(cuò)誤。如max表示最大值,date表示日期等,以提高程序的可讀性。 一般選用相應(yīng)英文單詞或拼音的縮寫形式,盡量不要使用簡(jiǎn)單的符號(hào),如a、b、c、x、y和z等。 (6)標(biāo)識(shí)符的有效長(zhǎng)度隨系統(tǒng)而異。,1.3.3 關(guān) 鍵 字,注意:C+中關(guān)鍵字必須是小寫的,在程序設(shè)計(jì)時(shí)經(jīng)常用到,但不可以作為一般標(biāo)識(shí)符使用。,花括號(hào): 用來為函數(shù)體、復(fù)合語句等定界。 分號(hào):用作語句之間的分隔符或結(jié)束符。 逗號(hào):用作變量之間或?qū)ο笾g的分隔符, 或用作函數(shù)的多個(gè)參數(shù)之間的分隔符。 空格:用作單詞之間的分隔符。,1.3.5 分 隔 符,空白符是空格、制表符(TAB鍵產(chǎn)生的字符)、換行符(Enter鍵所產(chǎn)生的字符)和注釋的總稱。 空白符用于指示詞法記號(hào)的開始和結(jié)束位置。C+程序可以不必嚴(yán)格地按行書寫,凡是可以出現(xiàn)空格的地方,都可以出現(xiàn)換行。 書寫程序時(shí),要力求清晰、易讀。因?yàn)橐粋€(gè)程序不僅要讓機(jī)器執(zhí)行,還要讓人閱讀,同時(shí)便于修改、維護(hù)。 注釋是對(duì)程序的注解和說明,目的是為了便于程序的閱讀和分析。,1.3.6 空 白 符,1.4 C+程序的開發(fā)步驟和結(jié)構(gòu),編輯 編譯預(yù)處理 編譯 連接 運(yùn)行與調(diào)試,1.4.1 C+程序開發(fā)步驟,使用編輯器編輯C+源程序,自動(dòng)執(zhí)行源程序中的預(yù)處理命令,編譯預(yù)處理命令主要包括文件包含、宏定義和條件編譯,負(fù)責(zé)將源程序翻譯為機(jī)器語言代碼(目標(biāo)程序),生成目標(biāo)程序文件,目標(biāo)文件的擴(kuò)展名為“.obj”。,將目標(biāo)文件同缺失函數(shù)的代碼連接起來,生成可執(zhí)行文件,擴(kuò)展名為“.exe”。,運(yùn)行時(shí),可執(zhí)行文件由操作系統(tǒng)裝入內(nèi)存,然后CPU從內(nèi)存中讀出程序執(zhí)行,錯(cuò)誤,編譯錯(cuò)誤 : 在編譯階段出現(xiàn)的錯(cuò)誤。,運(yùn)行錯(cuò)誤: 在程序運(yùn)行過程中出現(xiàn)的錯(cuò)誤稱為運(yùn)行時(shí)錯(cuò)誤,也稱邏輯錯(cuò)誤。,1.4 C+程序的開發(fā)步驟和結(jié)構(gòu),1.4.2 C+程序的結(jié)構(gòu),【例1.1】編寫程序,輸出“Hello World!”字符串。 /* *功能:顯示輸出“Hello World!”字符串 * */ #include / 編譯預(yù)處理命令 using namespace std; / 使用標(biāo)準(zhǔn)名空間std /*以下是主函數(shù)*/ int main() / 主函數(shù) cout“Hello World!“endl; return 0; ,例1.2 從鍵盤上輸入兩個(gè)數(shù),求這兩個(gè)數(shù)的最大值(例1.cpp) #include /編譯預(yù)處理命令 int max(int x,int y) /求兩個(gè)數(shù)的最大值函數(shù) int t; if (xy) t=x; else t=y; return t; / return語句將t的值返回給主調(diào)主函數(shù)main( ) /*以下是主函數(shù)*/ void main( ) /主函數(shù) int a,b; /定義兩個(gè)基本整型變量 coutab; int m; m=max(a,b); /調(diào)用求最大值的函數(shù) cout“最大值=“mendl; ,一個(gè)簡(jiǎn)單的C+程序,C+源程序(擴(kuò)展名為.cpp)包括編譯預(yù)處理命令、注釋和函數(shù)等內(nèi)容。,編譯預(yù)處理命令:以“#”號(hào)開頭的行都是編譯預(yù)處理行,且在一行中,只能寫一行編譯預(yù)處理指令。,為了使程序的結(jié)構(gòu)清晰,一般將數(shù)據(jù)類型及類的定義、函數(shù)的說明等放在一個(gè)源代碼文件中,成為頭文件,其擴(kuò)展名為.h(或.hpp)。頭文件可由系統(tǒng)提供,用戶可直接使用;也可由用戶根據(jù)需要自己編寫頭文件。系統(tǒng)提供的頭文件用括起來如,而用戶自己定義的頭文件用“ ”括起來。,被調(diào)函數(shù) (自定義函數(shù)),主調(diào)函數(shù),程序的運(yùn)行結(jié)果: 請(qǐng)輸入兩個(gè)數(shù): 5 9 最大值=9,庫(kù)函數(shù)(標(biāo)準(zhǔn)函數(shù)):定義在各系統(tǒng)頭文件中,如:標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)定義在math.h頭文件中,而字符串處理函數(shù)定義在string.h頭文件中等。, int t; if (xy) t=x; else t=y; return t; ,C+中采用如下兩種注釋方法: 使用“/”符號(hào)進(jìn)行注釋:從“/”符號(hào)后面字符開始直至它所在行結(jié)束,所有字符都為注釋信息(適用于注釋一行信息)。 使用一對(duì)“/*”和“*/”符號(hào)進(jìn)行注釋:在“/*”和“*/”之間的所有字符都為注釋信息(適用于注釋多行信息) 。 說明:在生成執(zhí)行程序時(shí),C+忽略注釋,并把每一個(gè)注釋都看做是空格。兩種注釋都可以放在程序的任一位置。,1. 注 釋,編譯預(yù)處理命令的功能是使編譯程序在對(duì)源程序進(jìn)行通常的編譯之前,先對(duì)這些命令進(jìn)行預(yù)處理,然后將預(yù)處理的結(jié)果和源程序一起進(jìn)行通常的編譯處理,以得到目標(biāo)代碼。 注意:C+語言中的編譯預(yù)處理命令都是以#打頭的,在一行中只能寫一條編譯預(yù)處理命令;編譯預(yù)處理命令不是C+語句,不能以分號(hào)結(jié)尾,而是以換行結(jié)尾。 程序中的 # include是編譯預(yù)處理命令,作用是在編譯之前,將文件iostream中的代碼嵌入到程序中該命令所在的地方,作為程序的一部分,iostream文件中聲明了程序所需要的輸入和輸出操作的有關(guān)信息。cin、cout、和操作的有關(guān)信息就是在該文件中聲明的。,2. 編譯預(yù)處理,C+提供名字空間將相同的名字放在不同空間中來防止命名沖突。,標(biāo)準(zhǔn)C+提供的所有組件都放在標(biāo)準(zhǔn)名字空間std中,使用名字空間std有以下三種方法:,(1)利用using namespace使用名字空間 格式:using namespace std;,(2)用域運(yùn)算符 : 為對(duì)象分別指定名字空間std, 格式: std:cout“Hello World!“std:endl;,(3)用using與域運(yùn)算符指定名字空間, 格式: using std:cout;,3. 名字空間(名空間,namespace),C+程序是由函數(shù)驅(qū)動(dòng)的,一個(gè)C+程序可由一個(gè)main函數(shù)和若干個(gè)其他函數(shù)組成, 其中必須有且僅有一個(gè)主函數(shù)main(),主函數(shù)可位于程序中的任意位置,C+程序總是從主函數(shù)開始執(zhí)行,主函數(shù)執(zhí)行完畢,則整個(gè)C+程序執(zhí)行完畢。主函數(shù)是由操作系統(tǒng)調(diào)用的。 函數(shù)是C+程序的基本單位。 函數(shù)由函數(shù)說明部分和函數(shù)體兩部分組成。,4. 函數(shù),函數(shù)的組成,函數(shù)的說明部分:包括函數(shù)名、函數(shù)返回值類型和函 數(shù)的形式參數(shù)。例如: int main ( ),函數(shù)返回值類型,函數(shù)名,函數(shù)體部分:用一對(duì) 表示函數(shù)體的開始和結(jié)束位置, 是用于完成某種功能的語句的集合,一般包括變量定 義和執(zhí)行語句(數(shù)據(jù)描述和操作描述)。 在C+語言的函數(shù)體中,一個(gè)變量必須先定義后 使用,但變量的定義可出現(xiàn)在第一次使用之前的任意 位置。C+中每一條語句都是以分號(hào) ; 結(jié)束的。,函數(shù)體為空則稱該函數(shù)為空函數(shù),空函數(shù)不完 成任何功能,一般是為以后開發(fā)系統(tǒng)及完善程 序功能預(yù)留的。函數(shù)體中也可以沒有數(shù)據(jù)描述 部分而只有操作描述。,5. C+程序的書寫格式,1.C+程序的書寫格式比較自由,一般一行寫一條語句。對(duì)于短語句也可一行寫多個(gè),中間用“;”分隔。對(duì)于長(zhǎng)語句也可將一條語句分寫在多行上,分行原則是不能將一個(gè)單詞分開,也不要將雙撇號(hào)引用的一個(gè)字符串分開。 2.為了程序書寫得清晰,提高程序的可讀性,一般采用縮進(jìn)格式。即同一層次語句要對(duì)齊,不同層次語句要縮進(jìn)若干個(gè)字符(24個(gè))。例如循環(huán)體中的語句和選擇體中的語句要縮進(jìn)對(duì)齊。 3.花括號(hào)的書寫方法較多, 常用的是每個(gè)花括號(hào)占一行,并與使用花括號(hào)的語句對(duì)齊,花括號(hào)內(nèi)的語句采用縮格書寫的方式;另有一種形式是花括號(hào)與所括內(nèi)容占一行。,習(xí)慣用小寫字母,大小寫敏感 不使用行號(hào),無程序行概念 可使用空行和空格 常用鋸齒形書寫格式,main( ) . . . . ,main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; coutsumendl; ,優(yōu)秀程序員的素質(zhì)之一: 使用TAB縮進(jìn) 對(duì)齊 有足夠的注釋 有合適的空行,格式特點(diǎn):,file.exe,附錄A 程序的調(diào)試與運(yùn)行,程序代碼的錄入, 生成源程序*.cpp,語法分析查錯(cuò),翻譯生成目標(biāo)程序*.obj,與其它目標(biāo)程序或庫(kù)鏈接裝配,生成可執(zhí)行程序*.exe,一、 C+程序的編輯、編譯、連接過程和運(yùn)行 1編輯 編輯是將編寫好的C+源程序輸入到計(jì)算機(jī)中,生成磁盤文件的過程。 2編譯和連接過程 C+是以編譯方式實(shí)現(xiàn)的高級(jí)語言。C+程序的實(shí)現(xiàn),必須要使用某種C+語言的編譯器對(duì)程序進(jìn)行編譯。 3運(yùn)行 一個(gè)C+的源程序經(jīng)過編譯和連接后生成了可執(zhí)行文件。運(yùn)行可執(zhí)行文件可在編譯系統(tǒng)下選擇相關(guān)菜單項(xiàng)來實(shí)現(xiàn)。也可以再采用其他方法。,38,二、 Visual C+ 6.0版本的基本用法,本節(jié)不是詳細(xì)講述VC+編譯系統(tǒng)的具體使用方法。只是為了能夠?qū)崿F(xiàn)C+的程序,簡(jiǎn)單介紹C+程序在該編譯系統(tǒng)下如何編譯和運(yùn)行。 1Visual C+ 6.0啟動(dòng)后的用戶界面 選擇菜單“開始/程序/Microsoft Visual Studio 6.0 / Microsoft Visual C+ 6.0”,得到Visual C+ 6.0啟動(dòng)后的用戶界面,如圖所示。,39,2.編輯C+源程序 編輯C+源程序時(shí),選擇“文件”菜單項(xiàng),出現(xiàn)一個(gè)下拉式菜單,如圖所示,再選擇該菜單中的“新建”選項(xiàng)(熱鍵為Ctrl+N),打開“新建”窗口。 3. 選擇“文件新建文件 C+ Source File”,就可以編輯C+源程序,如圖所示,輸入源程序。,40,4編
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度物流配送體系運(yùn)營(yíng)管理人才用人合同
- 2025年度就業(yè)扶貧項(xiàng)目合作協(xié)議
- 二零二五年度租賃房屋合同轉(zhuǎn)讓及租客入住前家具檢查清單
- 2025年度體育賽事參與者免責(zé)協(xié)議書
- 2025年度客棧品牌授權(quán)及經(jīng)營(yíng)管理合同
- 2025年湖南工藝美術(shù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)匯編
- 2025年算力行業(yè)分析:算力與社交平臺(tái)深度融合
- 2023-2024學(xué)年貴州省高三下學(xué)期“3+3+3”高考備考診斷性聯(lián)考卷(三)生物學(xué)試卷
- 焊接及無損檢測(cè)發(fā)言材料
- 廚房后勤工作計(jì)劃
- (完整)PEP人教版小學(xué)生英語單詞四年級(jí)上冊(cè)卡片(可直接打印)
- 面神經(jīng)疾病課件
- 基本公共衛(wèi)生服務(wù)項(xiàng)目績(jī)效考核的課件
- 三年級(jí)下冊(cè)小學(xué)科學(xué)活動(dòng)手冊(cè)答案
- 國(guó)家電網(wǎng)有限公司十八項(xiàng)電網(wǎng)重大反事故措施(修訂版)
- 班、團(tuán)、隊(duì)一體化建設(shè)實(shí)施方案
- 最全的人教初中數(shù)學(xué)常用概念、公式和定理
- 橋面結(jié)構(gòu)現(xiàn)澆部分施工方案
- 開網(wǎng)店全部流程PPT課件
- 人教部編版四年級(jí)語文下冊(cè)《第1課 古詩(shī)詞三首》教學(xué)課件PPT小學(xué)優(yōu)秀公開課
- 模具數(shù)控加工技術(shù)概述
評(píng)論
0/150
提交評(píng)論