




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第二章C++語(yǔ)言概述1信息技術(shù)學(xué)院軟件教研室第二章C++語(yǔ)言概述1信息技術(shù)學(xué)院軟件教研室【教學(xué)目的與要求】
了解和熟悉C++開(kāi)發(fā)環(huán)境,掌握C++程序的基本結(jié)構(gòu)及其詞法成分?!窘虒W(xué)重點(diǎn)與難點(diǎn)】
C++程序的基本結(jié)構(gòu),C++字符集和單詞,常用的庫(kù)函數(shù)?!窘虒W(xué)方法】
講授與上機(jī)相結(jié)合。2信息技術(shù)學(xué)院軟件教研室【教學(xué)目的與要求】2信息技術(shù)學(xué)院軟件教研室2.1一個(gè)簡(jiǎn)單的C++程序2.2C++字符集2.3C++單詞2.4C++語(yǔ)句2.5C++的函數(shù)2.6C++程序基本結(jié)構(gòu)2.7VC++6.0集成開(kāi)發(fā)環(huán)境作業(yè)【教學(xué)內(nèi)容】3信息技術(shù)學(xué)院軟件教研室2.1一個(gè)簡(jiǎn)單的C++程序【教學(xué)內(nèi)容】3信息技術(shù)學(xué)院軟件2.1一個(gè)簡(jiǎn)單的C++程序#include<iostream.h>//進(jìn)行標(biāo)準(zhǔn)I/O操作引入頭文件
voidmain()//主函數(shù)
{
cout<<“WelcometoC++!”<<endl;/*輸出一個(gè)字符串,輸出一個(gè)換行符,并刷新流
*/}刷新流是指把流緩沖區(qū)的內(nèi)容立即寫(xiě)入到對(duì)應(yīng)的物理設(shè)備上。(p345)4信息技術(shù)學(xué)院軟件教研室2.1一個(gè)簡(jiǎn)單的C++程序#include<iost2.2C++字符集用程序設(shè)計(jì)語(yǔ)言所寫(xiě)的程序必須符合相應(yīng)語(yǔ)言的語(yǔ)法源程序(源代碼)是一個(gè)字符序列,這些字符序列按順序組成了一系列“單詞”,“單詞”的組合就形成了語(yǔ)言有意義的語(yǔ)法單位,一些簡(jiǎn)單語(yǔ)法單位的組合又形成了更復(fù)雜的語(yǔ)法單位,最后一系列語(yǔ)法單位組合成程序。5信息技術(shù)學(xué)院軟件教研室2.2C++字符集用程序設(shè)計(jì)語(yǔ)言所寫(xiě)的程序
C++語(yǔ)言的字符集和C的字符集相同。1.大小寫(xiě)英文字母A-Z和a-z;2.數(shù)字字符0-9;3.其他字符p25標(biāo)點(diǎn)符號(hào)(10個(gè)),;(簡(jiǎn)單語(yǔ)句的結(jié)束符)’”:空格{},<CR>回車符<Tab>制表符單字符運(yùn)算符(19個(gè))()[]+-*/%.<=>!~&^|?
特殊用途符號(hào)(3個(gè))#\_(漢字、全角西文字符等,可在C++字符串中使用,但不屬于C++字符)2.2C++字符集6信息技術(shù)學(xué)院軟件教研室C++語(yǔ)言的字符集和C的字符集相同。2.2C++字符集2.3C++單詞關(guān)鍵字(保留字):C++系統(tǒng)預(yù)定義的單詞,在系統(tǒng)中有不同的使用目的。C語(yǔ)言有32個(gè)關(guān)鍵字P26#開(kāi)頭的預(yù)處理命令中,其命令關(guān)鍵字不算做C++保留字,但為了避免混亂,可看作為保留字。這些命令關(guān)鍵字有includedefineifdefifndefendif等。7信息技術(shù)學(xué)院軟件教研室2.3C++單詞關(guān)鍵字(保留字):C++系統(tǒng)預(yù)定義的單詞,C++規(guī)定:標(biāo)識(shí)符是由大小寫(xiě)字母、數(shù)字字符和下劃線組成,并以字母或下劃線開(kāi)頭。如:正確:size,Name_1;非法:3x,li-1,laone。大小寫(xiě)有區(qū)別;Max和max不同標(biāo)識(shí)符的長(zhǎng)度不受限制;只有前32字符有效在實(shí)際應(yīng)用時(shí),盡量使用有意義的標(biāo)識(shí)符,不能用系統(tǒng)中已預(yù)定義的標(biāo)識(shí)符,如:關(guān)鍵字。
2、標(biāo)識(shí)符:是用戶在程序設(shè)計(jì)中給使用的對(duì)象(如變量、函數(shù)、文件等)所起的名字。8信息技術(shù)學(xué)院軟件教研室C++規(guī)定:2、標(biāo)識(shí)符:是用戶在程序設(shè)計(jì)中給使用的對(duì)象3.常量常數(shù)(數(shù)值常量):如5,23,-256,2.307等邏輯常量:0和1(分別用false和true表示)字符常量(單個(gè)的ASCII字符):如'a','+','5'等字符串常量(字符串)(由ASCII字符和漢字區(qū)位碼字符組成的一串字符):如"5","apple","姓名"等注意區(qū)別:a,’a’,”a”--------分別表示:變量標(biāo)識(shí),字符常量,字符串
9信息技術(shù)學(xué)院軟件教研室3.常量9信息技術(shù)學(xué)院軟件教研室4.操作符(運(yùn)算符)(p27p63)是一些用來(lái)進(jìn)行某種操作的單詞,它實(shí)際上是系統(tǒng)預(yù)定義的函數(shù)名,除包含C語(yǔ)言的34種運(yùn)算符外,還增加了一些新的運(yùn)算符。C++語(yǔ)言的運(yùn)算符可以重載
5.分隔符分隔符被稱為程序中的標(biāo)點(diǎn)符號(hào)。1)空格符:用作單詞之間的分隔符;2)逗號(hào):用作變量之間或?qū)ο笾g的分隔符;或用作函數(shù)的多個(gè)參數(shù)之間的分割;3)分號(hào):用于for循環(huán)語(yǔ)句中,作為關(guān)鍵字for后面的括號(hào)內(nèi)的三個(gè)表達(dá)式之間的分隔符。for(i=0;i<=n;i++)4)冒號(hào):用作語(yǔ)句標(biāo)號(hào)與語(yǔ)句間的分隔符以及switch語(yǔ)句中case<整數(shù)型表達(dá)式>與語(yǔ)句序列之間的分隔符。P845)大括號(hào):用來(lái)為函數(shù)體、分支程序等定界的。10信息技術(shù)學(xué)院軟件教研室4.操作符(運(yùn)算符)(p27p63)是一些用來(lái)進(jìn)行某種6.注釋符(增加程序的可讀性,非執(zhí)行)C++語(yǔ)言中有兩種方法:1)使用/*和*/;段注釋/*ThisprogramisfirstlookataC++classdefinition.Classareusedbothindataabstractionandobject_orientedprogramming.*/2)使用//;行注釋,內(nèi)容不能跨行//ThisprogramisfirstlookataC++classdefinition.//ClassAreusedbothindataabstractionandobject。11信息技術(shù)學(xué)院軟件教研室6.注釋符(增加程序的可讀性,非執(zhí)行)11信息技術(shù)學(xué)院軟件教
C++語(yǔ)句有以下八類類型定義語(yǔ)句:自定義數(shù)據(jù)類型。如structList{};p218變量定義語(yǔ)句:如inta,b,c;注:變量定義語(yǔ)句前加const保留字為常量定義語(yǔ)句。函數(shù)原型語(yǔ)句:聲明函數(shù)存在并執(zhí)行調(diào)用格式。
voidSort(inta,intb);表達(dá)式語(yǔ)句:如x=3*x+5;Sort(a,n);cout<<“x=“<<x<<‘n’;復(fù)合語(yǔ)句:格式{語(yǔ)句序列;}如:{},{;},{x=4;},(p29){intx=4,y;x-y=0;}選擇語(yǔ)句:
根據(jù)條件從多個(gè)分支中選擇其一執(zhí)行。if,switch
循環(huán)語(yǔ)句:根據(jù)條件控制一個(gè)程序段反復(fù)執(zhí)行。for,while,do
跳轉(zhuǎn)語(yǔ)句:如goto,return,break,continue
2.4C++語(yǔ)句由C++單詞按照一定的語(yǔ)法規(guī)則排列起來(lái)構(gòu)成語(yǔ)句除復(fù)合語(yǔ)句外,語(yǔ)句最后必須以“;”結(jié)束。12信息技術(shù)學(xué)院軟件教研室C++語(yǔ)句有以下八類2.4C++語(yǔ)句由C++單詞按照一1、系統(tǒng)函數(shù)(又叫標(biāo)準(zhǔn)函數(shù);預(yù)定義函數(shù);庫(kù)函數(shù))由C++系統(tǒng)提供,用戶直接使用,由系統(tǒng)提供的頭文件給出其函數(shù)原型。如
math.h中有常用數(shù)學(xué)函數(shù)原型。如:abs()
string.h包含對(duì)字符串操作的函數(shù)原型
iostream.h包含標(biāo)準(zhǔn)I/O操作的函數(shù)原型。如:cout,cin注:從C繼承來(lái)的以h作為擴(kuò)展名的頭文件,在C++中有不帶擴(kuò)展名的前面加c的頭文件對(duì)應(yīng)。C++新建立的、以h為擴(kuò)展名的頭文件,對(duì)應(yīng)的不帶擴(kuò)展名的頭文件的文件名保持不變。(這兩種文件的作用不完全相同,如iostream.h與iostream,iostream中有stdio.h函數(shù))2.5C++的函數(shù)C++函數(shù)分系統(tǒng)函數(shù)和用戶函數(shù):13信息技術(shù)學(xué)院軟件教研室1、系統(tǒng)函數(shù)(又叫標(biāo)準(zhǔn)函數(shù);預(yù)定義函數(shù);庫(kù)函數(shù))由C++系C++頭文件:帶擴(kuò)展名為.h的文件,一般為數(shù)據(jù)類型的定義、常量定義、函數(shù)原型說(shuō)明等。
#include命令:預(yù)處理包含命令(獨(dú)占一行,回車符結(jié)束),格式為:#include<頭文件名>
在C系統(tǒng)層次目錄\lib中查找“頭文件”#include“頭文件名”
在當(dāng)前或指定目錄,或系統(tǒng)目錄中查找“頭文件”注:若包含的頭文件是C++新建立的,并不帶擴(kuò)展名,則必須在其后使用一條“usingnamespacestd;”語(yǔ)句。14信息技術(shù)學(xué)院軟件教研室C++頭文件:帶擴(kuò)展名為.h的文件,一般為數(shù)據(jù)類型的定義、說(shuō)明:在#include預(yù)處理包含命令中,還可以用來(lái)包含一個(gè)程序文件。(p32)#include“程序文件名”把程序文件包含到所在的當(dāng)前程序文件中,即把文件內(nèi)容嵌入到此包含命令的位置。15信息技術(shù)學(xué)院軟件教研室說(shuō)明:在#include預(yù)處理包含命令中,還可以用來(lái)包含一簡(jiǎn)單的C++程序舉例#include<iostream>//進(jìn)行標(biāo)準(zhǔn)I/O操作引入頭文件
voidmain()//主函數(shù)
{
std::cout<<“WelcometoC++!”//輸出一個(gè)字符串
std::cout<<endl;//輸出一個(gè)換行符
}#include<iostream>usingnamespacestd;voidmain(){ cout<<"WelcometoC++!"<<endl;}#include<iostream.h>voidmain(){cout<<"WelcometoC++!"<<endl;}16信息技術(shù)學(xué)院軟件教研室簡(jiǎn)單的C++程序舉例#include<iostrea程序說(shuō)明必須有且只有一個(gè)名字為main的函數(shù)整個(gè)程序從函數(shù)main開(kāi)始執(zhí)行std:標(biāo)準(zhǔn)名字空間C++將“程序世界”劃分為“名字空間”,以解決可能的命名沖突。std::cout:cout屬于標(biāo)準(zhǔn)名字空間usingnamespacestd;告訴編譯器,任何對(duì)象如果不帶顯式的限定符,它就屬于標(biāo)準(zhǔn)名字空間。17信息技術(shù)學(xué)院軟件教研室程序說(shuō)明必須有且只有一個(gè)名字為main的函數(shù)17信息技術(shù)學(xué)院2、用戶函數(shù)是指由編程者(用戶)在程序中編寫(xiě)的函數(shù)。
函數(shù)定義格式:[函數(shù)類型]<函數(shù)名>([參數(shù)表])<復(fù)合語(yǔ)句>
函數(shù)頭函數(shù)體18信息技術(shù)學(xué)院軟件教研室2、用戶函數(shù)是指由編程者(用戶)在程序中編寫(xiě)的函數(shù)。函數(shù)程序必須有并且只有一個(gè)程序的主函數(shù)(main)
一般格式:voidmain(void){語(yǔ)句}
使用主函數(shù)舉例:Li1_1.cpp程序運(yùn)行結(jié)果:
C++program
Pressanykeytocontinue
#include<iostream.h>voidmain(void){ cout<<"C++program."<<endl;}19信息技術(shù)學(xué)院軟件教研室程序必須有并且只有一個(gè)程序的主函數(shù)(main)
Li1_函數(shù)原型語(yǔ)句:一個(gè)函數(shù)的函數(shù)頭就是該函數(shù)的原型,其原型語(yǔ)句可以用函數(shù)頭后加分號(hào)得到。實(shí)例:#include<iostream.h>intAdd(intx,inty);//Add函數(shù)的原型語(yǔ)句voidmain(){inta;a=Add(3,5);//調(diào)用Add函數(shù)cout<<"a="<<a<<endl;}intAdd(intx,inty)//Add函數(shù)的具體定義{intz=x+y;returnz;//返回語(yǔ)句,z的值作為函數(shù)返回值}運(yùn)行結(jié)果:a=820信息技術(shù)學(xué)院軟件教研室函數(shù)原型語(yǔ)句:一個(gè)函數(shù)的函數(shù)頭就是該函數(shù)的原型,其原型語(yǔ)句可2.6C++程序基本結(jié)構(gòu)#include<iostream.h>//預(yù)處理包含命令
intbig(intx,inty);//函數(shù)原型說(shuō)明語(yǔ)句
voidmain()
{//{}中間為函數(shù)體
inta,b,c;//定義整型變量
cout<<“請(qǐng)輸入a和b的值:”;
cin>>a>>b;//輸入語(yǔ)句
c=big(a,b);//函數(shù)調(diào)用語(yǔ)句
cout<<“a,b,c=”<<a<<‘,’<<b<<‘,’<<c<<endl;//輸出語(yǔ)句
}
intbig(intx,inty)//函數(shù)定義語(yǔ)句
{
if(x>=y)returnx;//條件語(yǔ)句
elsereturny;
}Li1_2.cpp21信息技術(shù)學(xué)院軟件教研室2.6C++程序基本結(jié)構(gòu)#include<iostreaC++程序結(jié)構(gòu)說(shuō)明一個(gè)C++程序由一個(gè)主函數(shù)main和若干用戶函數(shù),以及一些預(yù)處理命令行,一些數(shù)據(jù)類型、符號(hào)常量、變量的定義所組成。其中必須有且僅有一個(gè)名字為main的函數(shù),整個(gè)程序從函數(shù)main開(kāi)始執(zhí)行。函數(shù)由語(yǔ)句和局部變量或?qū)ο髽?gòu)成,函數(shù)間可以互相調(diào)用(main除外)。一個(gè)函數(shù)為一個(gè)功能模塊。物理上,一個(gè)C++程序可以放在一個(gè)或多個(gè)源文件中,每個(gè)文件包含一些函數(shù)和外部變量或?qū)ο蟮亩x,其中有且僅有一個(gè)文件中包含一個(gè)函數(shù)main。每個(gè)源文件可以分別編譯。文件擴(kuò)展名為.cpp22信息技術(shù)學(xué)院軟件教研室C++程序結(jié)構(gòu)說(shuō)明一個(gè)C++程序由一個(gè)主函數(shù)main和若干用C++程序結(jié)構(gòu)說(shuō)明程序第一行為預(yù)處理包含命令行,頭文件iostream.h,后面函數(shù)中可以完成標(biāo)準(zhǔn)輸入輸出操作。如果定義函數(shù)在調(diào)用點(diǎn)之后,在主調(diào)函數(shù)前面加“函數(shù)聲明”語(yǔ)句。如第二行的big函數(shù)原型說(shuō)明語(yǔ)句。intbig(intx,inty);cin和cout完成輸入輸出操作,運(yùn)算符>>為提取運(yùn)算符,用于鍵盤輸入;<<為插入運(yùn)算符,用于向顯示器輸出。程序執(zhí)行到cin語(yǔ)句時(shí),等待從鍵盤輸入數(shù)據(jù),每個(gè)數(shù)據(jù)后以空白符(空格、制表符、回車換行符)結(jié)束。輸入a和b的值:
運(yùn)行結(jié)果:
1225a,b,c=12,25,2523信息技術(shù)學(xué)院軟件教研室C++程序結(jié)構(gòu)說(shuō)明程序第一行為預(yù)處理包含命令行,頭文件ios2.7VC++6.0集成開(kāi)發(fā)環(huán)境一、C++開(kāi)發(fā)程序過(guò)程:
1.根據(jù)實(shí)際問(wèn)題編寫(xiě)程序;
2.在VC++下輸入、編輯、連接、運(yùn)行程序
進(jìn)入VC++6.0集成開(kāi)發(fā)環(huán)境操作界面
輸入和編輯一個(gè)程序文件(.cpp)
編譯(compile)當(dāng)前程序文件(.obj)連接(build)一個(gè)程序中的各程序文件(.exe)
運(yùn)行連接后生成的可執(zhí)行文件二、基本操作過(guò)程:
上機(jī)操作實(shí)例演示:Li1_1.cpp、Li1_2.cpp24信息技術(shù)學(xué)院軟件教研室2.7VC++6.0集成開(kāi)發(fā)環(huán)境一、C++開(kāi)發(fā)程序過(guò)程:標(biāo)題欄菜單欄標(biāo)準(zhǔn)工具欄向?qū)谖⑿途幾g工具欄編輯窗口工作區(qū)窗口輸出窗口狀態(tài)欄VisualC++集成開(kāi)發(fā)環(huán)境25信息技術(shù)學(xué)院軟件教研室標(biāo)題欄菜單欄標(biāo)準(zhǔn)工具欄向?qū)谖⑿途幾g工具欄編輯窗口工作區(qū)窗口開(kāi)始結(jié)束編輯編譯連接執(zhí)行有錯(cuò)否?有錯(cuò)否?.cpp.obj.exeYYNN流程圖26信息技術(shù)學(xué)院軟件教研室開(kāi)始結(jié)束編輯編譯連接執(zhí)行有錯(cuò)否?有錯(cuò)否?.cpp.obj.e輸入和編譯程序1、啟動(dòng)VC++2、建立當(dāng)前工作區(qū)目錄3、定義當(dāng)前工程項(xiàng)目名Win32ConsoleApplication4、建立一個(gè)內(nèi)容為空的項(xiàng)目5、在當(dāng)前項(xiàng)目中建立程序文件27信息技術(shù)學(xué)院軟件教研室輸入和編譯程序1、啟動(dòng)VC++27信息技術(shù)學(xué)院軟件教研室1、啟動(dòng)VC++開(kāi)始→程序→MicrosoftVisualC++6.028信息技術(shù)學(xué)院軟件教研室1、啟動(dòng)VC++開(kāi)始→程序→MicrosoftVisual2、建立當(dāng)前工作區(qū)目錄29信息技術(shù)學(xué)院軟件教研室2、建立當(dāng)前工作區(qū)目錄29信息技術(shù)學(xué)院軟件教研室3、定義當(dāng)前工程項(xiàng)目名Win32ConsoleApplication30信息技術(shù)學(xué)院軟件教研室3、定義當(dāng)前工程項(xiàng)目名Win32ConsoleAppl4、建立一個(gè)內(nèi)容為空的項(xiàng)目31信息技術(shù)學(xué)院軟件教研室4、建立一個(gè)內(nèi)容為空的項(xiàng)目31信息技術(shù)學(xué)院軟件教研室5、在當(dāng)前項(xiàng)目中建立程序文件32信息技術(shù)學(xué)院軟件教研室5、在當(dāng)前項(xiàng)目中建立程序文件32信息技術(shù)學(xué)院軟件教研室打開(kāi)文件:進(jìn)入VC++操作界面
單擊‘文件’菜單,選擇‘打開(kāi)…’命令
在‘打開(kāi)’對(duì)話框中選擇所要打開(kāi)的文件,然后單擊‘打開(kāi)’按鈕,被打開(kāi)的文件顯示在操作界面的編輯窗口中
打開(kāi)文件33信息技術(shù)學(xué)院軟件教研室打開(kāi)文件:進(jìn)入VC++操作界面
單擊‘文件’菜單,選擇‘打開(kāi)1.對(duì)當(dāng)前文件進(jìn)行編譯:
單擊‘編譯’菜單下的‘Compile當(dāng)前文件名’命令
彈出對(duì)話框要求建立功能區(qū)窗口,選擇‘是’按鈕
編譯狀態(tài)輸出窗口出現(xiàn)提示信息,生成(.obj)文件。
2.對(duì)當(dāng)前文件進(jìn)行連接:
單擊‘編譯’菜單下的‘Build當(dāng)前文件名’命令
編譯狀態(tài)輸出窗口出現(xiàn)提示信息,生成(.exe)文件。
3.對(duì)當(dāng)前文件進(jìn)行執(zhí)行:
單擊‘編譯’菜單下的‘Execute當(dāng)前文件名’命令
彈出屏幕輸出窗口,顯示輸出的結(jié)果
編譯、連接、執(zhí)行當(dāng)前文件34信息技術(shù)學(xué)院軟件教研室1.對(duì)當(dāng)前文件進(jìn)行編譯:
單擊‘編譯’菜單下的‘Compi注:若編譯或連接成功則在調(diào)試窗口顯示li1-1.exe-0error(s),0warning(s)否則,顯示發(fā)生的錯(cuò)誤(eroor為嚴(yán)重錯(cuò)誤,warning為警告錯(cuò)誤)返回本章首頁(yè)35信息技術(shù)學(xué)院軟件教研室注:若編譯或連接成功則在調(diào)試窗口顯示返回本章首頁(yè)35信息技術(shù)舉例:#include<iostream.h>#include"Declare.h"voidmain(){ inta,b,c; cout<<"輸入a,b,c的整數(shù)值:"; cin>>a>>b>>c; cout<<"它們中的最大值:"<<max(a,b,c)<<endl; cout<<"它們中的最小值:"<<min(a,b,c)<<endl; cout<<"重新輸入a,b,c的整數(shù)值:"; cin>>a>>b>>c; cout<<"它們中的最大值:"<<max(a,b,c)<<endl; cout<<"它們中的最小值:"<<min(a,b,c)<<endl;}MaxMin.cpp36信息技術(shù)學(xué)院軟件教研室舉例:#include<iostream.h>MaxMin.Func.cppintmax(intx,inty,intz){ if(x<y)x=y; if(x<z)x=z; returnx;}intmin(intx,inty,intz){ if(x>y)x=y; if(x>z)x=z; returnx;}37信息技術(shù)學(xué)院軟件教研室Func.cppintmax(intx,inty,Declare.hintmax(intx,inty,intz);intmin(intx,inty,intz);38信息技術(shù)學(xué)院軟件教研室Declare.hintmax(intx,inty,作業(yè)習(xí)題二P482,3,4上機(jī)驗(yàn)證2.2
39信息技術(shù)學(xué)院軟件教研室作業(yè)習(xí)題二39信息技術(shù)學(xué)院軟件教研室參考資料入門
B.KernighanD.Ritchie,TheCProgrammingLanguage,PrenticeHall,1998
StanleyB.Lippman著侯捷譯EssentialC++華中科技大學(xué)出版社中級(jí)
C++Primer
EffictiveC++
MoreeffictiveC++高級(jí)
ErichGamma等著李英軍等譯設(shè)計(jì)模式—可復(fù)用面向?qū)ο筌浖幕A(chǔ)機(jī)械工業(yè)出版社40信息技術(shù)學(xué)院軟件教研室參考資料入門
B.KernighanD.Ritchi第二章C++語(yǔ)言概述41信息技術(shù)學(xué)院軟件教研室第二章C++語(yǔ)言概述1信息技術(shù)學(xué)院軟件教研室【教學(xué)目的與要求】
了解和熟悉C++開(kāi)發(fā)環(huán)境,掌握C++程序的基本結(jié)構(gòu)及其詞法成分?!窘虒W(xué)重點(diǎn)與難點(diǎn)】
C++程序的基本結(jié)構(gòu),C++字符集和單詞,常用的庫(kù)函數(shù)?!窘虒W(xué)方法】
講授與上機(jī)相結(jié)合。42信息技術(shù)學(xué)院軟件教研室【教學(xué)目的與要求】2信息技術(shù)學(xué)院軟件教研室2.1一個(gè)簡(jiǎn)單的C++程序2.2C++字符集2.3C++單詞2.4C++語(yǔ)句2.5C++的函數(shù)2.6C++程序基本結(jié)構(gòu)2.7VC++6.0集成開(kāi)發(fā)環(huán)境作業(yè)【教學(xué)內(nèi)容】43信息技術(shù)學(xué)院軟件教研室2.1一個(gè)簡(jiǎn)單的C++程序【教學(xué)內(nèi)容】3信息技術(shù)學(xué)院軟件2.1一個(gè)簡(jiǎn)單的C++程序#include<iostream.h>//進(jìn)行標(biāo)準(zhǔn)I/O操作引入頭文件
voidmain()//主函數(shù)
{
cout<<“WelcometoC++!”<<endl;/*輸出一個(gè)字符串,輸出一個(gè)換行符,并刷新流
*/}刷新流是指把流緩沖區(qū)的內(nèi)容立即寫(xiě)入到對(duì)應(yīng)的物理設(shè)備上。(p345)44信息技術(shù)學(xué)院軟件教研室2.1一個(gè)簡(jiǎn)單的C++程序#include<iost2.2C++字符集用程序設(shè)計(jì)語(yǔ)言所寫(xiě)的程序必須符合相應(yīng)語(yǔ)言的語(yǔ)法源程序(源代碼)是一個(gè)字符序列,這些字符序列按順序組成了一系列“單詞”,“單詞”的組合就形成了語(yǔ)言有意義的語(yǔ)法單位,一些簡(jiǎn)單語(yǔ)法單位的組合又形成了更復(fù)雜的語(yǔ)法單位,最后一系列語(yǔ)法單位組合成程序。45信息技術(shù)學(xué)院軟件教研室2.2C++字符集用程序設(shè)計(jì)語(yǔ)言所寫(xiě)的程序
C++語(yǔ)言的字符集和C的字符集相同。1.大小寫(xiě)英文字母A-Z和a-z;2.數(shù)字字符0-9;3.其他字符p25標(biāo)點(diǎn)符號(hào)(10個(gè)),;(簡(jiǎn)單語(yǔ)句的結(jié)束符)’”:空格{},<CR>回車符<Tab>制表符單字符運(yùn)算符(19個(gè))()[]+-*/%.<=>!~&^|?
特殊用途符號(hào)(3個(gè))#\_(漢字、全角西文字符等,可在C++字符串中使用,但不屬于C++字符)2.2C++字符集46信息技術(shù)學(xué)院軟件教研室C++語(yǔ)言的字符集和C的字符集相同。2.2C++字符集2.3C++單詞關(guān)鍵字(保留字):C++系統(tǒng)預(yù)定義的單詞,在系統(tǒng)中有不同的使用目的。C語(yǔ)言有32個(gè)關(guān)鍵字P26#開(kāi)頭的預(yù)處理命令中,其命令關(guān)鍵字不算做C++保留字,但為了避免混亂,可看作為保留字。這些命令關(guān)鍵字有includedefineifdefifndefendif等。47信息技術(shù)學(xué)院軟件教研室2.3C++單詞關(guān)鍵字(保留字):C++系統(tǒng)預(yù)定義的單詞,C++規(guī)定:標(biāo)識(shí)符是由大小寫(xiě)字母、數(shù)字字符和下劃線組成,并以字母或下劃線開(kāi)頭。如:正確:size,Name_1;非法:3x,li-1,laone。大小寫(xiě)有區(qū)別;Max和max不同標(biāo)識(shí)符的長(zhǎng)度不受限制;只有前32字符有效在實(shí)際應(yīng)用時(shí),盡量使用有意義的標(biāo)識(shí)符,不能用系統(tǒng)中已預(yù)定義的標(biāo)識(shí)符,如:關(guān)鍵字。
2、標(biāo)識(shí)符:是用戶在程序設(shè)計(jì)中給使用的對(duì)象(如變量、函數(shù)、文件等)所起的名字。48信息技術(shù)學(xué)院軟件教研室C++規(guī)定:2、標(biāo)識(shí)符:是用戶在程序設(shè)計(jì)中給使用的對(duì)象3.常量常數(shù)(數(shù)值常量):如5,23,-256,2.307等邏輯常量:0和1(分別用false和true表示)字符常量(單個(gè)的ASCII字符):如'a','+','5'等字符串常量(字符串)(由ASCII字符和漢字區(qū)位碼字符組成的一串字符):如"5","apple","姓名"等注意區(qū)別:a,’a’,”a”--------分別表示:變量標(biāo)識(shí),字符常量,字符串
49信息技術(shù)學(xué)院軟件教研室3.常量9信息技術(shù)學(xué)院軟件教研室4.操作符(運(yùn)算符)(p27p63)是一些用來(lái)進(jìn)行某種操作的單詞,它實(shí)際上是系統(tǒng)預(yù)定義的函數(shù)名,除包含C語(yǔ)言的34種運(yùn)算符外,還增加了一些新的運(yùn)算符。C++語(yǔ)言的運(yùn)算符可以重載
5.分隔符分隔符被稱為程序中的標(biāo)點(diǎn)符號(hào)。1)空格符:用作單詞之間的分隔符;2)逗號(hào):用作變量之間或?qū)ο笾g的分隔符;或用作函數(shù)的多個(gè)參數(shù)之間的分割;3)分號(hào):用于for循環(huán)語(yǔ)句中,作為關(guān)鍵字for后面的括號(hào)內(nèi)的三個(gè)表達(dá)式之間的分隔符。for(i=0;i<=n;i++)4)冒號(hào):用作語(yǔ)句標(biāo)號(hào)與語(yǔ)句間的分隔符以及switch語(yǔ)句中case<整數(shù)型表達(dá)式>與語(yǔ)句序列之間的分隔符。P845)大括號(hào):用來(lái)為函數(shù)體、分支程序等定界的。50信息技術(shù)學(xué)院軟件教研室4.操作符(運(yùn)算符)(p27p63)是一些用來(lái)進(jìn)行某種6.注釋符(增加程序的可讀性,非執(zhí)行)C++語(yǔ)言中有兩種方法:1)使用/*和*/;段注釋/*ThisprogramisfirstlookataC++classdefinition.Classareusedbothindataabstractionandobject_orientedprogramming.*/2)使用//;行注釋,內(nèi)容不能跨行//ThisprogramisfirstlookataC++classdefinition.//ClassAreusedbothindataabstractionandobject。51信息技術(shù)學(xué)院軟件教研室6.注釋符(增加程序的可讀性,非執(zhí)行)11信息技術(shù)學(xué)院軟件教
C++語(yǔ)句有以下八類類型定義語(yǔ)句:自定義數(shù)據(jù)類型。如structList{};p218變量定義語(yǔ)句:如inta,b,c;注:變量定義語(yǔ)句前加const保留字為常量定義語(yǔ)句。函數(shù)原型語(yǔ)句:聲明函數(shù)存在并執(zhí)行調(diào)用格式。
voidSort(inta,intb);表達(dá)式語(yǔ)句:如x=3*x+5;Sort(a,n);cout<<“x=“<<x<<‘n’;復(fù)合語(yǔ)句:格式{語(yǔ)句序列;}如:{},{;},{x=4;},(p29){intx=4,y;x-y=0;}選擇語(yǔ)句:
根據(jù)條件從多個(gè)分支中選擇其一執(zhí)行。if,switch
循環(huán)語(yǔ)句:根據(jù)條件控制一個(gè)程序段反復(fù)執(zhí)行。for,while,do
跳轉(zhuǎn)語(yǔ)句:如goto,return,break,continue
2.4C++語(yǔ)句由C++單詞按照一定的語(yǔ)法規(guī)則排列起來(lái)構(gòu)成語(yǔ)句除復(fù)合語(yǔ)句外,語(yǔ)句最后必須以“;”結(jié)束。52信息技術(shù)學(xué)院軟件教研室C++語(yǔ)句有以下八類2.4C++語(yǔ)句由C++單詞按照一1、系統(tǒng)函數(shù)(又叫標(biāo)準(zhǔn)函數(shù);預(yù)定義函數(shù);庫(kù)函數(shù))由C++系統(tǒng)提供,用戶直接使用,由系統(tǒng)提供的頭文件給出其函數(shù)原型。如
math.h中有常用數(shù)學(xué)函數(shù)原型。如:abs()
string.h包含對(duì)字符串操作的函數(shù)原型
iostream.h包含標(biāo)準(zhǔn)I/O操作的函數(shù)原型。如:cout,cin注:從C繼承來(lái)的以h作為擴(kuò)展名的頭文件,在C++中有不帶擴(kuò)展名的前面加c的頭文件對(duì)應(yīng)。C++新建立的、以h為擴(kuò)展名的頭文件,對(duì)應(yīng)的不帶擴(kuò)展名的頭文件的文件名保持不變。(這兩種文件的作用不完全相同,如iostream.h與iostream,iostream中有stdio.h函數(shù))2.5C++的函數(shù)C++函數(shù)分系統(tǒng)函數(shù)和用戶函數(shù):53信息技術(shù)學(xué)院軟件教研室1、系統(tǒng)函數(shù)(又叫標(biāo)準(zhǔn)函數(shù);預(yù)定義函數(shù);庫(kù)函數(shù))由C++系C++頭文件:帶擴(kuò)展名為.h的文件,一般為數(shù)據(jù)類型的定義、常量定義、函數(shù)原型說(shuō)明等。
#include命令:預(yù)處理包含命令(獨(dú)占一行,回車符結(jié)束),格式為:#include<頭文件名>
在C系統(tǒng)層次目錄\lib中查找“頭文件”#include“頭文件名”
在當(dāng)前或指定目錄,或系統(tǒng)目錄中查找“頭文件”注:若包含的頭文件是C++新建立的,并不帶擴(kuò)展名,則必須在其后使用一條“usingnamespacestd;”語(yǔ)句。54信息技術(shù)學(xué)院軟件教研室C++頭文件:帶擴(kuò)展名為.h的文件,一般為數(shù)據(jù)類型的定義、說(shuō)明:在#include預(yù)處理包含命令中,還可以用來(lái)包含一個(gè)程序文件。(p32)#include“程序文件名”把程序文件包含到所在的當(dāng)前程序文件中,即把文件內(nèi)容嵌入到此包含命令的位置。55信息技術(shù)學(xué)院軟件教研室說(shuō)明:在#include預(yù)處理包含命令中,還可以用來(lái)包含一簡(jiǎn)單的C++程序舉例#include<iostream>//進(jìn)行標(biāo)準(zhǔn)I/O操作引入頭文件
voidmain()//主函數(shù)
{
std::cout<<“WelcometoC++!”//輸出一個(gè)字符串
std::cout<<endl;//輸出一個(gè)換行符
}#include<iostream>usingnamespacestd;voidmain(){ cout<<"WelcometoC++!"<<endl;}#include<iostream.h>voidmain(){cout<<"WelcometoC++!"<<endl;}56信息技術(shù)學(xué)院軟件教研室簡(jiǎn)單的C++程序舉例#include<iostrea程序說(shuō)明必須有且只有一個(gè)名字為main的函數(shù)整個(gè)程序從函數(shù)main開(kāi)始執(zhí)行std:標(biāo)準(zhǔn)名字空間C++將“程序世界”劃分為“名字空間”,以解決可能的命名沖突。std::cout:cout屬于標(biāo)準(zhǔn)名字空間usingnamespacestd;告訴編譯器,任何對(duì)象如果不帶顯式的限定符,它就屬于標(biāo)準(zhǔn)名字空間。57信息技術(shù)學(xué)院軟件教研室程序說(shuō)明必須有且只有一個(gè)名字為main的函數(shù)17信息技術(shù)學(xué)院2、用戶函數(shù)是指由編程者(用戶)在程序中編寫(xiě)的函數(shù)。
函數(shù)定義格式:[函數(shù)類型]<函數(shù)名>([參數(shù)表])<復(fù)合語(yǔ)句>
函數(shù)頭函數(shù)體58信息技術(shù)學(xué)院軟件教研室2、用戶函數(shù)是指由編程者(用戶)在程序中編寫(xiě)的函數(shù)。函數(shù)程序必須有并且只有一個(gè)程序的主函數(shù)(main)
一般格式:voidmain(void){語(yǔ)句}
使用主函數(shù)舉例:Li1_1.cpp程序運(yùn)行結(jié)果:
C++program
Pressanykeytocontinue
#include<iostream.h>voidmain(void){ cout<<"C++program."<<endl;}59信息技術(shù)學(xué)院軟件教研室程序必須有并且只有一個(gè)程序的主函數(shù)(main)
Li1_函數(shù)原型語(yǔ)句:一個(gè)函數(shù)的函數(shù)頭就是該函數(shù)的原型,其原型語(yǔ)句可以用函數(shù)頭后加分號(hào)得到。實(shí)例:#include<iostream.h>intAdd(intx,inty);//Add函數(shù)的原型語(yǔ)句voidmain(){inta;a=Add(3,5);//調(diào)用Add函數(shù)cout<<"a="<<a<<endl;}intAdd(intx,inty)//Add函數(shù)的具體定義{intz=x+y;returnz;//返回語(yǔ)句,z的值作為函數(shù)返回值}運(yùn)行結(jié)果:a=860信息技術(shù)學(xué)院軟件教研室函數(shù)原型語(yǔ)句:一個(gè)函數(shù)的函數(shù)頭就是該函數(shù)的原型,其原型語(yǔ)句可2.6C++程序基本結(jié)構(gòu)#include<iostream.h>//預(yù)處理包含命令
intbig(intx,inty);//函數(shù)原型說(shuō)明語(yǔ)句
voidmain()
{//{}中間為函數(shù)體
inta,b,c;//定義整型變量
cout<<“請(qǐng)輸入a和b的值:”;
cin>>a>>b;//輸入語(yǔ)句
c=big(a,b);//函數(shù)調(diào)用語(yǔ)句
cout<<“a,b,c=”<<a<<‘,’<<b<<‘,’<<c<<endl;//輸出語(yǔ)句
}
intbig(intx,inty)//函數(shù)定義語(yǔ)句
{
if(x>=y)returnx;//條件語(yǔ)句
elsereturny;
}Li1_2.cpp61信息技術(shù)學(xué)院軟件教研室2.6C++程序基本結(jié)構(gòu)#include<iostreaC++程序結(jié)構(gòu)說(shuō)明一個(gè)C++程序由一個(gè)主函數(shù)main和若干用戶函數(shù),以及一些預(yù)處理命令行,一些數(shù)據(jù)類型、符號(hào)常量、變量的定義所組成。其中必須有且僅有一個(gè)名字為main的函數(shù),整個(gè)程序從函數(shù)main開(kāi)始執(zhí)行。函數(shù)由語(yǔ)句和局部變量或?qū)ο髽?gòu)成,函數(shù)間可以互相調(diào)用(main除外)。一個(gè)函數(shù)為一個(gè)功能模塊。物理上,一個(gè)C++程序可以放在一個(gè)或多個(gè)源文件中,每個(gè)文件包含一些函數(shù)和外部變量或?qū)ο蟮亩x,其中有且僅有一個(gè)文件中包含一個(gè)函數(shù)main。每個(gè)源文件可以分別編譯。文件擴(kuò)展名為.cpp62信息技術(shù)學(xué)院軟件教研室C++程序結(jié)構(gòu)說(shuō)明一個(gè)C++程序由一個(gè)主函數(shù)main和若干用C++程序結(jié)構(gòu)說(shuō)明程序第一行為預(yù)處理包含命令行,頭文件iostream.h,后面函數(shù)中可以完成標(biāo)準(zhǔn)輸入輸出操作。如果定義函數(shù)在調(diào)用點(diǎn)之后,在主調(diào)函數(shù)前面加“函數(shù)聲明”語(yǔ)句。如第二行的big函數(shù)原型說(shuō)明語(yǔ)句。intbig(intx,inty);cin和cout完成輸入輸出操作,運(yùn)算符>>為提取運(yùn)算符,用于鍵盤輸入;<<為插入運(yùn)算符,用于向顯示器輸出。程序執(zhí)行到cin語(yǔ)句時(shí),等待從鍵盤輸入數(shù)據(jù),每個(gè)數(shù)據(jù)后以空白符(空格、制表符、回車換行符)結(jié)束。輸入a和b的值:
運(yùn)行結(jié)果:
1225a,b,c=12,25,2563信息技術(shù)學(xué)院軟件教研室C++程序結(jié)構(gòu)說(shuō)明程序第一行為預(yù)處理包含命令行,頭文件ios2.7VC++6.0集成開(kāi)發(fā)環(huán)境一、C++開(kāi)發(fā)程序過(guò)程:
1.根據(jù)實(shí)際問(wèn)題編寫(xiě)程序;
2.在VC++下輸入、編輯、連接、運(yùn)行程序
進(jìn)入VC++6.0集成開(kāi)發(fā)環(huán)境操作界面
輸入和編輯一個(gè)程序文件(.cpp)
編譯(compile)當(dāng)前程序文件(.obj)連接(build)一個(gè)程序中的各程序文件(.exe)
運(yùn)行連接后生成的可執(zhí)行文件二、基本操作過(guò)程:
上機(jī)操作實(shí)例演示:Li1_1.cpp、Li1_2.cpp64信息技術(shù)學(xué)院軟件教研室2.7VC++6.0集成開(kāi)發(fā)環(huán)境一、C++開(kāi)發(fā)程序過(guò)程:標(biāo)題欄菜單欄標(biāo)準(zhǔn)工具欄向?qū)谖⑿途幾g工具欄編輯窗口工作區(qū)窗口輸出窗口狀態(tài)欄VisualC++集成開(kāi)發(fā)環(huán)境65信息技術(shù)學(xué)院軟件教研室標(biāo)題欄菜單欄標(biāo)準(zhǔn)工具欄向?qū)谖⑿途幾g工具欄編輯窗口工作區(qū)窗口開(kāi)始結(jié)束編輯編譯連接執(zhí)行有錯(cuò)否?有錯(cuò)否?.cpp.obj.exeYYNN流程圖66信息技術(shù)學(xué)院軟件教研室開(kāi)始結(jié)束編輯編譯連接執(zhí)行有錯(cuò)否?有錯(cuò)否?.cpp.obj.e輸入和編譯程序1、啟動(dòng)VC++2、建立當(dāng)前工作區(qū)目錄3、定義當(dāng)前工程項(xiàng)目名Win32ConsoleApplication4、建立一個(gè)內(nèi)容為空的項(xiàng)目5、在當(dāng)前項(xiàng)目中建立程序文件67信息技術(shù)學(xué)院軟件教研室輸入和編譯程序1、啟動(dòng)VC++27信息技術(shù)學(xué)院軟件教研室1、啟動(dòng)VC++開(kāi)始→程序→MicrosoftVisualC++6.068信息技術(shù)學(xué)院軟件教研室1、啟動(dòng)VC++開(kāi)始→程序→MicrosoftVisual2、建立當(dāng)前工作區(qū)目錄69信息技術(shù)學(xué)院軟件教研室2、建立當(dāng)前工作區(qū)目錄29信息技
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 絡(luò)布線施工組織方案
- 出行游玩安全協(xié)議書(shū)范本
- 物品托人寄賣協(xié)議書(shū)范本
- 會(huì)展場(chǎng)館招標(biāo)方案模板
- 家政雇傭協(xié)議書(shū)范本
- 鮮花訂購(gòu)協(xié)議書(shū)范本
- 化肥生產(chǎn)廢氣治理方案
- 護(hù)工方案整體設(shè)計(jì)方案
- 改良物流裝卸方案
- 職稱培訓(xùn)激勵(lì)方案
- 貴陽(yáng)小升初分班全真模擬測(cè)A卷
- GB/T 77-2007內(nèi)六角平端緊定螺釘
- 中華人民共和國(guó)安全生產(chǎn)法
- 九年一貫制學(xué)校教育教學(xué)管理制度匯編
- GA/T 1105-2013信息安全技術(shù)終端接入控制產(chǎn)品安全技術(shù)要求
- 危險(xiǎn)化學(xué)品MSDS(氯化銨)
- 《C++語(yǔ)言基礎(chǔ)》全套課件(完整版)
- 鋼筋混凝土框架結(jié)構(gòu)設(shè)計(jì)講義
- 《材料成型裝備及自動(dòng)化》課程大綱
- 保溫材料進(jìn)場(chǎng)質(zhì)量檢驗(yàn)表
- GB∕T 23937-2020 工業(yè)硫氫化鈉
評(píng)論
0/150
提交評(píng)論