C++語言程序設(shè)計課件_第1頁
C++語言程序設(shè)計課件_第2頁
C++語言程序設(shè)計課件_第3頁
C++語言程序設(shè)計課件_第4頁
C++語言程序設(shè)計課件_第5頁
已閱讀5頁,還剩637頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C++簡單程式設(shè)計

2C++語言的產(chǎn)生C++是從C語言發(fā)展演變而來的,首先是一個更好的C引入了類的機制,最初的C++被稱為“帶類的C”1983年正式取名為C++從1989年開始C++語言的標(biāo)準(zhǔn)化工作於1994年制定了ANSIC++標(biāo)準(zhǔn)草案於1998年11月被國際標(biāo)準(zhǔn)化組織(ISO)批準(zhǔn)為國際標(biāo)準(zhǔn),成為目前的C++C++語言概述3C++的特點全面相容C它保持了C的簡潔、高效和接近組合語言等特點對C的類型系統(tǒng)進行了改革和擴充C++也支持面向過程的程式設(shè)計,不是一個純正的面向?qū)ο蟮恼Z言支持面向?qū)ο蟮姆椒–++語言概述4C++程式實例—例2-1//2_1.cpp#include<iostream>usingnamespacestd;intmain(){cout<<"Hello!\n";cout<<"Welcometoc++!\n";}運行結(jié)果:Hello!Welcometoc++!C++語言概述5C++字元集大小寫的英文字母:A~Z,a~z數(shù)字字元:0~9特殊字元:空格 ! # % ^ & *

_(下劃線) + = - ~ < > / \ ' " ; . , () [] {}C++語言概述6詞法記號關(guān)鍵字

C++預(yù)定義的單詞識別字

程式員聲明的單詞,它命名程式正文中的一些實體文字

在程式中直接使用符號表示的數(shù)據(jù)操作符

用於實現(xiàn)各種運算的符號分隔符號

(){},:;

用于分隔各個詞法記號或程序正文空白符 空格、跳位字元(TAB鍵產(chǎn)生的字元)、換行符(Enter鍵所產(chǎn)生的字元)和注釋的總稱C++語言概述7識別字的構(gòu)成規(guī)則以大寫字母、小寫字母或下劃線(_)開始??梢杂梢源髮懽帜?、小寫字母、下劃線(_)或數(shù)字0~9組成。大寫字母和小寫字母代表不同的識別字。C++語言概述8

數(shù)據(jù)類型

——常量與變數(shù)#include<iostream>usingnamespacestd;intmain(){constintPRICE=30;intnum,total;floatv,r,h;num=10;total=num*PRICE;cout<<total<<endl;r=2.5;h=3.2;v=3.14159*r*r*h;cout<<v<<endl;}常量變數(shù)變數(shù)先聲明後使用符號常量基本數(shù)據(jù)類型和運算式9#include<iostream>usingnamespacestd;intmain(){constintPRICE=30;intnum,total;floatv,r,h;num=10;total=num*PRICE;cout<<total<<endl;r=2.5;h=3.2;v=3.14159*r*r*h;cout<<v<<endl;}

數(shù)據(jù)類型

——整型數(shù)據(jù)整型常量shortunsignedshort2位元組intunsignedint

4字節(jié)longunsignedlong4位元組整型變數(shù)整型變數(shù)聲明基本數(shù)據(jù)類型和運算式10數(shù)據(jù)類型

—整型數(shù)據(jù)及取值範(fàn)圍類型 說明符 位數(shù) 數(shù)值範(fàn)圍 短整 short 16 -32768~32767基本 int 32 -231~(231-1)長整 long 32 -231~(231-1)無符號

unsignedshort 16 0~65535

unsigned[int] 32 0~(232-1)

unsignedlong 32 0~(232-1) 基本數(shù)據(jù)類型和運算式11#include<iostream>usingnamespacestd;intmain(){constintPRICE=30;intnum,total;floatv,r,h;num=10;total=num*PRICE;cout<<total<<endl;r=2.5;h=3.2;v=3.14159*r*r*h;cout<<v<<endl;}

數(shù)據(jù)類型

——實型數(shù)據(jù)實型常量float4位元組精度:3.4×10±387位有效數(shù)字double8位元組精度:1.7×10±30815位有效數(shù)字longdouble8位元組精度:1.7×10±30815位有效數(shù)字實型變數(shù)默認(rèn)為double型尾碼F(或f)

為float型尾碼L(或l)

為longdouble

型基本數(shù)據(jù)類型和運算式12

數(shù)據(jù)類型

——字元型數(shù)據(jù)(一)字元常量單引號括起來的一個字元,

如:'a','D','?','$'字元變數(shù)用來存放字元常量

例:charc1,c2;

c1='a';

c2='A';字符數(shù)據(jù)在內(nèi)存中的存儲形式以ASCII碼存儲,占1位元組,用7個二進位位基本數(shù)據(jù)類型和運算式13字元數(shù)據(jù)的使用方法字元數(shù)據(jù)和整型數(shù)據(jù)之間可以運算。字元數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值。字串常量例:"CHINA"

"a"

'a'所以:charc;

c="a";CHINA\0a

\0aPage13

數(shù)據(jù)類型

——字元型數(shù)據(jù)(二)基本數(shù)據(jù)類型和運算式14

數(shù)據(jù)類型

——布爾型數(shù)據(jù)布爾型變數(shù)的說明:

例:boolflag;布爾型數(shù)據(jù)的取值:

只有false

和true

兩個值基本數(shù)據(jù)類型和運算式15

數(shù)據(jù)類型

——變數(shù)初始化例:

inta=3;

doublef=3.56;

charc='a';

intc(5);Page15基本數(shù)據(jù)類型和運算式16數(shù)據(jù)類型

—混合運算時的類型轉(zhuǎn)換不同類型數(shù)據(jù)進行混合運算時,C++編譯器會自動進行類型轉(zhuǎn)換。為了避免不同的數(shù)據(jù)類型在運算中出現(xiàn)類型問題,應(yīng)儘量使用同種類型數(shù)據(jù)。可以採用強制類型轉(zhuǎn)換:例如:

floatc;

inta,b;

c=float(a)/float(b);或c=(float)a/(float)b;

