華中科技大學(xué)C++課件_第1頁
華中科技大學(xué)C++課件_第2頁
華中科技大學(xué)C++課件_第3頁
華中科技大學(xué)C++課件_第4頁
華中科技大學(xué)C++課件_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心計算機與程序設(shè)計基礎(chǔ)計算機與程序設(shè)計基礎(chǔ)(C+C+)LOGO程序控制結(jié)構(gòu)n事件的執(zhí)行流程-程序控制結(jié)構(gòu)網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心順序分支循環(huán)程序控制結(jié)構(gòu)程序控制結(jié)構(gòu)網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心第三章第三章 分分支條件選擇支條件選擇流程流程LOGOi f 結(jié) 構(gòu)s w i t c h 結(jié)構(gòu)綜 合 應(yīng) 用網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心主 要 內(nèi) 容LOGO總額=400400總額=245元245總額=125總額、=、大于=大于等于=小于等于=等于!=不等于&與,雙目|或,雙目!非,單目強調(diào):強調(diào):區(qū)間范圍的判斷,如:區(qū)間范圍的判斷,如:0=x=1000=x=0 &

2、amp; x=0 & xbc 等同于等同于(ab)c,先求先求ab 的值的值,再將結(jié)果再將結(jié)果0或或1與與c比較大小比較大小Ex: (a=5, b=4,c=3) = ab為真為真(1) = 1c為為“假假(0)”int y=ab; 將將ab的值賦給的值賦給y, ab為為”真真”,y的值為的值為1; ab為為”假假”,y的值的值為為0Ex:(a=5, b=3) = ab為真為真 = y=1a+bc+d等同等同于于(a+b)(c+d),結(jié)果為結(jié)果為”假假(0)”或或”真真(1)”Ex:(a=b=c=d=4) = (a+b)(c+d),結(jié)果,結(jié)果為為“假假”條件判斷表達式的計算LOGO#in

3、clude using namespace std;int main() char ch; cout ch ; if ( ch = A & ch = Z ) ch += 32 ; cout ch v;結(jié)束v60 cout”超速!“endl; cout”正常!“velocity; if (velocity60) cout”超速!“endl; else cout”正常!“velocity; if (velocity60) cout”超速!“endl; if (velocity=60) cout”正常!“v;結(jié)束v60 cout”超速!“; coutendl; cout”正常!“; cout

4、velocity; if (velocity60) cout”超速!“;coutendl; else cout”正常!“;coutendl; 分支塊中的語句多余1條時,要加大括號括起來LOGO條件運算符“?:” n三元運算符“?:”可以用來簡化if語句表達n表達式表達式1 ? 表達式表達式2 : 表達式表達式3例如:int a=6,b=7; min=ab? a:b; /min=6LOGO#include using namespace std;int main() char ch; cout ch ; if ( ch = A & ch = Z ) ch += 32 ; cout ch

5、= A & ch = Z ) ? ch + 32 : ch ;把輸入字符轉(zhuǎn)換為小寫字母。對輸入字符進行判斷,如果是大寫字母,則轉(zhuǎn)換為小寫字母;否則,不轉(zhuǎn)換。 條件運算符“?:”LOGOn以下條件滿足以下條件滿足1條即是閏年條即是閏年Leapyear 1.(能被能被4整除整除)并且并且(不能被不能被100整除整除)2.(能被能被400整除整除)2:(能被400整除)year%400=0!(year%400)1-1:(能被4整除)year%4=0!(year%4)1-2:(不能被100整除)year%100!=0year%100例例: : 輸入一個年份,判斷是否為閏年輸入一個年份,判斷是否

6、為閏年year%4=0&year%100!=0|year%400=0)例例2.4 2.4 輸入一個年份,判斷是否為閏年輸入一個年份,判斷是否為閏年#includeusing namespace std;int main () int year; cout“輸入年份輸入年份” year ; if (year%4=0&year%100!=0|year%400=0) cout year “年時閏年年時閏年” endl ; else coutyear“年不是閏年年不是閏年”=400ca=am*0.9真真假cinam;245=amca=am*0.95真真假125=amca=am*0.97

