C++典型案例分析_第1頁
C++典型案例分析_第2頁
C++典型案例分析_第3頁
C++典型案例分析_第4頁
C++典型案例分析_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C++簡樸程序經(jīng)典案例【案例2-1】設計一種編寫僅包括C++程序基本構成元素的程序/*

//注釋行開始ThisisthefirstC++program.

Designedbyzrf*/

//注釋行結束#include<iostream>

//包括頭文獻usingnamespacestd;

//打開命名空間std//Thisisthemainfunction

//單行注釋語句intmain(void)

//主函數(shù),程序入口{

//塊作用域開始intage;

//申明一種變量age=20;

//賦值語句cout<<"Theageis:\n";

//輸出一種字符串cout<<age<<endl;

//輸出變量中的值return0;

//主函數(shù)返回0}

//塊作用域結束

【案例2-2】計算圓的周長和面積——C++語言中常量、變量#include<iostream>usingnamespacestd;intmain(){

constfloatPI=3.1415926;

//float型常量floatr=2.0;

//用float型常量初始化變量cout<<"r="<<r<<endl;

//輸出圓的半徑floatlength;

//float型變量申明length=2*PI*r;

//計算圓的周長cout<<"Length="<<length<<endl;

//輸出圓的周長floatarea=PI*r*r;

//計算圓的面積cout<<"Area="<<area<<endl;

//輸出圓的面積return0;}【案例2-3】整數(shù)的簡樸運算——除法、求余運算法和增量減量運算符#include<iostream>usingnamespacestd;intmain(){

intx,y;x=10;

y=3;cout<<x<<"/"<<y<<"is"<<x/y

//整數(shù)的除法操作<<"withx%yis"<<x%y<<endl;

//整數(shù)的取余操作x++;

--y;

//使用增量減量運算符cout<<x<<"/"<<y<<"is"<<x/y<<"\n"

//整數(shù)的除法操作<<x<<"%"<<y<<"is"<<x%y<<endl;

//整數(shù)的取余操作return0;}【案例2-4】多重計數(shù)器——前置和后置自增運算符#include<iostream>

usingnamespacestd;

intmain()

{

intiCount=1;

iCount=(iCount++)+(iCount++)+(iCount++);

//后置++cout<<"Thefirst

iCount="<<iCount<<endl;iCount=1;

iCount=(++iCount)+(++iCount)+(++iCount);

//前置++cout<<"ThesecondiCount="<<iCount<<endl;iCount=1;

iCount=-iCount++;

//后置++cout<<"Thethird

iCount="<<iCount<<endl;iCount=1;

iCount=-++iCount;

//前置++cout<<"Thefourth

iCount="<<iCount<<endl;return0;

}【案例2-5】對整數(shù)“10”和“20”進行位運算——位運算的應用#include<iostream>usingnamespacestd;intmain()