基本數(shù)據(jù)類型和運算式17變數(shù)的存儲類型auto屬於一時性存儲,其存儲空間可以被若干變數(shù)多次覆蓋使用。register存放在通用寄存器中。extern在所有函數(shù)和程式段中都可引用。static在內(nèi)存中是以固定地址存放的,在整個程式運行期間都有效?;緮?shù)據(jù)類型和運算式18算術(shù)運算符與算術(shù)運算式基本算術(shù)運算符

+-*/(若整數(shù)相除,結(jié)果取整)%(取餘,運算元為整數(shù))優(yōu)先順序與結(jié)合性先乘除,後加減,同級自左至右++,--(自增、自減)例:i++;--j;Page18基本數(shù)據(jù)類型和運算式19賦值運算符和賦值運算式

簡單的賦值運算符"="舉例

n=n+5運算式的類型

等號左邊對象的類型運算式的值

等號左邊對象被賦值後的值Page19基本數(shù)據(jù)類型和運算式20賦值運算符和賦值運算式

復(fù)合的賦值運算符有10種複合運算符:

+=,-=,*=,/=,%=,

<<=,>>=,&=,^=,|=例

a+=3

等價於a=a+3

x*=y+8

等價於x=x*(y+8)基本數(shù)據(jù)類型和運算式21賦值運算符和賦值運算式

——賦值運算式舉例a=5 運算式值為5a=b=c=5

運算式值為5,a,b,c均為5a=5+(c=6)

運算式值為11,a為11,c為6a=(b=4)+(c=6)

運算式值為10,a為10,b為4,c為6a=(b=10)/(c=2)

運算式值為5,a為5,b為10,c為2a+=a-=a*a相當(dāng)於

a=a+(a=a-a*a)Page21基本數(shù)據(jù)類型和運算式22逗號運算和逗號運算式格式運算式1,運算式2求解順序及結(jié)果先求解1,再求解2,最終結(jié)果為運算式2的值例a=3*5,a*4

最終結(jié)果為60Page22基本數(shù)據(jù)類型和運算式23關(guān)係運算與關(guān)係運算式關(guān)係運算是比較簡單的一種邏輯運算,優(yōu)先次序為:

<<=>>===!=

優(yōu)先順序相同(高)優(yōu)先順序相同(低)關(guān)係運算式是一種最簡單的邏輯運算式其結(jié)果類型為bool,值只能為true

或false。例如:a>b,c<=a+b,x+y==3基本數(shù)據(jù)類型和運算式24邏輯運算與邏輯運算式邏輯運算符

!(非)&&(與)||(或)

優(yōu)先次序:高→低邏輯運算式

例如:(a>b)&&(x>y)

其結(jié)果類型為bool,值只能為true

或false基本數(shù)據(jù)類型和運算式25條件運算符與條件運算式一般形式運算式1?運算式2:運算式3運算式1必須是bool類型執(zhí)行順序先求解運算式1,若運算式1的值為true,則求解運算式2,運算式2的值為最終結(jié)果若運算式1的值為false,則求解運算式3,運算式3的值為最終結(jié)果例:x=a>b?a:b;基本數(shù)據(jù)類型和運算式26條件運算符與條件運算式注意:條件運算符優(yōu)先順序高於賦值運算符,低於邏輯運算符運算式2、3的類型可以不同,條件運算式的最終類型為2和3中較高的類型。例:x=a>b?a:b;基本數(shù)據(jù)類型和運算式①②27sizeof運算符語法形式

sizeof(類型名)

或sizeof(運算式)結(jié)果值:

“類型名”所指定的類型或“運算式”的結(jié)果類型所占的位元組數(shù)。例:sizeof(short)sizeof(x)基本數(shù)據(jù)類型和運算式28位運算——按位與(&)運算規(guī)則將兩個運算量的每一個位進行邏輯與操作舉例:計算3&53:000000115:(&)000001013&5:00000001用途:將某一位置0,其他位不變。例如:

將char型變數(shù)a的最低位置0:

a=a&0376;取指定位。

例如:有charc;inta;

取出a的低位元組,置於c中:c=a&0377;基本數(shù)據(jù)類型和運算式29位運算——按位或(|)運算規(guī)則將兩個運算量的每一個位進行邏輯或操作舉例:計算3|53:000000115:(|)000001013|5:00000111用途:將某些位置1,其他位不變。

例如:將int

型變數(shù)a

的低位元組置

1

a=a|0xff;基本數(shù)據(jù)類型和運算式30位運算——按位異或(^)運算規(guī)則兩個運算元進行異或:

若對應(yīng)位相同,則結(jié)果該位為0,

若對應(yīng)位不同,則結(jié)果該位為1,舉例:計算071^052071: 00111001052:(^)00101010071^052: 00010011基本數(shù)據(jù)類型和運算式31位運算——按位異或(^)用途:使特定位翻轉(zhuǎn)(與0異或保持原值,與1異或取反)例如:要使01111010

低四位翻轉(zhuǎn):

01111010(^) 00001111 01110101基本數(shù)據(jù)類型和運算式32位運算——取反(~)單目運算符,對一個二進位數(shù)按位取反。例:025:0000000000010101~025:1111111111101010基本數(shù)據(jù)類型和運算式33位運算——移位左移運算(<<)左移後,低位補0,高位捨棄。右移運算(>>)右移後,低位:捨棄高位:無符號數(shù):補0

有符號數(shù):補“符號位”基本數(shù)據(jù)類型和運算式34運算符優(yōu)先順序++,--,sizeof*,/,%+,-==,!=位運算&&||?:賦值運算逗號運算低高基本數(shù)據(jù)類型和運算式35混合運算時數(shù)據(jù)類型的轉(zhuǎn)換

——隱含轉(zhuǎn)換一些二元運算符(算術(shù)運算符、關(guān)係運算符、邏輯運算符、位運算符和賦值運算符)要求兩個運算元的類型一致。在算術(shù)運算和關(guān)係運算中如果參與運算的運算元類型不一致,編譯系統(tǒng)會自動對數(shù)據(jù)進行轉(zhuǎn)換(即隱含轉(zhuǎn)換),基本原則是將低類型數(shù)據(jù)轉(zhuǎn)換為高類型數(shù)據(jù)。

