版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一章認(rèn)識C++的對象
§1.1初識C++的函數(shù)和對象
1、混合型函數(shù)
C++以.cpp為文件擴(kuò)展名,有且只有一個名為main的主函數(shù),因保留了這
個面向過程的主函數(shù),所以被稱為混合型語言。
2、注釋方式
①從“/*”開始,到“*/”結(jié)束,如:/*...*/
②從開始到本行結(jié)束,如://……
3、輸入輸出對象
①提取操作:用提取操作符“>>”從cin輸入流中提取字符,如:cin?a.x;
②插入操作:用插入操作符“<<”向cout輸出流中插入字符,如:cout<<“we”;
cout?endl;
③使用標(biāo)準(zhǔn)輸入(鍵盤輸入)cin及標(biāo)準(zhǔn)輸出(屏幕輸出)cout前,要在主函數(shù)
前使用#include<iostream>將C++標(biāo)準(zhǔn)輸入輸出庫頭文件iostream將其包
括。
④換行操作:用語句coutCCendl;或cout<<“\n";實(shí)現(xiàn),其中endl可以插在
流的中間。
如:cout?a.x?endl?a.y<<endl;
4、使用命名空間
C++相比C而言,可以省略“.h”標(biāo)識頭文件,但必須使用語句using
namespacestd;來讓命名空間中的對象名稱曝光。因此一般的程序都要具有下
面的兩條語句:
#include<iostream>//包含頭文件
usingnamespacestd;〃使用命名空間
注意C++庫中代替C庫中頭文件的正確名稱,例如下面兩個語句效果一樣:
①#include<math.h>
②#include<cmath>
usingnamespacestd;
5、對象的定義和初始化
定義對象包括為它命名并賦予它數(shù)據(jù)類型,一般即使初值只用來表示該對象
尚未具有真正意義的值,也應(yīng)將每個對象初始化。
c++中利用構(gòu)造函數(shù)語法實(shí)現(xiàn)初始化,如:
Intz(0);〃等同于intz=0;
6、函數(shù)原型及其返回值
①c++使用變量和函數(shù)的基本規(guī)則都是:先聲明,后使用。變量有時也可邊聲
明邊使用,但必須聲明,否則出錯。
比如對函數(shù)的調(diào)用,要在主函數(shù)之前先對調(diào)用的函數(shù)進(jìn)行原型聲明,如:int
result(int,int);它向編譯系統(tǒng)聲明,后面有一個result函數(shù),該函數(shù)有
兩個整型類型的參數(shù),函數(shù)返回整型值。
函數(shù)聲明時,除了默認(rèn)參數(shù)(需給出默認(rèn)參數(shù)的默認(rèn)值)和內(nèi)聯(lián)函數(shù)(需給
出函數(shù)體及其內(nèi)語句)外,不需給出參數(shù)的變量名稱,如果給出,效果也一樣,
如:intresult(inta,intb);和上面的聲明效果一樣。
②除構(gòu)造函數(shù)與析構(gòu)函數(shù)外,函數(shù)都需要有類型聲明。
如intmain(),指出main是整數(shù)類型,返回值由return后面的表達(dá)式
決定,且表達(dá)式的值必須與聲明函數(shù)的類型一致。
如果函數(shù)確實(shí)不需要返回值,還可用void標(biāo)識,一旦使用void標(biāo)識,函數(shù)
體內(nèi)就不再需要使用return語句,否則會編譯出錯,但可使用return;語句。
③C++函數(shù)有庫函數(shù)(標(biāo)準(zhǔn)函數(shù),引用時函數(shù)名外加<>)和自定義函數(shù)(引用
時函數(shù)名外加“”)兩類。
7、const(常量)修飾符及預(yù)處理程序
①const修飾符:用于定義符號常量。
C中一般使用宏定義“#define”定義常量,而C++中除此外,建議使用
const代替宏定義,用關(guān)鍵字const修飾的標(biāo)識符稱為符號常量。
因const是放在語句定義之前的,因此可以進(jìn)行類型判別,這比用宏定義更
安全一些。如下面兩個語句是等同的,但是后者可以比前者避免一些很難發(fā)現(xiàn)的
錯誤。
#difineBOFSIZE100
constintBUFSIZE100;
常量定義也可使用構(gòu)造函數(shù)的初始化方法,如:
constintk(2);〃等同于constintk=2;
因被const修飾的變量的值在程序中不能被改變,所以在聲明符號常量時,
必須對符號常量進(jìn)行初始化,除非這個變量是用extern修飾的外部變量,如:
constintd;xconstintd=2;Mexternconstintd;M
const的用處不僅是在常量表達(dá)式中代替宏定義,如果一個變量在生存期內(nèi)
的值不會改變,就應(yīng)該用const來修飾這個變量,以提高程序安全性。
②預(yù)處理程序
C++的預(yù)處理程序不是C++編譯程序的一部分,它負(fù)責(zé)在編譯程序的其
他部分之前分析處理預(yù)處理語句,為與一般的C++語句區(qū)別,所有預(yù)處理語句
都以位于行首的符號“#”開始,作用是把所有出現(xiàn)的、被定義的名字全部替換
成對應(yīng)的“字符序列”。
預(yù)處理語句有三種:宏定義、文件包含(也成嵌入指令)和條件編譯。
文件包含是指一個程序把另一個指定文件的內(nèi)容包含進(jìn)來,書寫時可以使用
引號也可以使用尖括號,前者引用自己定義的包含文件,如:#include
"E:\prog\myfile.h",后者引用系統(tǒng)提供的包含文件,如標(biāo)準(zhǔn)輸入輸出是定義
在標(biāo)準(zhǔn)庫iostream中的,引用時要包括以下兩條語句:
#include<iostream>〃包含頭文件
usingnamespacestd;//使用命名空間
8、程序運(yùn)行結(jié)果
9、程序書寫格式
C++的格式和c一樣,都很自由,一行可以寫幾條語句,但也要注意以下
規(guī)則,增加可讀性:
①括號緊跟函數(shù)名后面,但在for和while后面,應(yīng)用一個空格與左括號隔
開;
②數(shù)學(xué)運(yùn)算符左右各留一個空格,以與表達(dá)式區(qū)別;
③在表示參數(shù)時,逗號后面留一個空格;
④在for、do…while和while語句中,合理使用縮進(jìn)、一對花括號和空行;
⑤適當(dāng)增加空行和程序注釋以增加可讀性;
⑥太長的程序分為兩行或幾行,并注意選取合適的分行和縮進(jìn)位置。
§1.2認(rèn)識C++面向過程編譯的特點(diǎn)
一、使用函數(shù)重載
c++允許為同一個函數(shù)定義幾個版本,從而使一個函數(shù)名具有多種功能,
這稱為函數(shù)重載。
假設(shè)有一個函數(shù)max,分別具有以下函數(shù)原型:
intmax(int,int);〃2個整型參數(shù)的函數(shù)原型
intmax(int,int,int);〃3個整型參數(shù)的函數(shù)原型
只要分別為不同參數(shù)的max編制相應(yīng)的函數(shù)體,就可以實(shí)現(xiàn)各自的功能。
二、新的基本數(shù)據(jù)類型及其注意事項(xiàng)
1、void是無類型標(biāo)識符,只能聲明函數(shù)的返回值類型,不能聲明變量。
2、C++還比C多了bool(布爾)型。
3、C++只限定int和short至少要有16位,而long至少32位,short不得
長于int,int不能長于long,VC++6.0規(guī)定int使用4字節(jié),這與C使用2
字節(jié)不同。
4、地址運(yùn)算符用來取對象存儲的首地址,對于數(shù)組,則數(shù)組名就是數(shù)組的
首地址。
如:intx=56;定義x,VC++6.0使用4個字節(jié)存儲對象56,假設(shè)存放的內(nèi)
存首地址用十六進(jìn)制表示為006AFDEC,則語句cout?&x;自動使用十六進(jìn)制輸
出存儲的首地址006AFDEC。
5、C++中的常量分三種,第一種為符號常量;第二種為整數(shù)常量,有4種類型,
分別為十進(jìn)制、長整型、八進(jìn)制、十六進(jìn)制,并用前綴和后綴進(jìn)行分類標(biāo)識;第
三種為浮點(diǎn)常量,有三種類型,分別為float型、longfloat型、double型,
并用后綴進(jìn)行分類識別。
符號常量
Cfloat型:后綴F(f),如3.2f、0.002f、52.48f
浮點(diǎn)常量\longfloat型:后綴L(l),如0.2L、4.5L、52.48L
常量<Idouble型:無后綴,如3.0、12.3、0.002
長整型:后綴L(1),如-456L、0L、2145857852L
整數(shù)常量I十進(jìn)制:無后綴,如-32、0、123
八進(jìn)制:前綴0(。),如0123、05、032737
、十六進(jìn)制:前綴OX(ox),如0x15,OxlA,Oxlf
16、C++與C一樣,也使用轉(zhuǎn)義序列。如:'\0'表示ASCII碼值為零的空字符
(NULL),'\101'表示字符A.
三、動態(tài)分配內(nèi)存
1、在使用指針時,如果不使用對象地址初始化指針,可以自己給它分配地址。
對于只存儲一個基本類型數(shù)據(jù)的指針,申請方式如下:
new類型名[size]〃申請可以存儲size個該數(shù)據(jù)類型的對象
不再使用時,必須使用delete指針名;來釋放已經(jīng)申請的存儲空間。
如:
double*p;〃聲明double型指針
p=newdouble[3]//分配3個double型數(shù)據(jù)的存儲空間
deletep;〃釋放已申請的存儲空間
2、C必須在可執(zhí)行語句之前集中聲明變量,而C++可以在使用對象時再聲明或
定義。
3、C++為結(jié)構(gòu)動態(tài)分配內(nèi)存一般格式為:
指針名=new結(jié)構(gòu)名;//分配
delete指針名;//釋放
例如給書中例1.1的Point結(jié)構(gòu)指針分配內(nèi)存:
p=newPoint;
當(dāng)不再使用這個空間時,必須使用deletep;釋放空間。
四、引用
1、引用簡單的說,就是為現(xiàn)有的對象起個別名,別名的地址與引用對象的
地址是一樣的。
引用的聲明方式為:數(shù)據(jù)類型&別名=對象名;,注意對象在引用前必
須先初始化,另外聲明中符號的位置無關(guān)緊要,比如int&a=x;、int&
a=x;和int&a=x;等效。
例:……
intx=56;〃定義并初始化x
int&a=x;〃聲明a是x的引用,二者地址相同
int&r=a;〃聲明r是a的引用,二者地址相同
r=25;〃改變r,則a和x都同步變化
2、所謂“引用”,就是將一個新標(biāo)識符和一塊已經(jīng)存在的存儲區(qū)域相關(guān)聯(lián)。
因此,使用引用時沒有分配新的存儲區(qū)域,它本身不是新的數(shù)據(jù)類型。
可以通過修改引用來修改原對象,但是不能有空引用,在程序中必須確保引
用是和一塊正確的存儲區(qū)域關(guān)聯(lián)。
引用通常用于函數(shù)的參數(shù)表中或作為函數(shù)的返回值。前者因?yàn)槭褂靡米鳛?/p>
函數(shù)參數(shù)不產(chǎn)生臨時對象,可提高程序執(zhí)行效率和安全性(§4.4.3),后者則是
因?yàn)橐米鳛楹瘮?shù)返回值可用于賦值運(yùn)算符的左邊。
3、引用實(shí)際上就是變量的別名,使用引用就如同直接使用變量一樣,引用
與變量名在使用的形式上完全一樣,引用只是作為一種標(biāo)識對象的手段。
但要注意,可以聲明指向變量或引用的指針,如:int*p=&x;M
int&a=x;int*p=&a;M;也可以聲明指針對指針的引用,如:int*&p2
=pl;M(式中pl、p2是指針,*聲明p2是指針,&聲明p2是pl的引用);
但不能聲明指針對變量的引用,如:int*&P=&x;x;不能聲明引用的引用,
如:int&&r=x;x;也不能直接聲明對數(shù)組的引用。
4、引用的作用與指針有相似之處,它會對內(nèi)存地址上存在的變量進(jìn)行修改,
但它不占用新的地址,從而節(jié)省開銷。二者除使用形式不同,本質(zhì)也不同:指針
是低級的直接操作內(nèi)存地址的機(jī)制,可由整型數(shù)強(qiáng)制類型轉(zhuǎn)換得到,功能強(qiáng)大但
易出錯;引用則是較高級的封裝了指針的特性,不直接操作內(nèi)存地址,不可由強(qiáng)
制類型轉(zhuǎn)換而得,安全性較高。
5、雖然不能直接定義對數(shù)組的引用,但可以通過typedef來間接的建立對
數(shù)組的引用。如:
typedefintarray[10];〃定義int型數(shù)組類型array
arraya={12,34,...);〃定義array型數(shù)組a
array&b=a;〃定義數(shù)組a的引用b
五、對指針使用const限定符
1、變量的指針、指向變量的指針變量、指針變量指向的變量
變量的指針就是變量的地址,存放變量地址的變量是指針變量,為了表示指
針變量和它所指向的變量之間的聯(lián)系,在程序中用“*”符號表示“指向”。例如
用P代表指針變量,來存放變量a所在的內(nèi)存地址,則*p代表指針變量指向的
變量,也就是變量a,且|下面等式成立
p=&a*p=*&a=a&*p=&a(*p)++=a++
2、左值和右值
左值是指某個對象的表達(dá)式,必須是可變的。左值表達(dá)式在賦值語句中即可
作為左操作數(shù),也可作為右操作數(shù),如:x=56;和丫=*;,而右值56就只能
作為右操作數(shù),不能作為左操作數(shù)。
某些運(yùn)算符如指針運(yùn)算符“*”和取首地址運(yùn)算符也可產(chǎn)生左值,例
如P是一個指針類型的表達(dá)式,則“*P”是左值表達(dá)式,代表由P指向的對象,
且可通過“*p=”改變這個對象的值;“&P”也是左值表達(dá)式,代表由P指向的
對象的首地址,且可通過“&p=”改變這個指針的指向。
3、指向常量的指針(constint*p=&x;"*p="的操作不成立)
指向常量的指針是在非常量指針聲明前面使用const,如:constint*p;,
它告訴編譯器,*p是常量,不能將*p作為左值進(jìn)行操作,即限定了“*p=”的
操作,所以稱為指向常量的指針。如:
constinty=58;
constint*pl=&y;〃指向常量的指針指向常量y,y不能作為左值
intx=45;
constint*p=&x;〃只能通過左值x間接改變*p的值
上式中*P不能作為左值,但可以通過“x=”改變X的值,間接改變*p的值,
即const僅是限制使用*P的方式,*P仍然可以作為右值使用,還可以通過運(yùn)算
符&改變指針?biāo)赶虻牡刂?,但不能改變指針?biāo)赶虻膬?nèi)存地址中的內(nèi)容。
4、常量指針(int*constp=&x;"p="的操作不成立)
把const限定符放在*號的右邊,就可使指針本身成為一個const,即常量
指針。如:
intx=5;
int*constp=&x;
式中的指針本身是常量,編譯器要求給它一個初始化值,這個值在指針的整
個生存期中都不會改變,編譯器把P看作常量地址,所以不能作為左值,即“P
=”不成立,也就是說不能改變指針P所指向的地址。但這個內(nèi)存地址里的內(nèi)容
可以使用間接引用運(yùn)算符*改變其值,例如語句*P=56;將上面的x的值改變
為56。
4、指向常量的常量指針
也可以聲明指針本身和所指向的對象都不能改變的“指向常量的常量指針”,
這時必須要初始化指針。如:
intx=2;
constint*constp=&x;
語句告訴編譯器,*p和p都是常量,都不能作為左值,即“*p="和“p=”
兩操作均不成立,這種指針限制和“*”運(yùn)算符,在實(shí)際中很少用。
六、泛型算法應(yīng)用于普通數(shù)組
1、數(shù)組中元素及位置的關(guān)系
如inta[]={5,6,7,8);
則數(shù)組中各元素分別為:a[0]=5,a[1]=6,a[2]=7,a[3]=8.a為數(shù)組
的起始地址,各元素的位置分別是:a+1位置為5,a+2位置為6,a+3位置
為7,a+4位置為8。對數(shù)組按元素位置進(jìn)行操作時,不包括起始位置,如:語
句sort(a+1,a+4);,只對從a+1位置(不含a+1位置的元素)起到a
+4位置(含a+4位置的元素)為止的各元素進(jìn)行操作,即a+2,a+3,a+4
三個位置上的三個元素,而不是a+1~a+4四個位置上的所有4個元素。
注意式中的a+1并不是地址a加上一個字節(jié)后的地址,而是a+1xd得到
的地址,其中d是元素類型占用的字節(jié)數(shù),比如C++中整型數(shù)占用4個字節(jié),
則a+1位置上元素的地址就是地址a加上4個字節(jié)后得到的地址。
2、數(shù)組不能作為整體輸出,C++引入STL庫提供的泛型算法,大大簡化數(shù)
組操作。所謂泛型算法,就是提供的操作與元素的類型無關(guān)。
3、對數(shù)組內(nèi)容進(jìn)行升嘉、輸出、反轉(zhuǎn)和復(fù)制等操作需要包含頭文件
<algorithm>;對數(shù)組內(nèi)容進(jìn)行降嘉和檢索等操作需要包含頭文件〈functional〉。
4、假設(shè)一維數(shù)組a和b的長度均為Len,數(shù)據(jù)類型為Type,則對數(shù)組內(nèi)容
的相關(guān)操作和語句如下:
①數(shù)據(jù)內(nèi)容反轉(zhuǎn):
reverse(a,a+Len);〃數(shù)組元素反轉(zhuǎn)排列
②復(fù)制數(shù)組內(nèi)容:
copy(a,a+Len,b);〃將數(shù)組a的內(nèi)容原樣復(fù)制到數(shù)組b
reverse-copy(a,a+Len,b);〃逆向復(fù)制數(shù)組a中內(nèi)容到數(shù)組b
③數(shù)組升嘉排序:
sort(a,a+Len);〃默認(rèn)排序方式是升嘉
④數(shù)組降嘉排序:
sort(b,b+Len,greater<Type>());〃數(shù)組降嘉■排序
⑤檢索查找數(shù)組內(nèi)容:
find(a,a+Len,value);//查找數(shù)組a中是否存在值為value的元素
find函數(shù)返回的是位置指針,一般使用判別語句輸出查找的內(nèi)容,如:
Type*x=find(a,a+Len,value);〃x是類型為type的指針
if(x==a+Len)cout<<“沒有值為value的數(shù)組元素”;
elsecout?"有值為va1ue的數(shù)組元素”;
⑥輸出數(shù)組的內(nèi)容
copy(a,a+Len,ostream.iterator<Type>(cout,"字符串"));
可將ostreani-iterator簡單理解為輸出流操作符,<Type>表示數(shù)組元素的數(shù)據(jù)
類型,本語句將數(shù)組內(nèi)容按正向送往屏幕,輸出方式是將每個元素與“字符串”
的內(nèi)容組合在一起連續(xù)輸出。如果使用空格"”或換行符“\n”,可以按格式輸
出。也可將數(shù)組內(nèi)容按逆向方式送往屏幕,語句為:
reverse-copy(a,a+Len,ostream.iterator<Type>(cout,"字符串"));
‘反轉(zhuǎn):reverse
關(guān)復(fù)制:copy,reverse-copy(逆向復(fù)制)
鍵<排序:sort(默認(rèn)升嘉,尾部加greater<Type>()為降事)
字檢索:find
、輸出:copy(尾部必須加ostreamiterator〈Yype>(cout,"字符串"))
七、數(shù)據(jù)的簡單輸入輸出格式
1、C++提供了兩種格式控制方式,一種是使用iso.base類提供的接口,
另一種是使用一種稱為操控符的特殊函數(shù),操控符的特點(diǎn)是可直接包含在輸入和
輸出表達(dá)式中,因此更為方便,不帶形式參數(shù)的操控符定義在頭文件<iostream>
中,帶形式參數(shù)的操控符定義在頭文件<iomanip>中。
在使用操控符時,一是要正確包含它們,二是只有與符號“<<”或“>>”連
接時才起作用,三是無參數(shù)的操控符函數(shù)不能帶有“()”號。
2、常用操控符及其作用
格式含義作用
dec設(shè)置轉(zhuǎn)換基數(shù)為十進(jìn)制輸入/輸出
oct設(shè)置轉(zhuǎn)換基數(shù)為八進(jìn)制輸入/輸出
hex設(shè)置轉(zhuǎn)換技術(shù)為十六進(jìn)制輸入/輸出
endl輸出一個換行符并刷新流輸出
Setprecision(n)設(shè)置浮點(diǎn)數(shù)輸出精度n輸出
Setw(n)設(shè)置輸出數(shù)據(jù)字段寬度輸出
Setfill('字符,)設(shè)置ch為填充字符輸出
Setiosflags(flag)設(shè)置flag指定的標(biāo)志位輸出
resetiosflags(flag)清除flag指定的標(biāo)志位輸出
上表中操控符使用時,后四個操控符必須包含頭文件<ionlanip》,其中后兩
個操控符的參數(shù)flag是引用C++的類ios_base里定義的枚舉常量,要使用限
定符“::”,下面的表中是幾個常用的ios_base定義的枚舉常量,另外flag可
由多個常量“或”起來使用,如:setiosflags(ios.base::showpointIios.
base::fixed)o
參數(shù)flag常引用的枚舉常量及其含義
常量名含義
ios.base::left輸出數(shù)據(jù)按輸出域左邊對齊輸出
ios.base::right輸出數(shù)據(jù)按輸出域右邊對齊輸出
ios.base::showpos在正數(shù)前添加一個“+”號
ios.base::showpoint浮點(diǎn)輸出時必須帶有一個小數(shù)點(diǎn)
ios.base::scientific使用科學(xué)計(jì)數(shù)法表示浮點(diǎn)數(shù)
ios.base::fixed使用定點(diǎn)形式表示浮點(diǎn)數(shù)
3、操控符使用實(shí)例
①使用setw設(shè)置輸出寬度
#include<iostream>
#include<iomanip>
usingnamespacestd;
voidmain(){
cout<<setfi11('*')
<<setw(0)?15?endl
<<setw⑴?15?endl
<<setw(2)?15?endl
<<setw⑶?15?endl
<<setw(4)?15?endl;
cout<<setw(16)<<setfi11(4*0?"”<<endl;
cout<<setiosflags(ios_base::right)//設(shè)置標(biāo)志位
<<setw⑸?1
<<setw⑸?2
?setw(5)<<3;
cout<<resetiosflags(ios.base::right);//清除標(biāo)志位
cout<<setiosflags(ios.base::left)
<<setw⑸?1
<<setw(5)?2
<<setw(5)?3<<endl;}
程序輸出結(jié)果為:
15
15
15
*15
**15
****2****2****3
l****2****3****
如上所示,setw(n)只對在后面緊接著的那個元素有效;當(dāng)域?qū)抧比后面
要顯示元素的位數(shù)少時,則不起作用,即不影響顯示;使用填充字符時,n比后
面要顯示元素的位數(shù)大1時,才發(fā)生填充作用;要顯示15個“*”號,必須取n
=16,同時setfill后面使用“”才能全部填充為設(shè)定字符“*",否則將全部
填充為空格;如果在程序中使用了設(shè)置標(biāo)志,只有在清除設(shè)置標(biāo)志之后,才能進(jìn)
行新的設(shè)置。
②使用setprecition設(shè)置浮點(diǎn)數(shù)輸出精度
constdoublePI=3.141592;
voidmain(){
cout<<setprecition(0)?PI?endl
<<setprecition(1)?PI?endl
<<setprecition⑵?PI?endl
<<setprecition(3)?PI?endl
<<setprecition(7)?PI?endl;
程序輸出結(jié)果為:
3.14159
3
3.1
3.14
3.141592
注意使用setprecition(intn)設(shè)定顯示小數(shù)位數(shù)時,小數(shù)點(diǎn)本身也占1位,
。等于不設(shè),由系統(tǒng)決定(默認(rèn)為最多輸出5位小數(shù)),1代表顯示整數(shù)數(shù)字,2
才顯示小數(shù)點(diǎn)后面的一位數(shù)。因系統(tǒng)只輸出5位小數(shù),所以為了將6位小數(shù)全部
輸出,最后一行必須設(shè)置7位才行。
③使用dec、oct、hex設(shè)置轉(zhuǎn)換基數(shù)為不同進(jìn)制
intb=100;
cout<<,,Dec:,,<<dec?b<<endl//十進(jìn)制格式輸出
<<,,Hex:,,<<hex?b<<endl//十六進(jìn)制格式輸出
<<"Oct:,,<<oct<<b<<endl;〃八進(jìn)制格式輸出
cout<<b?endl
<<"Inputb=";
cin?b;〃輸入100
cout<<b?endl;
cout<<dec?setiosflags(ios-base::showpos)?b<<endl;
cout<<"Inputb=";
cin?b;〃輸入100
cout<<b?endl;
cout<<resetiosflags(ios.base::showpos);
cout<<b?endl;
程序輸出結(jié)果為:
Dec:100
Hex:164
Oct:144
144
Inputb=100〃輸入100
144〃因尚未轉(zhuǎn)換基數(shù),100仍按八進(jìn)制輸出
+100
Inputb=100〃輸入100
+100//已轉(zhuǎn)換基數(shù),將100按十進(jìn)制輸出
100〃清除flag指定的標(biāo)志位和正數(shù)前顯示的+號
如上面程序,程序執(zhí)行cout<〈oct語句后,將保持八進(jìn)制格式輸出,雖然輸
入100,但輸出仍按八進(jìn)制,只有使用cout?dec語句將其恢復(fù)為十進(jìn)制。使用
語句cout?dec<<setiosflags(ios.base::showpos)?b<<endl;除了將進(jìn)制恢
復(fù)為十進(jìn)制,還將輸出設(shè)置為在正的數(shù)字前面顯示“+”號,直到后面的語句使
用清除該設(shè)置標(biāo)志的語句cout?resetiosflags(ios.base::showpos);執(zhí)行,另
外如果單獨(dú)使用語句“resetiosflags(ios.base::showpos);"則不起作用。
§1.3程序的編輯、編譯和運(yùn)行的基本概念
1、C++程序編制過程
①先使用編輯器編輯一個C++程序mycpp.cpp,又稱其為C++的源程序;
②然后使用C++編譯器對這個C++程序進(jìn)行編譯,產(chǎn)生文件mycpp.obj;
③再使用連接程序(又稱Link),將mycpp.obj變成mycpp.exe文件。
2、C++程序編制環(huán)境及使用方法
現(xiàn)在C++的編制一般都使用集成環(huán)境,如VisualC++6.0等,所謂集成
環(huán)境,就是將C++語言的編輯、編譯、連接和運(yùn)行程序都集成到一個綜合環(huán)境
中。
利用VC編制C++程序源文件的步驟如下:
①啟動VC6.0;
②File菜單-New對話框-Project選項(xiàng)卡-Win32ConsoleApplication
選項(xiàng),在右邊的Projectname輸入框中輸入項(xiàng)目名稱myfile,在右邊的Location
輸入框中輸入存儲目錄,然后單擊0K按鍵,進(jìn)入Win32ConsoleApplication
制作向?qū)У牡谝徊剑庉婥++程序文件是選擇Anemptyproject選項(xiàng),單擊
Finish按鈕,完成設(shè)置;
③選中FileView選項(xiàng)卡,進(jìn)入空項(xiàng)目,單擊它展開樹形結(jié)構(gòu),選中myfile
files節(jié)點(diǎn);選中SourceFile標(biāo)記,再從File菜單中選new命令,彈出new
對話框;選中C++SourceFile選項(xiàng),在右方的File輸入框中輸入C++程序
文件名(mycpp),系統(tǒng)默認(rèn)的文件擴(kuò)展名為.cpp,單擊OK按鈕,返回集成環(huán)境,
并在SourceFile項(xiàng)下面產(chǎn)生空文件mycpp.cpp;在右邊的源代碼編輯框中輸入
源文件;
④部分Build菜單項(xiàng)描述
菜單項(xiàng)描述
Compile編譯源代碼窗口中的活動源文件
Build查看工程中所有文件,并對最近修改過的文件進(jìn)行編譯和鏈
接
RebuildAll對工程中的所有文件全部進(jìn)行重新編譯和連接
Clean刪除項(xiàng)目的中間文件和輸出文件
StartDebug彈出級聯(lián)菜單,主要包括有關(guān)程序調(diào)試的選項(xiàng)
Execute運(yùn)行應(yīng)用程序
第二章從結(jié)構(gòu)到類的演變
§2.1結(jié)構(gòu)的演化
一、結(jié)構(gòu)發(fā)生質(zhì)的演變
1、函數(shù)與數(shù)據(jù)共存
c++中首先允許結(jié)構(gòu)中可以定義函數(shù),這些函數(shù)稱為成員函數(shù),形式如下:
struct結(jié)構(gòu)名(
數(shù)據(jù)成員
成員函數(shù)
可以像C語言中結(jié)構(gòu)變量使用結(jié)構(gòu)成員的方法那樣,通過C++的結(jié)構(gòu)對象
使用成員函數(shù),形式如下:
結(jié)構(gòu)對象.成員函數(shù)
2、封裝性
如果在定義結(jié)構(gòu)時,將數(shù)據(jù)成員使用private關(guān)鍵字定義,則產(chǎn)生封裝性,
沒有使用private定義的成員函數(shù),默認(rèn)為public。
要注意,私有的數(shù)據(jù)成員,必須通過公有的成員函數(shù)才能使用,而不能不通
過公有的成員函數(shù)直接來使用,否則就會出錯,這就稱為數(shù)據(jù)的封裝性。
二、使用構(gòu)造函數(shù)初始化結(jié)構(gòu)的對象
函數(shù)名與結(jié)構(gòu)同名,稱為構(gòu)造函數(shù),專門用于初始化結(jié)構(gòu)的對象,構(gòu)造函數(shù)
使用的一般形式為:
構(gòu)造函數(shù)名對象名(初始化參數(shù));
程序在運(yùn)行時,會自動完成初始化任務(wù)。
§2.2從結(jié)構(gòu)演變一個簡單的類
1、用關(guān)鍵字class代替struct,就是一個標(biāo)準(zhǔn)的類。
實(shí)例:
#include<iostream>
usingnamespacestd;
classPoint{〃定義類Point
private:
doublex,y;//類Point的數(shù)據(jù)成員
public:
Point()();|〃類Point的無參數(shù)構(gòu)造函數(shù)
Point(doublea,doubleb){x=a;y=b;}〃具有兩個參數(shù)的構(gòu)造函數(shù)
voidSeixy(doublea,doubleb)(x=a;y=b;}//成員函數(shù),用于重新設(shè)置數(shù)據(jù)成員
voidDisplay(){cout<<x<<"\t"<:<y<:<endl;}//成員函數(shù),按指定格式輸出數(shù)據(jù)成員
);
voidmain0{
Pointa;〃定義類Point的對象a
Pointb(18.5,10.6);|//定義類Point的對象b并初始化
a.Setxy(10.6,18.5);//為對象a的數(shù)據(jù)成員賦值
a.Display();〃顯示對象a的數(shù)據(jù)成員
b.Display0;〃顯示對象b的數(shù)據(jù)成員
)
程序運(yùn)行結(jié)果:
類名Point
10.618.5
具有的屬性x和y
18.510.6
提供的操作
2、類的示意圖
構(gòu)造函數(shù)Point
上例中的Point類可以看作直角坐標(biāo)系
用來給對象賦值
中的點(diǎn)類,其結(jié)構(gòu)示意圖如右:Setxy
用來輸出和
第一個方框中是類名;第二個方框中是Displayxy
坐標(biāo)點(diǎn)的數(shù)據(jù),稱為屬性(或稱數(shù)據(jù)成員);
第三個方框中表示類所提供的具體操作方法,實(shí)際上是如何使用數(shù)據(jù)x和y,以
實(shí)現(xiàn)預(yù)定功能的函數(shù),這里稱為成員函數(shù)。
§2.3面向過程與面向?qū)ο?/p>
1、面向過程的方法
所謂面向過程,就是不必了解計(jì)算機(jī)的內(nèi)部邏輯,而把精力集中在對如何求
解問題的算法邏輯和過程的描述上,通過編寫程序把解決問題的步驟告訴計(jì)算
機(jī)。
c語言就是面向過程的結(jié)構(gòu)化程序設(shè)計(jì)語言,其程序設(shè)計(jì)特點(diǎn)就是通過函數(shù)
設(shè)計(jì),實(shí)現(xiàn)程序功能的模塊化、結(jié)構(gòu)化。但實(shí)際工作中,盡管結(jié)構(gòu)化程序設(shè)計(jì)中
的分而治之的想法非常好,但在結(jié)構(gòu)化程序設(shè)計(jì)語言和結(jié)構(gòu)化程序設(shè)計(jì)方法下卻
難以貫徹到底,特別是在軟件規(guī)模在三四萬行以上時,開發(fā)和維護(hù)就十分困難。
2、面向?qū)ο蟮姆椒?/p>
為了解決面向過程的方法存在的問題,人們提出了面向?qū)ο蟮姆椒?。所謂對
象,就是現(xiàn)實(shí)世界中客觀存在的事務(wù)。相對于過程,對象是穩(wěn)定的,復(fù)雜的對象
可由簡單的對象組成,對象各自完成特定的功能。
在面向?qū)ο蟪绦蛟O(shè)計(jì)中,可以將一組密切相關(guān)的函數(shù)統(tǒng)一封裝在一個對象
中,從而合理而又有效的避免全局變量的使用,更徹底的實(shí)現(xiàn)了結(jié)構(gòu)化程序設(shè)計(jì)
的思想。
結(jié)構(gòu)化程序設(shè)計(jì)使用的是功能抽象,而面向?qū)ο蟪绦蛟O(shè)計(jì)不僅能進(jìn)行功能抽
象,還能進(jìn)行數(shù)據(jù)抽象,“對象”實(shí)際上是功能抽象和數(shù)據(jù)抽象的統(tǒng)一。
面向?qū)ο蟮某绦蛟O(shè)計(jì)方法不是以函數(shù)過程和數(shù)據(jù)結(jié)構(gòu)為中心,而是以對象代
表來求解問題的中心環(huán)節(jié),追求的是現(xiàn)實(shí)問題空間與軟件系統(tǒng)解空間的近似和直
接模擬,從而使人們對復(fù)雜系統(tǒng)的認(rèn)識過程與系統(tǒng)的程序設(shè)計(jì)實(shí)現(xiàn)過程盡可能的
一致。
3、軟件開發(fā)過程及發(fā)展趨勢
軟件開發(fā)者將被開發(fā)的整個業(yè)務(wù)范圍稱為問題域,軟件開發(fā)是對給定問題求
解的過程,分為兩項(xiàng)主要內(nèi)容:認(rèn)識和描述?!罢J(rèn)識”就是在所要處理的問題域
范圍內(nèi),通過人的思維,對該問題域客觀存在的事務(wù)以及對所要解決的問題產(chǎn)生
正確的認(rèn)識和理解。二就是用一種語言把人們對問題域中事務(wù)的認(rèn)識、對
問題及解決方法的認(rèn)識描述出來,最終的描述必須使用一種能夠被機(jī)器讀懂的語
言,即編程語言。
人們習(xí)慣使用的自然語言和計(jì)算機(jī)能夠理解并執(zhí)行的編程語言之間存在很
大的差距,稱為“語言的鴻溝”。由于人的認(rèn)識差距,問題域和自然語言之間也
有縫隙,機(jī)器語言和自然語言之間鴻溝最寬,程序設(shè)計(jì)語言的發(fā)展趨勢則是為了
鴻溝變窄。
§2.4C++面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)
面向?qū)ο蟮某绦蛟O(shè)計(jì)具有抽象、封裝、繼承和多態(tài)性等關(guān)鍵要素。
1、對象
c++中的對象是系統(tǒng)中用來描述客觀事物的一個實(shí)體,是構(gòu)成系統(tǒng)的一個
基本單位,C++中使用對象名、屬性和操作三要素來描述對象,如右所示:對
象名用來標(biāo)識一個具體對象;用數(shù)據(jù)來表示對象的屬性,一
對象名
個屬性就是描述對象靜態(tài)特征的一個數(shù)據(jù)項(xiàng);操作是描述對
象動態(tài)特征(行為)的一個函數(shù)序列(使用函數(shù)實(shí)現(xiàn)操作),屬性1
屬性2
也稱方法或服務(wù)。數(shù)據(jù)稱為數(shù)據(jù)成員,函數(shù)稱為成員函數(shù),
一個對象由一組屬性和對這組屬性進(jìn)行操作的成員函數(shù)構(gòu)
屬性n
成。
操作1
例:用簡單對象表示平面上的A(3.5,6.4)和B(8.5,
操作2
8.9)兩個坐標(biāo)點(diǎn)。
可用如下的對象結(jié)構(gòu)圖表示A和B的對象結(jié)構(gòu):
操作n
AB
x(3.5)x(8.5)
y(6.4)y(8.9)
Display();Display(
Setxy();Setxy();
Move();Move();
2、抽象和類
抽象是一種從一般的觀點(diǎn)看待事物的方法,即集中于事物的本質(zhì)特征,而不
是具體細(xì)節(jié)或具體實(shí)現(xiàn)。面向?qū)ο蟮姆椒ò殉绦蚩醋魇怯梢唤M抽象的對象組成
的,如果把一組對象的共同特征進(jìn)一步抽象出來,就形成了“類”的概念。
對于一個具體的類,它有許多具體的個體,這些個體叫做“對象”,同一類
的不同對象具有相同的行為方式。一個對象是由一些屬性和操作構(gòu)成的,對象的
屬性和操作描述了對象的內(nèi)部細(xì)節(jié),類是具有相同的屬性和操作的一組對象的集
合,它為屬于該類的全部對象提供了統(tǒng)一的抽象描述,其內(nèi)部包括屬性和操作兩
個主要部分。
類的作用是定義對象,|類和對象的關(guān)系如同一個模具和其鑄造出來的鑄造件
的關(guān)系,對象之間就像是同一模具鑄出的零件,模樣相同,鑄造材料可能不同。
類給出了屬于該類的全部對象的抽象定義,而對象則是符合這種定義的實(shí)體。所
謂一個類的所有對象具有相同屬性和操作,是指它們的定義形式(即屬性的個數(shù)、
名稱、數(shù)據(jù)類型)相同,而不是說每個對象的屬性值都相同。
3、封裝
為了保護(hù)類的安全,即限制使用類的屬性和操作,需要將類封裝起來。gf
就像用同一個模具鑄造零件,各零件使用的材料(數(shù)據(jù)成員)和鑄造工藝(成員
函數(shù))均不同,每一種材料都有其對應(yīng)的鑄造工藝,材料與鑄造工藝是成套使用
(封裝)的,雖然鑄出零件的模樣一樣,但如果用錯了鑄造工藝,就可能出廢品。
所謂“封裝”,就是把對象的屬性和操作結(jié)合成一個獨(dú)立的系統(tǒng)單位,并盡
可能隱蔽對象的內(nèi)部細(xì)節(jié)。按照面向?qū)ο蟮姆庋b原則,一個對象的屬性和操作是
緊密結(jié)合的,對象的屬性只能由這個對象的操作來存取。
對象的操作分為內(nèi)部操作和外部操作,前者只供對象內(nèi)部的其他操作使用,
不對外提供;后者對外提供一個信息接口,通過這個接口接受對象外部的消息并
為之提供操作(服務(wù))。對象內(nèi)部數(shù)據(jù)結(jié)構(gòu)的這種不可訪問性稱為信息(數(shù)據(jù))
隱藏。
數(shù)據(jù)封裝給數(shù)據(jù)提供了與外界聯(lián)訊的標(biāo)準(zhǔn)接口,只有通過這些接口,使用規(guī)
范的方式,才能訪問這些數(shù)據(jù),同時程序員也只需要和接口打交道,而不必了解
數(shù)據(jù)的具體細(xì)節(jié)。
由此可見,封裝要求一個對象應(yīng)具備明確的功能,并具有接口以便和其他對
象相互作用,同時,對象的內(nèi)部實(shí)現(xiàn)(代碼和數(shù)據(jù))是受保護(hù)的,外界不能訪問
它們,這樣封裝一方面使得程序員在設(shè)計(jì)程序時能專注于自己的對象,同時也切
斷了不同模塊之間數(shù)據(jù)的非法使用,減少了出錯。
在類中,封裝是通過存取權(quán)限實(shí)現(xiàn)的,例如每個類的屬性和操作分為私有和
公有兩種類型,對象的外部職能訪問對象的公有部分,而不能直接訪問對象的私
有部分。
4、繼承
繼承是一個類可以獲得另一個類的特性的機(jī)制,支持層次概念,通過繼承,
低層的類只需定義特定于它的特征,而共享高層的類中的特征。繼承具有重要的
實(shí)際意義,它簡化了人們對事物的認(rèn)識和描述。
繼承就像鑄造中母模與子模的關(guān)菽-
5、多態(tài)性
不同的對象可以調(diào)用相同名稱的函數(shù),但可導(dǎo)致完全不同的行為的現(xiàn)象稱為
多態(tài)性。利用多態(tài)性,程序中只需進(jìn)行一般形式的函數(shù)調(diào)用,函數(shù)的實(shí)現(xiàn)細(xì)節(jié)留
給接受函數(shù)調(diào)用的對象,這大大提高了解決人們復(fù)雜問題的能力。
多態(tài)性就像是鑄造時不同的零件、不同材料所鑄的同一款零件雖然可以使用
相同的鑄造工藝,但鑄出的零件用途、使用壽命和使用方法都不一樣。
§2.5使用類和對象
1、使用string對象
實(shí)際上string類很復(fù)雜,如右的string類的簡化圖中只string
給出了下例中涉及的屬性和部分操作。str
由圖,類string的屬性是一個字符串str,同名函數(shù)string
string是構(gòu)造函數(shù),用來初始化字符串,另外三個成員函數(shù)用find
來對屬性str進(jìn)行操作,其中find成員函數(shù)用來在str字符size
串中檢索需要的子串;size成員函數(shù)計(jì)算并輸出str存儲的單substr
詞長度;substr成員函數(shù)用來返回str字符串中的子串。
在程序中可以使用string類定義存儲字符串的對象,這些對象屬于string
類,因此還要使用#include〈string》來包含這個類的頭文件。
因?yàn)閟tring需要的是字符串,所以string類的對象不能用單引號括起來的
單個字符常量初始化,即:
stringstr='A';x//同理stringstr('A,);x
但可以使用雙引號括起來的單個字符常量初始化,即:
stringstr="A";M//同理stringstr("A");M
如果string的對象str的內(nèi)容為"ab",則strlOHa"str[l]=,b,?
例:使用string對象及初始化
frinclude<iostream>
#include〈string)//在程序中包含string類的頭文件
usingnamespacestd;
voidmain(){
stringstrl("Wearehere!");//用構(gòu)造函數(shù)st造ng定義對象strl并賦值
stringstr2="Whereareyou?";〃用構(gòu)造函數(shù)string定義對象str2并賦值
(或stringstrl("Wearehere!"),stringstr2="Whereareyou?";)
cout<<strl[0]<<strl[11]<<","?strl<<endl;
cout?str2[0]<<str2[13]<<","?str2?endl;
cout?"pleaseinputaword:
|cin>>strl7|〃輸入good
cout?"lenghtofthe"?strl?"is"?strl.size()?"."<<endl;
)
程序運(yùn)行結(jié)果為:
W!Wearehere!
W?Whereareyou?
Pleaseinputaword:good
Lengthofthegoodis4.
程序中使用了兩種方法給string類的兩個對象初始化,也可將它們定義在
一行中:stringstrl("Wearehere!"),stringstr2="Whereareyou?";
string類還提供將兩個字符串連接起來組成一個新字符串的能力,用“+”
號將后面的字符串連接到前一個字符串的后面,也可以與單個字符常量連接,如:
strl=strl+…+strl;將原來的兩個strl的內(nèi)容用空格連接起來。
2、使用string類的典型成員函數(shù)
string對象是通過調(diào)用成員函數(shù)實(shí)現(xiàn)操作,從而提供對象的行為或消息傳
遞的,對象調(diào)用成員函數(shù)的語法為:
對象名稱.成員函數(shù)(參數(shù)(可供選擇的消息內(nèi)容內(nèi)
常用的string類成員函數(shù):
1substr:stringnewstr=strl.substr(3,3);
find:inti=strl.find("are”,0);
get1ine:get1ine(cin,InputLline,'\n');
swap:strl.swap(str2);=str2.swap(strl);
Ibegin和end:copy(strl.begin(),strl.end(),str2.begin());
①成員函數(shù)substr用來返回給定字符串的子串,格式為:
對象名稱.substr(要截取子串的起始位置,截取的長度);
如:stringstrl("Wearehere!");語句中要從對象strl中截取字符串
are,可用下面的語句實(shí)現(xiàn):
stringnewstr=strl.substr(3,3);
此時newstr的內(nèi)容為are,括號中的第一個3是因?yàn)镃++規(guī)定字符串的計(jì)
數(shù)從0開始,所以a處于位置3;第二個3是因?yàn)閍re是3個字符,所以截取子
串的長度為3。
注意給出的要截取子串的起始位置必須位于字符串中,否則出錯。如果截取
長度大于字符串長度,則是可以的,程序?qū)⒆詣咏厝〉阶址┪?,如語句
stringstrnew=newstr.substr(2,8);和語句stringstrnew=
newstr.substr(2,1);等效,都是截取字符e。
②成員函數(shù)find用來在主串中檢索所需字符串,格式為:
對象名稱.f稱d(要查找的字符串,開始查找的位置);
函數(shù)返回查找到的字符串在主串中的位置,如:
<,,
inti=strl.findCare50);
表示從strl字符串的位置。開始查找are出現(xiàn)的位置,結(jié)果為3。
如果不給位置參數(shù),默認(rèn)位置參數(shù)為0。
③string類還提供一個輔助功能,以便使用getline從流cin中讀出輸入的一
行給string類的對象,如:
stringInputLine;
getline(cin,InputLline,'\n');
cout<<9,yourinput:,,?InputLine<<endl;
如果輸入“Iamhere!”,則得到如下結(jié)果:
yourinput:Iamhere!
例:將美國格式的日期轉(zhuǎn)換為國際格式
#include<iostream>
#include<string>
usingnamespacestd;
voidmain(){
cout?HEnterthedateinAmericanformat"
<<"(例如:December25,2002):n;//注意逗號后面有一個空格
stringDate;
get1ine(cin,Date,z\nz);〃輸入時間:May28,2002
inti=Date,find(H");//i=3
stringMonth=Date.substr(0,i);〃截取月份賦值給字符串Month
intk=Date,find(H,H);//k=6
stringDay=Date.substr(i+1,k-i-1);〃截取日期賦值給字符串Day
stringYear=Date.substr(k+2,4);//截取年份賦值給字符串Year
stringNewDate=Day+n"+Month+""+Year;
cout?nOriginaldate:H?Date?endl;
cout?HConverteddate:n<<NewDate?end1;
)
程序運(yùn)行實(shí)例:
EnterthedateinAmericanformat(例如:December25,2002):May28,2002
Originaldate:Ma
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高中生物 專題5 課題1 DNA的粗提取與鑒定說課稿 新人教版選修1
- 9 生活離不開他們 第一課時 說課稿-2023-2024學(xué)年道德與法治四年級下冊統(tǒng)編版001
- 2024年五年級英語上冊 Unit 4 Jenny and Danny Come to China Lesson 21 What Year Is It說課稿 冀教版(三起)
- 2024年二年級品生下冊《居家安全不大意》說課稿 山東版
- 7火山噴發(fā)(說課稿)-2023-2024學(xué)年科學(xué)六年級下冊人教鄂教版
- 12《玩偶之家(節(jié)選)》說課稿新統(tǒng)編版選修必修中冊 2024-2025學(xué)年
- 18江南春說課稿-2024-2025學(xué)年六年級上冊語文統(tǒng)編版
- 2025【合同范本】服務(wù)委托合同范本
- 12 富起來到強(qiáng)起來-《做新時代的好少年》(說課稿)統(tǒng)編版道德與法治五年級下冊
- 一級水電站合同范例
- 醫(yī)保政策與健康管理培訓(xùn)計(jì)劃
- 策略與博弈杜塔中文版
- 無人化農(nóng)場項(xiàng)目可行性研究報告
- 2024屆上海市金山區(qū)高三下學(xué)期二模英語試題(原卷版)
- 學(xué)生春節(jié)安全教育
- GA/T 1280-2024銀行自助設(shè)備安全性規(guī)范
- 2024-2025年校長在教研組長和備課組長會議上講話
- 2024預(yù)防流感課件完整版
- 2025屆江蘇省常州市高級中學(xué)高三第二次模擬考試語文試卷含解析
- 高三日語一輪復(fù)習(xí)助詞「で」的用法課件
- 保險業(yè)消費(fèi)者權(quán)益保護(hù)工作計(jì)劃
評論
0/150
提交評論