項(xiàng)目03選擇結(jié)構(gòu)程序設(shè)計(jì)_第1頁(yè)
項(xiàng)目03選擇結(jié)構(gòu)程序設(shè)計(jì)_第2頁(yè)
項(xiàng)目03選擇結(jié)構(gòu)程序設(shè)計(jì)_第3頁(yè)
項(xiàng)目03選擇結(jié)構(gòu)程序設(shè)計(jì)_第4頁(yè)
項(xiàng)目03選擇結(jié)構(gòu)程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩110頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目三選擇結(jié)構(gòu)程序設(shè)計(jì)項(xiàng)目三選擇結(jié)構(gòu)程序設(shè)計(jì)第三部分實(shí)驗(yàn)學(xué)習(xí)

3第一部分任務(wù)學(xué)習(xí)

1第二部分項(xiàng)目學(xué)習(xí)

2項(xiàng)目三選擇結(jié)構(gòu)程序設(shè)計(jì)在你的人生中,曾經(jīng)面對(duì)什么選擇?你們現(xiàn)在有沒(méi)有思考過(guò)畢業(yè)之后是工作還是繼續(xù)上學(xué)呢?學(xué)編程還是不學(xué)編程呢?當(dāng)你不知向何處走時(shí),會(huì)抬頭看看路牌,當(dāng)某個(gè)方向滿足了要求,則會(huì)向那個(gè)方向走去。在程序設(shè)計(jì)中,當(dāng)某條件成立時(shí)執(zhí)行某段程序;不成立時(shí)執(zhí)行另一段程序,此時(shí),即為選擇結(jié)構(gòu),可使用if或switch語(yǔ)句完成該功能。本章從實(shí)例分析著手,使讀者了解并掌握C語(yǔ)言選擇結(jié)構(gòu),加深對(duì)C語(yǔ)言程序開(kāi)發(fā)設(shè)計(jì)過(guò)程的感性認(rèn)識(shí),強(qiáng)化培養(yǎng)編程思路,為項(xiàng)目三選擇結(jié)構(gòu)程序設(shè)計(jì)進(jìn)一步進(jìn)行C語(yǔ)言程序設(shè)計(jì)打下基礎(chǔ)。

【學(xué)習(xí)目標(biāo)】(1)掌握關(guān)系運(yùn)算符、邏輯運(yùn)算符和條件運(yùn)算符的用法。(2)掌握選擇結(jié)構(gòu)程序設(shè)計(jì)的方法。(3)能夠畫(huà)出選擇結(jié)構(gòu)的流程圖。(4)能夠用選擇結(jié)構(gòu)程序設(shè)計(jì)解決實(shí)際問(wèn)題。第一部分任務(wù)學(xué)習(xí)

二、單分支選擇語(yǔ)句

一、雙分支選擇語(yǔ)句

三、邏輯運(yùn)算符

四、多分支選擇語(yǔ)句if…else

五、嵌套if語(yǔ)句

六、switch語(yǔ)句

七、switch語(yǔ)句中多個(gè)case語(yǔ)句相同情況

的處理

第一部分任務(wù)學(xué)習(xí)

一、雙分支選擇語(yǔ)句——體重測(cè)量?jī)x改進(jìn)版【問(wèn)題提出】在日常的生活中經(jīng)常會(huì)碰到兩種不同的情況,需要分兩支處理的問(wèn)題。例如,如果學(xué)生所有考試都及格了,就可以升級(jí),否則就要留級(jí);痞子蔡說(shuō),如果我有一雙翅膀,我就會(huì)飛過(guò)來(lái)看你,否則我就不能來(lái)看你。在C語(yǔ)言中這類問(wèn)題需要用選擇結(jié)構(gòu)中的雙分支選擇結(jié)構(gòu)if...else語(yǔ)句來(lái)完成。第一部分任務(wù)學(xué)習(xí)

【工作任務(wù)】編寫(xiě)一個(gè)體重測(cè)量?jī)x:要求從鍵盤(pán)輸入身高和體重后,能夠計(jì)算出體重指數(shù)。體重指數(shù)=體重(kg)/(身高)2;要求實(shí)現(xiàn)這樣的判斷:如果體重指數(shù)<25,屬于正常;否則屬于肥胖?!舅悸分笇?dǎo)】輸入:身高、體重。輸出:體重指數(shù)。第一部分任務(wù)學(xué)習(xí)

定義變量:floatweight,height,index。處理:體重指數(shù)=體重(kg)/(身高(米))2,即index=weight/(height*height)。判斷條件:index<25。兩執(zhí)行語(yǔ)句:如果index<25,輸出“Youareright!”。否則輸出“Youarefat!”。選擇結(jié)構(gòu)的流程圖如圖3-1所示。

第一部分任務(wù)學(xué)習(xí)

圖3-1選擇結(jié)構(gòu)流程圖第一部分任務(wù)學(xué)習(xí)

【解決方案】#include<stdio.h>voidmain(){floatweight,height,index;printf("\n請(qǐng)輸入你的體重:");scanf("%f",&weight);printf("\n請(qǐng)輸入你的身高(米):");scanf("%f",&height);index=weight/(height*height);printf("Theindexofyourweightis:%f",index);if(index<25)printf("Youareright!");elseprintf("Youarefat!");}第一部分任務(wù)學(xué)習(xí)

【運(yùn)行情況】選擇結(jié)構(gòu)程序運(yùn)行結(jié)果如圖3-2所示。【歸納分析】(1)關(guān)系運(yùn)算符和關(guān)系表達(dá)式。

圖3-2選擇結(jié)構(gòu)程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)

index<25是關(guān)系表達(dá)式,其中<(小于)是關(guān)系運(yùn)算符,關(guān)系運(yùn)算符用于測(cè)試兩個(gè)操作數(shù)或兩個(gè)表達(dá)式之間的關(guān)系,

其中操作數(shù)可以是變量、常量或表達(dá)式。C語(yǔ)言中一共提供了6中關(guān)系運(yùn)算符:>、>=、<、<=、==、!=,見(jiàn)表3-1。

表3-1關(guān)系運(yùn)算符C的關(guān)系運(yùn)算符數(shù)學(xué)中的關(guān)系符含義優(yōu)先級(jí)>>大于優(yōu)先級(jí)相同,高于==和!=>=

≥大于或等于<<小于<=≤小于或等于===等于優(yōu)先級(jí)相同,優(yōu)先級(jí)較低!=

≠不等于第一部分任務(wù)學(xué)習(xí)