char,short,int,unsigned,long,unsignedlong,float,double

低高基本數(shù)據(jù)類型和運算式36混合運算時數(shù)據(jù)類型的轉(zhuǎn)換

——隱含轉(zhuǎn)換當(dāng)參與運算的運算元必須是bool型時,如果運算元是其他類型,編譯系統(tǒng)會自動將非0數(shù)據(jù)轉(zhuǎn)換為true,0轉(zhuǎn)換為false。位運算的運算元必須是整數(shù),當(dāng)二元位運算的運算元是不同類型的整數(shù)時,也會自動進行類型轉(zhuǎn)換,賦值運算要求左值與右值的類型相同,若類型不同,編譯系統(tǒng)會自動將右值轉(zhuǎn)換為左值的類型。基本數(shù)據(jù)類型和運算式37混合運算時數(shù)據(jù)類型的轉(zhuǎn)換

——強制類型轉(zhuǎn)換語法形式:類型說明符(運算式)或(類型說明符)運算式強制類型轉(zhuǎn)換的作用是將運算式的結(jié)果類型轉(zhuǎn)換為類型說明符所指定的類型。基本數(shù)據(jù)類型和運算式38語句聲明語句運算式語句選擇語句迴圈語句跳轉(zhuǎn)語句複合語句標(biāo)號語句

39運算式語句格式:運算式;運算式語句與運算式的區(qū)別:運算式可以包含在其他運算式中,而語句不可。例如:if((a=b)>0)t=a;不可寫為:if((a=b;)>0)t=a;語句40複合語句將多個語句用一對大括弧包圍,便構(gòu)成一個複合語句例如{ sum=sum+i; i++;} 語句41簡單的輸入、輸出向標(biāo)準(zhǔn)輸出設(shè)備(顯示器)輸出例:intx;cout<<"x="<<x;從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)輸入例:intx;cin>>x;42順序結(jié)構(gòu)分支結(jié)構(gòu)迴圈結(jié)構(gòu)演算法的基本控制結(jié)構(gòu)43如何解決分支問題?例2-2輸入一個年份,判斷是否閏年。演算法的基本控制結(jié)構(gòu)#include<iostream>usingnamespacestd;intmain(){ intyear;boolIsLeapYear;cout<<"Entertheyear:";cin>>year; IsLeapYear=((year%4==0&&

year%100!=0)||(year%400==0));

if(IsLeapYear)

cout<<year<<"isaleapyear"<<endl;

else

cout<<year<<"isnotaleapyear"<<endl;}44運行結(jié)果:Entertheyear:20002000isaleapyear4546if(運算式)語句例:if(x>y)cout<<x;if(運算式)語句1else語句2例:if(x>y)cout<<x;elsecout<<y;if(運算式1)語句1

elseif(表達(dá)式2)語句2

elseif(表達(dá)式3)語句3

else語句nif語句

——三種形式演算法的基本控制結(jié)構(gòu)47如何解決多分問題?例2-3輸入兩個整數(shù),比較兩個數(shù)的大小。演算法的基本控制結(jié)構(gòu)#include<iostream>usingnamespacestd;intmain(){intx,y;cout<<"Enterxandy:";cin>>x>>y;if(x!=y)if(x>y)cout<<"x>y"<<endl;elsecout<<"x<y"<<endl;elsecout<<"x=y"<<endl;}48運行結(jié)果1:Enterxandy:58x<y運行結(jié)果2:Enterxandy:88x=y運行結(jié)果3:Enterxandy:128x>y4950一般形式if()if()語句1else語句2elseif()語句3else語句4注意語句1、2、3、4可以是複合語句,每層的if與else配對,或用{}來確定層次關(guān)係。if語句

——嵌套演算法的基本控制結(jié)構(gòu)51特殊的多分支結(jié)構(gòu)例2-4輸入一個0~6的整數(shù),轉(zhuǎn)換成星期輸出。演算法的基本控制結(jié)構(gòu)#include<iostream>usingnamespacestd;intmain(){ intday; cin>>day; switch(day)

{

case0:

cout<<"Sunday"<<endl;

break;

case1:

cout<<"Monday"<<endl;

break;

case2:

cout<<"Tuesday"<<endl;

break;

case3:cout<<"Wednesday"<<endl;

break;

case4:

cout<<"Thursday"<<endl;

break;

case5:

cout<<"Friday"<<endl;

break;

case6:

cout<<"Saturday"<<endl;

break;

default:

cout<<"DayoutofrangeSunday..Saturday"

<<endl;

break; }}5253一般形式switch(運算式){case常量運算式1:語句1case常量運算式2:語句2┆case常量運算式n:語句ndefault:語句n+1}switch語句執(zhí)行順序以case中的常量運算式值為入口標(biāo)號,由此開始順序執(zhí)行。因此,每個case分支最後應(yīng)該加break語句。每個常量運算式的值不能相同,次序不影響執(zhí)行結(jié)果??梢允嵌鄠€語句,但不必用{}??梢允钦?、字元型、枚舉型演算法的基本控制結(jié)構(gòu)54使用switch語句應(yīng)注意的問題case分支可包含多個語句,且不用{}。運算式、判斷值都是int型或char型。若干分支執(zhí)行內(nèi)容相同可共用一組語句。演算法的基本控制結(jié)構(gòu)55如何有效地完成重複工作例2-5求自然數(shù)1~10之和分析:本題需要用累加演算法,累加過程是一個迴圈過程,可以用while語句實現(xiàn)。演算法的基本控制結(jié)構(gòu)#include<iostream>usingnamespacestd;intmain(){inti(1),sum(0);

while(i<=10)

{sum+=i;//相當(dāng)於sum=sum+i;i++;

}cout<<"sum="<<sum

<<endl;}運行結(jié)果:sum=555657while語句形式while(運算式)語句

可以是複合語句,其中必須含有改變條件運算式值的語句。執(zhí)行順序先判斷運算式的值,若為true時,執(zhí)行語句。演算法的基本控制結(jié)構(gòu)58先執(zhí)行循環(huán)體,後判斷條件的情況例2-6