7、真真假ca=amcout=400ca=am*0.9真真假cinam;245=amca=am*0.95真真假125=amca=am*0.97真真假ca=amcout= 400) ca=am*0.9;else if (245=am) ca=am*0.95; else if (125=am) ca=am*0.97; else ca=am;輸入輸入560560=0&x=x&x=60)cout成績合格!endl;elsecout成績不合格!endl;elsecout輸入數(shù)據(jù)錯誤=0&x=x&x=60)cout成績合格!endl;elsecout成績不合格!endl;els

8、ecout輸入數(shù)據(jù)錯誤=0&x=100)if (100=60)cout成績合格!endl;elsecout成績不合格!endl;elsecout輸入數(shù)據(jù)錯誤endl;采用采用縮進形式的程序書寫方式將縮進形式的程序書寫方式將 if-else中的語句中的語句塊對應(yīng)起來,可減少判斷錯誤塊對應(yīng)起來,可減少判斷錯誤配對關(guān)系實例:配對關(guān)系實例:/情況情況1:if(n%3=0) if(n%5=0) coutn是是15的倍數(shù)的倍數(shù)endl; else cout n是是3的倍數(shù)但不是的倍數(shù)但不是5的倍數(shù)的倍數(shù)endl;/情況情況2:if(n%3=0) if(n%5=0) coutn是是15的倍數(shù)的倍數(shù)e

9、ndl; else cout n 不是不是3的倍數(shù)的倍數(shù)LOGO3.2 switch3.2 switch結(jié)構(gòu)結(jié)構(gòu)switch語句break的應(yīng)用網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心LOGOswitch ( 表達式表達式 ) case 常量常量 1 : 語句塊語句塊1 ; case 常量常量 2 : 語句塊語句塊1 ; . case 常量常量 n : 語句塊語句塊n ; default : 語句語句 塊塊n+1; 表達式表達式值值類型類型為為非浮點型非浮點型整型,布爾型,字符型整型,布爾型,字符型,defaultdefault子句可選子句可選。缺省時,沒有匹配值缺省時,沒有匹配值switch switc

10、h 語句為空語句為空switchswitch根據(jù)表達式的值決定程序分支根據(jù)表達式的值決定程序分支LOGOncase 和和 default 僅起語句標號作用,不能控制程序流程僅起語句標號作用,不能控制程序流程n一旦選中一個一旦選中一個case分支后,將繼續(xù)分支后,將繼續(xù)往下往下順序執(zhí)行順序執(zhí)行語句序列語句序列=常量常量1=常量常量2=常量常量3=常量常量n-1=常量常量nswitch語句執(zhí)行流程語句執(zhí)行流程LOGO=常量常量1=常量常量2=常量常量nn添加 break 語句可以跳出 switch 語句體,達到控制流程作用switch語句要點1.LOGO【例 】 根據(jù)百分制考試成績打印等級int