關(guān)系表達(dá)式的一般形式為:表達(dá)式關(guān)系運(yùn)算符表達(dá)式。關(guān)系表達(dá)式成立,則結(jié)果為1,即為真值;否則為0,即為假值,見(jiàn)表3-2。

表3-2關(guān)系表達(dá)式

表達(dá)式(num1=10;num2=5;num3=20;num4=10;)結(jié)果(真或假、1或0)(num1+num2)>(num3–num4)真(num1+num2)>=(num3+num4)假num=40;num/10!=2;真num1=2;num1==num4;假注:在關(guān)系表達(dá)式中不要把關(guān)系運(yùn)算符“==”誤寫(xiě)成“=”?!癮=4”是賦值表達(dá)式,則不管a的原來(lái)值是多少,表達(dá)式“a=4”的結(jié)果永遠(yuǎn)為真”,因?yàn)橘x值表達(dá)式的值是左邊變量得到的值。第一部分任務(wù)學(xué)習(xí)

(2)

if...else語(yǔ)句。1)

if...else語(yǔ)句形式。if(表達(dá)式){語(yǔ)句組1}else{語(yǔ)句組2}2)執(zhí)行過(guò)程。判斷表達(dá)式的值,如果表達(dá)式值為真,則執(zhí)行花括號(hào)括起來(lái)的語(yǔ)句組1,然后繼續(xù)執(zhí)行選擇結(jié)構(gòu)下面的語(yǔ)句;如果第一部分任務(wù)學(xué)習(xí)

表達(dá)式值為假,則執(zhí)行花括號(hào)括起來(lái)的語(yǔ)句組2,然后繼續(xù)執(zhí)行選擇結(jié)構(gòu)下面的語(yǔ)句。3)注意。①無(wú)論是單分支選擇語(yǔ)句,還是雙分支選擇語(yǔ)句,如果語(yǔ)句組只有一個(gè)語(yǔ)句,可以省略{},否則花括號(hào)必須存在。因?yàn)?,在沒(méi)有花括號(hào)的情況下,C編譯系統(tǒng)能夠識(shí)別的語(yǔ)句序列只有一句。②if后面的表達(dá)式一定要有括號(hào)。③if和else同屬于一個(gè)if語(yǔ)句,else不能作為語(yǔ)句單第一部分任務(wù)學(xué)習(xí)

獨(dú)使用,它只是if語(yǔ)句的一部分,與if配對(duì)使用,因此程序中不可以沒(méi)有if而只有else。④只能執(zhí)行與if有關(guān)的語(yǔ)句或者執(zhí)行與else有關(guān)的語(yǔ)句,而不可能同時(shí)執(zhí)行兩者。⑤if語(yǔ)句的表達(dá)式可以是任意類型C語(yǔ)言的合法表達(dá)式,但計(jì)算結(jié)果必須為整型、字符型或浮點(diǎn)型之一。(4)其執(zhí)行過(guò)程如圖3-3所示。

第一部分任務(wù)學(xué)習(xí)

圖3-3if…else語(yǔ)句執(zhí)行過(guò)程第一部分任務(wù)學(xué)習(xí)

【技能訓(xùn)練】商場(chǎng)為了提高效益,規(guī)定一次性購(gòu)買物品總價(jià)超過(guò)1

000元,就會(huì)對(duì)物品總價(jià)打7折,一次性購(gòu)買物品總價(jià)低于1

000元,就會(huì)對(duì)物品總價(jià)打9折。為該商場(chǎng)設(shè)計(jì)一個(gè)收費(fèi)程序。

第一部分任務(wù)學(xué)習(xí)

程序代碼如下:#include<stdio.h>voidmain(){floatx,y;printf("輸入你所買物品總價(jià)格:");scanf("%f",&x);if(x>1000)

y=x*0.7;

else

y=x*0.9;

printf("你所要支付的價(jià)格%.1f\n",y);}第一部分任務(wù)學(xué)習(xí)

圖3-4收費(fèi)程序運(yùn)行結(jié)果程序運(yùn)行結(jié)果如圖3-4所示。

第一部分任務(wù)學(xué)習(xí)

二、單分支選擇語(yǔ)句——身高預(yù)測(cè)【問(wèn)題提出】在日常生活中還會(huì)經(jīng)常碰到單分支的情況。例如,學(xué)校舉辦C語(yǔ)言輔導(dǎo)班,期中考試成績(jī)低于60分的同學(xué)必須要參加,對(duì)其他的同學(xué)不提出任何要求。該問(wèn)題的特點(diǎn)是只有當(dāng)某條件成立時(shí)才需要處理,否則不處理。在C語(yǔ)言中,處理這種問(wèn)題時(shí)使用省略else的if語(yǔ)句。第一部分任務(wù)學(xué)習(xí)

【工作任務(wù)】

每個(gè)做父母的都關(guān)心自己孩子成人后的身高,據(jù)有關(guān)生理衛(wèi)生知識(shí)與數(shù)理統(tǒng)計(jì)分析表明,影響小孩成人后身高的因素有遺傳、飲食習(xí)慣和體育鍛煉情況等。小孩成人后的身高與其父母的身高和自身的性別密切相關(guān)。設(shè)faHeight為其父身高,moHeight為其母身高,身高預(yù)測(cè)公式為:男性成人時(shí)身高=(faHeight+moHeight)*0.54(cm)女性成人時(shí)身高=(faHeight*0.923+moHeight)/2(cm)此外,如果喜愛(ài)體育鍛煉,那么可增加身高2%;如果有第一部分任務(wù)學(xué)習(xí)

良好的衛(wèi)生飲食習(xí)慣,那么可增加身高1.5%?!舅悸分笇?dǎo)】輸入:性別(用字符型變量sex存儲(chǔ),輸入字符F表示女性,輸入字符M表示男性)、父母身高(用實(shí)型變量存儲(chǔ),faHeight為其父身高,moHeight為其母身高)、是否喜愛(ài)體育鍛煉(用字符型變量sports存儲(chǔ),輸入字符Y表示喜愛(ài),輸入字符N表示不喜愛(ài))、是否有良好的飲食習(xí)慣(用字符型變量diet存儲(chǔ),輸入字符Y表示喜愛(ài),輸入字符N表示不喜愛(ài))。輸出:身高。處理:利用給定公式和身高預(yù)測(cè)方法對(duì)身高進(jìn)行預(yù)測(cè)。

第一部分任務(wù)學(xué)習(xí)

判斷條件:性別男還是女、是否喜愛(ài)體育鍛煉、是否有良好的飲食習(xí)慣。第一部分任務(wù)學(xué)習(xí)