輸入一個整數(shù),將各位數(shù)字反轉(zhuǎn)後輸出。演算法的基本控制結(jié)構(gòu)#include<iostream>usingnamespacestd;intmain(){ intn,right_digit,newnum=0; cout<<"Enterthenumber:"; cin>>n;

cout<<"Thenumberinreverseorderis";

do { right_digit=n%10; cout<<right_digit; n/=10;

//相當(dāng)於n=n/10

} while(n!=0);cout<<endl;

}59運行結(jié)果:Enterthenumber:365Thenumberinreverseorderis5636061do-while語句一般形式do語句while(運算式)可以是複合語句,其中必須含有改變條件運算式值的語句。執(zhí)行順序先執(zhí)行循環(huán)體語句,後判斷條件。

運算式為true時,繼續(xù)執(zhí)行循環(huán)體與while語句的比較:While語句執(zhí)行順序

先判斷表達(dá)式的值,為true時,再執(zhí)行語句演算法的基本控制結(jié)構(gòu)對比下列程式:程式1:#include<iostream>usingnamespacestd;intmain(){inti,sum(0);cin>>i;while(i<=10){sum+=i;i++;}cout<<"sum="<<sum<<endl;}演算法的基本控制結(jié)構(gòu)程式2:#include<iostream>usingnamespacestd;intmain(){inti,sum(0);cin>>i;do{sum+=i;i++;}while(i<=10);

cout<<"sum="<<sum<<endl;}6263for語句語法形式for(運算式1;運算式2;運算式3)語句

迴圈前先求解為true時執(zhí)行循環(huán)體每次執(zhí)行完循環(huán)體後求解演算法的基本控制結(jié)構(gòu)64例2-8輸入一個整數(shù),求出它的所有因數(shù)。演算法的基本控制結(jié)構(gòu)#include<iostream>usingnamespacestd;intmain(){ intn,k; cout<<"Enterapositiveinteger:"; cin>>n; cout<<"Number"<<n<<"Factors"; for(k=1;k<=n;k++) if(n%k==0) cout<<k<<"";cout<<endl;}65運行結(jié)果1:Enterapositiveinteger:36Number36Factors123469121836運行結(jié)果2:Enterapositiveinteger:7Number7Factors176667例2-9編寫程式輸出以下圖案*************************演算法的基本控制結(jié)構(gòu)#include<iostream>usingnamespacestd;intmain(){inti,j,n=4;for(i=1;i<=n;i++)//輸出前4行圖案

{for(j=1;j<=30;j++)cout<<'';//在圖案左側(cè)空30列

for(j=1;j<=8-2*i;j++)cout<<'';for(j=1;j<=2*i-1;j++)cout<<'*';cout<<endl;}68for(i=1;i<=n-1;i++)//輸出後3行圖案

{for(j=1;j<=30;j++)cout<<'';//在圖案左側(cè)空30列

for(j=1;j<=7-2*i;j++)cout<<'*';cout<<endl;}}6970迴圈結(jié)構(gòu)與選擇結(jié)構(gòu)相互嵌套#include<iostream>usingnamespacestd;intmain(){ intn;

for(n=100;n<=200;n++) {if(n%3!=0) cout<<n; }}演算法的基本控制結(jié)構(gòu)71例2-10讀入一系列整數(shù),統(tǒng)計出正整數(shù)個數(shù)i和負(fù)整數(shù)個數(shù)j,讀入0則結(jié)束。分析:需要讀入一系列整數(shù),但是整數(shù)個數(shù)不定,要在每次讀入之後進行判斷,因此使用while迴圈最為合適。迴圈控制條件應(yīng)該是n!=0。由於要判斷數(shù)的正負(fù)並分別進行統(tǒng)計,所以需要在迴圈內(nèi)部嵌入選擇結(jié)構(gòu)。演算法的基本控制結(jié)構(gòu)#include<iostream>usingnamespacestd;intmain(){inti=0,j=0,n;cout<<"請輸入若干整數(shù)(輸入0則結(jié)束):";cin>>n;while(n!=0){if(n>0)i++;if(n<0)j++;cin>>n;}cout<<"正整數(shù)個數(shù):"<<i<<"負(fù)整數(shù)個數(shù):"<<j<<endl;}7273break和continue語句break語句使程式從循環(huán)體和switch語句內(nèi)跳出,繼續(xù)執(zhí)行邏輯上的下一條語句。不宜用在別處。continue語句結(jié)束本次迴圈,接著判斷是否執(zhí)行下一次迴圈。演算法的基本控制結(jié)構(gòu)74typedef語句為一個已有的數(shù)據(jù)類型另外命名語法形式typedef已有類型名新類型名表;例如typedefdoublearea,volume;typedefintnatural;naturali1,i2;areaa;volumev;自定義數(shù)據(jù)類型75枚舉類型—enum只要將需要的變數(shù)值一一列舉出來,便構(gòu)成了一個枚舉類型。枚舉類型的聲明形式如下:enum枚舉類型名{變數(shù)值列表};例如:enumweekday{sun,mon,tue,wed,thu,fri,sat};自定義數(shù)據(jù)類型76枚舉類型—enum枚舉類型應(yīng)用說明:對枚舉元素按常量處理,不能對它們賦值。例如,不能寫:sun=0;枚舉元素具有默認(rèn)值,它們依次為:0,1,2,。也可以在聲明時另行指定枚舉元素的值,如:enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};枚舉值可以進行關(guān)係運算。整數(shù)值不能直接賦給枚舉變數(shù),如需

要將整數(shù)賦值給枚舉變數(shù),應(yīng)進行強

制類型轉(zhuǎn)換。自定義數(shù)據(jù)類型77例2-11設(shè)某次體育比賽的結(jié)果有四種可能:勝(win)、負(fù)(lose)、平局(tie)、比賽取消(cancel),編寫程式順序輸出這四種情況。分析:由於比賽結(jié)果只有四種可能,所以可以聲明一個枚舉類型,聲明一個枚舉類型的變數(shù)來存放比賽結(jié)果。自定義數(shù)據(jù)類型#include<iostream>usingnamespacestd;enumgame_result{WIN,LOSE,TIE,CANCEL};intmain(){game_resultresult;enumgame_resultomit=CANCEL;intcount;for(count=WIN;count<=CANCEL;count++){result=(game_result)count;if(result==omit){cout<<"Thegamewascancelled\n";}else{cout<<"Thegamewasplayed";if(result==WIN)cout<<"andwewon!";if(result==LOSE)cout<<"andwelost.";cout<<"\n";}}return0;}78運行結(jié)果