11、main () double score ; cout Input score : score ; switch ( ) Switch難點:難點:Switch表達式表達式多值多值-單值單值 100,90:A (90,80:B (80,70:C (70,60:D (60,0:Eint(score/10)case 10 :case 9 : cout year; int i;/生肖編號 i=f(year);LOGO設(shè)計一個程序,能根據(jù)輸入的年份(設(shè)計一個程序,能根據(jù)輸入的年份(4 4位位整數(shù))輸出該整數(shù))輸出該年的生肖年的生肖( (提示:提示:19721972年為鼠年年為鼠年)例如:輸入例如:輸入1

12、9881988,輸出為,輸出為“龍龍”2022-7-436i01211輸出輸出 “ “鼠鼠”輸出輸出 “ “牛?!陛敵鲚敵?“ “豬豬”910輸出輸出 “ “狗狗”輸出輸出 “ “雞雞”.LOGO設(shè)計一個程序,能根據(jù)輸入的年份(設(shè)計一個程序,能根據(jù)輸入的年份(4 4位位整數(shù))輸出該整數(shù))輸出該年的生肖年的生肖( (提示:提示:19721972年為鼠年年為鼠年)例如:輸入例如:輸入19881988,輸出為,輸出為“龍龍”2022-7-437i01211輸出輸出 “ “鼠鼠”輸出輸出 “ “牛牛”輸出輸出 “ “豬豬”910輸出輸出 “ “狗狗”輸出輸出 “ “雞雞”. switch(i)case

13、 0: cout“鼠; break;case 1: cout“牛; break;.case 10: cout“狗”; break;case 11:cout=1972i=(year-1972)%12year=1972) i=(year-1972)%12; else i=(year-1972)%12+12;year-1972生肖/i1971-1豬/11由由year計計算生肖算生肖編編號號iLOGOSwitch 舉例 (不加break的使用)根據(jù)根據(jù)輸入的日期判斷該日期是當年的第幾天。網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心月份天數(shù)假設(shè)輸入日期2014.9.28則計算的天數(shù)S=31+.30LOGO3.3 3.3

14、 綜合綜合應(yīng)用應(yīng)用網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心計算機與程序設(shè)計基礎(chǔ)計算機與程序設(shè)計基礎(chǔ)(C+)(C+) 問題問題:運輸公司每公里每噸的基本運費為運輸公司每公里每噸的基本運費為p,p,對所運貨物實行對所運貨物實行分段計費。設(shè)運輸里程為分段計費。設(shè)運輸里程為s ,s ,則運費打折情況如下:則運費打折情況如下: s500 不打折 500=s1000 5% 1000=s2000 8% 2000=s3000 10% 3000=3000=30001000200010002000200030002000300050010005001000 =3000=3000100020010002000 02,32000

15、30002000300050010005001000 500500f=f=f+pf+p* *w w* *(s-3000)(s-3000)* *(1-0.15);(1-0.15);f=f=f+pf+p* *w w* *(s-1000)(s-1000)* *(1-0.08);(1-0.08); f=f=f+pf+p* *w w* *(s-2000)(s-2000)* *(1-0.10);(1-0.10); f=f=f+pf+p* *w w* *s s* *(1-0(1-0); ;f=f=f+pf+p* *w w* *(s-500)(s-500)* *(1-0.05)(1-0.05) ; ;0s=3

16、000;s=2000;s=1000;s=500;LOGOEX3.13EX3.13n中國有句俗語叫三天打漁兩天曬網(wǎng)。某人從2011年1月1日起開始三天打漁兩天曬網(wǎng),問這個人在以后的某一天中是打漁還是曬網(wǎng)。網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心n定義當前日期(Year, Month, Day)n計算從當前日期到2011-1-1的總天數(shù)TotaldaysnTotaldays%5n1, 2, 3:打漁“n4, 0:曬網(wǎng)LOGO網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心EX3.13EX3.13當前日期(year-month-day)起點日期(2011-1-1)year-1-1TotaldaysLOGO網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中

17、心EX3.13EX3.13當前日期(year-month-day)起點日期(2011-1-1)參考日期(2001-1-1)year-1-1Totaldaysint TotaldaysDate1;int days;LOGO網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心EX3.14EX3.14當前日期(year-month-day)起點日期(2011-1-1)參考日期(2001-1-1)year-1-1int days=0;switch(month-1)case 11:days+=30;case 10:days+=31;case 9:days+=30;case 8:days+=31;case 7:days+=31;

18、case 6:days+=30;case 5:days+=31;case 4:days+=30;case 3:days+=31;case 2:days+=28; if(year%4=0&year%100!=0|year%400=0) days+;case 1:days=days+31;case 0:break;days+=day;LOGO網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心EX3.14EX3.14當前日期(year-month-day)參考日期(2001-1-1)year-1-1daysint nYear2=year-2001;365*nYear2 + nYear2/4;days+=365*n

19、Year2 + nYear2/4;LOGO網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心EX3.14EX3.14當前日期(year-month-day)起點日期(2011-1-1)參考日期(2001-1-1)year-1-1int nYear1=2011-2001;TotaldaysDate1=365*nYear1 + nYear1/4;LOGO網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心EX3.14EX3.14當前日期(year-month-day)起點日期(2011-1-1)參考日期(2001-1-1)TotaldaysTotaldaysDate1;days;Totaldays=days-TotaldaysDate1;LO

20、GO#include #include using namespace std;int main() int year,month,day; /當前日期(當前日期(year-month-day)到參考日期)到參考日期2001-1-1間的間的天數(shù)天數(shù) int days=0; /2011-1-1到參考日期到參考日期2001-1-1間的天數(shù)間的天數(shù) int TotaldaysDate1=0; int nYear1,nYear2; /從從2011-1-1開始到當前日期(開始到當前日期(year-month-day)的天數(shù))的天數(shù) int Totaldays; 網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心LOGO/統(tǒng)計統(tǒng)計2011到到2001

溫馨提示

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

評論

0/150

提交評論