【解決方案】#include<stdio.h>voidmain(){charsex; /*孩子性別*/charsports; /*是否喜歡體育運(yùn)動(dòng)*/chardiet; /*是否有良好的飲食習(xí)慣*/floatmyHeight; /*孩子身高*/floatfaHeight; /*父親身高*/floatmoHeight; /*母親身高*/printf("你是男孩(M)還是女孩(F)?");scanf("%1s",&sex);printf("你輸入你爸爸的身高(cm):");

第一部分任務(wù)學(xué)習(xí)

scanf("%f",&faHeight);printf("你輸入你媽媽的身高(cm):");scanf("%f",&moHeight);printf("你是否喜歡體育鍛煉(Y/N)?");scanf("%1s",&sports);printf("是否有良好的飲食習(xí)慣等條件(Y/N)?");scanf("%1s",&diet);if(sex=='M')myHeight=(faHeight+moHeight)*0.54;elsemyHeight=(faHeight*0.923+moHeight)/2.0;if(sports=='Y')myHeight=myHeight*(1+0.02);

第一部分任務(wù)學(xué)習(xí)

if(diet=='Y')myHeight=myHeight*(1+0.015);printf("Yourfutureheightwillbe%f(cm)\n",myHeight);}第一部分任務(wù)學(xué)習(xí)

【運(yùn)行情況】身高預(yù)測(cè)程序運(yùn)行結(jié)果如圖3-5所示。圖3-5身高預(yù)測(cè)程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)

【歸納分析】(1)

if語(yǔ)句形式:if(表達(dá)式){語(yǔ)句組}(2)執(zhí)行過(guò)程:如果表達(dá)式的值為真,則執(zhí)行其后的語(yǔ)句組,否則不執(zhí)行該語(yǔ)句組。(3)其執(zhí)行過(guò)程如圖3-6所示。

第一部分任務(wù)學(xué)習(xí)

圖3-6單分支選擇語(yǔ)句執(zhí)行過(guò)程第一部分任務(wù)學(xué)習(xí)

【技能訓(xùn)練】在奧運(yùn)會(huì)體操?zèng)Q賽中最后有3個(gè)優(yōu)勝者,現(xiàn)在編程把這3個(gè)優(yōu)勝者的成績(jī)由低到高進(jìn)行排序。

第一部分任務(wù)學(xué)習(xí)

程序代碼如下:#include<stdio.h>voidmain(){floata,b,c;floatt;printf("請(qǐng)輸入三個(gè)運(yùn)動(dòng)員的成績(jī)");scanf("%f%f%f",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("\n分?jǐn)?shù)由低到高分別是:%5.2f,%5.2f,%5.2f\n",a,b,c);}第一部分任務(wù)學(xué)習(xí)

圖3-7成績(jī)排序程序運(yùn)行結(jié)果程序運(yùn)行結(jié)果如圖3-7所示。

第一部分任務(wù)學(xué)習(xí)

三、邏輯運(yùn)算符——電梯控制程序【問(wèn)題提出】在處理問(wèn)題的時(shí)候經(jīng)常需要同時(shí)判斷多個(gè)條件。例如,警察在檔案庫(kù)中搜索符合條件(如身高1.80m以上,年齡45歲以下的男性)的犯人檔案時(shí),需要使用邏輯運(yùn)算符。第一部分任務(wù)學(xué)習(xí)

【工作任務(wù)】電梯廠商為了提高電梯的利用率,需要一個(gè)控制程序,實(shí)現(xiàn)如下功能:輸入樓層數(shù),如果樓層是1~5,顯示提示“請(qǐng)走樓梯!”;如果樓層是6~15,顯示提示“請(qǐng)進(jìn)電梯!”;如果輸入的是1~15之外的數(shù)據(jù),顯示提示“本樓只有1~15層,輸入數(shù)據(jù)錯(cuò)誤,請(qǐng)重新輸入!”。第一部分任務(wù)學(xué)習(xí)

【思路指導(dǎo)】(1)輸入樓層數(shù)x。(2)

if(x)在1~15之外,顯示提示“本樓只有1—15層,輸入數(shù)據(jù)錯(cuò)誤,請(qǐng)重新輸入!”;if(x)在1~5之間,顯示提示“請(qǐng)走樓梯!”;if(x)在6~15之間,顯示提示“請(qǐng)進(jìn)電梯!”。第一部分任務(wù)學(xué)習(xí)

【解決方案】#include<stdio.h>voidmain(){intx;

printf("請(qǐng)輸入你所到的樓層數(shù)");scanf("%d",&x);if(x<1&&x>15)printf("本樓只有1~15層,輸入數(shù)據(jù)錯(cuò)誤,請(qǐng)重新輸入!\n");if(x>=1&&x<=5)printf("請(qǐng)走樓梯!\n");if(x>=6&&x<=15)printf("請(qǐng)進(jìn)電梯!\n");}

第一部分任務(wù)學(xué)習(xí)

【運(yùn)行情況】電梯控制程序運(yùn)行結(jié)果如圖3-8所示。圖3-8電梯控制程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)

【歸納分析】(1)邏輯運(yùn)算符用于連接一個(gè)或多個(gè)條件,判斷這些條件是否成立,C語(yǔ)言中提供了3種邏輯運(yùn)算符。與運(yùn)算符“&&”和或運(yùn)算符“||”均為雙目運(yùn)算符,具有左結(jié)合性。非運(yùn)算符“!”為單目運(yùn)算符,具有右結(jié)合性。邏輯運(yùn)算符的優(yōu)先級(jí)見(jiàn)表3-3。第一部分任務(wù)學(xué)習(xí)

(2)各種運(yùn)算符的結(jié)合性見(jiàn)表3-4。(3)邏輯運(yùn)算的值。邏輯運(yùn)算的值為“真”和“假”兩種,用“1”和“0”來(lái)表示。表3-3邏輯運(yùn)算符優(yōu)先級(jí)邏輯運(yùn)算符含義優(yōu)先級(jí)結(jié)合性!邏輯非高自右至左&&邏輯與中自左至右||邏輯或低自左至右第一部分任務(wù)學(xué)習(xí)

表3-4運(yùn)算符的結(jié)合性

高運(yùn)算符描述結(jié)合性優(yōu)先級(jí)()圓括號(hào)自左向右低++、--、!自增、自減、邏輯非自右至左*、/、%乘法、除法、取余自左向右+、-加法、減法自左向右>、>=、<、<=大于、大于等于、小于、小于等于自左向右!=、==不等于、等于自左向右&&邏輯與自左向右||邏輯或自左向右=、+=、-=、/=、%=賦值運(yùn)算符,復(fù)合賦值運(yùn)算符自右至左,逗號(hào)運(yùn)算符自左向右第一部分任務(wù)學(xué)習(xí)