Thegamewasplayedandwewon!Thegamewasplayedandwelost.ThegamewasplayedThegamewascancelled7980結(jié)構(gòu)體——結(jié)構(gòu)的聲明結(jié)構(gòu)的概念結(jié)構(gòu)是由不同數(shù)據(jù)類型的數(shù)據(jù)組成的集合體。聲明結(jié)構(gòu)類型

struct結(jié)構(gòu)名

{

數(shù)據(jù)類型成員名1;數(shù)據(jù)類型成員名2;:數(shù)據(jù)類型成員名n;

};自定義數(shù)據(jù)類型81結(jié)構(gòu)體——結(jié)構(gòu)的聲明舉例:structstudent//學(xué)生資訊結(jié)構(gòu)體{intnum;//學(xué)號

charname[20];//姓名

chargender;//性別

intage;//年齡

floatscore;//成績

charaddr[30];//住址}自定義數(shù)據(jù)類型82結(jié)構(gòu)體——結(jié)構(gòu)變數(shù)說明變數(shù)說明形式結(jié)構(gòu)名結(jié)構(gòu)變數(shù)名;注意:結(jié)構(gòu)變數(shù)的存儲類型概念、它的壽命、可見性及使用範(fàn)圍與普通變數(shù)完全一致。結(jié)構(gòu)變數(shù)說明在結(jié)構(gòu)類型聲明之後,二者也可同時進行。結(jié)構(gòu)變數(shù)占記憶體大小可用sizeof運算求出:

sizeof(運算量)自定義數(shù)據(jù)類型83結(jié)構(gòu)體

——結(jié)構(gòu)變數(shù)的初始化和使用初始化說明結(jié)構(gòu)變數(shù)的同時可以直接設(shè)置初值。使用結(jié)構(gòu)體成員的引用形式:

結(jié)構(gòu)變數(shù)名.成員名自定義數(shù)據(jù)類型84例2-12結(jié)構(gòu)體變數(shù)的初始化和使用#include<iostream>#include<iomanip>usingnamespacestd;structstudent//學(xué)生資訊結(jié)構(gòu)體{intnum;//學(xué)號

charname[20];//姓名

chargender;//性別

intage;//年齡}stu={97001,"LinLin",'F',19};intmain(){cout<<setw(7)<<stu.num<<setw(20)<<

<<setw(3)<<stu.sex<<setw(3)<<stu.age;}自定義數(shù)據(jù)類型運行結(jié)果:97001LinLinF1985聯(lián)合體聲明形式:union聯(lián)合名{

數(shù)據(jù)類型成員名1;數(shù)據(jù)類型成員名2;:數(shù)據(jù)類型成員名n;};聯(lián)合體類型變數(shù)說明的語法形式聯(lián)合名聯(lián)合變數(shù)名;引用形式:聯(lián)合名.成員名自定義數(shù)據(jù)類型86例:unionuarea{charc_data;shorts_data;longl_data;}uareac_datal_datas_data聯(lián)合體自定義數(shù)據(jù)類型87無名聯(lián)合無名聯(lián)合沒有標(biāo)記名,只是聲明一個成員項的集合,這些成員項具有相同的記憶體地址,可以由成員項的名字直接訪問。例:union{inti;floatf;}在程式中可以這樣使用:i=10;f=2.2;自定義數(shù)據(jù)類型88小結(jié)與復(fù)習(xí)建議主要內(nèi)容C++語言概述、基本數(shù)據(jù)類型和運算式、數(shù)據(jù)的輸入與輸出、演算法的基本控制結(jié)構(gòu)、自定義數(shù)據(jù)類型達(dá)到的目標(biāo)掌握C++語言的基本概念和基本語句,能夠編寫簡單的程式段。實驗任務(wù)實驗二第三章函數(shù)清華大學(xué)鄭莉C++語言程式設(shè)計90本章主要內(nèi)容函數(shù)的聲明和調(diào)用函數(shù)間的參數(shù)傳遞內(nèi)聯(lián)函數(shù)帶默認(rèn)形參值的函數(shù)函數(shù)重載C++系統(tǒng)函數(shù)91函數(shù)的聲明函數(shù)是面向?qū)ο蟪淌皆O(shè)計中,對功能的抽象函數(shù)聲明的語法形式類型識別字函數(shù)名(形式參數(shù)表){

語句序列}函數(shù)的聲明與使用是被初始化的內(nèi)部變數(shù),壽命和可見性僅限於函數(shù)內(nèi)部若無返回值,寫void92函數(shù)的聲明形式參數(shù)表<type1>name1,<type2>name2,...,<typen>namen函數(shù)的返回值由return語句給出,例如:

return0無返回值的函數(shù)(void類型),不必寫return語句。函數(shù)的聲明與使用93函數(shù)的調(diào)用調(diào)用前先聲明函數(shù)原型:在調(diào)用函數(shù)中,或程式檔中所有函數(shù)之外,按如下形式說明:

類型識別字被調(diào)用函數(shù)名(含類型說明的形參表);調(diào)用形式

函數(shù)名(實參列表)嵌套調(diào)用函數(shù)可以嵌套調(diào)用,但不允許嵌套定義。遞歸調(diào)用函數(shù)直接或間接調(diào)用自身。函數(shù)的聲明與使用94例3-1編寫一個求x的n次方的函數(shù)#include<iostream>usingnamespacestd;double

power(doublex,intn);intmain(){ cout<<"5tothepower2is"

<<power(5,2)<<endl;}double

power(doublex,intn){ doubleval=1.0; while(n--)

val=val*x; return(val);}函數(shù)的聲明與使用95運行結(jié)果:5

