




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、會計(jì)學(xué)1 C基礎(chǔ)知識實(shí)用基礎(chǔ)知識實(shí)用PPT課件課件 3 、 第1頁/共52頁 v一個(gè)典型的一個(gè)典型的C+程序(例子展示)程序(例子展示) 程序結(jié)構(gòu):程序結(jié)構(gòu):Main函數(shù)是函數(shù)是C+程序首先執(zhí)行的函程序首先執(zhí)行的函 數(shù),是程序的入口。數(shù),是程序的入口。 語句結(jié)構(gòu):一般由一個(gè)語句動詞開始,以語句結(jié)構(gòu):一般由一個(gè)語句動詞開始,以;結(jié)束結(jié)束 , 語句體用語句體用 限定語句的執(zhí)行部分。限定語句的執(zhí)行部分。 /* */:用于限定多行注釋。:用于限定多行注釋。 /:用于在語句同一行對語句進(jìn)行注釋。:用于在語句同一行對語句進(jìn)行注釋。 v程序的編制方法:程序的編制方法:C+源程序編制及其編譯運(yùn)行源程序編制及其
2、編譯運(yùn)行 v程序格式及文件類型介紹:程序格式及文件類型介紹: C,CPP,DSW,H,OBJ,EXE 第2頁/共52頁 v頭文件頭文件 #include ; 使用如上使用如上include標(biāo)識,在當(dāng)前編輯的文件中標(biāo)識,在當(dāng)前編輯的文件中“包含包含”已定義好的頭文已定義好的頭文 件。頭文件必須是系統(tǒng)安裝文件夾下件。頭文件必須是系統(tǒng)安裝文件夾下“include”文件夾中的文件夾中的.H文件(系統(tǒng)文件(系統(tǒng)include路路 徑必須在操作系統(tǒng)環(huán)境變量中聲明),或自己通過徑必須在操作系統(tǒng)環(huán)境變量中聲明),或自己通過C+編輯環(huán)境編輯的編輯環(huán)境編輯的.H頭文件。頭文件。 頭文件包含公用變量、函數(shù)、類、常量
3、等聲明或定義。頭文件包含公用變量、函數(shù)、類、常量等聲明或定義。 如:使用標(biāo)準(zhǔn)控制臺輸入、輸出流控制數(shù)據(jù)的輸入輸出,有關(guān)輸入輸出如:使用標(biāo)準(zhǔn)控制臺輸入、輸出流控制數(shù)據(jù)的輸入輸出,有關(guān)輸入輸出 類的定義包含在類的定義包含在“iostream.h”中;使用標(biāo)準(zhǔn)文件輸入輸出流控制數(shù)據(jù)的輸入輸出,中;使用標(biāo)準(zhǔn)文件輸入輸出流控制數(shù)據(jù)的輸入輸出, 有關(guān)輸入輸出類的定義包含在有關(guān)輸入輸出類的定義包含在“fstream.h”中;等。中;等。 系統(tǒng)類頭文件的內(nèi)容可以通過系統(tǒng)類頭文件的內(nèi)容可以通過MSDN進(jìn)行查詢。進(jìn)行查詢。 v函數(shù)的定義與調(diào)用函數(shù)的定義與調(diào)用 C+是函數(shù)驅(qū)動的,是函數(shù)驅(qū)動的,C+的可執(zhí)行程序代碼全
4、部以函數(shù)形式定義。的可執(zhí)行程序代碼全部以函數(shù)形式定義。 main函數(shù)是函數(shù)是C+首先執(zhí)行的函數(shù),其他函數(shù)通過首先執(zhí)行的函數(shù),其他函數(shù)通過main函數(shù)中的流程控制函數(shù)中的流程控制 其執(zhí)行時(shí)機(jī)。其執(zhí)行時(shí)機(jī)。 第3頁/共52頁 函數(shù)定義方法:函數(shù)定義方法: 返回值類型返回值類型 函數(shù)名稱(參數(shù)函數(shù)名稱(參數(shù)1,參數(shù),參數(shù)2,) /變量定義、執(zhí)行的語句變量定義、執(zhí)行的語句 return 返回值表達(dá)式返回值表達(dá)式; 如果如果函數(shù)有返回值函數(shù)有返回值,則,則“返回值類型返回值類型”為為“返回表達(dá)式返回表達(dá)式”類型,且必須類型,且必須 有有return語句。語句。 如果如果函數(shù)沒有返回值函數(shù)沒有返回值,則,
5、則“返回值類型返回值類型”為為void,可以不使用,可以不使用return語語 句。句。 函數(shù)的調(diào)用方法:函數(shù)的調(diào)用方法: 函數(shù)名(參數(shù)函數(shù)名(參數(shù)1,參數(shù),參數(shù)2,) 函數(shù)調(diào)用時(shí),參數(shù)的個(gè)數(shù)和類型必須和函數(shù)定義的一樣!函數(shù)調(diào)用時(shí),參數(shù)的個(gè)數(shù)和類型必須和函數(shù)定義的一樣! 對某個(gè)函數(shù)調(diào)用前,必須定義或聲明該函數(shù)。對某個(gè)函數(shù)調(diào)用前,必須定義或聲明該函數(shù)。 例例exampl1。 第4頁/共52頁 v參數(shù)參數(shù) 函數(shù)定義中的參數(shù)稱為函數(shù)定義中的參數(shù)稱為“形式參數(shù)形式參數(shù)”(無具體值),簡稱(無具體值),簡稱“形參形參”;調(diào)用函;調(diào)用函 數(shù)時(shí)的參數(shù)稱為數(shù)時(shí)的參數(shù)稱為“實(shí)際參數(shù)實(shí)際參數(shù)”(有的有具體值),簡
6、稱(有的有具體值),簡稱“實(shí)參實(shí)參”。 形參必須是變量名,且必須在參數(shù)前說明類型;實(shí)參可以是的變量或常形參必須是變量名,且必須在參數(shù)前說明類型;實(shí)參可以是的變量或常 數(shù)。數(shù)。 函數(shù)調(diào)用時(shí),實(shí)參將具體的數(shù)據(jù)傳遞給函數(shù),將數(shù)據(jù)逐個(gè)賦給形參。函數(shù)調(diào)用時(shí),實(shí)參將具體的數(shù)據(jù)傳遞給函數(shù),將數(shù)據(jù)逐個(gè)賦給形參。 第5頁/共52頁 進(jìn)行輸出操作 輸出的內(nèi)容 遇到endl時(shí)換一行 標(biāo)準(zhǔn)輸入語句:標(biāo)準(zhǔn)輸入語句: cinscore; Notes: 使用使用cin/cout時(shí),應(yīng)包含頭文件:時(shí),應(yīng)包含頭文件:#include 第6頁/共52頁 const_cast deletedynamic_castexplicit
7、false friendinlinemutable namespacenew 第7頁/共52頁 operator privateprotected publicthis reinterpret_caststatic_casttemplate throw truetrytypeidtypename using virtualwchar_tasmcdecl far hugeinterrupt nearpascal export exceptfastcallsaveregs stdcall seg syscallfortranthread 源程序中,源程序中,C+關(guān)鍵字使用小寫!關(guān)鍵字使用小寫! 第
8、8頁/共52頁 Class關(guān)鍵字:表示開始定義一個(gè)類關(guān)鍵字:表示開始定義一個(gè)類 類的成員變量、成員函數(shù)定義類的成員變量、成員函數(shù)定義 類的成員函數(shù)類的成員函數(shù):定義類的動作(操作、行為)。用:定義類的動作(操作、行為)。用C+程序描述類進(jìn)行動作的過程。對類的程序描述類進(jìn)行動作的過程。對類的 訪問一般就是對類的函數(shù)的訪問。訪問一般就是對類的函數(shù)的訪問。向類發(fā)送消息一般就是調(diào)用類的成員函數(shù)。向類發(fā)送消息一般就是調(diào)用類的成員函數(shù)。 類名類名:一般以準(zhǔn)確、便于理解的英文作類名。:一般以準(zhǔn)確、便于理解的英文作類名。以大寫字母開頭以大寫字母開頭,后接字母、數(shù)字或下劃線,后接字母、數(shù)字或下劃線 。不能是關(guān)鍵
9、字!。不能是關(guān)鍵字! 這些類名是正確的:這些類名是正確的:Car,Bird,Animal,Camera,Student,Desk, WuhanOffice,Xianning_Office,F(xiàn)irstName,Last_Education,Class2,Level_4 等。等。 這些類名不正確:這些類名不正確:_name,2class,nameconst int a3=1,2,3; 指針操作:指針操作:凍結(jié)指針?biāo)傅刂返闹担簝鼋Y(jié)指針?biāo)傅刂返闹担篶onst 數(shù)據(jù)類型數(shù)據(jù)類型 *變量名稱;變量名稱; 凍結(jié)指針的值:數(shù)據(jù)類型凍結(jié)指針的值:數(shù)據(jù)類型 * const 變量名稱;稱為常量指針。數(shù)組名就是常
10、量變量名稱;稱為常量指針。數(shù)組名就是常量 指針。指針。 凍結(jié)函數(shù)參數(shù)的值:凍結(jié)函數(shù)參數(shù)的值:在使用別名引用、指針引用的函數(shù)參數(shù)中使用在使用別名引用、指針引用的函數(shù)參數(shù)中使用const,可保證參數(shù)的值不被修,可保證參數(shù)的值不被修 改。改。 如:函數(shù)原型為:如:函數(shù)原型為:void func(int *x,const int *y ); 則:調(diào)用:則:調(diào)用:func( p1=new int(2) /p1指向一個(gè)指向一個(gè)int整形無名空間,其中存放著整數(shù)整形無名空間,其中存放著整數(shù)2 運(yùn)算符運(yùn)算符delete: 它用來刪除由它用來刪除由new建立的對象,釋放指針?biāo)赶虻膬?nèi)存空間。其語法格式是:建立的
11、對象,釋放指針?biāo)赶虻膬?nèi)存空間。其語法格式是: delete /變量是表示指針變量,它將釋放由指針變量所指向的內(nèi)存空間。變量是表示指針變量,它將釋放由指針變量所指向的內(nèi)存空間。 例:例:int * p1; delete p1 / 若是用若是用new建立的數(shù)組,用建立的數(shù)組,用delete刪除時(shí)在指針名前面要加上刪除時(shí)在指針名前面要加上“”, 例如:例如: int *p1=new arr3; Delete p1; 第26頁/共52頁 八、數(shù)組(八、數(shù)組(Pg2.10) 數(shù)組的引入數(shù)組的引入 用于存放一組具有相同性質(zhì)或特征的數(shù)據(jù)。如:用于存放一組具有相同性質(zhì)或特征的數(shù)據(jù)。如:60個(gè)學(xué)生的成績、個(gè)學(xué)
12、生的成績、60種商品的編號等種商品的編號等 。 例:要求對例:要求對100個(gè)數(shù)進(jìn)行排序,則必須先給定這個(gè)數(shù)進(jìn)行排序,則必須先給定這100個(gè)數(shù),就必須定義個(gè)數(shù),就必須定義100個(gè)變量。個(gè)變量。 對矩陣的運(yùn)算需要先將矩陣的數(shù)據(jù)存入計(jì)算機(jī)中,然后使用矩陣算法進(jìn)行計(jì)算。對矩陣的運(yùn)算需要先將矩陣的數(shù)據(jù)存入計(jì)算機(jī)中,然后使用矩陣算法進(jìn)行計(jì)算。 數(shù)組的定義數(shù)組的定義 ; 如:如: int arr100; /定義用于存放定義用于存放100個(gè)整數(shù)的數(shù)組個(gè)整數(shù)的數(shù)組arr,一維、,一維、100個(gè)個(gè) 元素元素 int arr2020 ; /定義用于存放定義用于存放2020整數(shù)矩陣的二維數(shù)組整數(shù)矩陣的二維數(shù)組 數(shù)組的
13、元素?cái)?shù)組的元素 訪問數(shù)組元素通過數(shù)組名和下標(biāo)進(jìn)行。數(shù)組下標(biāo)表示訪問數(shù)組的第幾個(gè)元素。訪問數(shù)組元素通過數(shù)組名和下標(biāo)進(jìn)行。數(shù)組下標(biāo)表示訪問數(shù)組的第幾個(gè)元素。 C+中數(shù)組下標(biāo)從中數(shù)組下標(biāo)從0開始。開始。 如:如:int arr100; 則數(shù)組元素為:則數(shù)組元素為:arr0、arr1、arr2、arr99共共100個(gè)元素,相當(dāng)于在內(nèi)存中個(gè)元素,相當(dāng)于在內(nèi)存中 定義了定義了100個(gè)內(nèi)存變量。個(gè)內(nèi)存變量。 Int arr2020 ; 數(shù)組數(shù)組arr的各元素是什么?的各元素是什么? 第27頁/共52頁 八、數(shù)組(八、數(shù)組(Pg2.10) 數(shù)組的初始化數(shù)組的初始化 數(shù)組初始化指給數(shù)組的各元素賦值。數(shù)組初始化指
14、給數(shù)組的各元素賦值。 方法方法1:數(shù)組定義時(shí)對數(shù)組初始化數(shù)組定義時(shí)對數(shù)組初始化 如:如: int arr5=72,62,43,45,66; 方法方法2:數(shù)組定義后,分別對數(shù)組元素賦值數(shù)組定義后,分別對數(shù)組元素賦值 如:如: int arr3; arr0=34; arr1=arr2=45; 數(shù)組必須定義其維數(shù)及大??;但定義時(shí)初始化數(shù)組則可省略大小定義。數(shù)組必須定義其維數(shù)及大小;但定義時(shí)初始化數(shù)組則可省略大小定義。 定義數(shù)組并初始化數(shù)組時(shí),如果賦給的值的個(gè)數(shù)超出數(shù)組元素個(gè)數(shù),則編譯器顯示警定義數(shù)組并初始化數(shù)組時(shí),如果賦給的值的個(gè)數(shù)超出數(shù)組元素個(gè)數(shù),則編譯器顯示警 告信息,并舍棄后邊多余的數(shù)據(jù)。告信
15、息,并舍棄后邊多余的數(shù)據(jù)。 不能使用變量定義數(shù)組的大?。〔荒苁褂米兞慷x數(shù)組的大??! 比較下述兩組數(shù)組定義的差別:比較下述兩組數(shù)組定義的差別: 錯誤:錯誤:int size = 20;正確:正確:const int size = 20; int arrsize; int arrsize; 第28頁/共52頁 八、數(shù)組(八、數(shù)組(Pg2.10) 字符串字符串一維一維char數(shù)組(續(xù))數(shù)組(續(xù)) 字符串常量是一個(gè)以字符串常量是一個(gè)以null(0)結(jié)尾的一維字符數(shù)組。)結(jié)尾的一維字符數(shù)組。Null不能顯示!不能顯示! 如:如: 將將“student”以常量方式存放入內(nèi)存中,可以使用如下方式:以常量方
16、式存放入內(nèi)存中,可以使用如下方式: char stu = “student”; stu數(shù)組在內(nèi)存中占用幾個(gè)字節(jié)?數(shù)組在內(nèi)存中占用幾個(gè)字節(jié)? 字符串?dāng)?shù)組也可以使用下述方法初始化:字符串?dāng)?shù)組也可以使用下述方法初始化: char stu8; stu0=s; stu1=t; 第29頁/共52頁 八、數(shù)組(八、數(shù)組(Pg2.10) 例:例: (ex9)將如下矩陣數(shù)據(jù)存入數(shù)組,并按下述格式輸出:)將如下矩陣數(shù)據(jù)存入數(shù)組,并按下述格式輸出: 3 2 4 4 5 7 5 6 2 例:例: ( ex10,ex11 )數(shù)組降維。觀察)數(shù)組降維。觀察 ex10 和和ex11 ,理解數(shù)組在內(nèi)存中的存儲情理解數(shù)組在內(nèi)存
17、中的存儲情 況和降維的概念。況和降維的概念。 降維處理:把多維數(shù)組轉(zhuǎn)變成一維數(shù)組,便于進(jìn)行數(shù)據(jù)處理(如排序等)降維處理:把多維數(shù)組轉(zhuǎn)變成一維數(shù)組,便于進(jìn)行數(shù)據(jù)處理(如排序等) 。 指針和地址操作:指針和地址操作:指針用于指向內(nèi)存中的一個(gè)地址。指針變量的值就是內(nèi)存地址。通指針用于指向內(nèi)存中的一個(gè)地址。指針變量的值就是內(nèi)存地址。通 過指針可以直接操作內(nèi)存中的內(nèi)容。過指針可以直接操作內(nèi)存中的內(nèi)容。 指針定義:指針定義: 類型類型 * 名稱;名稱; 地址使用:地址使用: a=b=6;(a為左值,為左值,b為左值、右值,為左值、右值,6為右值)為右值) a=5=43;(錯誤!);(錯誤?。?(a=5)=
18、43;(正確?。?;(正確?。?第31頁/共52頁 九、運(yùn)算符(九、運(yùn)算符(Pg4.3) 算術(shù)運(yùn)算符算術(shù)運(yùn)算符(Pg 4.3) 運(yùn)算符號運(yùn)算符號使用方法使用方法含義含義 +x = x+y -x = x-y *x = x*y /x = x/y %x = x%y 計(jì)算計(jì)算x除除y的余數(shù),只能對整型數(shù)運(yùn)算的余數(shù),只能對整型數(shù)運(yùn)算 +=x + = yx=x+y -=x - = yx=x-y *=x *= yx=x*y /=x / = yx=x/y %=x% = yx=x%y,只能對整型數(shù)運(yùn)算,只能對整型數(shù)運(yùn)算 +x = y+ , x = +yx=y y=y+1 , y=y+1 x=y -x = y- ,
19、 x = -yx=y y=y-1 , y=y-1 x=y 第32頁/共52頁 九、運(yùn)算符(九、運(yùn)算符(Pg4.3) 算術(shù)運(yùn)算符(續(xù)算術(shù)運(yùn)算符(續(xù)Pg4.3) 例例(ex6)觀察下述程序的結(jié)觀察下述程序的結(jié) 果果: short int x=(7+5)*3+8; coutxendl; x+=4; coutxendl; int y=6; x=+y+2; coutxtyendl; x=y+-2; cout xtyendl; x/=1234; coutxendl; x=12345*5.3f; coutx 求左值是否大于右值求左值是否大于右值 Xy 同上同上 求左值是否小于右值求左值是否小于右值 X= 求
20、左值是否大于等于右值求左值是否大于等于右值 X=y 同上同上 = 求左值是否小于等于右值求左值是否小于等于右值 X5 逗號運(yùn)算符將各表達(dá)式從左往右進(jìn)行計(jì)算,整個(gè)式子的最后結(jié)果為最后一個(gè)表達(dá)式的逗號運(yùn)算符將各表達(dá)式從左往右進(jìn)行計(jì)算,整個(gè)式子的最后結(jié)果為最后一個(gè)表達(dá)式的 值。值。 如:如:(ex8)int a=1,b,c,x; x=(a=a+,b=a+,c=b+2); coutx abc=0) if (x50) cout “數(shù)據(jù)正確數(shù)據(jù)正確”endl; else cout“數(shù)據(jù)不正確數(shù)據(jù)不正確”endl; 這個(gè)這個(gè)else和哪個(gè)和哪個(gè)if配套?配套? 條件表達(dá)式:條件表達(dá)式: (條件表達(dá)式)?(條
21、件為真時(shí)的表達(dá)式)(條件表達(dá)式)?(條件為真時(shí)的表達(dá)式): (條件為假時(shí)的表達(dá)式(條件為假時(shí)的表達(dá)式 ) 如:如: 把把a(bǔ)、b中較小的數(shù)賦給中較小的數(shù)賦給x,使用條件表達(dá)式:,使用條件表達(dá)式: x = ab ? a:b; 例例ex11的簡單的方式:的簡單的方式:coutx(xy)?“小于小于”: (x=y)?“等于等于”:“大于大于 ”yendl; 第39頁/共52頁 十、條件構(gòu)造(十、條件構(gòu)造(Pg 4.8) switch case構(gòu)造(構(gòu)造(Pg 4.12) 當(dāng)同一個(gè)變量有當(dāng)同一個(gè)變量有3個(gè)以上的情況需要判斷時(shí),使用多重個(gè)以上的情況需要判斷時(shí),使用多重if 嵌套顯然會造成程序可讀性差,且容
22、嵌套顯然會造成程序可讀性差,且容 易帶來程序的邏輯錯誤。那么使用易帶來程序的邏輯錯誤。那么使用switchcase 語句可很好地解決這個(gè)問題。語句可很好地解決這個(gè)問題。 語法格式:語法格式: switch (變量名稱)(變量名稱) case 常量常量1: 語語 句組句組1; break; case 常量常量2: 語語 句組句組2; break; default: 語語 句組;句組; 判斷判斷“變量變量”的值是否與的值是否與“常量常量1、常量、常量2” 中的某一個(gè)相等,執(zhí)行相應(yīng)的語句組。若都不相等中的某一個(gè)相等,執(zhí)行相應(yīng)的語句組。若都不相等 ,則執(zhí)行,則執(zhí)行default的語句組。的語句組。 b
23、reak語句使語句使“語句組語句組”執(zhí)行完后跳轉(zhuǎn)到執(zhí)行完后跳轉(zhuǎn)到 switch語句的結(jié)束。語句的結(jié)束。 如果沒有如果沒有break,則條件成立的,則條件成立的case后的全部后的全部 語句都被執(zhí)行(不再進(jìn)行判斷)!語句都被執(zhí)行(不再進(jìn)行判斷)! 執(zhí)行邏輯:執(zhí)行邏輯: 變量類型只能是變量類型只能是char和和int型!型! case中的常量列表值不能重復(fù)!中的常量列表值不能重復(fù)! case和和default順序可以隨意!順序可以隨意! 第40頁/共52頁 十、條件構(gòu)造(十、條件構(gòu)造(Pg 4.8) switch case構(gòu)造(續(xù))構(gòu)造(續(xù)) 例例:(:(ex13)輸入)輸入1、2、7的一個(gè)數(shù)字,
24、顯示對應(yīng)的的一個(gè)數(shù)字,顯示對應(yīng)的“星期星期”數(shù)。如:輸入數(shù)。如:輸入3,顯示,顯示“星期三星期三 ”。 while循環(huán)循環(huán) 語句語法語句語法: while (表達(dá)式表達(dá)式) 語句語句 組組; 適用于未知循環(huán)次數(shù)的循環(huán)!適用于未知循環(huán)次數(shù)的循環(huán)! 執(zhí)行邏輯執(zhí)行邏輯: 例例:(ex14)計(jì)算計(jì)算Fibonacci數(shù)列,直到最后一項(xiàng)為數(shù)列,直到最后一項(xiàng)為89為止。為止。 如何使用如何使用while循環(huán)控制對任意多個(gè)數(shù)進(jìn)行處理?(如:隨時(shí)登記進(jìn)入書店的循環(huán)控制對任意多個(gè)數(shù)進(jìn)行處理?(如:隨時(shí)登記進(jìn)入書店的 顧客信息及購書情況,直到書店下班為止。)顧客信息及購書情況,直到書店下班為止。) 條件表達(dá)式條件
25、表達(dá)式 語句組語句組 true false 十一、循環(huán)構(gòu)造(十一、循環(huán)構(gòu)造(Pg 4.14) 第41頁/共52頁 十一、循環(huán)構(gòu)造(十一、循環(huán)構(gòu)造(Pg 4.14) dowhile循環(huán)構(gòu)造(循環(huán)構(gòu)造(Pg 4.17) 語句語法:語句語法: do 語句語句 組;組; while (布爾表達(dá)布爾表達(dá) 式式); 執(zhí)行邏輯:執(zhí)行邏輯: 語句組語句組 布爾表達(dá)式布爾表達(dá)式 false true while循環(huán)當(dāng)條件成立才開始執(zhí)行循環(huán)語句;循環(huán)當(dāng)條件成立才開始執(zhí)行循環(huán)語句;do while 先執(zhí)行語句后才判斷條件。循環(huán)條件先執(zhí)行語句后才判斷條件。循環(huán)條件 中的變量可以不賦初值!中的變量可以不賦初值! whi
26、le循環(huán)和循環(huán)和dowhile循環(huán)都必須在循環(huán)執(zhí)行的語句組內(nèi)使控制變量的值發(fā)生改變,才能保證循環(huán)都必須在循環(huán)執(zhí)行的語句組內(nèi)使控制變量的值發(fā)生改變,才能保證 不執(zhí)行死循環(huán)。不執(zhí)行死循環(huán)。 例例:(:(ex15)隨時(shí)統(tǒng)計(jì)書店的總營業(yè)額,直到書店下班為止。隨時(shí)統(tǒng)計(jì)書店的總營業(yè)額,直到書店下班為止。 第42頁/共52頁 十一、循環(huán)構(gòu)造(十一、循環(huán)構(gòu)造(Pg 4.14) for循環(huán)構(gòu)造(循環(huán)構(gòu)造(Pg 4.17) 語句語法:語句語法: for(初始化表達(dá)式初始化表達(dá)式;測試表達(dá)式測試表達(dá)式;改變表達(dá)式改變表達(dá)式) 語句組;語句組; 例例:(:(ex16)修改修改ex14,求,求Fibonacci數(shù)列的前
27、數(shù)列的前20項(xiàng)。項(xiàng)。 執(zhí)行邏輯:執(zhí)行邏輯: 語句組語句組 測試表達(dá)式測試表達(dá)式 false true 初始化表達(dá)式初始化表達(dá)式 改變表達(dá)式改變表達(dá)式 適用于固定步長的循環(huán)控制。適用于固定步長的循環(huán)控制。 步長:步長:“改變表達(dá)式改變表達(dá)式”對變量的增、減量。對變量的增、減量。 例例:(:(ex17)求求1至至100的所有奇數(shù)和、所有偶數(shù)和。的所有奇數(shù)和、所有偶數(shù)和。 第43頁/共52頁 例:例:(ex18)某書店庫存圖書)某書店庫存圖書120本,編程序?qū)︿N售金額進(jìn)行匯總,直至所有書賣完或下班為止。本,編程序?qū)︿N售金額進(jìn)行匯總,直至所有書賣完或下班為止。 提示:假設(shè)當(dāng)本次銷售金額為提示:假設(shè)當(dāng)本
28、次銷售金額為-111時(shí)表示下班。時(shí)表示下班。 注意:當(dāng)注意:當(dāng)continue使用在使用在while循環(huán)、循環(huán)、dowhile循環(huán)中時(shí),如果執(zhí)行循環(huán)中時(shí),如果執(zhí)行continue前不修改循前不修改循 環(huán)控環(huán)控 制制 變量的值,將容易造成死循環(huán)!變量的值,將容易造成死循環(huán)! 十一、循環(huán)構(gòu)造(十一、循環(huán)構(gòu)造(Pg 4.14) Break和和continue語句(語句(Pg 4.20) break語句使用在語句使用在switch、while循環(huán)、循環(huán)、dowhile循環(huán)、循環(huán)、for循環(huán)中。循環(huán)中。 break在在switch中,執(zhí)行中,執(zhí)行break時(shí),直接跳轉(zhuǎn)到時(shí),直接跳轉(zhuǎn)到switch的下一語
29、句執(zhí)行。的下一語句執(zhí)行。 break在在while循環(huán)、循環(huán)、dowhile循環(huán)、循環(huán)、for循環(huán)中,執(zhí)行循環(huán)中,執(zhí)行break時(shí),無論循環(huán)條件如何,時(shí),無論循環(huán)條件如何, 直接結(jié)束循環(huán),跳轉(zhuǎn)到循環(huán)語句的下一語句執(zhí)行。直接結(jié)束循環(huán),跳轉(zhuǎn)到循環(huán)語句的下一語句執(zhí)行。 例:例:(ex19)某書店庫存圖書)某書店庫存圖書120本,編程序?qū)︿N售金額進(jìn)行匯總,直至所有書賣完或下班為止。若本,編程序?qū)︿N售金額進(jìn)行匯總,直至所有書賣完或下班為止。若 輸入的金額小于等于輸入的金額小于等于0,則提示,則提示“數(shù)據(jù)輸入錯誤數(shù)據(jù)輸入錯誤”,并繼續(xù)輸入下一個(gè)數(shù)。,并繼續(xù)輸入下一個(gè)數(shù)。 提示:假設(shè)當(dāng)本次銷售金額為提示:假
30、設(shè)當(dāng)本次銷售金額為-111時(shí)表示下班。時(shí)表示下班。 continue語句語句使用在使用在while循環(huán)、循環(huán)、dowhile循環(huán)、循環(huán)、for循環(huán)中。循環(huán)中。 當(dāng)執(zhí)行當(dāng)執(zhí)行continue語句時(shí),將跳過語句時(shí),將跳過continue后面的其他語句,直接回到循環(huán)的開始執(zhí)行后面的其他語句,直接回到循環(huán)的開始執(zhí)行 。 第44頁/共52頁 C+初步初步 綜合示例綜合示例 第45頁/共52頁 綜合示例綜合示例 例例1:(samp1)冒泡排序()冒泡排序(bubble sort)。)。 關(guān)鍵問題:在關(guān)鍵問題:在N個(gè)數(shù)中找出最大數(shù)!個(gè)數(shù)中找出最大數(shù)! 方法:將第一個(gè)數(shù)和第方法:將第一個(gè)數(shù)和第J(2=J=N-
31、1)個(gè)數(shù)比較,)個(gè)數(shù)比較, 如果第一個(gè)數(shù)大,則繼續(xù)比較下一個(gè)數(shù);如果第一個(gè)數(shù)大,則繼續(xù)比較下一個(gè)數(shù); 否則,交換第一個(gè)數(shù)和第否則,交換第一個(gè)數(shù)和第J個(gè)數(shù)。個(gè)數(shù)。 對對M個(gè)數(shù)進(jìn)行從大到小排序:先在全部數(shù)找出最大的數(shù)、再在剩余的數(shù)中找出第二大的數(shù)、再個(gè)數(shù)進(jìn)行從大到小排序:先在全部數(shù)找出最大的數(shù)、再在剩余的數(shù)中找出第二大的數(shù)、再 在剩余的數(shù)中找出第三大的數(shù),直到在最后兩個(gè)數(shù)中找出第在剩余的數(shù)中找出第三大的數(shù),直到在最后兩個(gè)數(shù)中找出第N-1大的數(shù)。大的數(shù)。 使較大的值像氣泡一樣逐漸使較大的值像氣泡一樣逐漸“上浮上浮”到數(shù)組的頂部,而較小的值逐漸到數(shù)組的頂部,而較小的值逐漸“下沉下沉”到數(shù)組的底部。到數(shù)
32、組的底部。 稱為稱為“冒泡排序冒泡排序”。 插入排序法(插入排序法(insert sort):):將數(shù)組的頭兩個(gè)元素按排序順序排列;將沒排序的后一個(gè)元素將數(shù)組的頭兩個(gè)元素按排序順序排列;將沒排序的后一個(gè)元素 與其前面的元素比較,尋找適當(dāng)?shù)牟迦胛恢貌迦?;尋找插入位置時(shí)順便把插入位置后面的元素后移與其前面的元素比較,尋找適當(dāng)?shù)牟迦胛恢貌迦?;尋找插入位置時(shí)順便把插入位置后面的元素后移 ;找到插入位置后,將沒排序的元素插入;重復(fù)上述過程直到全部排序完畢。(;找到插入位置后,將沒排序的元素插入;重復(fù)上述過程直到全部排序完畢。(例例2 samp2) 快速排序法(快速排序法(quick sort):選擇一個(gè)
33、分界值,把數(shù)組分成兩部分,大于等于分界值的集中到:選擇一個(gè)分界值,把數(shù)組分成兩部分,大于等于分界值的集中到 前面,小于分界值的集中到后面;對分出來的兩部分重復(fù)上述步驟,直到整個(gè)數(shù)組排序完畢。前面,小于分界值的集中到后面;對分出來的兩部分重復(fù)上述步驟,直到整個(gè)數(shù)組排序完畢。 第46頁/共52頁 綜合示例綜合示例 例例3(samp3):打印九九乘法口訣表。打印九九乘法口訣表。 補(bǔ)充知識補(bǔ)充知識I/OI/O流常用控制符(頭文件流常用控制符(頭文件iomanip.hiomanip.h) 控制符控制符功能功能 decdec置顯示基數(shù)為置顯示基數(shù)為1010 hexhex置顯示基數(shù)為置顯示基數(shù)為1616 o
34、ctoct置顯示基數(shù)為置顯示基數(shù)為8 8 setfill( c )setfill( c )設(shè)置填充字符為設(shè)置填充字符為c(charc(char值值) ) setprecision(n)setprecision(n)設(shè)置顯示小數(shù)精度為設(shè)置顯示小數(shù)精度為n n位位 setw(n)setw(n)設(shè)域?qū)挒樵O(shè)域?qū)挒閚 n個(gè)字符個(gè)字符 setiosflags(ios:fixed)setiosflags(ios:fixed)固定的浮點(diǎn)顯示固定的浮點(diǎn)顯示 setiosflags(ios:scientific)setiosflags(ios:scientific)指數(shù)表示指數(shù)表示 setiosflags(ios
35、:left)setiosflags(ios:left)左對齊左對齊 setiosflags(ios:right)setiosflags(ios:right)右對齊右對齊 setiosflags(ios:skipws)setiosflags(ios:skipws)忽略前導(dǎo)空白忽略前導(dǎo)空白 setiosflags(ios:uppercase)setiosflags(ios:uppercase)1616進(jìn)制數(shù)大寫輸出進(jìn)制數(shù)大寫輸出 setiosflags(ios:lowercase)setiosflags(ios:lowercase)1616進(jìn)制數(shù)小寫輸出進(jìn)制數(shù)小寫輸出 第47頁/共52頁 綜合示例
36、綜合示例 例例4(samp4):用公式:用公式: 求求的近似值,直到最后一項(xiàng)的絕對值小于的近似值,直到最后一項(xiàng)的絕對值小于10-8為止。為止。 . 7 1 5 1 3 1 1 4 分析:分析:值用值用double型,因?yàn)榫瘸^小數(shù)點(diǎn)型,因?yàn)榫瘸^小數(shù)點(diǎn)7位;先求位;先求 / 4 ,再求,再求 ;第;第n項(xiàng)為:項(xiàng)為: (-1)n-1/(2n-1),使用一個(gè)變量進(jìn)行正負(fù)轉(zhuǎn)換。),使用一個(gè)變量進(jìn)行正負(fù)轉(zhuǎn)換。 例例5(samp5):顯示如下圖形:顯示如下圖形: * * * * * * 分析:分析:總共顯示總共顯示n行,則第行,則第k行起始位置為:行起始位置為:n-k+1;第;第k行顯示行顯示2k-
37、1個(gè)符號。個(gè)符號。 第48頁/共52頁 C+知識知識-面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ) 一、變量作用域一、變量作用域 變量有三種作用域:變量有三種作用域:文件作用域、局部作用域、類作用域文件作用域、局部作用域、類作用域。 文件作用域:稱為全局變量文件作用域:稱為全局變量-在同一個(gè)工程的一個(gè)或多個(gè)文件中都能訪問。(在同一個(gè)工程的一個(gè)或多個(gè)文件中都能訪問。(例例Pg4.26 全局變量全局變量) 注意注意:當(dāng)使用其他文件定義的全局變量時(shí),必須使用:當(dāng)使用其他文件定義的全局變量時(shí),必須使用extern進(jìn)行變量聲明。進(jìn)行變量聲明。 局部作用域:稱為局部變量局部作用域:稱為局部變量-在函數(shù)花括號內(nèi)
38、或在函數(shù)花括號內(nèi)或for 、 while、 if等語句內(nèi)定義的變量。這些變量在等語句內(nèi)定義的變量。這些變量在 離開定義范圍后不能再使用。(離開定義范圍后不能再使用。(例例Pg4.27 局部變量局部變量) 類作用域:在類中定義的變量,稱為類的成員變量,只可以在類中直接訪問。類作用域:在類中定義的變量,稱為類的成員變量,只可以在類中直接訪問。 即使是類中的即使是類中的public(公有)變量,在類外訪問時(shí),也必須使用:(公有)變量,在類外訪問時(shí),也必須使用:類名類名.變量名變量名 的方的方 式進(jìn)行。(式進(jìn)行。(例例Pg4.27 類的定義類的定義) 二、函數(shù)聲明、定義、調(diào)用二、函數(shù)聲明、定義、調(diào)用 函數(shù)在調(diào)用前必須聲明或定義!函數(shù)在調(diào)用前必須聲明或定義! 函數(shù)聲明:函數(shù)聲明:稱為函數(shù)原型稱為函數(shù)原型。只聲明:。只聲明:函數(shù)返回值類型函數(shù)返回值類型 函數(shù)名稱(參數(shù));函數(shù)名稱(參數(shù)); 函數(shù)定義:定義函數(shù)的函數(shù)定義:定義函數(shù)的返回值類型返回值類型 函數(shù)名稱(參數(shù))函數(shù)名稱(參數(shù))功能功能 注意:注意:函數(shù)定義不可嵌套!函數(shù)定義不可嵌套! 第49頁/共52頁 C+知識知識-面向
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高性能特種合金材料項(xiàng)目合作計(jì)劃書
- 同城工地出售合同范本
- 合作建材協(xié)議合同范例
- 共同投資協(xié)議合同范本
- 賣地買房合同范本
- 卷宗管理服務(wù)合同范例
- 合同范本庫編制說明
- 資質(zhì)借用合同范本
- 農(nóng)田煙桿出售合同范本
- 幼兒園塑膠地板購銷施工合同范本
- 固定翼無人機(jī)飛行原理課件
- 《母嬰護(hù)理》課程標(biāo)準(zhǔn)
- 軟基處治面積四方聯(lián)測測量記錄表(清淤后)
- 考試通用答題卡word模板
- 尾礦庫安全檢查表
- 解除、終止勞動合同通知書范本
- 勞動定額定員標(biāo)準(zhǔn)化1(孫義敏)
- 深信服桌面云方案
- 2021年深圳實(shí)驗(yàn)學(xué)校初中部七年級入學(xué)分班考試數(shù)學(xué)試卷及答案解析
- ??怂箍等鴺?biāo)測量儀的使用課件
- 高血壓臨床路徑
評論
0/150
提交評論