1)與運(yùn)算“&&”。參與運(yùn)算的兩個(gè)量都為真時(shí),結(jié)果才為真,否則為假。二級(jí)C語(yǔ)言考試的時(shí)候,只有筆試和機(jī)試都考過(guò)去的時(shí)候,你的這次考試才算成功,可以用一個(gè)表格來(lái)表示這之間的關(guān)系,見(jiàn)表3-5。

表3-5二級(jí)C過(guò)關(guān)情況筆試機(jī)試二級(jí)C過(guò)關(guān)情況表達(dá)式1與表達(dá)式2結(jié)果不及格不及格失敗0&&00不及格及格失敗0&&10及格不及格失敗1&&00及格及格成功1&&11第一部分任務(wù)學(xué)習(xí)

2)或運(yùn)算“||”。參與運(yùn)算的兩個(gè)量只要有一個(gè)為真,結(jié)果就為真;兩個(gè)量都為假時(shí),結(jié)果為假。現(xiàn)在買東西支付的方式有很多種,你只要用任何一種方式支付就可以,可以用一個(gè)表格來(lái)表示這之間的關(guān)系,見(jiàn)表3-6。

表3-6支付情況錢信用卡支付情況表達(dá)式1或表達(dá)式2結(jié)果沒(méi)有沒(méi)有失敗0||00有沒(méi)有成功1||01沒(méi)有有成功0||11有有成功1||11第一部分任務(wù)學(xué)習(xí)

3)非運(yùn)算“!”。參與運(yùn)算量為真時(shí),結(jié)果為假;參與運(yùn)算量為假時(shí),結(jié)果為真。(4)邏輯表達(dá)式。1)邏輯表達(dá)式是用邏輯運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái)的式子。2)邏輯表達(dá)式也只有兩個(gè)值,分別是0和1。邏輯表達(dá)式結(jié)果非0,非0為真,真為1;邏輯表達(dá)式結(jié)果為0,0為假,假為0。閱讀下面這個(gè)程序,分析程序結(jié)果。第一部分任務(wù)學(xué)習(xí)

#include<stdio.h>voidmain(){inta=-5,i,j,k,l,m;floatb=0.01;i=!a;j=a&&b;k=a||b;l=(5>3&&2||8<4-!0);m='a'<'b'&&'5'>'9';printf("i=%d,j=%d,k=%d,l=%d,m=%d\n",i,j,k,l,m);}運(yùn)行結(jié)果:i=0,j=1,k=1,l=1,m=0

第一部分任務(wù)學(xué)習(xí)

3)短路特性。邏輯表達(dá)式求解時(shí),并非所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí),才執(zhí)行該運(yùn)算符。①邏輯與運(yùn)算符“&&”。如邏輯表達(dá)式a&&b&&c,執(zhí)行過(guò)程是:當(dāng)a為0時(shí),b和c不需要再判斷,邏輯與運(yùn)算符將不再執(zhí)行,結(jié)果為0,否則還要繼續(xù)后邊的運(yùn)算。②邏輯或運(yùn)算符“||”。如邏輯表達(dá)式a||b||c,執(zhí)行過(guò)程是:當(dāng)a為非0時(shí),b和第一部分任務(wù)學(xué)習(xí)

c不需要再判斷,邏輯或運(yùn)算符將不再執(zhí)行,其結(jié)果為1,否則繼續(xù)執(zhí)行后面的運(yùn)算。閱讀下面這個(gè)程序,分析程序結(jié)果。#include<stdio.h>voidmain(){inta,b=0,c=0,d=0;scanf("%d",&a);d=a&&(b=5)&&(c=3);printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);}運(yùn)行結(jié)果:第一部分任務(wù)學(xué)習(xí)

輸入:1輸出:a=1,b=5,c=3,d=1輸入:0輸出:a=0,b=0,c=0,d=04)熟練的將現(xiàn)實(shí)生活中的條件轉(zhuǎn)換為C條件表達(dá)式,是編寫(xiě)選擇程序的基礎(chǔ)。體會(huì)下列常用的C語(yǔ)言條件表達(dá)式。①關(guān)系式1≤x≤5:x>=1&&x<=5。②x是3或5的倍數(shù):x%3==0||x%5==0。③a、b同號(hào):a>0&&b>0||a<0&&b<0或者a*b>0。④a、b同時(shí)為零:a==0&&b==0,或者a*a+b*b==0。⑤x是字母:(x>='a'&&x<='z')||(x>='A'&&x<='Z')。

第一部分任務(wù)學(xué)習(xí)

⑥ch是否為小寫(xiě)英文字母:(ch>='a')&&(ch<='z')或ch>='a'&&ch<='z'。⑦ch是空格或者回車:ch==''||ch=='\n'。⑧number是偶數(shù):number%2==0。⑨year是閏年:(year%4==0&&year%100!=0)||(year%400==0)。【技能訓(xùn)練】輸入三角形三邊長(zhǎng),求三角形面積。程序代碼如下:第一部分任務(wù)學(xué)習(xí)

#include<stdio.h>#include<math.h>voidmain(){floata,b,c,l,s;printf("請(qǐng)輸入三邊長(zhǎng)a,b,c的值:");scanf("%f,%f,%f",&a,&b,&c);if(a>0&&b>0&&c>0&&a+b>c&&b+c>a&&a+c>b){l=(a+b+c)/2;s=sqrt(l*(l-a)*(l-b)*(l-c));printf("s=%.2f\n",s);}

elseprintf("你所輸入的數(shù)據(jù)有問(wèn)題!\n");}第一部分任務(wù)學(xué)習(xí)

程序運(yùn)行結(jié)果如圖3-9所示。

圖3-9求三角形面程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)

四、多分支選擇語(yǔ)句if…else——體重測(cè)量?jī)x改進(jìn)版【問(wèn)題提出】一個(gè)人站在交叉路口正在思考:這么多條路讓我選擇我到底應(yīng)該選擇哪條路呢?他通過(guò)看路牌,然后選擇了一條能夠到達(dá)自己目的地的路。例如,評(píng)分等級(jí)為A、B、C、D,如果分?jǐn)?shù)大于等于85,則為A級(jí),否則(分?jǐn)?shù)小于85)繼續(xù)判斷;如果分?jǐn)?shù)大于等于75,則為B級(jí),否則(分?jǐn)?shù)小于75)繼第一部分任務(wù)學(xué)習(xí)