tothepower2is25例3-1編寫一個求x的n次方的函數(shù)函數(shù)的聲明與使用96例3-2數(shù)制轉(zhuǎn)換題目:輸入一個8位二進位數(shù),將其轉(zhuǎn)換為十進位數(shù)輸出。例如:11012=1(23)+1(22)+0(21)+1(20)=1310所以,如果輸入1101,則應(yīng)輸出13函數(shù)的聲明與使用#include<iostream>usingnamespacestd;doublepower(doublex,intn);intmain(){ inti; intvalue=0; charch; cout<<"Enteran8bitbinarynumber"; for(i=7;i>=0;i--) { cin>>ch; if(ch=='1') value+=int(power(2,i)); } cout<<"Decimalvalueis"<<value<<endl;}doublepower(doublex,intn){ doubleval=1.0; while(n--)

val*=x; return(val);}運行結(jié)果:Enteran8bitbinarynumber01101001Decimalvalueis1059798例3-3編寫程式求π的值其中arctan用如下形式的級數(shù)計算:直到級數(shù)某項絕對值不大於10-15為止;π和x均為double型。函數(shù)的聲明與使用#include<iostream>usingnamespacestd;intmain(){doublea,b;doublearctan(doublex);//函數(shù)原型聲明

a=16.0*arctan(1/5.0);b=4.0*arctan(1/239.0);//注意:因為整數(shù)相除結(jié)果取整,

//如果參數(shù)寫1/5,1/239,結(jié)果就都是0cout<<"PI="<<a-b<<endl;}99doublearctan(doublex){inti;doubler,e,f,sqr;sqr=x*x;r=0;e=x;i=1;while(e/i>1e-15){f=e/i;r=(i%4==1)?r+f:r-f;e=e*sqr;i+=2;}returnr;}運行結(jié)果:PI=33-4尋找並輸出11~999之間的數(shù)m,它滿足m、m2和m3均為回文數(shù)?;匚模焊魑粩?shù)字左右對稱的整數(shù)。

例如:11滿足上述條件

112=121,113=1331。分析:10取餘的方法,從最低位開始,依次取出該數(shù)的各位數(shù)字。按反序重新構(gòu)成新的數(shù),比較與原數(shù)是否相等,若相等,則原數(shù)為回文。函數(shù)的聲明與使用#include<iostream>usingnamespacestd;intmain(){boolsymm(longn);longm;for(m=11;m<1000;m++)if(symm(m)&&symm(m*m)&&symm(m*m*m))cout<<"m="<<m<<"m*m="<<m*m<<"m*m*m="<<m*m*m<<endl;}102boolsymm(longn){longi,m;i=n;m=0;while(i){m=m*10+i%10;i=i/10;}return(m==n);}103運行結(jié)果:m=11m*m=121m*m*m=1331m=101m*m=10201m*m*m=1030301m=111m*m=12321m*m*m=1367631104105例3-5計算如下公式,並輸出結(jié)果:其中r、s的值由鍵盤輸入。sinx的近似值按如下公式計算,計算精度為10-6:函數(shù)的聲明與使用#include<iostream>#include<cmath>usingnamespacestd;intmain(){doublek,r,s;doubletsin(doublex);cout<<"r=";cin>>r;cout<<"s=";cin>>s;if(r*r<=s*s)k=sqrt(tsin(r)*tsin(r)+tsin(s)*tsin(s));elsek=tsin(r*s)/2;cout<<k<<endl;}106doubletsin(doublex){doublep=0.000001,g=0,t=x;intn=1;do{g=g+t;n++;t=-t*x*x/(2*n-1)/(2*n-2);}while(fabs(t)>=p);returng;}運行結(jié)果:r=5s=81.37781107108例3-6投骰子的隨機遊戲每個骰子有六面,點數(shù)分別為1、2、3、4、5、6。遊戲者在程式開始時輸入一個無符號整數(shù),作為產(chǎn)生亂數(shù)的種子。每輪投兩次骰子,第一輪如果和數(shù)為7或11則為勝,遊戲結(jié)束;和數(shù)為2、3或12則為負(fù),遊戲結(jié)束;和數(shù)為其他值則將此值作為自己的點數(shù),繼續(xù)第二輪、第三輪...直到某輪的和數(shù)等於點數(shù)則取勝,若在此前出現(xiàn)和數(shù)為7則為負(fù)。由rolldice函數(shù)負(fù)責(zé)模擬投骰子、計算和數(shù)並輸出和數(shù)。函數(shù)的聲明與使用#include<iostream>#include<cstdlib>usingnamespacestd;introlldice(void);intmain(){intgamestatus,sum,mypoint;unsignedseed;cout<<"Pleaseenteranunsignedinteger:";cin>>seed;//輸入亂數(shù)種子

srand(seed);//將種子傳遞給rand()sum=rolldice();//第一輪投骰子、計算和數(shù)109switch(sum){case7://如果和數(shù)為7或11則為勝,狀態(tài)為1case11:gamestatus=1;break;case2://和數(shù)為2、3或12則為負(fù),狀態(tài)為2case3:case12:gamestatus=2;break;default://其他情況,遊戲尚無結(jié)果,狀態(tài)為0,記下點數(shù),為下一輪做準(zhǔn)備

gamestatus=0;mypoint=sum;cout<<"pointis"<<mypoint<<endl;break;}110while(gamestatus==0)//只要狀態(tài)仍為0,就繼續(xù)進行下一輪

{sum=rolldice();if(sum==mypoint)//某輪的和數(shù)等於點數(shù)則取勝,狀態(tài)置為1gamestatus=1elseif(sum==7)//出現(xiàn)和數(shù)為7則為負(fù),狀態(tài)置為2gamestatus=2;}//當(dāng)狀態(tài)不為0時上面的迴圈結(jié)束,以下程式段輸出遊戲結(jié)果

if(gamestatus==1)cout<<"playerwins\n";elsecout<<"playerloses\n";}111rand函數(shù)原型:intrand(void);所需頭檔:<cstdlib>功能和返回值:求出並返回一個偽亂數(shù)srand函數(shù)原型:voidsrand(unsignedintseed);參數(shù):seed產(chǎn)生亂數(shù)的種子。所需頭檔:<cstdlib>功能:為使rand()產(chǎn)生一序列偽隨機整數(shù)而設(shè)置起始點。使用1作為seed參數(shù),可以重新初化rand()。112introlldice(void){//投骰子、計算和數(shù)、輸出和數(shù)

intdie1,die2,worksum;die1=1+rand()%6;die2=1+rand()%6;worksum=die1+die2;cout<<"playerrolled"<<die1<<'+'<<die2<<'='<<worksum<<endl;returnworksum;}113運行結(jié)果2:Pleaseenteranunsignedinteger:23playerrolled6+3=9pointis9playerrolled5+4=9playerwins114115函數(shù)調(diào)用的執(zhí)行過程函數(shù)的聲明與使用main()調(diào)fun()結(jié)束fun()返回①②④⑥⑦保存:返回地址當(dāng)前現(xiàn)場③恢復(fù):主調(diào)程式現(xiàn)場返回地址⑤116嵌套調(diào)用函數(shù)的聲明與使用main{}調(diào)fun1()結(jié)束fun1()調(diào)fun2()返回fun2()返回①②③⑦④⑤⑥⑧⑨117例3-6輸入兩個整數(shù),求平方和。#include<iostream>usingnamespacestd;intmain(){inta,b;intfun1(intx,inty);cin>>a>>b;cout<<"a、b的平方和:"

