




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、C+C+程序設計課件程序設計課件基本語言基本語言2先修課程:先修課程:高級語言程序設計(一)高級語言程序設計(一)面向對象技術面向對象技術3參考書:參考書:C+Primer 第三版第三版Stanley B Lippman著著 中文版,潘愛民中文版,潘愛民 張麗譯張麗譯中國電力出版社中國電力出版社C+大學教程大學教程 第二版第二版 Harvey M. Deitel著著邱仲潘等譯,電子工業(yè)出版社邱仲潘等譯,電子工業(yè)出版社C#大學教程大學教程Harvey M. Deitel等著等著電子工業(yè)出版社電子工業(yè)出版社4課時:課時:1818學時(學時(1 11010周)周)語言平臺:語言平臺:C+C+Micr
2、osoft Visual C+ 7.0 Microsoft Visual C+ 7.0 或或 Microsoft Visual Studio .NetMicrosoft Visual Studio .Net ConsoleConsole模式模式C#C#Microsoft Visual Studio .NetMicrosoft Visual Studio .Net5 作業(yè)命名方式:作業(yè)命名方式:假如學號為假如學號為3906010139060101的同學想提交第一次作的同學想提交第一次作業(yè),則需要將源程序文件命名為:業(yè),則需要將源程序文件命名為:39060101C1.cpp39060101C1.c
3、pp或壓縮為:或壓縮為:39060101C1.rar39060101C1.rar作業(yè)提交方式:作業(yè)提交方式:以班為單位發(fā)送到:以班為單位發(fā)送到: 作業(yè)要求:作業(yè)要求:u 嚴禁抄襲!嚴禁抄襲!u 必須寫注釋語句!必須寫注釋語句!6第一章第一章C+C+基本語言基本語言71.1 1.1 注釋注釋C+中有兩種注釋符號:中有兩種注釋符號:n一種是注釋對一種是注釋對/* */ ,可以跨越多行程序。,可以跨越多行程序。n第二種注釋符是雙斜線第二種注釋符是雙斜線“/” ,以以“/”開始,到行末結束。開始,到行末結束。8注釋注釋例:例:/increment numnum+;num+; /increment nu
4、m91.2 1.2 頭文件頭文件新式標準庫頭文件不再使用擴展名新式標準庫頭文件不再使用擴展名.h.h自定義頭文件應使用擴展名自定義頭文件應使用擴展名.h.h舊式舊式stdio.hstdio.hstdlib.hstdlib.hmath.hmath.hstring.hstring.htime.htime.hctype.hctype.h新式新式cstdiocstdiocstdlibcstdlibcmathcmathcstringcstringctimectimecctypecctype舊式舊式limits.hlimits.hfloat.hfloat.h assert.hassert.hiostrea
5、m.hiostream.hfstream.hfstream.hiomanip.hiomanip.h新式新式climitsclimitscfloatcfloatcassertcassertiostreamiostreamfstreamfstreamiomanipiomanip101.3 1.3 標準輸入標準輸入/ /輸出初步輸出初步C C語言中:語言中:#include #include printf(“%d %s n”,num,str);printf(“%d %s n”,num,str);11標準輸入標準輸入/輸出初步輸出初步C+C+的輸入的輸入/ /輸出功能由輸入輸出功能由輸入/ /輸出流庫
6、輸出流庫iostreamiostream提供:提供:#include #include 終端輸入終端輸入, ,也被稱為標準輸入也被稱為標準輸入, , 與預定義的與預定義的iostream iostream 對象對象cincin綁定在一起綁定在一起. . 終端輸出終端輸出, ,也被稱為標準輸出也被稱為標準輸出, , 與預定義的與預定義的iostreamiostream對象對象coutcout綁定在一起綁定在一起輸入操作符輸入操作符 輸出操作符輸出操作符 cin 變量名;變量名;cout cout 變量名變量名 | | 表達式表達式 | | 常量常量 ;注意:輸入注意:輸入/ /輸出操作符可以連用
7、輸出操作符可以連用13標準輸入標準輸入/ /輸出初步輸出初步例:例:int v1, v2int v1, v2;/ ./ .cout “The sum of v1 + v2 = ”cout “The sum of v1 + v2 = ”;cout v1 + v2cout v1 + v2;cout ncout n;cout The sum of v1 + v2 = v1 + v2 ncout The sum of v1 + v2 = v1 + v2 n; 連用連用14標準輸入標準輸入/輸出初步輸出初步cout The sum of v1 + v2 = v1 + v2 ncout The sum o
8、f v1 + v2 = v1 + v2 n; 預定義的預定義的iostream iostream 操縱符操縱符endlendl在輸出流中插入一個換行符,在輸出流中插入一個換行符,然后刷新輸出緩沖區(qū),然后刷新輸出緩沖區(qū),c+c+中一般不寫中一般不寫 n, n, 而寫成:而寫成:cout “The sum of v1 + v2 = ” v1 + v2 endlcout “The sum of v1 + v2 = ” v1 + v2 endl;為了便于閱讀,連接在一起的輸出操作符可以分寫在幾行:為了便于閱讀,連接在一起的輸出操作符可以分寫在幾行:cout The sum of cout The su
9、m of v1 + v1 + v2 “ = ” v1 + v2 endl v2 “ = ” v1 + v2 用來從標準輸入讀入一個值,例如:用來從標準輸入讀入一個值,例如:char ifile100, ofile100;char ifile100, ofile100;/ ./ .cout Please enter input and output file names: ;cout ifile ofilecin ifile ofile;有兩種方法輸入連續(xù)的數(shù)據(jù):有兩種方法輸入連續(xù)的數(shù)據(jù):每行只輸入一個數(shù)據(jù),以換行符結束一個數(shù)據(jù)的輸入;每行只輸入一個數(shù)據(jù),以換行符結束一個數(shù)據(jù)的輸入;一行輸入多個
10、數(shù)據(jù),以空格符分隔多個數(shù)據(jù),以換行符結束一行輸入多個數(shù)據(jù),以空格符分隔多個數(shù)據(jù),以換行符結束一行數(shù)據(jù)的輸入。一行數(shù)據(jù)的輸入。161.4 1.4 名字空間初步名字空間初步:namespace:namespace#include #include void main( )void main( ) char name100;char name100;int age;int age;cout “Please enter name and age:” endl;cout “Please enter name and age:” name agecin name age; Compiling.Compil
11、ing.console.cppconsole.cppconsole.cpp(11) : error C2065: cout : undeclared identifierconsole.cpp(11) : error C2065: cout : undeclared identifierconsole.cpp(11) : error C2065: endl : undeclared identifierconsole.cpp(11) : error C2065: endl : undeclared identifierconsole.cpp(12) : error C2065: cin : u
12、ndeclared identifierconsole.cpp(12) : error C2065: cin : undeclared identifier17名字空間初步名字空間初步IBMIBM庫的頭文件:庫的頭文件:stringstringlistliststackstackMicrosoftMicrosoft庫的頭文件:庫的頭文件:vectorvectorqueuequeuestackstackvoid main( )void main( ) /使用數(shù)據(jù)類型使用數(shù)據(jù)類型listlist和和queuequeue /包含包含IBMIBM庫的頭文件庫的頭文件/包含包含MicrosoftMicr
13、osoft庫的頭文件庫的頭文件造成造成stackstack定義沖定義沖突突18名字空間初步名字空間初步IBMIBM庫的頭文件:庫的頭文件:namespace ibm namespace ibm string string list list stack stack MicrosoftMicrosoft庫的頭文件:庫的頭文件:namespace micro namespace micro vector vector queue queue stack stack void main( )void main( ) /使用數(shù)據(jù)類型使用數(shù)據(jù)類型listlist和和queuequeueibm:ibm:l
14、istlistmicro:micro:queuequeue /包含包含IBMIBM庫的頭文件庫的頭文件/包含包含MicrosoftMicrosoft庫的頭文件庫的頭文件19為了防止標準為了防止標準C+C+庫的組件污染用戶程序的全局名字空間庫的組件污染用戶程序的全局名字空間, ,所所有標準有標準C+C+庫的組件都聲明在一個被稱為庫的組件都聲明在一個被稱為std std 的名字空間內(nèi)。的名字空間內(nèi)。名字空間初步名字空間初步#include #include void main( )void main( ) char name100char name100;int ageint age;std:st
15、d:cout “Please enter name and age:”cout “Please enter name and age:” name agecin name age; 20名字空間初步名字空間初步#include #include using namespace stdusing namespace std;void main( )void main( ) char name100char name100;int ageint age;cout “Please enter name and age:” endlcout “Please enter name and age:” n
16、ame agecin name age; 使用名字空間:使用名字空間:using namespace using namespace 空間名;空間名;211.5 1.5 數(shù)據(jù)類型數(shù)據(jù)類型枚舉、結構、聯(lián)合:枚舉、結構、聯(lián)合:enum Color red, yellow, blue, green, white, black ;enum Color red, yellow, blue, green, white, black ;struct Employee struct Employee char char * * name; name;int age;int age;double salary;
17、double salary;char char * * address; address;enum Color book;enum Color book;struct Employee wang;struct Employee wang;C+C+中定義的枚舉名、結構名、聯(lián)合名都是數(shù)據(jù)類型名中定義的枚舉名、結構名、聯(lián)合名都是數(shù)據(jù)類型名Color book;Employee wang;22C+C+新增了兩種類型:新增了兩種類型:布爾類型布爾類型類型名:類型名:boolbool,只有兩個值:,只有兩個值:truetrue和和falsefalse,一般用作條件判斷。一般用作條件判斷。bool isOk
18、 = falsebool isOk = false;抽象數(shù)據(jù)類型:類類型抽象數(shù)據(jù)類型:類類型 classclass數(shù)據(jù)類型數(shù)據(jù)類型false false 和和true true 能自動轉能自動轉換成整數(shù)值換成整數(shù)值0 0 和和1 10 0 或空指針被轉換成或空指針被轉換成false, false, 所有其他的值都所有其他的值都被轉換成被轉換成true true 23#include main()char str20;str=hello;printf(%s,str);24對于每一個變量都有兩個值與其相關聯(lián):對于每一個變量都有兩個值與其相關聯(lián):1.1.它的它的數(shù)據(jù)值數(shù)據(jù)值,存儲在某個內(nèi)存地址中,有
19、時這個值也被,存儲在某個內(nèi)存地址中,有時這個值也被稱為對象的稱為對象的右值右值rvaluervalue,我們也可認為右值的意思是,我們也可認為右值的意思是被讀取的值被讀取的值read valueread value ,常量和變量都可被用作右值。,常量和變量都可被用作右值。2.2.它的它的地址值地址值即存儲數(shù)據(jù)值的那塊內(nèi)存的地址,即存儲數(shù)據(jù)值的那塊內(nèi)存的地址,它有時被稱為變量的它有時被稱為變量的左值左值lvaluelvalue,我們也可認為左值的意思是,我們也可認為左值的意思是位置值位置值location valuelocation value, 常量不能被用作左值。常量不能被用作左值。變量的左
20、值與右值:變量的左值與右值:int a = 8;int a = 8;cout a “hello”;cout a “hello”;8a ahello25在下面的表達式中在下面的表達式中char chchar ch;ch = ch Och = ch O;變量的左值與右值:變量的左值與右值:變量變量ch ch 同時出現(xiàn)在賦值操作符的左邊和右邊。同時出現(xiàn)在賦值操作符的左邊和右邊。在表達式的右邊在表達式的右邊ch ch 和文字字符常量用作右值,在左邊和文字字符常量用作右值,在左邊chch用作用作左值。左值。一般地,賦值操作符的左邊總是要求一個左值,一般地,賦值操作符的左邊總是要求一個左值,例:例:0 =
21、 1;0 = 1;ch + 1 = ch 0;ch + 1 = ch 0;/ / 錯誤錯誤: : 文字常量不具有左值文字常量不具有左值/ / 錯誤錯誤: : 算術表達式不具有左值算術表達式不具有左值數(shù)組名是一常量數(shù)組名是一常量,代表數(shù)組的首地址,因此,代表數(shù)組的首地址,因此不具有左值不具有左值。26變量定義的位置:變量定義的位置:在在C C中,變量的定義并不被視為中,變量的定義并不被視為C C語言的語句,塊中的所有語言的語句,塊中的所有變量定義必須出現(xiàn)在任何程序語句之前。變量定義必須出現(xiàn)在任何程序語句之前。在在C+C+中,變量定義被視為中,變量定義被視為C+C+語言的一條語句,語言的一條語句,
22、一般它可以被放在程序中任何允許語句出現(xiàn)的地方。一般它可以被放在程序中任何允許語句出現(xiàn)的地方。main( ) char infile100; char outfile100; FILE * f1, *f2; scanf(“%s”, infile); if(f1=fopen(infile, “r”)=NULL)printf(“cant open n”);return 1; main( ) char infile100; FILE * f1; scanf(“%s”, infile); if(f1=fopen(infile, “r”)=NULL)printf(“cant open n”);return
23、 1; char outfile100; FILE * f2; 27C+語言預定義了字符串類型:語言預定義了字符串類型:string類,類,該類提供了各種字符串操作:該類提供了各種字符串操作:操作操作示例示例注釋注釋+s+t將串將串s和和t連接成一個新串連接成一個新串=s=t用用t更新更新s+=s+=t等價于等價于s=s+t=s=t判斷判斷s與與t是否相同是否相同st判斷判斷s是否小于是否小于t si訪問串中下標為訪問串中下標為i的字符的字符length() s.length() 返回串的長度返回串的長度28使用預定義類型使用預定義類型string,必須包含頭文件:,必須包含頭文件:,例:,例
24、:#include #include using namespace std;int main()string s1=your name;string name;coutPlease inputs1:name;if(name!=)s1+= is ;s1+=name;couts1;return 0;291.6 1.6 動態(tài)存儲動態(tài)存儲系統(tǒng)為每個程序都提供了一個在程序執(zhí)行時可用的內(nèi)存池,系統(tǒng)為每個程序都提供了一個在程序執(zhí)行時可用的內(nèi)存池,這個可用內(nèi)存池被稱為程序的這個可用內(nèi)存池被稱為程序的空閑存儲區(qū)或堆空閑存儲區(qū)或堆(heapheap),),運行時刻的內(nèi)存分配被稱為運行時刻的內(nèi)存分配被稱為動態(tài)內(nèi)存
25、分配動態(tài)內(nèi)存分配C C中:中:int int * *pi;pi;pi = (int pi = (int * *) malloc( sizeof(int) );) malloc( sizeof(int) );free(pi);free(pi);30動態(tài)存儲動態(tài)存儲:new delete:new deletetype *p;p = new type;delete p;type *p;p = new type();delete p;type type * *p;p;p = new typesp = new types常量常量11常量常量2;2;delete p;delete p;初始化值:初始化值:
26、常量、變量、常量、變量、表達式表達式多維數(shù)組:第一維的多維數(shù)組:第一維的個數(shù)個數(shù)s s可以是常量、可以是常量、變量、表達式,其它變量、表達式,其它維為常量,且都不能維為常量,且都不能省略省略格式:格式:typetype可以可以是任何類是任何類型型deletedelete刪除的指刪除的指針必須是針必須是newnew分配分配的的31動態(tài)存儲動態(tài)存儲:new delete:new delete例:例:int *p;p = new int;*p = 10;delete p;int *p;p = new int(5);*p = 10;delete p;char *p;int num;p = new charnum;delete p;32動態(tài)存儲動態(tài)存儲:new delete:new delete例:例:int *
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于人工智能的精準營銷策略在商貿(mào)企業(yè)中的實施
- 游戲化教學對學生規(guī)則意識的促進作用
- 2025年醫(yī)療AI輔助診斷產(chǎn)品注冊審批流程中的倫理審查研究報告
- 2025年養(yǎng)老機構醫(yī)養(yǎng)結合政策環(huán)境與市場前景分析報告
- 2025年休閑農(nóng)業(yè)與鄉(xiāng)村旅游融合發(fā)展的安全風險管理與應急預案報告
- 2025年信托行業(yè)轉型路徑與資產(chǎn)管理業(yè)務模式研究報告
- 教育游戲化創(chuàng)新挑戰(zhàn)設計以提升學習成就感
- 教育資源均等化中的政策路徑研究
- 教育心理學在改善教育環(huán)境中的應用
- 2025年中國低溫冷凍干燥歐芹行業(yè)投資前景及策略咨詢研究報告
- 物業(yè)小飯桌管理制度
- 2025年湖南省普通高中學業(yè)水平考試合格性考試模擬試題(長郡版高一生物)(原卷版)
- 2025春國家開放大學《思想道德與法治》終考大作業(yè)答案
- 醫(yī)師職業(yè)素養(yǎng)課件
- 電網(wǎng)工程設備材料信息參考價2025年第一季度
- 2024年安徽省初中學業(yè)水平考試生物試題含答案
- Python試題庫(附參考答案)
- 2024年浙江省中考英語試題卷(含答案解析)
- 移動取消寬帶委托書
- 胃腸外科病人圍手術期全程營養(yǎng)管理中國專家共識2021版PPT課件
- 年產(chǎn)量50萬噸苯乙烯工藝設計
評論
0/150
提交評論