續(xù)判斷;如果分?jǐn)?shù)大于等于60,則為C級(jí),否則(分?jǐn)?shù)小于60)為D級(jí)。這個(gè)問(wèn)題不是一個(gè)或者兩個(gè)的選擇,而是多分支的選擇,在C語(yǔ)言中可以選用多分支選擇語(yǔ)句if-else來(lái)解決這類問(wèn)題。第一部分任務(wù)學(xué)習(xí)

【工作任務(wù)】編寫(xiě)一個(gè)體重測(cè)量?jī)x:要求從鍵盤(pán)輸入身高和體重后,能夠計(jì)算出體重指數(shù)。體重指數(shù)=體重(kg)/(身高)2。要求實(shí)現(xiàn)如下的判斷。偏瘦:體重指數(shù)<18。

正常:18<=體重指數(shù)<25。微胖:25<=體重指數(shù)<30。較胖:30<=體重指數(shù)<35。肥胖:35<=體重指數(shù)<40。很胖:體重指數(shù)>=40。第一部分任務(wù)學(xué)習(xí)

【思路指導(dǎo)】輸入:身高、體重。輸出:體重指數(shù)。定義變量:floatweight,height,index;。

處理:體重指數(shù)=體重(kg)/(身高)2;。判斷條件:如果體重指數(shù)小于18,偏瘦否則如果體重指數(shù)小于25,標(biāo)準(zhǔn)否則如果體重指數(shù)小于30,微胖否則如果體重指數(shù)小于35,較胖否則如果體重指數(shù)小于40,肥胖否則很胖

第一部分任務(wù)學(xué)習(xí)

【解決方案】#include<stdio.h>voidmain(){floatweight,height,index;printf("\n請(qǐng)輸入你的體重:");scanf("%f",&weight);printf("\n請(qǐng)輸入你的身高(米):");scanf("%f",&height);index=weight/(height*height);printf("Theindexofyourweightis:%f",index);if(index<18)printf("偏瘦!\n");elseif(index<25)printf("標(biāo)準(zhǔn)!\n");

elseif(index<30)printf("微胖!\n");elseif(index<35)printf("較胖!\n");elseif(index<40)printf("肥胖!\n");elseprintf("很胖!\n");}

第一部分任務(wù)學(xué)習(xí)

【運(yùn)行情況】程序運(yùn)行結(jié)果如圖3-10所示。

圖3-10多分支選擇語(yǔ)句程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)

【歸納分析】(1)要處理多重條件判斷的情況,需要使用多分支選擇結(jié)構(gòu),如圖3-11所示。圖3-11多分支選擇結(jié)構(gòu)第一部分任務(wù)學(xué)習(xí)

(2)多分支if…else語(yǔ)句。1)一般形式為:if(表達(dá)式1){語(yǔ)句組1}elseif(表達(dá)式2){語(yǔ)句組2}elseif(表達(dá)式3){語(yǔ)句組3}…elseif(表達(dá)式n){語(yǔ)句組n}else{語(yǔ)句組n+1}2)執(zhí)行過(guò)程。如果表達(dá)式1為真,執(zhí)行花括號(hào)括起來(lái)的語(yǔ)句組1,然后第一部分任務(wù)學(xué)習(xí)

自動(dòng)退出多分支語(yǔ)句結(jié)構(gòu),繼續(xù)執(zhí)行選擇結(jié)構(gòu)下面的語(yǔ)句。如果表達(dá)式1為假,不執(zhí)行花括號(hào)括起來(lái)的語(yǔ)句組1,再來(lái)判斷表達(dá)式2是否為真。如果表達(dá)式2為真,執(zhí)行花括號(hào)括起來(lái)的語(yǔ)句組2,然后自動(dòng)退出多分支語(yǔ)句結(jié)構(gòu),繼續(xù)執(zhí)行選擇結(jié)構(gòu)下面的語(yǔ)句。如果表達(dá)式2為假,不執(zhí)行花括號(hào)括起來(lái)的語(yǔ)句組2,再來(lái)判斷表達(dá)式3是否為真。依此類推……如果所有的條件都不成立,則執(zhí)行最后一個(gè)else下的語(yǔ)句組n+1,然后繼續(xù)執(zhí)行選擇結(jié)構(gòu)下面的語(yǔ)句。

第一部分任務(wù)學(xué)習(xí)

3)多分支if…else語(yǔ)句的執(zhí)行過(guò)程如圖3-12所示。

圖3-12多分支if…else語(yǔ)句的執(zhí)行過(guò)程第一部分任務(wù)學(xué)習(xí)

【技能訓(xùn)練】從鍵盤(pán)輸入一個(gè)學(xué)生的分?jǐn)?shù),要求實(shí)現(xiàn)這樣的判斷功能:如果分?jǐn)?shù)大于100,輸出“Inputerror!”;如果分?jǐn)?shù)介于100到90之間,輸出“VeryGood!”;如果分?jǐn)?shù)介于80到90之間,輸出“Good!”;如果分?jǐn)?shù)介于70到80之間,輸出“Middle!”;如果分?jǐn)?shù)介于60到70之間,輸出“Pass!”;如果分?jǐn)?shù)小于60,輸出“NoPass!”。程序代碼如下:第一部分任務(wù)學(xué)習(xí)

#include<stdio.h>voidmain(){floatscore;printf("pleaseinputanumber:\n");scanf("%f",&score);if(score>100)printf("Inputerror!");elseif(score>=90)printf("verygood!");elseif(score>=80)printf("good!");elseif(score>=70)printf("middle!");elseif(score>=60)printf("pass!");elseprintf("nopass!");}第一部分任務(wù)學(xué)習(xí)

圖3-13考試通過(guò)情況判斷程序進(jìn)行結(jié)果程序運(yùn)行結(jié)果如圖3-13所示。

第一部分任務(wù)學(xué)習(xí)

五、嵌套if語(yǔ)句——求解分段函數(shù)【問(wèn)題提出】在日常生活中,經(jīng)常遇到兩個(gè)分支的問(wèn)題,也經(jīng)常遇到其中一個(gè)分支或兩分支中又包含另外分支的問(wèn)題。例如,在一個(gè)交叉路口選擇一條路線,過(guò)了該交叉口,又遇到另一個(gè)交叉路口。程序設(shè)計(jì)中也經(jīng)常會(huì)遇到同類問(wèn)題,例如,根據(jù)學(xué)生性別判斷該學(xué)生是否男生,對(duì)于男生,再判斷是否大于20歲。此類問(wèn)題需要在if語(yǔ)句中包含另一個(gè)if語(yǔ)句。第一部分任務(wù)學(xué)習(xí)