<<fun1(a,b)<<endl;}函數(shù)的聲明與使用intfun1(intx,inty){intfun2(intm);return(fun2(x)+fun2(y));}intfun2(intm){return(m*m);}運行結(jié)果:34a、b的平方和:25118119遞歸調(diào)用函數(shù)直接或間接地調(diào)用自身,稱為遞歸調(diào)用。遞歸過程的兩個階段:遞推:

4!=4×3!→3!=3×2!→2!=2×1!→1!=1×0!→0!=1未知已知回歸:4!=4×3!=24←3!=3×2!=6←2!=2×1!=2←1!=1×0!=1←0!=1未知已知函數(shù)的聲明與使用120例3-8求n!分析:計算n!的公式如下:這是一個遞歸形式的公式,應(yīng)該用遞歸函數(shù)實現(xiàn)。函數(shù)的聲明與使用根源程式:#include<iostream>usingnamespacestd;longfac(intn){longf;if(n<0)cout<<"n<0,dataerror!"<<endl;

elseif(n==0)f=1;elsef=fac(n-1)*n;return(f);}121intmain(){longfac(intn);intn;longy;cout<<"Enterapositiveinteger:";cin>>n;y=fac(n);cout<<n<<"!="<<y<<endl;}運行結(jié)果:Enterapositiveinteger:88!=40320122123例3-9用遞歸法計算從n個人中選擇k個人組成一個委員會的不同組合數(shù)。分析:由n個人裏選k個人的組合數(shù)

=由n-1個人裏選k個人的組合數(shù)

+由n-1個人裏選k-1個人的組合數(shù)當(dāng)n==k或k==0時,組合數(shù)為1函數(shù)的聲明與使用#include<iostream>usingnamespacestd;intmain(){intn,k;intcomm(intn,intk);cin>>n>>k;cout<<comm(n,k)<<endl;}intcomm(intn,intk){if(k>n)return0;elseif(n==k||k==0)return1;elsereturncomm(n-1,k)+comm(n-1,k-1);}運行結(jié)果:1858568124125例3-10漢諾塔問題有三根針A、B、C。A針上有N個盤子,大的在下,小的在上,要求把這N個盤子從A針移到C針,在移動過程中可以借助B針,每次只允許移動一個盤,且在移動過程中在三根針上都保持大盤在下,小盤在上。函數(shù)的聲明與使用ABC分析:將n個盤子從A針移到C針可以分解為下麵三個步驟:①將A上n-1個盤子移到B針上(借助C針);②把A針上剩下的一個盤子移到C針上;③將n-1個盤子從B針移到C針上(借助A針);事實上,上面三個步驟包含兩種操作:①將多個盤子從一個針移到另一個針上,這是一個遞歸的過程。hanoi函數(shù)實現(xiàn)。②將1個盤子從一個針上移到另一針上。

用move函數(shù)實現(xiàn)。126#include<iostream>usingnamespacestd;voidmove(chargetone,charputone){cout<<getone<<"-->"<<putone<<endl;}voidhanoi(intn,charone,chartwo,charthree){ voidmove(chargetone,charputone); if(n==1)move(one,three); else {hanoi(n-1,one,three,two); move(one,three); hanoi(n-1,two,one,three); }}127intmain(){ voidhanoi(intn,charone,chartwo,charthree); intm; cout<<"Enterthenumberofdiskes:"; cin>>m; cout<<"thestepstomoving"<<m<<"diskes:"<<endl; hanoi(m,'A','B','C');}128運行結(jié)果:Enterthenumberofdiskes:3thestepstomoving3diskes:A-->CA-->BC-->BA-->CB-->AB-->CA-->C129130函數(shù)的參數(shù)傳遞機制

——傳遞參數(shù)值在函數(shù)被調(diào)用時才分配形參的存儲單元。實參可以是常量、變數(shù)或運算式。實參類型必須與形參相符。傳遞時是傳遞參數(shù)值,即單向傳遞。函數(shù)的聲明與使用131函數(shù)的參數(shù)傳遞機制

——參數(shù)值傳遞舉例XN被調(diào)函數(shù):主調(diào)函數(shù):32.5AD=power(A,3)2.53doublepower(doubleX,intN)函數(shù)的聲明與使用132例3-11輸入兩個整數(shù)交換後輸出#include<iostream>usingnamespacestd;voidSwap(inta,intb);intmain(){ intx(5),y(10); cout<<"x="<<x<<"y="<<y<<endl;

Swap(x,y); cout<<"x="<<x<<"y="<<y<<endl; return0;}函數(shù)的聲明與使用voidSwap(inta,intb){ intt; t=a; a=b; b=t;}運行結(jié)果: x=5y=10 x=5y=10133a=b;5x10y5a10b執(zhí)行主函數(shù)中的函數(shù)調(diào)用Swap(x,y);t=a;5x10y5a10b5tb=t;5x10y10a5b5t5x10y10a10b5t在Swap子函數(shù)中返回主函數(shù)以後5x10y134134135函數(shù)的參數(shù)傳遞

——用引用做形參引用(&)是識別字的別名,例如:inti,j;

int&ri=i;

//建立一個int型的引用ri,並將其

//初始化為變數(shù)i的一個別名

j=10;

