00104、c程序設(shè)計課程第1章緒論_第1頁
00104、c程序設(shè)計課程第1章緒論_第2頁
00104、c程序設(shè)計課程第1章緒論_第3頁
00104、c程序設(shè)計課程第1章緒論_第4頁
00104、c程序設(shè)計課程第1章緒論_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、自我介紹姓名:王若明職稱:高級工程師(信息系統(tǒng)項目管理師) 工程師(軟件設(shè)計師)畢業(yè)學(xué)校:華南理工大學(xué)(碩士)第1章 緒論 1.1 C+的發(fā)展歷史 1.2 C+程序的開發(fā)過程 1.3 C+的詞法與規(guī)則 1.4 面向?qū)ο蟪绦蛟O(shè)計 1.5 C+程序的構(gòu)成 簡單的C語言程序介紹#include void main( ) coutThis is a C+ program!n); /*文件包含*/*主函數(shù) */*函數(shù)體開始*/*輸出語句*/*函數(shù)體結(jié)束*/ 說明: main-主函數(shù)名, void-函數(shù)類型每個C程序必須有一個主函數(shù)main 是函數(shù)開始和結(jié)束的標(biāo)志,不可省每個C語句以分號結(jié)束使用標(biāo)準(zhǔn)庫函數(shù)

2、時應(yīng)在程序開頭一行寫: #include 說明: 本程序的作用是輸出一行信息:This is a C+ program.1.1 C+的發(fā)展歷史C+源于C語言,而C語言是在B語言的基礎(chǔ)上發(fā)展起來的。 1960年出現(xiàn)了一種面向問題的高級語言ALGOL 60 。1963年英國劍橋大學(xué)推出了CPL(Combined Programming Language)語言,后來經(jīng)簡化為BCPL語言。 1970年美國貝爾(Bell)實驗室的K.Thompson以BCPL語言為基礎(chǔ),設(shè)計了一種類似于BCPL的語言,取其第一字母B,稱為B語言。 1972年美國貝爾實驗室的Dennis M.Ritchie為克服B語言的

3、諸多不足,在B語言的基礎(chǔ)上重新設(shè)計了一種語言,取其第二字母C,故稱為C語言。 1980年貝爾實驗室的Bjarne Stroustrup對C語言進行了擴充,推出了“帶類的C”,多次修改后起名為C+。以后又經(jīng)過不斷的改進,發(fā)展成為今天的C+。 C+改進了C的不足之處,支持面向?qū)ο蟮某绦蛟O(shè)計,在改進的同時保持了C的簡潔性和高效性。 1.2 C+程序的開發(fā)過程C+語言是一種高級程序設(shè)計語言,它的開發(fā)過程與其他高級語言程序開發(fā)過程類似,一般要經(jīng)過四個步驟: 編輯 編譯 鏈接 執(zhí)行1.2.1 編輯是指把按照C+語法規(guī)則編寫的程序代碼通過編輯器(Borland C+ 5.05,Visual C+ 6.0,T

4、urbo C+ 3.0)輸入計算機,并存盤。在存盤時,C+源文件的擴展名為.CPP。1.2.2 編譯將編輯好的C+源程序通過編譯器轉(zhuǎn)換為目標(biāo)文件(OBJ文件)。即生成該源文件的目標(biāo)代碼。 1.2.3 鏈接 將用戶程序生成的多個目標(biāo)代碼文件(.obj)和系統(tǒng)提供的庫文件(.lib)中的某些代碼連接在一起,生成一個可執(zhí)行文件(.exe)。1.2.4 執(zhí)行把生成的可執(zhí)行文件運行,在屏幕上顯示運行結(jié)果。用戶可以根據(jù)運行結(jié)果來判斷程序是否出錯。1.3 C+的詞法與規(guī)則1.3.1 C+的字符集數(shù)字:0,1,2,3,4,5,6,7,8,9。小寫字母:a,b,y,z。大寫字母:A,B,Y,Z。運算符:+,-,

5、*,/, %, ,= , ,!= ,= = , ,& , ,& , , ,( ), , ,- , , ! , ? , ?: , , , ; , ” , # 。特殊字符:(連字符或下劃線)。不可印出字符:空白格(包括空格、換行和制表符)。1.3.2 詞與詞法規(guī)則1. 標(biāo)識符標(biāo)識符是對實體定義的一種定義符,由字母或下劃線(或連字符)開頭、后面跟字母或數(shù)字或下劃線(或空串)組成的字符序列,一般有效長度是8個字符(而ANSI C標(biāo)準(zhǔn)規(guī)定31個字符),用來標(biāo)識用戶定義的常量名、變量名、函數(shù)名、文件名、數(shù)組名、和數(shù)據(jù)類型名和程序等。2. 關(guān)鍵字關(guān)鍵字是具有特定含義,作為專用定義符的單詞,不允許另作它用。a

