![C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件)教案 項(xiàng)目3 車(chē)輛數(shù)據(jù)類(lèi)型選擇(選擇結(jié)構(gòu))_第1頁(yè)](http://file4.renrendoc.com/view9/M00/2A/06/wKhkGWckyL6ALVIKAAEwe68tMUE429.jpg)
![C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件)教案 項(xiàng)目3 車(chē)輛數(shù)據(jù)類(lèi)型選擇(選擇結(jié)構(gòu))_第2頁(yè)](http://file4.renrendoc.com/view9/M00/2A/06/wKhkGWckyL6ALVIKAAEwe68tMUE4292.jpg)
![C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件)教案 項(xiàng)目3 車(chē)輛數(shù)據(jù)類(lèi)型選擇(選擇結(jié)構(gòu))_第3頁(yè)](http://file4.renrendoc.com/view9/M00/2A/06/wKhkGWckyL6ALVIKAAEwe68tMUE4293.jpg)
![C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件)教案 項(xiàng)目3 車(chē)輛數(shù)據(jù)類(lèi)型選擇(選擇結(jié)構(gòu))_第4頁(yè)](http://file4.renrendoc.com/view9/M00/2A/06/wKhkGWckyL6ALVIKAAEwe68tMUE4294.jpg)
![C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件)教案 項(xiàng)目3 車(chē)輛數(shù)據(jù)類(lèi)型選擇(選擇結(jié)構(gòu))_第5頁(yè)](http://file4.renrendoc.com/view9/M00/2A/06/wKhkGWckyL6ALVIKAAEwe68tMUE4295.jpg)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE課題項(xiàng)目三任務(wù)1新能源汽車(chē)電池組的選擇(單分支)課型講練授課班級(jí)授課時(shí)數(shù)1教學(xué)目標(biāo)靈活運(yùn)用關(guān)系及邏輯運(yùn)算符;if語(yǔ)句的單分支語(yǔ)法結(jié)構(gòu)教學(xué)重點(diǎn)if語(yǔ)句的具體應(yīng)用。教學(xué)難點(diǎn)關(guān)系運(yùn)算符和邏輯運(yùn)算符具體運(yùn)用。學(xué)情分析對(duì)于C語(yǔ)言語(yǔ)法知識(shí)的講解,容易理解,重點(diǎn)在于培養(yǎng)學(xué)生良好的編程習(xí)慣及編程規(guī)范,其二是培養(yǎng)學(xué)生的探究式自學(xué)能力,調(diào)試程序的能力。因而重點(diǎn)是語(yǔ)法知識(shí)的掌握,逐步過(guò)渡到培養(yǎng)學(xué)生良好的編程習(xí)慣及編程規(guī)范。教學(xué)效果教后記項(xiàng)目三任務(wù)1新能源汽車(chē)電池組的選擇(單分支)3.1.1任務(wù)目標(biāo)通過(guò)鍵盤(pán)輸入新能源汽車(chē)的電池型號(hào),如果輸入1則輸出使用鉛酸電池。(變量:電池型號(hào)batterytype)任務(wù)目標(biāo)運(yùn)行截圖如圖3-1-1所示:圖3-1-1任務(wù)目標(biāo)截圖3.1.2知識(shí)儲(chǔ)備在日常生活中,總會(huì)出現(xiàn)根據(jù)條件來(lái)判定結(jié)果的情況。在程序中,我們將這種情況采用選擇結(jié)構(gòu)。if語(yǔ)句的格式格式:if(條件)語(yǔ)句組1;[else語(yǔ)句組2;]說(shuō)明:[]格式代表可有可無(wú),在實(shí)際使用[]中的內(nèi)容也可以不寫(xiě)。C語(yǔ)言的選擇結(jié)構(gòu)是通過(guò)條件判斷語(yǔ)句來(lái)實(shí)現(xiàn)的,模塊化的結(jié)構(gòu)便于閱讀、調(diào)試和修改。選擇結(jié)構(gòu)有兩種方式來(lái)實(shí)現(xiàn):由if語(yǔ)句來(lái)實(shí)現(xiàn)的兩分支語(yǔ)句;由switch語(yǔ)句來(lái)實(shí)現(xiàn)的多分支語(yǔ)句。在選擇結(jié)構(gòu)中要對(duì)條件判斷表達(dá)式進(jìn)行判斷,根據(jù)判斷的結(jié)果決定選擇哪一個(gè)分支路徑,條件判斷表達(dá)式大多情況下是由關(guān)系表達(dá)式或者邏輯表達(dá)式構(gòu)成。選擇結(jié)構(gòu)的三種流程圖如圖3-1-2所示,其中(1)為單分支結(jié)構(gòu),(2)為雙分支結(jié)構(gòu),(3)為多分支結(jié)構(gòu)。圖3-1-2選擇結(jié)構(gòu)的三種流程圖1.關(guān)系運(yùn)算符及優(yōu)先順序關(guān)系運(yùn)算符:<、<=、>、>=、==、!=,分別稱(chēng)之為:小于、小于等于、大于、大于等于、等于、不等于。關(guān)系運(yùn)算符,關(guān)系表達(dá)式等的說(shuō)明如表3-1-1所示:表3-1-1關(guān)系運(yùn)算符等的說(shuō)明名稱(chēng)說(shuō)明關(guān)系運(yùn)算符系統(tǒng)提供了六種關(guān)系運(yùn)算符<:小于雙目運(yùn)算符優(yōu)先級(jí)第6級(jí)<=:小于等于雙目運(yùn)算符同上>:大于雙目運(yùn)算符同上>=:大于等于雙目運(yùn)算符同上==:等于雙目運(yùn)算符優(yōu)先級(jí)第7級(jí)!=:不等于雙目運(yùn)算符同上關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái)的式子,稱(chēng)關(guān)系表達(dá)式。例如:3>2、x+y>x+z、x>y==z、z=x>y、'c'<'d'等都是關(guān)系表達(dá)式。關(guān)系表達(dá)式的值是一個(gè)邏輯值,即“真”或“假”。若關(guān)系成立,為“真”,值為“1”;若關(guān)系不成立,為“假”,值為“0”。邏輯運(yùn)算符及優(yōu)先級(jí)C語(yǔ)言主要提供邏輯與、邏輯或、邏輯非三種邏輯運(yùn)算符,具體的使用和說(shuō)明如表3-1-2所示:表3-1-2邏輯運(yùn)算符說(shuō)明名稱(chēng)說(shuō)明邏輯運(yùn)算符C語(yǔ)言提供3種邏輯運(yùn)算符:“!”:邏輯非,是單目運(yùn)算符,優(yōu)先級(jí)是2。例如:!3“&&”:邏輯與,是雙目運(yùn)算符,優(yōu)先級(jí)是11。例如:0&&1“||”:邏輯或,是雙目運(yùn)算符,優(yōu)先級(jí)是12。例如:'a'||'b'邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量(0、1)連接起來(lái)的式子就是邏輯表達(dá)式。例如:a>b&&x>y、0&&1、2||9&&0、4-!3&&'c'、'a'||'b'、3.5&&4.8等都是邏輯表達(dá)式。邏輯表達(dá)式的值邏輯表達(dá)式的值也是一個(gè)邏輯值,即“真”或“假”。為“真”,值為“1”;為“假”,值為“0”。當(dāng)運(yùn)算對(duì)象取不同的邏輯值時(shí),邏輯運(yùn)算真值表如表3-2所示。ab!a!ba&&ba||b110011100101011001001100運(yùn)算符的優(yōu)先級(jí)C語(yǔ)言中,運(yùn)算符的運(yùn)算優(yōu)先級(jí)共分為15級(jí)。1級(jí)最高,15級(jí)最低。在表達(dá)式中,優(yōu)先級(jí)較高的先于優(yōu)先級(jí)較低的進(jìn)行運(yùn)算。在一個(gè)表達(dá)式中可能包含多種不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)及運(yùn)算符,不同的運(yùn)算順序可能得出不同結(jié)果甚至出現(xiàn)錯(cuò)誤運(yùn)算錯(cuò)誤,必須按一定順序進(jìn)行結(jié)合,才能保證運(yùn)算的合理性以及結(jié)果的正確性、唯一性。當(dāng)一個(gè)運(yùn)算量?jī)蓚?cè)的運(yùn)算符優(yōu)先級(jí)相同時(shí),按運(yùn)算符的結(jié)合性所規(guī)定的結(jié)合方向處理,C語(yǔ)言中各運(yùn)算符的結(jié)合性分為兩種,即左結(jié)合性(自左至右)和右結(jié)合性(自右至左)。在程序中,運(yùn)算符的優(yōu)先級(jí)如圖3-1-3所示:圖3-1-3運(yùn)算符的優(yōu)先級(jí)if單分支語(yǔ)句格式在選擇結(jié)構(gòu)中,一般我們把滿(mǎn)足條件后執(zhí)行一種結(jié)果,沒(méi)有else的選擇結(jié)構(gòu)叫做單分支語(yǔ)句。單分支語(yǔ)句格式:if(表達(dá)式){語(yǔ)句1;語(yǔ)句2;…}單分支語(yǔ)句流程圖:根據(jù)單分支的程序,流程圖如圖3-1-4所示,其中if單分支流程圖(1)與N-S流程圖(2)圖3-1-4單分支流程圖小貼士:這種自左至右的結(jié)合方向就稱(chēng)為小貼士:這種自左至右的結(jié)合方向就稱(chēng)為“左結(jié)合性”。而自右至左的結(jié)合方向稱(chēng)為“右結(jié)合性”。C語(yǔ)言運(yùn)算符中有不少為右結(jié)合性,應(yīng)注意區(qū)別,以避免理解錯(cuò)誤。示例1:求關(guān)系表達(dá)式的值。1#include<stdio.h>2voidmain()3{4intx=1,y=2,z=3;5printf("%d\n",3>2);6printf("%d\n",2>3);7printf("%d\n",x+y>x+z);8printf("%d\n",x>y==z);9printf("%d\n",z=x>y);10printf("%d\n",'c'<'d');11}運(yùn)行截圖:圖3-1-5示例1運(yùn)行截圖解析:本例題為關(guān)系表達(dá)式的應(yīng)用,第一個(gè)輸出語(yǔ)句為求3>2的值,關(guān)系表達(dá)式運(yùn)算結(jié)果為真或假,真為1,假為0,3>2成立結(jié)果為真,即為1;第二個(gè)輸出語(yǔ)句求2>3的值,2>3不成立,結(jié)果為假,即為0;第三個(gè)輸出語(yǔ)句中算術(shù)運(yùn)算符+的優(yōu)先級(jí)高于關(guān)系運(yùn)算符>,先算加法,再比較大小,先求得x+y=1+2=3,x+z=1+3=4,再得到3>4的運(yùn)算結(jié)果為假,即為0;第四個(gè)輸出語(yǔ)句中關(guān)系運(yùn)算符>優(yōu)先級(jí)高于關(guān)系運(yùn)算符==的優(yōu)先級(jí),先計(jì)算x>y也就是1>2,結(jié)果為假,即為0,再比較0==3,結(jié)果為假,即為0;第五個(gè)輸出語(yǔ)句中關(guān)系運(yùn)算符優(yōu)先級(jí)高于賦值運(yùn)算符,先比較x>y,也就是1>2,結(jié)果為假,即為0,再將0賦值給z,輸出z的值為0;第六個(gè)輸出語(yǔ)句為比較兩個(gè)字符’c’和’d’,c的ASCⅡ碼值小于d的ASCⅡ碼值,結(jié)果為真,即為1。示例2:求邏輯表達(dá)式的值。程序代碼:1#include<stdio.h>2voidmain()3{4intx=1,y=2,a=1,b=2,c=3,d=4,m=1,n=1;//定義整型變量5printf("%d\n",0&&x||y);//輸出邏輯表達(dá)式的值6printf("%d\n",2||9&&0);7printf("%d\n",4-!3&&'c');8printf("%d,%d,%d\n",(m=a>b)&&(n=c>d),m,n);9printf("%d,%d,%d\n",(m=d>c)||(n=c>d),m,n);10}運(yùn)行結(jié)果:
圖3-1-6示例2運(yùn)行截圖解析:本例題為邏輯表達(dá)式的應(yīng)用,第一個(gè)輸出語(yǔ)句根據(jù)邏輯運(yùn)算符&&優(yōu)先級(jí)高于||,先進(jìn)行0&&x(x值為1),結(jié)果為0,再進(jìn)行0||y(y值為2,非零值),結(jié)果為1;第二個(gè)輸出語(yǔ)句的求解過(guò)程同上;第三個(gè)輸出語(yǔ)句中邏輯非!的優(yōu)先級(jí)最高,先進(jìn)行求解!3,結(jié)果為0,再進(jìn)行算術(shù)運(yùn)算符的求解4-0,結(jié)果為4,最后4&&‘c’,兩個(gè)非零值進(jìn)行邏輯與,結(jié)果為1;第四個(gè)輸出語(yǔ)句中按照從左到右的次序輸出,先進(jìn)行關(guān)系運(yùn)算a>b,將結(jié)果0賦值給m,但是由于0&&任意值均為0,所以后面部分不用再進(jìn)行計(jì)算,直接輸出表達(dá)式的值,所以表達(dá)式為0,m的值為0,n的值沒(méi)有計(jì)算保持原始數(shù)據(jù)1,因此輸出結(jié)果為0,0,1;第五個(gè)輸出語(yǔ)句的求解過(guò)程同第四個(gè)。說(shuō)明:C語(yǔ)言里由“&&”、“||”構(gòu)成的邏輯表達(dá)式在某些情況下會(huì)產(chǎn)生“短路”現(xiàn)象。如:a&&b&&c只要a為假,就不必判別b和c;如果a為真、b為假,就不必判別c。再如:a||b||c只要a為真(非0),就不必判別b和c;只有a為假,才判別b;只有a和b都為假,才判別c。示例3:任意輸入三個(gè)數(shù)a,b,c,求三個(gè)數(shù)中最大數(shù)max。算法:1.定義變量2.輸入變量3.比較并輸出流程圖如下圖3-1-7所示:程序代碼voidmain(){intnum_a,num_b,num_c,max;printf("請(qǐng)輸入三個(gè)數(shù)據(jù)");max=num_a;if(max<num_b)max=num_b;if(max<num_c)max=num_c;printf("最大值為%c",max);}圖3-1-7示例3流程圖3.1.3典型案例典型案例1:對(duì)純電動(dòng)客車(chē)可以通過(guò)剩余電池容量查詢(xún)其續(xù)航里程,從鍵盤(pán)輸入電池容量(27)千瓦時(shí),顯現(xiàn)它的續(xù)航里程為200km。(變量:電池容量batterycapacity,續(xù)航里程limitedmileage)算法分析:1.定義變量電池容量battery_capacity,續(xù)航里程limited_mileage2.輸入電池容量3.判別顯示4.輸出典型案例1流程圖如圖3-1-8所示:圖3-1-8典型案例1流程圖程序代碼#include"stdio.h"voidmain(){ doublebattery_capacity,limited_mileage; printf("請(qǐng)輸入電池容量"); scanf("%lf",&battery_capacity); if(battery_capacity==27) {limited_mileage=200; printf("續(xù)航里程為%lf",limited_mileage); }}典型案例1運(yùn)行截圖如圖3-1-9所示:圖3-1-9典型案例1運(yùn)行截圖典型案例2:對(duì)純電動(dòng)客車(chē)可以通過(guò)續(xù)航里程查詢(xún)其所需要的電池容量,要求從鍵盤(pán)輸入汽車(chē)需要的續(xù)航里程(如果大于等于550km),輸出此時(shí)對(duì)應(yīng)的電池容量為80千瓦時(shí)。(變量:續(xù)航里程imited_mileage電池容量battery_capacity,l)算法分析:定義變量輸入續(xù)航里程判斷輸出電池容量典型案例2流程圖如圖3-1-10所示:圖3-1-10典型案例2流程圖程序代碼:#include"stdio.h"voidmain(){doublebattery_capacity,limited_mileage;printf("請(qǐng)輸入續(xù)航里程為");scanf("%lf",&limited_mileage);if(limited_mileage>=550){battery_capacity=80;printf("電池容量為%lf",battery_capacity);}}典型案例2運(yùn)行截圖如圖3-1-11所示:圖3-1-11典型案例2運(yùn)行截圖典型案例3:從鍵盤(pán)輸入汽車(chē)駕駛員的駕照類(lèi)型,如果類(lèi)型A,輸出準(zhǔn)駕車(chē)型為大客車(chē)。(變量:駕照類(lèi)型Type_of_driving_license)算法分析:定義變量輸入駕照類(lèi)型判斷輸出駕照類(lèi)型典型案例3流程圖如圖3-1-12所示:圖3-1-12典型案例3流程圖程序代碼#include"stdio.h"voidmain(){ charType_of_driving_license; printf("請(qǐng)輸入駕照類(lèi)型:"); scanf("%c",&Type_of_driving_license); if(Type_of_driving_license=='A') { printf("準(zhǔn)駕車(chē)型為大客車(chē)",Type_of_driving_license); }}典型案例3運(yùn)行截圖如圖3-1-13所示:圖3-1-13典型案例3運(yùn)行截圖3.1.4任務(wù)分析與實(shí)踐算法分析:定義變量輸入電池型號(hào)判別如果值為1,顯示使用鉛酸電池任務(wù)目標(biāo)流程圖如圖3-1-14所示:圖3-1-14任務(wù)目標(biāo)流程圖程序代碼:#include"stdio.h"voidmain(){intbattery_type;printf("請(qǐng)輸入新能源汽車(chē)的電池型號(hào)");scanf("%d",&battery_type);if(battery_type==1)printf("使用鉛酸電池");}3.1.5動(dòng)手練習(xí)1.編寫(xiě)程序,某公交公司規(guī)定駕齡5年及其以上的駕駛員可以開(kāi)長(zhǎng)途客車(chē),駕齡小于5年的駕駛員可以開(kāi)短途客車(chē)(參考變量:駕齡driving_age)。2.編寫(xiě)程序,某4S店招聘實(shí)習(xí)生規(guī)定,當(dāng)年齡大于或等于18歲時(shí),可以實(shí)習(xí)。當(dāng)年齡小于18歲時(shí),不可以實(shí)習(xí)(參考變量:年齡age)。3.某市地鐵的收費(fèi)規(guī)則是根據(jù)所坐的兩點(diǎn)間最短站點(diǎn)個(gè)數(shù)計(jì)算的。當(dāng)站點(diǎn)個(gè)數(shù)不超過(guò)4個(gè)時(shí),收費(fèi)金額為4元;當(dāng)站點(diǎn)個(gè)數(shù)為5~8個(gè)時(shí),收費(fèi)金額為6元;當(dāng)站點(diǎn)個(gè)數(shù)超過(guò)8
個(gè)時(shí),收費(fèi)金額8元。編寫(xiě)程序,輸入站點(diǎn)個(gè)數(shù),輸出乘坐地鐵所需的費(fèi)用(參考變量:站點(diǎn)個(gè)數(shù)the_number_of_stations、金額money)。課題任務(wù)3.2判斷車(chē)輛是否存在故障(雙分支)課型講練授課班級(jí)授課時(shí)數(shù)2教學(xué)目標(biāo)掌握if語(yǔ)句的雙分支語(yǔ)法結(jié)構(gòu)教學(xué)重點(diǎn)if語(yǔ)句的雙分支的具體應(yīng)用。教學(xué)難點(diǎn)關(guān)系運(yùn)算符和邏輯運(yùn)算符具體運(yùn)用。學(xué)情分析上一節(jié)課已經(jīng)學(xué)習(xí)了if選擇結(jié)構(gòu)的單分支結(jié)構(gòu)。本節(jié)課繼續(xù)來(lái)講雙分支結(jié)構(gòu)。需要重點(diǎn)區(qū)分單分支和雙分支的區(qū)別。教學(xué)效果教后記任務(wù)3.2判斷車(chē)輛是否存在故障(雙分支)3.2.1任務(wù)目標(biāo)根據(jù)新能源車(chē)輛數(shù)據(jù)采集時(shí)間判斷新能源汽車(chē)數(shù)據(jù)采集是否正常,大于30秒,提示數(shù)據(jù)采集正常,小于30秒提示采集樣本太少。任務(wù)目標(biāo)運(yùn)行截圖如圖3-2-1所示:圖3-2-1任務(wù)目標(biāo)截圖3.2.2知識(shí)儲(chǔ)備當(dāng)我們出現(xiàn)判斷問(wèn)題為真需要一個(gè)結(jié)果,為假也需要一個(gè)結(jié)果時(shí),我們就需要用到選擇結(jié)果的雙分支結(jié)構(gòu)。1.if雙分支語(yǔ)句格式if(表達(dá)式){語(yǔ)句塊1;}else{語(yǔ)句塊2;}根據(jù)雙分支結(jié)構(gòu)的程序格式,流程圖如圖3-2-2所示,N-S流程圖(有時(shí)也稱(chēng)為框圖)如圖3-2-3所示。圖3-2-2選擇流程圖圖3-2-3N-S圖說(shuō)明:if雙分支語(yǔ)句的條件表達(dá)式進(jìn)行判斷,條件表達(dá)式為真時(shí),執(zhí)行語(yǔ)句1或者語(yǔ)句塊1的內(nèi)容;否則,條件表達(dá)式為假時(shí),執(zhí)行語(yǔ)句2或者語(yǔ)句塊2的內(nèi)容。1.示例:求絕對(duì)值程序問(wèn)題。根據(jù)程序要求流程圖如圖3-2-4所示:圖3-2-4示例1流程圖程序代碼#include"stdio.h"voidmain(){intx,y;printf("請(qǐng)輸入x的值");scanf("%d",&x);if(x>=0)y=x;elsey=-x;printf("y的值為%d",y);}該程序兩種運(yùn)行結(jié)果如下圖3-2-5所示:圖3-2-5示例運(yùn)行結(jié)果圖3.2.3典型案例典型案例1:在車(chē)輛故障診斷系統(tǒng)中當(dāng)車(chē)輛發(fā)生故障時(shí),需要及時(shí)發(fā)出警告,從鍵盤(pán)輸入車(chē)輛故障類(lèi)型(如果等于1),顯示存在故障,否則顯示無(wú)故障。(變量:故障類(lèi)型FaultType)算法分析:1.定義變量2.輸入故障類(lèi)型3.判別并輸出(雙分支)典型案例1流程圖如圖3-2-6所示:圖3-2-6典型案例1流程圖程序代碼:#include"stdio.h"voidmain(){ intFaultType;printf("請(qǐng)輸入車(chē)輛故障類(lèi)型:");scanf("%d",&FaultType);if(FaultType==1){ printf("該車(chē)輛存在故障");}else{printf("該車(chē)輛無(wú)故障");}}典型案例1一種運(yùn)行結(jié)果如圖3-2-7所示:圖3-2-7典型案例1運(yùn)行結(jié)果圖典型案例2:當(dāng)汽車(chē)的剩余電量低于0.2時(shí),汽車(chē)會(huì)發(fā)出電池不足預(yù)警,從鍵盤(pán)輸入剩余電量,當(dāng)小于等于0.2時(shí),顯示電量不足需要充電,否則顯示電量充足,不須充電。(變量:剩余電量residual_battery)算法分析:定義變量輸入剩余變量的值if(剩余電量<=0.2)輸出電量不足需要充電else輸出電量充足典型案例2流程圖如圖3-2-8所示:圖3-2-8典型案例2流程圖程序代碼:#include"stdio.h"voidmain(){doubleresidual_battery;printf("請(qǐng)從鍵盤(pán)輸入汽車(chē)電池剩余電量:");scanf("%lf",&residual_battery);if(residual_battery<=0.2){ printf("電量不足,需要充電");}else{ printf("電量充足,不需充電");}}典型案例2運(yùn)行截圖如圖3-2-9所示:圖3-2-9典型案例2運(yùn)行結(jié)果圖典型案例3:公交公司對(duì)駕駛員及其準(zhǔn)駕車(chē)型進(jìn)行管理,對(duì)于某型號(hào)的大客車(chē),通過(guò)鍵盤(pán)輸入汽車(chē)駕駛員的駕照類(lèi)型,如果類(lèi)型為A,輸入可以駕駛該型大客車(chē),否則顯示駕照和汽車(chē)登記不符,請(qǐng)更換駕駛員。(變量:駕照類(lèi)型Type_of_driving_license)算法分析:定義駕駛類(lèi)型輸入駕駛類(lèi)型if(駕照類(lèi)型等于A(yíng))顯示可以駕駛該型大客車(chē)。else顯示駕照和汽車(chē)登記不符,請(qǐng)更換駕駛員。典型案例3流程圖如圖3-2-10所示:圖3-2-10典型案例3流程圖程序代碼:#include"stdio.h"voidmain(){charType_of_driving_license;printf("請(qǐng)從鍵盤(pán)輸入汽車(chē)駕駛員的駕照類(lèi)型:");scanf("%C",&Type_of_driving_license);if(Type_of_driving_license=='A'){ printf("可以駕駛該型大客車(chē)");}else{ printf("駕照和汽車(chē)登記不符,請(qǐng)更換駕駛員");}}典型案例3其中一種的運(yùn)行截圖如圖3-2-11所示:圖3-2-11典型案例3運(yùn)行截圖3.2.4任務(wù)分析與實(shí)踐算法分析:定義采集時(shí)間輸入采集時(shí)間if(采集時(shí)間)=30)顯示樣本采集正常else顯示采集樣本太少任務(wù)目標(biāo)流程圖如圖3-2-12所示:圖3-2-12任務(wù)目標(biāo)流程圖程序代碼:#include"stdio.h"voidmain(){intcollected_time;printf("請(qǐng)從鍵盤(pán)輸入新能源車(chē)輛數(shù)據(jù)采集時(shí)間:");scanf("%d",&collected_time);if(collected_time>=30){ printf("數(shù)據(jù)采集正常");}else{ printf("采集樣本太少");}}3.2.5動(dòng)手練習(xí)1.在某個(gè)公交公司,規(guī)定當(dāng)駕齡5年及以上可以開(kāi)長(zhǎng)途,當(dāng)駕齡低于5年的時(shí)候,可以開(kāi)短途。(參考變量駕齡driving_age
)2.在某個(gè)4S店招實(shí)習(xí)生,規(guī)定當(dāng)年齡大于等于18歲時(shí),可以實(shí)習(xí)。當(dāng)年齡低于18歲時(shí),不可以實(shí)習(xí)。(參考變量年齡age
)3.某市坐地鐵的費(fèi)用是根據(jù)所坐的兩點(diǎn)間最短站點(diǎn)個(gè)數(shù)計(jì)算機(jī)費(fèi)用,當(dāng)站點(diǎn)個(gè)數(shù)不超過(guò)4個(gè)時(shí),費(fèi)用4元,當(dāng)站點(diǎn)個(gè)數(shù)5-8個(gè)時(shí)6元,當(dāng)站點(diǎn)個(gè)數(shù)超過(guò)8個(gè)時(shí)8元,輸入站點(diǎn)個(gè)數(shù)輸出所需費(fèi)用。分析此程序是否可以采用雙分支結(jié)構(gòu),為什么?4.判別某一年year是否閏年。閏年的條件是符合下面二者之一:能被4整除,但不能被100整除。能被4整除,又能被400整除。(參考變量年year)課題任務(wù)3.3判斷車(chē)輛的故障等級(jí)(多分支)課型講練授課班級(jí)授課時(shí)數(shù)2教學(xué)目標(biāo)if語(yǔ)句嵌套格式在程序中的應(yīng)用關(guān)系運(yùn)算符和邏輯運(yùn)算符具體運(yùn)用教學(xué)重點(diǎn)if語(yǔ)句的具體應(yīng)用。軟件開(kāi)發(fā)方法的運(yùn)用。教學(xué)難點(diǎn)使用if語(yǔ)句嵌套格式對(duì)具體問(wèn)題的算法描述。if-else-if語(yǔ)句關(guān)系運(yùn)算符和邏輯運(yùn)算符具體運(yùn)用。學(xué)情分析if語(yǔ)句前面已經(jīng)講過(guò),簡(jiǎn)單if-else的結(jié)構(gòu)學(xué)生基本掌握,本節(jié)主要內(nèi)容是復(fù)雜選擇結(jié)構(gòu),關(guān)鍵是要學(xué)生要分清if-else如何搭配。教學(xué)效果教后記任務(wù)3.3判斷車(chē)輛的故障等級(jí)(多分支)3.3.1任務(wù)目標(biāo)根據(jù)新能源汽車(chē)電量的使用程度進(jìn)行顯示,100%顯示為充滿(mǎn)狀態(tài),80%以上顯示為良好狀態(tài),50%顯示充足狀態(tài),20%顯示正常狀態(tài),20%以下顯示缺電狀態(tài),0%顯示無(wú)電量,無(wú)法行駛狀態(tài)。從鍵盤(pán)輸入電量,輸出狀態(tài)。(變量:剩余電量占比residual_battery_proportion)任務(wù)目標(biāo)運(yùn)行截圖如圖3-3-1所示:圖3-3-1任務(wù)目標(biāo)截圖3.3.2知識(shí)儲(chǔ)備當(dāng)我們碰到判斷后有3個(gè)及以上結(jié)果時(shí),我們就需要考慮使用多分支結(jié)構(gòu)來(lái)解決遇到的問(wèn)題。1.if多分支格式:if(表達(dá)式1)語(yǔ)句1;elseif(表達(dá)式2)語(yǔ)句2;…elseif(表達(dá)式n)語(yǔ)句n;[else語(yǔ)句n+1;]語(yǔ)句執(zhí)行過(guò)程:如果表達(dá)式1為真,執(zhí)行語(yǔ)句1;如果表達(dá)式1為假,而表達(dá)式2為真,執(zhí)行語(yǔ)句2;以此類(lèi)推,如果表達(dá)式1,…,表達(dá)式n-1均為假,而表達(dá)式n為真,則執(zhí)行語(yǔ)句n;如果表達(dá)式1,…,表達(dá)式n均為假,則執(zhí)行語(yǔ)句n+1。多分支流程圖如圖3-3-2所示。圖3-3-2多分支流程圖2.示例:從鍵盤(pán)輸入考試分?jǐn)?shù)mark,若按分?jǐn)?shù)值mark,將考試成績(jī)分成“優(yōu)秀”(90—100)、“良好”(80—90)、“及格”(60—80)、“不及格”(60以下)等多個(gè)等級(jí),又該如何解決呢?示例2流程圖如圖3-3-3所示:圖3-3-3示例1流程圖方法一:運(yùn)用單分支方式示例1的流程圖如圖3-3-4所示:圖3-3-4示例1單分支流程圖程序代碼#include"stdio.h"voidmain(){intmark;printf(“請(qǐng)輸入成績(jī):”);scanf(“%d”,&mark);if(mark>=90)printf(“優(yōu)秀!”);if(mark>=80&&mark<=90)printf(“良好!”);if(mark>=60&&mark<=80)printf(“及格!”);if(mark<60)printf(“不及格!”);}方法二:運(yùn)用多分支方式示例2的流程圖如圖3-3-5所示:圖3-3-5示例2多分支流程圖程序代碼:#include”stdio.h”voidmain(){intmark;printf(“請(qǐng)輸入成績(jī):”);scanf(“%d”,&mark);if(mark>=90)printf(“優(yōu)秀!”);elseif(mark>=80)printf(“良好!”);elseif(mark>=60)printf(“及格!”);elseprintf(“不及格!”);}3.3.3典型案例典型案例1:汽車(chē)故障診斷應(yīng)用中將車(chē)輛故障等級(jí)分為4級(jí):0,正常;1,一級(jí)故障/嚴(yán)重故障,停機(jī)處理;2,二級(jí)故障/輕微故障,限定功率;3,三級(jí)故障/警告提醒。依據(jù)輸入的故障等級(jí),輸出相應(yīng)的處理模式,如輸入1顯示“一級(jí)故障/嚴(yán)重故障,停機(jī)處理”。(變量:故障等級(jí)faultlevel)算法分析定義等級(jí)變量輸入等級(jí)if(等級(jí)=0)顯示正常elseif(等級(jí)=1)顯示一級(jí)故障/嚴(yán)重故障,停機(jī)處理elseif(等級(jí)=2)顯示二級(jí)故障/輕微故障,限定功率elseif(等級(jí)=3)顯示三級(jí)故障/警告提醒else顯示輸入有誤典型案例1流程圖如圖3-3-6所示:圖3-3-6典型案例1流程圖程序代碼:#include"stdio.h"voidmain(){intFault_level;printf("輸入你的事故等級(jí)(數(shù)字):\n");scanf("%d",&Fault_level); if(Fault_level==0)printf("正常\n"); elseif(Fault_level==1)printf("一級(jí)故障/嚴(yán)重故障,停機(jī)處理;\n");elseif(Fault_level==2)printf("二級(jí)故障/輕微故障,限定功率;\n");elseif(Fault_level==3)printf("三級(jí)故障/警告提醒。\n");elseprintf("輸入錯(cuò)誤,請(qǐng)重新輸入\n");}典型案例1運(yùn)行截圖如圖3-3-7所示:圖3-3-7典型案例1截圖典型案例2:駕駛員考試在科目三考試時(shí),主要考察擋位和車(chē)速是否匹配,假設(shè)車(chē)速為0時(shí),使用0擋,低于15km/h使用一擋,車(chē)速在15-30km/h時(shí)使用二擋,車(chē)速在30-40km/h時(shí)使用三擋,車(chē)速在40-60km/h時(shí)使用四擋,車(chē)速在60km/h以上使用五擋。通過(guò)鍵盤(pán)輸入車(chē)速,輸出汽車(chē)相應(yīng)的擋位。(變量:車(chē)速speed)算法分析:定義車(chē)速輸入車(chē)速多分支判斷if(車(chē)速<0)顯示輸入有誤。elseif(車(chē)速=0)顯示使用0擋。elseif(車(chē)速<15)顯示使用1擋。elseif(車(chē)速<30)顯示使用2擋。elseif(車(chē)速<40)顯示使用3擋。elseif(車(chē)速<60)顯示使用4擋else顯示使用5擋。典型案例2流程圖如圖3-3-8所示:圖3-3-8典型案例2流程圖程序代碼:#include"stdio.h"voidmain(){floatspeed;printf("輸入你的車(chē)速(km):\n");scanf("%f",&speed);if(speed<0)printf("輸入有誤"); elseif(speed==0)printf("零檔\n"); elseif(speed<15)printf("一擋\n"); elseif(speed<30)printf("二擋\n"); elseif(speed<40)printf("三擋\n");elseif(speed<60)printf("四擋\n");elseprintf("五擋\n");}典型案例2運(yùn)行截圖如圖3-3-9所示:圖3-3-9典型案例2運(yùn)行截圖典型案例3:某4S店的二手車(chē)分為五個(gè)等級(jí),A級(jí)(準(zhǔn)新車(chē))、B級(jí)(精品車(chē))、C級(jí)(小瑕疵車(chē))、D級(jí)(大事故車(chē))。輸入等級(jí),輸出車(chē)輛類(lèi)型。(參考變量等級(jí)grade)算法分析:定義等級(jí)輸入等級(jí)運(yùn)用多分支判別if(等級(jí)=A)輸出準(zhǔn)新車(chē)elseif(等級(jí)=B)輸出精品車(chē)elseif(等級(jí)=C)輸出小瑕疵車(chē)elseif(等級(jí)=D)輸出大事故車(chē)else輸出輸入有誤典型案例3流程圖如圖3-3-10所示:圖3-3-10典型案例3流程圖程序代碼:#include"stdio.h"voidmain(){chargrade;printf("輸入你的車(chē)型:\n");scanf("%c",&grade); if(grade=='A'){ printf("準(zhǔn)新車(chē)\n");}elseif(grade='B'){ printf("精品車(chē)\n");}elseif(grade=='C'){ printf("小瑕疵車(chē)\n");}elseif(grade=='D'){ printf("大事故車(chē)\n");}elseprintf("輸入有誤");}典型案例3運(yùn)行截圖如圖3-3-11所示:
圖3-3-11典型案例3運(yùn)行截圖小貼士:?jiǎn)蝹€(gè)小貼士:?jiǎn)蝹€(gè)字符使用時(shí),注意添加單引號(hào)典型案例4:駕駛員準(zhǔn)駕車(chē)輛和獲得的駕駛證對(duì)應(yīng),下面是列舉的幾種駕照和相應(yīng)車(chē)型的關(guān)系A(chǔ)1:大型客車(chē)——大型客車(chē)是指車(chē)長(zhǎng)大于等于6米或者核定載客人數(shù)大于等于20人的載客汽車(chē)。A2:牽引車(chē)——牽引車(chē)采用電動(dòng)機(jī)驅(qū)動(dòng),利用其牽引能力(2.0~8.0噸),后面拉動(dòng)幾個(gè)裝載貨物的小車(chē)。A3:城市公交車(chē)——泛指指城市范圍內(nèi)定線(xiàn)運(yùn)營(yíng)的公共汽車(chē)及軌道交通等交通方式。B1:中型客車(chē)——車(chē)長(zhǎng)小于6米且核定載客人數(shù)(含司機(jī))10座(含)以上,19座(含)以下的客運(yùn)車(chē)輛稱(chēng)為中型客車(chē)。B2:大型貨車(chē)——大型貨車(chē)指重型和中型載貨汽車(chē)。重型載貨汽車(chē)車(chē)長(zhǎng)大于等于6m,總質(zhì)量大于等于12000kg。中型載貨汽車(chē)車(chē)長(zhǎng)大于等于6m,總質(zhì)量大于等于4500kg且小于12000kg。C1:小型汽車(chē)——總質(zhì)量不超過(guò)4.5t、乘坐人數(shù)(包括駕駛員)不超過(guò)9人或車(chē)長(zhǎng)6m以下的汽車(chē)。C2:小型自動(dòng)擋汽車(chē)。通過(guò)鍵盤(pán)輸入駕駛證的類(lèi)型輸出準(zhǔn)駕車(chē)型。(變量:駕駛證類(lèi)型Typeofdrivinglicense)算法分析:1.定義車(chē)型2.輸入車(chē)型3.運(yùn)用多分支判別if(車(chē)型=A1)輸出大型客車(chē)內(nèi)容elseif(車(chē)型=A2)輸出牽引車(chē)內(nèi)容elseif(車(chē)型=A3)輸出城市公交車(chē)內(nèi)容elseif(車(chē)型=B1)輸出中型客車(chē)elseif(車(chē)型=B2)輸出大型貨車(chē)elseif(車(chē)型=C1)輸出小型汽車(chē)elseif(車(chē)型=C2)輸出小型自動(dòng)擋汽車(chē)else輸出輸入有誤典型案例4流程圖如圖3-3-12所示:圖3-3-12典型案例4流程圖程序代碼:#include"stdio.h"#include"string.h"voidmain(){charTypeofdrivinglicense[3];printf("輸入你的車(chē)型:\n");scanf("%s",&Typeofdrivinglicense); if(strcmp(Typeofdrivinglicense,"A1")==0){ printf("大型客車(chē)--大型客車(chē)是指車(chē)長(zhǎng)大于等于6米或者核定載客人數(shù)大于等于20人的載客汽車(chē)。\n");}elseif(strcmp(Typeofdrivinglicense,"A2")==0){ printf("牽引車(chē)--牽引車(chē)采用電動(dòng)機(jī)驅(qū)動(dòng),利用其牽引能力(2.0~8.0噸),后面拉動(dòng)幾個(gè)裝載貨物的小車(chē)\n");}elseif(strcmp(Typeofdrivinglicense,"A3")==0){ printf("城市公交車(chē)--泛指指城市范圍內(nèi)定線(xiàn)運(yùn)營(yíng)的公共汽車(chē)及軌道交通等交通方式。\n");}elseif(strcmp(Typeofdrivinglicense,"B1")==0){ printf("中型客車(chē)--車(chē)長(zhǎng)小于6米且核定載客人數(shù)(含司機(jī))10座(含)以上,19座(含)以下的客運(yùn)車(chē)輛稱(chēng)為中型客車(chē)。\n");}elseif(strcmp(Typeofdrivinglicense,"B2")==0){ printf("大型貨車(chē)--大型貨車(chē)指重型和中型載貨汽車(chē)。重型載貨汽車(chē)車(chē)長(zhǎng)大于等于6m,總質(zhì)量大于等于12000kg。中型載貨汽車(chē)車(chē)長(zhǎng)大于等于6m,總質(zhì)量大于等于4500kg且小于12000kg。\n");}elseif(strcmp(Typeofdrivinglicense,"C1")==0){ printf("小型汽車(chē)--總質(zhì)量不超過(guò)4.5t、乘坐人數(shù)(包括駕駛員)不超過(guò)9人或車(chē)長(zhǎng)6m以下的汽車(chē)。\n");}elseif(strcmp(Typeofdrivinglicense,"C2")==0){ printf("小型自動(dòng)擋汽車(chē)。\n");}elseprintf("輸入有誤");}典型案例3運(yùn)行截圖如圖3-3-12所示:圖3-3-12典型案例4運(yùn)行截圖3.3.4任務(wù)分析與實(shí)踐算法分析:定義電量狀態(tài)輸入電量狀態(tài)多分支判別if(電量<0)輸出輸入有誤elseif(電量=0)任務(wù)目標(biāo)流程圖如圖3-3-13所示圖3-3-13任務(wù)目標(biāo)流程圖程序代碼:#include"stdio.h"intmain(){intRap;printf("輸入你的電量狀態(tài)(占比數(shù)字):\n");scanf("%d",&Rap);if(Rap<0)printf("輸入有誤");elseif(Rap==0){ printf("無(wú)電量,無(wú)法行駛狀態(tài)。\n");} elseif(Rap<20){ printf("缺電狀態(tài)\n");}elseif(Rap<50){ printf("正常狀態(tài)\n");}elseif(Rap<80){ printf("充足狀態(tài)\n");}elseif(Rap<100){ printf("良好狀態(tài)\n");}else{ printf("充滿(mǎn)狀態(tài)\n");}}3.3.5動(dòng)手練習(xí)1.駕駛員目前當(dāng)要檢查他的身體情況。設(shè)計(jì)一個(gè)健康秤的程序,從鍵盤(pán)輸入身高,體重,判斷某人的健康狀況。計(jì)算公式為:標(biāo)準(zhǔn)體重=身高-105;體重高于標(biāo)準(zhǔn)體重*1.1為偏胖,提示“偏胖,注意節(jié)食”;體重低于標(biāo)準(zhǔn)體重*0.9為偏瘦,提示“偏瘦,增加營(yíng)養(yǎng)”;其他為正常,提示“正常,繼續(xù)保持”。(參考變量身高H,體重T,標(biāo)準(zhǔn)體重standardweight)2.駕駛員的工資是根據(jù)他的工齡來(lái)的。當(dāng)他的駕齡是在1-5年的時(shí)候呢,工資為3200元。當(dāng)他的駕齡為5-10年的時(shí)候,他的工資為4500元。當(dāng)他的駕齡為十年以上時(shí),他的基本工資為6000元。編寫(xiě)程序,從鍵盤(pán)輸入工齡求基本工資。(參考變量工齡lengthofservice)3.汽車(chē)顯示屏需要顯示目前是星期幾的英文,從鍵盤(pán)輸入數(shù)字,顯示1-7對(duì)應(yīng)的英文。其它數(shù)字顯示輸入錯(cuò)誤。(參考變量數(shù)字digit)4.駕駛員到年底的需要提交個(gè)稅,目前個(gè)稅稅率表表3-3-1所示,例如工資為30010元,那么稅費(fèi)就是3000*0.03+9000*0.1+13000*0.2+10*0.25。編寫(xiě)程序,完成程序。(參考變量工資salary,稅率taxrate)表3-3-1\o"個(gè)稅"個(gè)稅稅率表工資稅率1-5000元之間的,包括5000元0%5000-8000元之間的,包括8000元3%8000-17000元之間的,包括17000元10%17000-30000元之間的,包括30000元20%30000-40000元之間的,包括40000元25%40000-60000元之間的,包括60000元30%60000-85000元之間的,包括85000元35%85000元以上的45%5.駕駛員每年都有一個(gè)等級(jí)考核,綜合測(cè)評(píng)分?jǐn)?shù)在0-60(不包含60)的等級(jí)為不合格,分?jǐn)?shù)在60-80(不包含90)的等級(jí)為合格,80-100的等級(jí)為優(yōu)秀。編寫(xiě)程序,從鍵盤(pán)輸入綜合測(cè)評(píng)分?jǐn)?shù),輸出等級(jí)。(參考變量分?jǐn)?shù)grade)課題任務(wù)3.4判斷車(chē)輛的故障等級(jí)(switch)課型講練授課班級(jí)授課時(shí)數(shù)2教學(xué)目標(biāo)掌握switch語(yǔ)句的形式特點(diǎn),可以將原有的部分if-else語(yǔ)句改為switch語(yǔ)句教學(xué)重點(diǎn)switch語(yǔ)句的特點(diǎn),以前的if-else語(yǔ)句的轉(zhuǎn)化教學(xué)難點(diǎn)熟練應(yīng)用switch語(yǔ)句學(xué)情分析學(xué)生對(duì)于分支結(jié)構(gòu)結(jié)構(gòu)已經(jīng)有所接觸,由于本學(xué)期兩個(gè)班級(jí)的學(xué)生剛剛接觸學(xué)習(xí)C語(yǔ)言,對(duì)于程序的學(xué)習(xí)方法還不是很熟悉,還沒(méi)有從高中的學(xué)習(xí)方法中脫離出來(lái),因此,還需多多練習(xí)。教學(xué)效果教后記任務(wù)3.4判斷車(chē)輛的故障等級(jí)(switch)3.4.1任務(wù)目標(biāo)根據(jù)新能源汽車(chē)電量的使用程度進(jìn)行剩余電量提示,假設(shè)汽車(chē)電池容量的格子共有10格,10格時(shí)顯示為充滿(mǎn)狀態(tài),8-9格顯示為充足狀態(tài),5-7顯示正常狀態(tài),2-4顯示預(yù)警狀態(tài),1-2以顯示報(bào)警狀態(tài),0顯示無(wú)電量,無(wú)法行駛狀態(tài)。通過(guò)鍵盤(pán)輸入電池容量格子的數(shù)目,輸出剩余電量狀態(tài)。(變量:電量battery)任務(wù)目標(biāo)運(yùn)行截圖如圖3-4-1所示:圖3-4-1任務(wù)目標(biāo)運(yùn)行截圖3.4.2知識(shí)儲(chǔ)備switch語(yǔ)句也稱(chēng)為開(kāi)關(guān)語(yǔ)句,是多分支結(jié)構(gòu)的一種特殊形式。1.多分支switch語(yǔ)句的一般形式是:switch(表達(dá)式){case值1:語(yǔ)句1;[break;]case值2:語(yǔ)句2;[break;]…case值n:語(yǔ)句n;[break;]default:語(yǔ)句n+1;}多分支switch語(yǔ)句的流程如圖3-4-2所示。圖3-4-2多分支switch語(yǔ)句注意點(diǎn)(1)switch中case常量可以是數(shù)值(整數(shù)),也可以是字符,但不能為其他的值。(2)可以省略一些case和default。(3)每個(gè)case或default后的語(yǔ)句可以是語(yǔ)句體,但不需要使用"{"和"}"括起來(lái)。(4)每個(gè)case語(yǔ)句體的最后都應(yīng)有一個(gè)break語(yǔ)句。執(zhí)行switch開(kāi)關(guān)語(yǔ)句時(shí),將常量表達(dá)式的值逐個(gè)與case后的常量進(jìn)行比較,若與其中一個(gè)相等,則執(zhí)行該常量下的語(yǔ)句,若不與任何一個(gè)常量相等,則執(zhí)行default后面的語(yǔ)句。2.示例:小麗星期日出去逛街,她發(fā)現(xiàn)自己所帶的錢(qián)不夠,因此考慮去ATM機(jī)取錢(qián)。輸入正確密碼后,ATM機(jī)會(huì)有一個(gè)顯示屏,可以查詢(xún)、取款、轉(zhuǎn)賬、退出等操作如圖3-4-3所示圖3-4-3示例運(yùn)行截圖方法一:if多分支流程圖如圖3-4-4所示:圖3-4-4示例if多分支流程圖程序代碼#include"stdio.h"voidmain(){ intchoose; printf("輸入您的選項(xiàng):"); scanf("%d",&choose); if(choose==1)printf("您選擇了取款服務(wù)!\n"); elseif(choose==2)printf("您選擇了查詢(xún)服務(wù)!\n"); elseif(choose==3)printf("您選擇了轉(zhuǎn)帳服務(wù)!\n"); elseif(choose==4)printf("您選擇了退出,請(qǐng)取卡!\n");}方法二:switch流程圖圖3-4-5示例switch多分支流程圖#include"stdio.h"voidmain(){ intchoose; printf("輸入您的選項(xiàng):"); scanf("%d",&choose); switch(choose) { case1:printf("您選擇了取款服務(wù)!\n");break; case2:printf("您選擇了查詢(xún)服務(wù)!\n");break; case3:printf("您選擇了轉(zhuǎn)帳服務(wù)!\n");break; case4: printf("您選擇了退出,請(qǐng)取卡!\n"); }}3.4.3典型案例典型案例1:汽車(chē)故障診斷應(yīng)用中將車(chē)輛故障等級(jí)分為4級(jí):0,正常;1,一級(jí)故障/嚴(yán)重故障,停機(jī)處理;2,二級(jí)故障/輕微故障,限定功率;3,三級(jí)故障/警告提醒。依據(jù)輸入的故障等級(jí),輸出相應(yīng)的處理模式,如輸入1顯示“一級(jí)故障/嚴(yán)重故障,停機(jī)處理”。如果輸入其它數(shù)據(jù),則顯示輸入有誤。(變量:故障等級(jí)faultlevel)算法分析:1.定義變量2.輸入故障等級(jí)3.按照故障等級(jí)分別匹配典型案例1流程圖如圖3-4-6所示:圖3-4-6典型案例1流程圖程序代碼#include"stdio.h"voidmain(){intfaultlevel;printf("請(qǐng)輸入故障等級(jí):\n");scanf("%d",&faultlevel);switch(faultlevel){case0:printf("正常\n");break;case1:printf("一級(jí)故障/嚴(yán)重故障\n");break;case2:printf("二級(jí)故障/輕微故障\n");break;case3:printf("三級(jí)故障/警告提醒\n");break;}}典型案例1運(yùn)行截圖如圖3-4-7所示:圖3-4-7典型案例1運(yùn)行截圖典型案例2:駕駛員可以駕駛的車(chē)輛和獲得的駕駛證存在對(duì)應(yīng)關(guān)系,下面列舉幾種駕照和車(chē)型的關(guān)系:A級(jí):大型客車(chē)或者牽引車(chē)或者城市公交車(chē);B級(jí):中型客車(chē)或者大型貨車(chē);C級(jí):小型汽車(chē)。通過(guò)鍵盤(pán)輸入駕駛證的類(lèi)型輸出可以駕駛的車(chē)型。(變量:駕駛證類(lèi)型Type_of_driving_license)算法分析:1.定義變量2.輸入駕駛證類(lèi)型3.輸入匹配(注意此處是字符型匹配)典型案例2流程圖如圖3-4-8所示:圖3-4-8典型案例2流程圖程序代碼#include"stdio.h"voidmain(){charType_of_driving_license;printf("請(qǐng)輸入駕駛證類(lèi)型:\n");scanf("%c",&Type_of_driving_license);switch(Type_of_driving_license){case'A':printf("大型客車(chē)或者牽引車(chē)或者城市公交車(chē)\n");break;case'B':printf("中型客車(chē)或者大型貨車(chē)\n");break;case'C':printf("小型汽車(chē)\n");break;}}典型案例2運(yùn)行截圖如圖3-4-9所示:圖3-4-9典型案例2運(yùn)行截圖提問(wèn):任務(wù)3.3的典型案例2可以用switch實(shí)現(xiàn)嗎?為什么?典型案例3:正常情況下新能源汽車(chē)電池有6-8年的使用年限,當(dāng)處于第1-2年時(shí),電池質(zhì)量較好,在質(zhì)保期,當(dāng)處于第3-4年時(shí),電池質(zhì)量正常,在質(zhì)保期;當(dāng)處于第5-6年時(shí),電池里程較短,在質(zhì)保期;當(dāng)處于第7-8年時(shí),電池已過(guò)質(zhì)保期;當(dāng)使用超過(guò)8年以上時(shí),則必須更換。通過(guò)鍵盤(pán)輸入電池的使用年限,輸出相應(yīng)的電池狀態(tài)。(變量:電池年限batteryyears)算法分析:1.定義年限2.輸入年限3.根據(jù)年限判別典型案例3流程圖如圖3-4-10所示:圖3-4-10典型案例3流程圖程序代碼#include"stdio.h"voidmain(){intbatteryyears;printf("請(qǐng)輸入使用年限:\n");scanf("%d",&batteryyears);switch(batteryyears){case1:case2:printf("電池質(zhì)量較好,在質(zhì)保期\n");break;case3:case4:printf("電池質(zhì)量正常,在質(zhì)保期\n");break;case5:case6:printf("電池里程較短,在質(zhì)保期\n");break;case7:case8:printf("電池已過(guò)質(zhì)保期\n");break;default:printf("電池必須更換\n");break;}}典型案例3運(yùn)行截圖如圖3-4-11所示:圖3-4-11典型案例3運(yùn)行截圖典型案例4:機(jī)動(dòng)車(chē)駕駛員考試在科目三考試時(shí),主要考察檔位和車(chē)速是否匹配,假設(shè)車(chē)速為0-15km/h使用一檔(不包含15),車(chē)速在15-30km/h時(shí)使用二擋(不包含30),車(chē)速在30-40km/h時(shí)使用三擋(不包含40),車(chē)速在40-60km/h時(shí)使用四擋,車(chē)速在60km/h以上時(shí)使用五擋。通過(guò)鍵盤(pán)輸入車(chē)速,求車(chē)輛相應(yīng)所處的檔位。(變量:車(chē)速speed)算法分析:1.定義速度2.輸入速度3.將數(shù)據(jù)分析特點(diǎn),進(jìn)行對(duì)5整除。4.根據(jù)速度比例進(jìn)行匹配。典型案例4流程圖如圖3-4-12所示:圖3-4-12典型案例4流程圖程序代碼:#include"stdio.h"voidmain(){doublespeed;intn;printf("請(qǐng)輸入車(chē)速:\n");scanf("%lf",&speed);n=(int)(speed/5);switch(n){ case0:case1: case2:printf("使用一擋\n");break; case3: case4:case5:printf("使用二擋\n");break;case6:case7:printf("使用三擋\n");break;case8:case9:case10:case11:printf("使用四擋\n");break;default:printf("使用五檔\n");break;}}典型案例4運(yùn)行截圖如圖3-4-13所示:圖3-4-13典型案例4運(yùn)行截圖3.4.4任務(wù)分析與實(shí)踐算法分析:1.定義剩余變量2.輸入剩余變量3.根據(jù)格子數(shù)辨別電量狀態(tài)任務(wù)目標(biāo)流程圖如圖3-4-14所示:圖3-4-14任務(wù)目標(biāo)流程圖#include"stdio.h"voidmain(){intbattery,n;printf("請(qǐng)輸入剩余電量:\n");scanf("%d",&battery);n=battery/10;switch(n){case10:printf("充滿(mǎn)狀態(tài)\n");break;case9:case8:printf("充足狀態(tài)\n");break;case7:case6:case5:printf("正常狀態(tài)\n");break;case4:case3:printf("預(yù)警狀態(tài)\n");break;case2:case1:printf("報(bào)警狀態(tài)\n");break;case0:printf("無(wú)電量\n");break;}}3.4.5動(dòng)手練習(xí)1.汽車(chē)顯示屏需要顯示目前是星期幾的英文,從鍵盤(pán)輸入數(shù)字,顯示1-7對(duì)應(yīng)的英文。其它數(shù)字顯示輸入錯(cuò)誤。(參考變量數(shù)字digit)2.駕駛員的工資是根據(jù)他的工齡來(lái)的。當(dāng)他的駕齡是在1-5年的時(shí)候呢,工資為3200元。當(dāng)他的駕齡為5-10年的時(shí)候,他的工資為4500元。當(dāng)他的駕齡為十年以上時(shí),他的基本工資為6000元。編寫(xiě)程序,從鍵盤(pán)輸入工齡求基本工資。(參考變量工齡lengthofservice)3.學(xué)校的實(shí)訓(xùn)成績(jī)一般是按照等級(jí)輸出的,其中[0-60)為不合格,[60,80)為合格,[80-90)為良好,[90-100]為優(yōu)秀。從鍵盤(pán)輸入成績(jī),輸出等級(jí)。課題任務(wù)3.5車(chē)輛故障診斷與維修(選擇嵌套)課型講練授課班級(jí)授課時(shí)數(shù)2教學(xué)目標(biāo)掌握選擇語(yǔ)句的嵌套結(jié)構(gòu)教學(xué)重點(diǎn)選擇語(yǔ)句的嵌套結(jié)構(gòu)教學(xué)難點(diǎn)選擇語(yǔ)句的嵌套結(jié)構(gòu)學(xué)情分析之前上課已經(jīng)完成了選擇的單分支,雙分支,多分支結(jié)構(gòu)。對(duì)于復(fù)雜的內(nèi)容,需要使用嵌套結(jié)構(gòu)。學(xué)生分析如何使用嵌套是一個(gè)難點(diǎn)。教學(xué)效果教后記任務(wù)3.5車(chē)輛故障診斷與維修(選擇嵌套)3.5.1任務(wù)目標(biāo)當(dāng)車(chē)輛出現(xiàn)故障時(shí),可以在4S店,路邊維修店和連鎖維修店選擇維修,假設(shè)目前維修的項(xiàng)目是換輪胎,路邊維修店里每個(gè)輪胎的價(jià)格是500,2個(gè)及以上可以打7折;連鎖維修店的價(jià)格是550,2個(gè)及以上可以打8折;4s店維修店的價(jià)格是650,2個(gè)及以上可以打9折。通過(guò)鍵盤(pán)輸入維修地點(diǎn)和輪胎個(gè)數(shù),求維修的價(jià)格。(變量:維修地點(diǎn)repairlocation,輪胎價(jià)格tireprice,折扣discount)任務(wù)目標(biāo)運(yùn)行截圖如圖3-5-1所示:圖3-5-1任務(wù)目標(biāo)運(yùn)行截圖3.5.2知識(shí)儲(chǔ)備有時(shí)我們遇到問(wèn)題需要考慮多種情況的條件,這時(shí)就不得不在選擇結(jié)構(gòu)中再包含選擇結(jié)構(gòu)。1.if語(yǔ)句的嵌套在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句,稱(chēng)if語(yǔ)句的嵌套。if語(yǔ)句的嵌套常見(jiàn)形式如圖所示。圖3-5-2if語(yǔ)句的嵌套2.示例有以下程序#include<stdio.h>voidmain(){inta=2,b=7,c=5;switch(a){case1:switch(b){case1:printf("@");break;case2:printf("!");break;}break;case0:switch(c){case0:printf("*");break;case1:printf("#");break;case2:printf("$");break;}break;default:printf("&");}printf("\n");}程序的運(yùn)行結(jié)果是__&___分析:首先判別a的值,根據(jù)a的值再判別其它情況。如果a=1結(jié)果等于是什么?3.5.3典型案例典型案例1:新能源電動(dòng)車(chē)充電時(shí),可以選擇快充和慢充兩種方式。快充時(shí),如果需要充電電量不超過(guò)80%,則30分鐘即可完成,充電超過(guò)80%后需要的時(shí)間每1%需要10分鐘。慢充時(shí),每1%需要8分鐘。從鍵盤(pán)輸入充電方式和需要充的電量。(變量:充電方式recharge_mode,需求電量required_battery)算法分析1.定義變量2.輸入充電方式和需求電量3.先考慮充電方式再根據(jù)需求電量判別典型案例1流程圖如圖3-5-2所示:圖3-5-2典型案例1流程圖程序代碼:#include"stdio.h"voidmain(){intrecharge_mode,required_battery,time;printf("1:快充\t2:慢充\n\n");printf("請(qǐng)選擇充電方式:(輸入對(duì)應(yīng)方式前的數(shù)字)\n");scanf("%d",&recharge_mode);printf("請(qǐng)輸入需求電量:\n");scanf("%d",&required_battery);switch(recharge_mode){ case1:if(required_battery>80) time=30+(required_bat
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租鋼棚廠(chǎng)房合同范本
- 買(mǎi)車(chē)過(guò)戶(hù)現(xiàn)金合同范例
- 出售新舊托盤(pán)合同范本
- 2013水利施工合同范本
- 公寓保潔合同范本
- 電力行業(yè)人才培養(yǎng)與企業(yè)文化傳承關(guān)系研究
- 2025-2030年可穿戴靜脈輸液泵行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢(xún)報(bào)告
- 公對(duì)私合同范本
- 2025-2030年商用烤腸機(jī)智能溫度控制系統(tǒng)行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢(xún)報(bào)告
- 搪瓷建筑外墻裝飾設(shè)計(jì)考核試卷
- 2024數(shù)據(jù)中心綜合布線(xiàn)工程設(shè)計(jì)
- 胸外科講課全套
- 醫(yī)療器械GSP相關(guān)
- 2023年海南省公務(wù)員錄用考試《行測(cè)》真題卷及答案解析
- 電力工程施工售后保障方案
- 中國(guó)心力衰竭診斷和治療指南2024解讀(完整版)
- 多源數(shù)據(jù)整合
- 新人教版高中數(shù)學(xué)必修第二冊(cè)第六章平面向量及其應(yīng)用教案 (一)
- 校園招聘活動(dòng)策劃方案(6篇)
- 期末 (試題) -2024-2025學(xué)年教科版(廣州)英語(yǔ)四年級(jí)上冊(cè)
- 解讀國(guó)有企業(yè)管理人員處分條例課件
評(píng)論
0/150
提交評(píng)論