ri=j;//相當(dāng)于i=j;聲明一個引用時,必須同時對它進行初始化,使它指向一個已存在的對象。一旦一個引用被初始化後,就不能改為指向其他對象。引用可以作為形參

voidswap(int&a,int&b){...}函數(shù)的聲明與使用136例3-12輸入兩個整數(shù)交換後輸出#include<iostream>usingnamespacestd;voidSwap(int&a,int&b);intmain(){ intx(5),y(10); cout<<"x="<<x<<"y="<<y<<endl;

Swap(x,y); cout<<"x="<<x<<"y="<<y<<endl; return0;}voidSwap(int&a,int&b){ intt; t=a; a=b; b=t;}函數(shù)的聲明與使用運行結(jié)果:x=5y=10x=10y=5t=a;x5t5x的別名axy510y的別名x的別名aby的別名x的別名abx10y10a=bb=t;y5t5y的地址bxy105Swap(x,y);137138內(nèi)聯(lián)函數(shù)聲明與使用聲明時使用關(guān)鍵字inline。編譯時在調(diào)用處用函數(shù)體進行替換,節(jié)省了參數(shù)傳遞、控制轉(zhuǎn)移等開銷。注意:內(nèi)聯(lián)函數(shù)體內(nèi)不能有迴圈語句和switch語句。內(nèi)聯(lián)函數(shù)的定義必須出現(xiàn)在內(nèi)聯(lián)函數(shù)第一次被調(diào)用之前。對內(nèi)聯(lián)函數(shù)不能進行異常介面聲明。內(nèi)聯(lián)函數(shù)139例3-14內(nèi)聯(lián)函數(shù)應(yīng)用舉例#include<iostream>usingnamespacestd;inlinedoubleCalArea(doubleradius){ return3.14*radius*radius;}intmain(){ doubler(3.0); doublearea; area=CalArea(r); cout<<area<<endl; return0;}內(nèi)聯(lián)函數(shù)140默認(rèn)形參值的作用函數(shù)在聲明時可以預(yù)先給出默認(rèn)的形參值,調(diào)用時如給出實參,則採用實參值,否則採用預(yù)先給出的默認(rèn)形參值。例如:intadd(intx=5,inty=6){returnx+y;}intmain(){add(10,20);//10+20add(10);//10+6add();//5+6}帶默認(rèn)形參值的函數(shù)141默認(rèn)形參值的說明次序默認(rèn)形參值必須從右向左順序聲明,並且在默認(rèn)形參值的右面不能有非默認(rèn)形參值的參數(shù)。因為調(diào)用時實參取代形參是從左向右的順序。例:intadd(intx,inty=5,intz=6);//正確intadd(intx=1,inty=5,intz);//錯誤intadd(intx=1,inty,intz=6);//錯誤帶默認(rèn)形參值的函數(shù)142默認(rèn)形參值與函數(shù)的調(diào)用位置調(diào)用出現(xiàn)在函數(shù)體實現(xiàn)之前時,默認(rèn)形參值必須在函數(shù)原形中給出;而當(dāng)調(diào)用出現(xiàn)在函數(shù)體實現(xiàn)之後時,默認(rèn)形參值需在函數(shù)實現(xiàn)時給出。例:intadd(intx=5,inty=6);intmain(){add();

//調(diào)用在實現(xiàn)前}intadd(intx,inty){returnx+y;}intadd(intx=5,inty=6){returnx+y;}intmain(){add();

//調(diào)用在實現(xiàn)後}帶默認(rèn)形參值的函數(shù)143默認(rèn)形參值的作用域在相同的作用域內(nèi),默認(rèn)形參值的說明應(yīng)保持惟一,但如果在不同的作用域內(nèi),允許說明不同的默認(rèn)形參。例:intadd(intx=1,inty=2);intmain(){intadd(intx=3,inty=4);add();//使用局部默認(rèn)形參值(實現(xiàn)3+4)}voidfun(){...

add();//使用全局默認(rèn)形參值(實現(xiàn)1+2)}帶默認(rèn)形參值的函數(shù)144重載函數(shù)的聲明C++允許功能相近的函數(shù)在相同的作用域內(nèi)以相同函數(shù)名聲明,從而形成重載。方便使用,便於記憶。例:形參類型不同intadd(intx,inty);floatadd(floatx,floaty);形參個數(shù)不同intadd(intx,inty);intadd(intx,inty,intz);

函數(shù)重載145注意事項不要將不同功能的函數(shù)聲明為重載函數(shù),以免出現(xiàn)調(diào)用結(jié)果的誤解、混淆。這樣不好:intadd(intx,inty);intadd(inta,intb);編譯器不以形參名來區(qū)分intadd(intx,inty);voidadd(intx,inty);編譯器不以返回值來區(qū)分intadd(intx,inty){returnx+y;}floatadd(floatx,floaty){returnx-y;}

函數(shù)重載重載函數(shù)的形參必須不同:個數(shù)不同或類型不同。編譯程序?qū)⒏鶕?jù)實參和形參的類型及個數(shù)的最佳匹配來選擇調(diào)用哪一個函數(shù)。146例3-16重載函數(shù)應(yīng)用舉例編寫三個名為add的重載函數(shù),分別實現(xiàn)兩整數(shù)相加、兩實數(shù)相加和兩個複數(shù)相加的功能。#include<iostream>usingnamespacestd;structcomplex{ doublereal; doubleimaginary;};

函數(shù)重載intmain(){ intm,n; doublex,y; complexc1,c2,c3; intadd(intm,intn); doubleadd(doublex,doubley); complexadd(complexc1,complexc2); cout<<"Entertwointeger:"; cin>>m>>n; cout<<"integer<<m<<'+'<<n<<"="<<add(m,n)<<endl;147 cout<<"Entertworealnumber:"; cin>>x>>y; cout<<"realnumber"<<x<<'+'<<y<<"="<<add(x,y)<<endl; cout<<"Enterthefirstcomplexnumber:"; cin>>c1.real>>c1.imaginary; cout<<"Enterthesecondcomplexnumber:"; cin>>c2.real>>c2.imaginary; c3=add(c1,c2); cout<<"complexnumber("<<c1.real<<','<<c1.imaginary<<")+("<<c2.real<<','<<c2.imag

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論