【工作任務(wù)】編寫(xiě)程序,輸入x值,求下面分段函數(shù)的值。

第一部分任務(wù)學(xué)習(xí)

【思路指導(dǎo)】在嵌套if語(yǔ)句中要注意條件的組織順序?!窘鉀Q方案】#include<stdio.h>voidmain(){floatx=0,y=0;printf("請(qǐng)輸入x的值:\n");scanf("%f",&x);if(x<0)y=0;elseif(x<5)y=2*x+4;elseif(x<10)y=x*x;

elsey=8;

printf("x=%f,y=%f\n",x,y);}第一部分任務(wù)學(xué)習(xí)

【運(yùn)行情況】嵌套if語(yǔ)句程序運(yùn)行結(jié)果如圖3-14所示。

圖3-14嵌套if語(yǔ)句程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)

【歸納分析】(1)在一個(gè)if語(yǔ)句中又包含另一個(gè)if語(yǔ)句,從而構(gòu)成了if語(yǔ)句的嵌套使用。內(nèi)嵌的if語(yǔ)句既可以嵌套在if子句中,也可以嵌套在else子句中。1)if嵌套if…else。if()if()語(yǔ)句1 /*內(nèi)層的if…else語(yǔ)句*/else語(yǔ)句22)if…else嵌套if…else。if()

第一部分任務(wù)學(xué)習(xí)

if()語(yǔ)句1 /*內(nèi)層的if…else語(yǔ)句*/else語(yǔ)句2elseif()語(yǔ)句1 /*內(nèi)層的if…else語(yǔ)句*/else語(yǔ)句23)if…else嵌套if。if()if()語(yǔ)句/*內(nèi)層的if語(yǔ)句*/elseif()語(yǔ)句/*內(nèi)層的if語(yǔ)句*/第一部分任務(wù)學(xué)習(xí)

(2)

if語(yǔ)句的嵌套形式不是刻意去追求的,而是在解決問(wèn)題過(guò)程中隨著解決問(wèn)題的需要而采用的。if與else的配對(duì)規(guī)則,if語(yǔ)句出現(xiàn)嵌套形式時(shí),C語(yǔ)言規(guī)定,else子句總是和前面最近的不帶else子句的if語(yǔ)句配對(duì),與書(shū)寫(xiě)格式無(wú)關(guān)。注意書(shū)寫(xiě)格式要有層次感(好的程序員應(yīng)該養(yǎng)成這一習(xí)慣,以便他人理解你的程序和自己將來(lái)的修改)。如果if的數(shù)目和else的數(shù)目相同,從內(nèi)層到外層一一對(duì)應(yīng),不易出錯(cuò)。如果if與else的數(shù)目不一致,為實(shí)現(xiàn)編程者的意圖,必要的時(shí)候必須加“{}”,來(lái)強(qiáng)制確定配對(duì)關(guān)系。否則,就不能實(shí)現(xiàn)編程者的真正意圖。

第一部分任務(wù)學(xué)習(xí)

(3)大家可以嘗試其他的解法來(lái)解決這一題。注意嵌套的層數(shù)不要太多,否則容易出現(xiàn)問(wèn)題?!炯寄苡?xùn)練】輸入學(xué)生平時(shí)成績(jī)和期末成績(jī),計(jì)算總評(píng)成績(jī)??傇u(píng)成績(jī)由平時(shí)成績(jī)的40%和期末成績(jī)的60%相加產(chǎn)生。如果學(xué)生在該門(mén)課的競(jìng)賽中獲獎(jiǎng),則對(duì)于平時(shí)成績(jī)高于90分的學(xué)生,平時(shí)成績(jī)按100分處理,否則附加10分;對(duì)于期末成績(jī)高于85分的學(xué)生,期末成績(jī)按100分處理,否則附加15分。第一部分任務(wù)學(xué)習(xí)

程序代碼如下:#include<stdio.h>voidmain(){floata,b;charc;doubletotal;printf("請(qǐng)輸入平時(shí)成績(jī)、期末成績(jī)和是否獲獎(jiǎng)(Y/y):");scanf("%f,%f,%c",&a,&b,&c);if(c=='Y'||c=='y'){if(a>90)a=100;

第一部分任務(wù)學(xué)習(xí)

elsea=a+10;if(b>85)b=100;elseb=b+15;}total=a*0.4+b*0.6;printf("a=%.1f,b=%.1f,total=%.1f\n",a,b,total);}

第一部分任務(wù)學(xué)習(xí)

圖3-15運(yùn)行結(jié)果程序運(yùn)行結(jié)果如圖3-15所示。

第一部分任務(wù)學(xué)習(xí)

六、switch語(yǔ)句——模擬自動(dòng)飲料機(jī)【問(wèn)題提出】在日常生活經(jīng)常會(huì)遇到命令操作。例如,乘電梯時(shí),按8則到第8層,按12則到第12層,按20則到第20層;再如,按自動(dòng)售貨機(jī)上不同的按鈕會(huì)落下相應(yīng)的商品等。在C語(yǔ)言中也經(jīng)常要處理相同情況的問(wèn)題,處理鍵盤(pán)命令操作,一般使用switch語(yǔ)句。當(dāng)處理多分支問(wèn)題時(shí),雖然使用嵌套的if語(yǔ)句也能解決,但因嵌套層次多,編程時(shí)容易出錯(cuò),所以常使用switch語(yǔ)句。第一部分任務(wù)學(xué)習(xí)

【工作任務(wù)】模擬自動(dòng)飲料機(jī),按屏幕所示功能,輸入所選擇的合法數(shù)字,輸出可獲得的相應(yīng)飲料名稱?!舅悸分笇?dǎo)】(1)如何組織屏幕顯示。(2)對(duì)各種選擇如何響應(yīng)。(3)如何選擇不在規(guī)定范圍內(nèi)怎么辦。第一部分任務(wù)學(xué)習(xí)

【解決方案】#include"stdio.h"voidmain(){intbutton;printf("==========自動(dòng)飲料機(jī)==========\n");