6、utobreakcasechar classconstcontinuedefault do ddefaultdeletedouble elseenum explicit externfloatforfriend gotoifinlineintlong mutablenewoperatorprivateprotectedpublicregisterreturnshort signedsizeofstaticstatic_caststruct switchthistypedefunionunsigned virtualvoidwhile 3. 運算符和分隔符 運算符是C+語言實現(xiàn)加、減等各種運算的

7、符號。 C+語言的分隔符主要是:空格、制表和換行符。4. 字符串字符串是由雙引號括起來的字符。如“China”,“C+ Program”等。 5. 常量C+語言中常量包括實型常量(浮點常量)和整型常量(十進制常量、八進制常量、十六進制常量)、浮點常量、字符常量和字符串常量。 6. 注釋注釋是用來幫助閱讀、理解及維護程序。在編譯時,注釋部分被忽略,不產(chǎn)生目標(biāo)代碼。C+語言提供兩種注釋方式。一種是與C兼容的多行注釋,用/*和*/分界。另一種是單行注釋,以“/”開頭的表明本行中“/”符號后的內(nèi)容是注釋。如下程序: 例1-1:一個簡單的C+程序。#include void main() cout”Th

8、is is my first C+ program.n”; /輸出This is my first C+ program. /*輸出 This is my first C+ program.*/ 例1.2 求兩數(shù)之和#include void main( ) /*求兩數(shù)之和*/ int a,b,sum; /*聲明,定義變量為整型*/ /*以下3行為C+語句 */ a=123; b=456; sum=a+b; coutsum is :n; coutsum; 說明: /*/表示注釋。注釋只是給人看的,對編譯和運行不起作用。所以可以用漢字或英文字符表示,可以出現(xiàn)在一行中的最右側(cè),也可以單獨成為一行。

9、說明: 輸出一行信息:sum is 579例1.3 求3個數(shù)中較大者。#include void main( ) /* 主函數(shù)*/ int max(int x,int y); / 對被調(diào)用函數(shù)max的聲明 */ int a, b, c; /*定義變量a、b、c */ scanf(d,d,&a,&b); /*輸入變量a和b的值*/ c=max(a,b); /*調(diào)用max函數(shù),將得到的值賦給c */ printf(max=dn,c); /*輸出c的值*/程序運行情況如下:8,5 (輸入8和5賦給a和b)max=8 (輸出c的值)int max(int x, int y) int z; if (xy

10、) z=x; else z=y; return (z); max(int x,int y); max(a,b); 說明:本程序包括main和被調(diào)用函數(shù)max兩個函數(shù)。max函數(shù)的作用是將x和y中較大者的值賦給變量z。return語句將z的值返回給主調(diào)函數(shù)main。1.3.3 書寫格式C+語言程序的書寫格式自由度高,靈活性強,隨意性大,如一行內(nèi)可寫一條語句,也可寫幾條語句;一個語句也可分寫在多行內(nèi)。不過應(yīng)采用適當(dāng)?shù)母袷綍鴮懀阌谌藗冮喿x和理解。為了增加程序的可讀性和利于理解,編寫程序時按如下要點書寫:(1)一般情況下每個語句占用一行。(2)不同結(jié)構(gòu)層次的語句,從不同的起始位置開始,即在同一結(jié)構(gòu)層

11、次中的語句,縮進同樣的字數(shù)。(3)表示結(jié)構(gòu)層次的大括弧,寫在該結(jié)構(gòu)化語句第一個字母的下方,與結(jié)構(gòu)化語句對齊,并占用一行。(4)適當(dāng)加些空格和空行。1.4 面向?qū)ο蟪绦蛟O(shè)計面向?qū)ο蟪绦蛟O(shè)計是在吸取結(jié)構(gòu)化程序設(shè)計的一切優(yōu)點的基礎(chǔ)上發(fā)展起來的一種新的程序設(shè)計方法。它的本質(zhì)是把數(shù)據(jù)和處理數(shù)據(jù)的過程當(dāng)成一個整體對象。面向?qū)ο笫荂+中的主要概念,在學(xué)習(xí)C+之前首先要了解這些概念。1.4.1 對象從一般意義上講,對象是現(xiàn)實世界中一個實際存在的事物,它可以是有形的(比如一輛汽車),也可以是無形的(比如一項計劃)。對象是構(gòu)成世界的一個獨立單位,它具有自己的靜態(tài)特征(狀態(tài))和動態(tài)特征(操作)。靜態(tài)特征即可以用某種