{

cout<<"20&10="<<(20&10)<<endl;

//按位與運算cout<<"20^10="<<(20^10)<<endl;

//按位異或運算cout<<"20|10="<<(20|10)<<endl;

//按位或運算cout<<"~20="<<(~20)<<endl;

//按位取反運算cout<<"20<<3="<<(20<<3)<<endl;

//左移位運算cout<<"-20<<3="<<(-20<<3)<<endl;

//左移位運算cout<<"20>>3="<<(20>>3)<<endl;

//右移位運算cout<<"-20>>3="<<(-20>>3)<<endl;

//右移位運算return0;}【案例2-6】實現(xiàn)邏輯“異或”運算——邏輯運算應用#include<iostream>usingnamespacestd;intmain(){

boolp,q;p=true;

q=true;cout<<p<<"XOR"<<q<<"is"<<((p||q)&&!(p&&q))<<"\n";//輸出異或成果p=false;

q=true;cout<<p<<"XOR"<<q<<"is"<<((p||q)&&!(p&&q))<<"\n";//輸出異或成果p=true;

q=false;cout<<p<<"XOR"<<q<<"is"<<((p||q)&&!(p&&q))<<"\n";//輸出異或成果p=false;

q=false;cout<<p<<"XOR"<<q<<"is"<<((p||q)&&!(p&&q))<<"\n";//輸出異或成果return0;}【案例2-7】高效篩選器——用條件運算符“?”構建條件體現(xiàn)式#include<iostream>usingnamespacestd;intmain()

{

intiNum1=1,iNum2,iMax;cout<<"Pleaseinputtwointegers:\n";

cin>>iNum1>>iNum2;iMax=iNum1>iNum2?iNum1:iNum2;

//使用條件運算符構建條件體現(xiàn)式cout<<"Themaxintegeris:"<<iMax<<endl;return0;}【案例2-8】“多計算與單提取”功能的實現(xiàn)——逗號體現(xiàn)式#include<iostream>usingnamespacestd;intmain()

{

intVal1,Val2,Val3,Left,Midd,Righ;Left=10;

Midd=20;

Righ=30;Val1=(Left++,--Midd,Righ++);

//使用逗號體現(xiàn)式Val2=(Righ++,Left++,--Midd);

//使用逗號體現(xiàn)式Val3=(--Midd,Righ++,Left++);

//使用逗號體現(xiàn)式cout<<"Val1=\t"<<Val1<<"\nVal2=\t"<<Val2<<"\nVal3=\t"<<Val3<<endl;return0;}【案例2-9】高效的算術運算符——復合賦值運算符#include<iostream>usingnamespacestd;intmain(){

intn=20;

cout<<"n="<<n<<endl;n+=8;

cout<<"Aftern+=8,n="<<n<<endl;

//使用復合的賦值運算符+=n-=6;

cout<<"Aftern-=6,n="<<n<<endl;

//使用復合的賦值運算符-=n*=1;

cout<<"Aftern*=1,n="<<n<<endl;

//使用復合的賦值運算符*=n/=4;

cout<<"Aftern/=4,n="<<n<<endl;

//使用復合的賦值運算符/=n%=3;

cout<<"Aftern%=3,n="<<n<<endl;

//使用復合的賦值運算符%=return0;}【案例2-10】計算不一樣數(shù)據(jù)類型的存儲容量——sizeof運算符#include<iostream>usingnamespacestd;intmain(){

cout<<"Thesizeofanintis:\t\t"<<sizeof(int)<<"bytes.\n";cout<<"Thesizeofashortintis:\t"<<sizeof(short)<<"bytes.\n";cout<<"Thesizeofalongintis:\t"<<sizeof(long)<<"bytes.\n";cout<<"Thesizeofacharis:\t\t"<<sizeof(char)<<"bytes.\n";cout<<"Thesizeofawchar_tis:\t"<<sizeof(wchar_t)<<"bytes.\n";cout<<"Thesizeofafloatis:\t\t"<<sizeof(float)<<"bytes.\n";cout<<"Thesizeofadoubleis:\t"<<sizeof(double)<<"bytes.\n";return0;}【案例2-11】巧妙獲取整數(shù)部分——double和int數(shù)據(jù)類型的轉換#include<iostream>usingnamespacestd;intmain(){

intnn=10,mm;doublexx=4.741,yy;cout<<"nn*xx="<<nn*xx<<endl;

//體現(xiàn)式類型轉換mm=xx;

yy=nn;

//賦值類型轉換cout<<"mm="<<mm<<endl<<"yy="<<yy<<endl;cout<<"int(xx)="<<int(xx)<<endl<<"(int)xx="<<(int)xx<<endl;

//強制類型轉換cout<<"int(1.412+xx)="<<int(1.412+xx)<<endl;

//強制類型轉換cout<<"(int)1.412+xx="<<(int)1.412+xx<<endl;

//強制類型轉換return0;}【案例2-12】將分數(shù)轉換為小數(shù)——強制類型轉換#include<iostream>usingnamespacestd;intmain(){

for(inti=1;i<=5;++i)cout<<i<<"/3is:"<<(float)i/3<<endl;

//強制類型轉換return0;}【案例2-13】安全的除法計算器#include<iostream>usingnamespacestd;intmain(){

inta,b;cout<<"Enternumerator:";

cin>>a;cout<<"Enterdenominator:";

cin>>b;if(b)cout<<"DivideResultis:"<<a/b<<'\n';

//排除除數(shù)為零的狀況elsecout<<"Dividebyzero!\n";return0;}【案例2-14】猜數(shù)游戲——嵌套的if條件語句#include<iostream>#include<cstdlib>usingnamespacestd;intmain(){

intMagNum,GueNum;

MagNum=rand();

//產(chǎn)生隨機數(shù)cout<<"EntertheGuessnumber:";

cin>>GueNum;if(GueNum==MagNum){

//if語句塊起始位置cout<<"*ItisRight*\n"<<MagNum<<"istheMagessnumber.\n";}

//if語句塊結束位置else{

//else語句塊起始位置cout<<"Sorry,you'rewrong."<<endl;if(GueNum>MagNum)

cout<<"Guessednumberistoohigh.\n";else

cout<<"Guessednumberistoolow.\n";}

//else語句塊結束位置return0;}【案例2-15】根據(jù)輸入月份輸出從年初到本月底的天數(shù)——不帶break的switch#include<iostream>usingnamespacestd;intmain(){

intyear,month,days=0;cout<<"Inputyearandmonth:";

cin>>year>>month;switch(month)

//每個case分支均沒有break語句{

case12:days+=31;case11:days+=30;case10:days+=31;case

9:days+=30;case

8:days+=31;case

7:days+=31;case

6:days+=30;case

5:days+=31;case

4:days+=30;case

3:days+=31;case

2:

//判斷與否為閏年if(year%4==0&&year%100!=0||year%400==0)

days+=29;else

days+=28;case

1:days+=31;}if(days==0)

cout<<"Wrongmonth"<<endl;else

cout<<"Totaldaysis:"<<days<<endl;return0;}【案例2-16】計算數(shù)的階乘——do-while循環(huán)語句#include<iostream>usingnamespacestd;intmain(){