printf("1.可口可樂(lè)\n");printf("2.雪碧\n");printf("3.芬達(dá)\n");printf("4.百事可樂(lè)\n");printf("5.非??蓸?lè)\n");printf("請(qǐng)按1--5鍵選擇飲料:\n");scanf("%d",&button);switch(button){case1:printf("\n你獲得一聽(tīng)可口可樂(lè)\n");break;

第一部分任務(wù)學(xué)習(xí)

case2:printf("\n你獲得一聽(tīng)雪碧\n");break;case3:printf("\n你獲得一聽(tīng)芬達(dá)\n");break;case4:printf("\n你獲得一聽(tīng)百事可樂(lè)\n");break;case5:printf("\n你獲得一聽(tīng)非常可樂(lè)\n");break;

default:printf("\n非法操作!\n");break;}}第一部分任務(wù)學(xué)習(xí)

【運(yùn)行情況】程序運(yùn)行結(jié)果如圖3-16所示。

圖3-16自動(dòng)飲料機(jī)程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)

【歸納分析】(1)switch語(yǔ)句。1)switch語(yǔ)句的一般形式。switch(表達(dá)式){case 常量表達(dá)式1:語(yǔ)句組1;case 常量表達(dá)式2:語(yǔ)句組2;case 常量表達(dá)式3:語(yǔ)句組3;……case 常量表達(dá)式n:語(yǔ)句組n;default:語(yǔ)句組n+1;}第一部分任務(wù)學(xué)習(xí)

2)

switch語(yǔ)句的執(zhí)行過(guò)程。先拿switch后的表達(dá)式與第一個(gè)case后面的常量表達(dá)式1的值相比,如果相同,就執(zhí)行語(yǔ)句組1(語(yǔ)句組1后如果有break語(yǔ)句,就退出switch語(yǔ)句,繼續(xù)執(zhí)行switch語(yǔ)句后的語(yǔ)句;語(yǔ)句組1后如果沒(méi)有break語(yǔ)句,繼續(xù)執(zhí)行下一個(gè)case后的語(yǔ)句組2;依此類推……);如果不同,再拿switch后的表達(dá)式與第二個(gè)case后面的常量表達(dá)式2的值相比,如果相同,就執(zhí)行語(yǔ)句組2(同上面括號(hào)內(nèi)),依此類推;如果找不到匹配的case值則執(zhí)行default語(yǔ)句,如果找不到匹配的第一部分任務(wù)學(xué)習(xí)

case值且不存在默認(rèn)語(yǔ)句(default),則跳過(guò)switch語(yǔ)句體,什么也不做。3)注意。①switch后面的“表達(dá)式”,可以是int、char和枚舉型中的一種。②每個(gè)case后面“常量表達(dá)式”的值,必須各不相同,否則會(huì)出現(xiàn)相互矛盾的現(xiàn)象(對(duì)表達(dá)式的同一值,有兩種或兩種以上的執(zhí)行方案)。③case后面的常量表達(dá)式僅起語(yǔ)句標(biāo)號(hào)作用,并不進(jìn)第一部分任務(wù)學(xué)習(xí)

行條件判斷。系統(tǒng)一旦找到入口標(biāo)號(hào),就從此標(biāo)號(hào)開(kāi)始執(zhí)行,不再進(jìn)行標(biāo)號(hào)判斷,所以必須加上break語(yǔ)句,以便結(jié)束switch語(yǔ)句。④各case及default子句的先后次序,不能影響程序執(zhí)行結(jié)果。⑤多個(gè)case子句,可共用同一語(yǔ)句(組)。⑥用switch語(yǔ)句實(shí)現(xiàn)的多分支結(jié)構(gòu)程序,完全可以用if語(yǔ)句或if語(yǔ)句的嵌套來(lái)實(shí)現(xiàn)。(2)本程序的執(zhí)行過(guò)程。第一部分任務(wù)學(xué)習(xí)

1)case1、case2、case3、case4、case5、default是6個(gè)分支位置,通過(guò)switch(button)中的button的值決定要執(zhí)行的分支。2)當(dāng)button的值為“1”、“2”、“3”、“4”、“5”時(shí),分別執(zhí)行case1、case2、case3、case4、case5后的語(yǔ)句,遇到break語(yǔ)句,立即退出switch語(yǔ)句;當(dāng)button的值為其他字符時(shí),執(zhí)行default后面的語(yǔ)句,遇到break語(yǔ)句,也立即退出switch語(yǔ)句。3)使用switch語(yǔ)句處理分支結(jié)構(gòu)時(shí),不能隨意丟掉第一部分任務(wù)學(xué)習(xí)

break語(yǔ)句,否則無(wú)法實(shí)現(xiàn)分支效果。假設(shè)程序做出如下修改,當(dāng)從鍵盤(pán)輸入2時(shí)候,則輸出“你獲得一聽(tīng)雪碧”,然后又輸出“你獲得一聽(tīng)芬達(dá)”和“你獲得一聽(tīng)百事可樂(lè)”。由于當(dāng)你輸入2時(shí),則執(zhí)行case2后的語(yǔ)句,但是由于沒(méi)有break語(yǔ)句,程序不能退出switch語(yǔ)句,繼續(xù)向下執(zhí)行,并且不再判斷button的值和常量表達(dá)式是否一樣,而是無(wú)條件的直接執(zhí)行后面的語(yǔ)句直到遇到break語(yǔ)句后才退出switch語(yǔ)句。程序代碼如下:第一部分任務(wù)學(xué)習(xí)

#include"stdio.h"voidmain(){intbutton;printf("==========自動(dòng)飲料機(jī)==========\n");printf("1.可口可樂(lè)\n");printf("2.雪碧\n");printf("3.芬達(dá)\n");printf("4.百事可樂(lè)\n");printf("5.非??蓸?lè)\n");printf("請(qǐng)按1--5鍵選擇飲料:\n");scanf("%d",&button);switch(button)

{case1:printf("\n你獲得一聽(tīng)可口可樂(lè)\n");case2:printf("\n你獲得一聽(tīng)雪碧\n");case3:printf("\n你獲得一聽(tīng)芬達(dá)\n");

第一部分任務(wù)學(xué)習(xí)

case4:printf("\n你獲得一聽(tīng)百事可樂(lè)\n");break;case5:printf("\n你獲得一聽(tīng)非常可樂(lè)\n");}}程序運(yùn)行結(jié)果如圖3-17所示。

圖3-17無(wú)break語(yǔ)句的Switch語(yǔ)句運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)

【技能訓(xùn)練】設(shè)計(jì)簡(jiǎn)單的菜單。修改在順序程序章節(jié)編寫(xiě)的菜單程序,設(shè)計(jì)如圖2-1所示的菜單。程序代碼如下:#include<stdio.h>voidmain(){intk;printf("********************************\n");printf("||--------請(qǐng)輸入(0-5)---------||\n");printf("||1--------信息錄入||\n");printf("||2--------成績(jī)計(jì)算||\n");printf("||3--------成績(jī)排序||\n");