12、數(shù)據(jù)來描述的特征,動態(tài)特征即對象所表現(xiàn)的行為或?qū)ο笏哂械墓δ?。面向?qū)ο笳Z言把狀態(tài)和操作封裝于對象體之中,并提供一種訪問機制,使對象的“私有數(shù)據(jù)”僅能由這個對象的操作來執(zhí)行。用戶只能通過允許公開的操作提出要求(消息),才能查詢和修改對象的狀態(tài)。1.4.2 類類是面向?qū)ο笳Z言必需提供的用戶定義的數(shù)據(jù)類型,它將具有相同狀態(tài)、操作和訪問機制的多個對象抽象成為一個對象類。類與對象的關(guān)系如同汽車與具體的一輛車的關(guān)系。汽車都能跑,有四個輪子,所有的汽車組成了一個類,具體到一輛汽車,它具有類的全部特性(能跑,有四個輪子),是汽車類的一個子集或元素。類給出了屬于該類的全部對象的抽象定義,而對象則是符合這種定義

13、的一個實體。所以,一個對象又稱作類的一個實例(instance)。 1.4.3 封裝封裝是面向?qū)ο蠓椒ǖ囊粋€重要原則。它有兩個涵義:第一個涵義是,把對象的全部屬性和全部服務(wù)結(jié)合在一起,形成一個不可分割的獨立單位(即對象)。第二個涵義也稱作“信息隱蔽”,即盡可能隱蔽對象的內(nèi)部細節(jié),對外形成一個邊界(或者說形成一道屏障),只保留有限的對外接口使之與外部發(fā)生聯(lián)系。這主要是指對象的外部不能直接地存取對象地屬性,只能通過幾個允許外部使用地服務(wù)與對象發(fā)生聯(lián)系。 1.4.4 繼承繼承是面向?qū)ο笳Z言的另一特性。類與類之間可以組成繼承層次,一個類的定義(子類)可以定義在另一個已定義類(父類)的基礎(chǔ)上。子類可以繼

14、承父類中的屬性和操作,也可以定義自己的屬性和操作。C+語言支持單繼承和多繼承,因而具有繼承這一特性所帶來的優(yōu)勢,大大增加了程序的重用性。 1.4.5 多態(tài)性對象的多態(tài)性是指在一般類中定義的屬性或操作被特殊類繼承之后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。這使得同一個屬性或操作名在一般類及其各個特殊類中具有不同的語義。 1.5 C+程序的構(gòu)成C+語言程序由以下基本部分組成。1.函數(shù)一個C+程序是由若干個函數(shù)構(gòu)成的。函數(shù)分為庫函數(shù)(標(biāo)準(zhǔn)函數(shù))和自定義函數(shù)。庫函數(shù)一般是由系統(tǒng)提供的。一個完整的C+語言程序只有一個主函數(shù)。2.預(yù)處理命令預(yù)處理命令以位于行首的符號“#”開始,C+提供的預(yù)處理有宏定義

15、命令、文件包含命令和條件編譯命令三種。 3.程序語句一條完整的語句必須以分號“;”結(jié)束。程序語句有如下幾類:(1)說明語句用來說明變量的類型和初值。如下面語句是把變量說明為浮點數(shù)。float a,b,c;又如下面語句是把變量sum說明為整型變量,并賦初值為零。int sum=0;(2)表達式語句由一個表達式構(gòu)成一個語句,用以描述算術(shù)運算、邏輯運算、或產(chǎn)生某種特定動作,在任何表達式最后加一個分號就構(gòu)成了一個語句。如下例由賦值表達式加“;”就構(gòu)成一個賦值表達式語句。(3)程序控制語句用來描述語句的執(zhí)行條件與執(zhí)行順序的語句,C+語言的控制語句有9種,如下頁所示。其語句中的括號( )表示其中是條件,表示內(nèi)嵌的語句。 if () else條件語句for () 循環(huán)語句while () 循環(huán)語句do while ()循環(huán)語句continue結(jié)束本次循環(huán)語句break中止循環(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論