longlimits;cout<<"Enterapositiveinteger:";

cin>>limits;cout<<"Factorialnumbersof"<<0<<"is"<<1<<endl;cout<<"Factorialnumbersof"<<1<<"is"<<1<<endl;longfac=1,i=1;do

//使用do-while循環(huán){

fac*=++i;

cout<<"Factorialnumbersof"<<i<<"is"<<fac<<endl;}while(fac<limits);return0;}【案例2-17】計算數(shù)的階乘——for循環(huán)#include<iostream>usingnamespacestd;intmain(){

longlimits;cout<<"Enterapositiveinteger:";

cin>>limits;cout<<"Factorialnumbersof"<<0<<"is"<<1<<endl;cout<<"Factorialnumbersof"<<1<<"is"<<1<<endl;longfac=1;for(inti=2;fac<=limits;i++)

//使用for循環(huán){

fac*=i;cout<<"Factorialnumbersof"<<i<<"is"<<fac<<endl;}return0;}【案例2-18】篩選素數(shù)——步長為2的for循環(huán)#include<iostream>#include<cstdlib>usingnamespacestd;intmain(){

longn;cout<<"Enterapositiveinteger:";

cin>>n;if(n<2)

cout<<n<<"isnotprime."<<endl;elseif(n<4)

cout<<n<<"isprime."<<endl;elseif(n%2==0)

cout<<n<<"=2*"<<n/2<<endl;else{

for(inti=3;i<=n/2;i+=2)

//步長為2if(n%i==0)

{cout<<n<<"="<<i<<"*"<<n/i<<endl;

exit(0);}cout<<n<<"isprime."<<endl;}return0;}【案例2-19】輸出1~20之間的偶數(shù)——continue語句#include<iostream>usingnamespacestd;intmain(){

cout<<"Theevennumbersareasfollows:"<<endl;for(inti=0;i<=20;i++){

if(i%2)continue;

//根據(jù)條件使用continue結束本次循環(huán)cout<<i<<'';}return0;}【案例2-20】記錄輸入整數(shù)的個數(shù)并求和——exit()函數(shù)#include<iostream>#include<cstdlib>usingnamespacestd;intmain(){

intsum=0,num=0,m;cout<<"Pleaseinputintegers(0:end):"<<endl;do{cin>>m;

num++;

sum+=m;if(m==0){cout<<"Enterednumbers:"<<num<<"integers.\n";cout<<"Thesumis:"<<sum<<endl;exit(0);

//使用exit()函數(shù)終止程序}}while(1);return0;}【案例2-21】“剪刀、石頭、布”游戲——枚舉類型#include<iostream>usingnamespacestd;enumChoice{ROCK,CLOTH,SCISS};

//申明枚舉類型ChoiceenumWinner{Play1,Play2,Tie};

//申明枚舉類型Winnerintmain(){

intn;

Choicecho1,cho2;

Winnerwinner;cout<<"Chooserock(0),cloth(1),orSciss(2):"<<endl;cout<<"PlayerNo.1:";

cin>>n;

cho1=Choice(n);cout<<"PlayerNo.2:";

cin>>n;

cho2=Choice(n);if(cho1==cho2)winner=Tie;elseif(cho1==ROCK)if(cho2==CLOTH)

winner=Play2;else

winner=Play1;elseif(cho1==CLOTH)if(cho2==SCISS)

winner=Play2;else

winner=Play1;elseif(cho2==ROCK)

winner=Play2;else

winner=Play1;if(winner==Tie)

cout<<"\tTied!\n";elseif(winner==Play1)

cout<<"\tPlayerNo.1wins."<<endl;else

cout<<"\tPlayerNo.2wins."<<endl;return0;}【案例2-22】簡樸的學生信息類型——構造體#include<iostream>#include<iomanip>usingnamespacestd;structstudent

//學生信息構造體{

intnum;charname[20];chargender;intage;}stu1={1001,"ZhangSan",'M',19};intmain(){

studentstu2={1002,"LiSi",'M',20};

//申明構造體變量并初始化studentstu3={1003,"WangHong",'F',22};

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論