第一部分任務(wù)學(xué)習(xí)

printf("||4--------查詢成績(jī)||\n");printf("||5--------修改成績(jī)||\n");printf("||0--------退出||\n");printf("********************************\n");printf("請(qǐng)輸入你的選擇\n");scanf("%d",&k);switch(k){case1:printf("\n1--------信息錄入\n");break;case2:printf("\n2--------成績(jī)計(jì)算\n");break;

case3:printf("\n3--------成績(jī)排序\n");break;case4:printf("\n4--------查詢成績(jī)\n");break;case5:printf("\n5--------修改成績(jī)\n");break;case0:printf("\n0--------退出\n");break;default:printf("\n非法操作!\n");break;}}第一部分任務(wù)學(xué)習(xí)

程序運(yùn)行結(jié)果如圖3-18所示。

圖3-18學(xué)生信息系統(tǒng)程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)

七、switch語(yǔ)句中多個(gè)case語(yǔ)句相同情況的處理【問(wèn)題提出】有時(shí)在多個(gè)不同分支中需要處理的操作相同,例如在鍵盤(pán)上按大寫(xiě)字母“A”或小寫(xiě)字母“a”時(shí)都顯示“again”,按大寫(xiě)字母“E”或小寫(xiě)字母“e”時(shí)都顯示“end”,這時(shí)可以簡(jiǎn)化switch語(yǔ)句。第一部分任務(wù)學(xué)習(xí)

【工作任務(wù)】假設(shè)要處理的年份是2008年,編寫(xiě)程序,輸入該年的某月份,輸出該月的天數(shù)?!舅悸分笇?dǎo)】在2008年,一月、三月、五月、七月、八月、十月、十二月的天數(shù)是31,二月的天數(shù)是29,四月、六月、九月、十一月的天數(shù)是30,要輸出某月的天數(shù),需要處理13個(gè)分支(一月、二月、……、十二月和非法數(shù)據(jù))。第一部分任務(wù)學(xué)習(xí)

【解決方案】#include<stdio.h>voidmain(){intmonth=0,day=0;printf("請(qǐng)輸入月份:\n");scanf("%d",&month);switch(month){case1:case3:case5:case7:case8:case10:

第一部分任務(wù)學(xué)習(xí)

case12:day=31;break;case2:day=29;break;case4:case6:case9:case11:day=30;break;default:printf("非法數(shù)據(jù)!\n");}printf("day=%d\n",day);}第一部分任務(wù)學(xué)習(xí)

【運(yùn)行情況】日歷程序運(yùn)行結(jié)果如圖3-19所示。

圖3-19日歷程序運(yùn)行結(jié)果第一部分任務(wù)學(xué)習(xí)

【技能訓(xùn)練】要求用switch語(yǔ)句編程設(shè)計(jì)一個(gè)簡(jiǎn)單的計(jì)算器程序。程序代碼如下:#include<stdio.h>#include<math.h>voidmain(){floatdata1,data2; /*定義兩個(gè)操作符*/charop; /*定義運(yùn)算符*/printf("Pleaseentertheexpression:\n");scanf("%f%1s%f",&data1,&op,&data2); /*輸入運(yùn)算表達(dá)式*/switch(op)/*根據(jù)輸入的運(yùn)算符確定要執(zhí)行的運(yùn)算*/{第一部分任務(wù)學(xué)習(xí)

case'+':printf("%f+%f=%f\n",data1,data2,data1+data2);break;

case'-':printf("%f-%f=%f\n",data1,data2,data1-data2);break;case'*':printf("%f*%f=%f\n",data1,data2,data1*data2);break;case'/':if(fabs(data2)<=1e-7) /*與實(shí)數(shù)0比較*/printf("Divisionbyzero!\n");

elseprintf("%f/%f=%f\n",data1,data2,data1/data2);break;default:printf("Unknownoperator!\n");}}第一部分任務(wù)學(xué)習(xí)

程序運(yùn)行結(jié)果如圖3-20所示。

圖3-20計(jì)算器程序運(yùn)行結(jié)果第二部分項(xiàng)目學(xué)習(xí)

項(xiàng)目學(xué)習(xí)五菜單設(shè)計(jì)

第二部分項(xiàng)目學(xué)習(xí)

項(xiàng)目學(xué)習(xí)五菜單設(shè)計(jì)【工作任務(wù)】本節(jié)只實(shí)現(xiàn)顯示功能,即顯示成績(jī)管理系統(tǒng)的進(jìn)入界面,用戶可以通過(guò)界面進(jìn)行菜單選擇,選擇所要進(jìn)入的模塊。程序開(kāi)始運(yùn)行時(shí)出現(xiàn)如圖2-18所示的菜單選擇界面。【思路指導(dǎo)】菜單設(shè)計(jì)的知識(shí)涉及的知識(shí)是順序結(jié)構(gòu),如果想實(shí)現(xiàn)菜單選擇要使用多分支的選擇語(yǔ)句。

第二部分項(xiàng)目學(xué)習(xí)

【解決方案】#include<stdio.h>voidmain(){intkprintf("\n\n\t||=========================||");printf("\n\n\t||------------------歡迎使用成績(jī)管理系統(tǒng)--------------||");printf("\n\n\t||----------------------welcome-------------------||");printf("\n\n\t||--------------------謝謝使用本系統(tǒng)----------------||");printf("\n\n\t||-----------------徐州工業(yè)職業(yè)技術(shù)學(xué)院---------------||");

第二部分項(xiàng)目學(xué)習(xí)

printf("\n\n\t||=========================||");printf("\n\n\t||---------------------請(qǐng)選擇(1-6)-----------------||");printf("\n\n\t||------------------------------------------------||");printf("\n\n\t||1.輸出信息||");printf("\n\n\t||2.計(jì)算結(jié)果||");printf("\n\n\t||3.排序信息||");printf("\n\n\t||4.查找信息||");printf("\n\n\t||5.修改信息||");printf("\n\n\t||6.退出系統(tǒng)||");printf("\n\n\t||------------------------------------------------||");do

第二部分項(xiàng)目學(xué)習(xí)

{printf("\n密碼:1(輸入)&2(計(jì)算)&3(排序)&4(查找)&5(修改)&6(完成):");scanf("%d",&k);switch(k){case1:(input());break;case2:(aver_stu());break;case3:(sort());break;case4:(cha());break;case5:(xiu());break;

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論