C語言項(xiàng)目化教程(基于智能制造軟件)教案 項(xiàng)目6 模塊化設(shè)計(jì)(函數(shù))_第1頁
C語言項(xiàng)目化教程(基于智能制造軟件)教案 項(xiàng)目6 模塊化設(shè)計(jì)(函數(shù))_第2頁
C語言項(xiàng)目化教程(基于智能制造軟件)教案 項(xiàng)目6 模塊化設(shè)計(jì)(函數(shù))_第3頁
C語言項(xiàng)目化教程(基于智能制造軟件)教案 項(xiàng)目6 模塊化設(shè)計(jì)(函數(shù))_第4頁
C語言項(xiàng)目化教程(基于智能制造軟件)教案 項(xiàng)目6 模塊化設(shè)計(jì)(函數(shù))_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGE課題任務(wù)6.1顯示車輛數(shù)據(jù)(無參數(shù)無返回值類型)課型講練授課班級(jí)授課時(shí)數(shù)2教學(xué)目標(biāo)1、了解模塊化程序設(shè)計(jì)的方法2、掌握函數(shù)的定義、聲明和調(diào)用3、能夠自行定義簡單的函數(shù)、按要求完成相關(guān)的功能教學(xué)重點(diǎn)1、模塊化程序設(shè)計(jì)的思想2、函數(shù)的定義、聲明和調(diào)用教學(xué)難點(diǎn)1、函數(shù)形參、實(shí)參的概念2、實(shí)參,形參之間的數(shù)據(jù)傳遞的學(xué)情分析函數(shù)這個(gè)知識(shí)點(diǎn)相對前面的其他知識(shí)點(diǎn)有很大的聯(lián)系。教學(xué)的時(shí)候首先要讓學(xué)生了解使用函數(shù)的優(yōu)點(diǎn),樹立模塊化的意識(shí),再進(jìn)一步介紹函數(shù)的其他知識(shí)。教學(xué)效果教后記項(xiàng)目六模塊化設(shè)計(jì)[學(xué)習(xí)目標(biāo)]知識(shí)目標(biāo)理解函數(shù)的定義理解主調(diào)函數(shù)和被調(diào)函數(shù)、實(shí)參和形參、函數(shù)的返回值、函數(shù)的聲明熟悉函數(shù)的嵌套調(diào)用熟悉函數(shù)的遞歸調(diào)用了解數(shù)組名作為函數(shù)的參數(shù)能力目標(biāo)會(huì)函數(shù)的定義和說明格式。能通過進(jìn)行函數(shù)的調(diào)用,學(xué)會(huì)函數(shù)的參數(shù)傳遞,得到正確的函數(shù)返回值。會(huì)利用函數(shù)的嵌套和遞歸調(diào)用強(qiáng)化模塊化程序設(shè)計(jì)思路。情景設(shè)置:對于一個(gè)完整的監(jiān)控系統(tǒng),除了數(shù)據(jù)的采集、發(fā)送和接收,還需要在接收端顯示電動(dòng)汽車的運(yùn)行狀態(tài),觀察數(shù)據(jù)特點(diǎn),并加以應(yīng)對,本節(jié)通過一個(gè)顯示函數(shù)實(shí)現(xiàn)車輛數(shù)據(jù)的顯示功能。任務(wù)6.1顯示車輛數(shù)據(jù)(無參數(shù)無返回值類型)6.1.1任務(wù)目標(biāo)創(chuàng)建一個(gè)C語言程序,輸出某集團(tuán)新能源M型大客車6-12月新增明線表如表6-1-1所示。表6-SEQ表6-\*ARABIC1-1大客車6-12月新增明線表蘇州無錫常州南京1月241413162月201616253月183020434月24108125月105686月8557任務(wù)目標(biāo)運(yùn)行截圖如圖6-1-1所示:圖6-1-SEQ圖6-\*ARABIC1任務(wù)目標(biāo)運(yùn)行截圖6.1.2知識(shí)儲(chǔ)備前面上課的內(nèi)容我們已經(jīng)接觸了很多函數(shù)比如數(shù)學(xué)函數(shù)sqrt,字符函數(shù)strcat等。一個(gè)較大的程序都會(huì)由若干個(gè)程序模塊組成。在C語言中,一般由一個(gè)主函數(shù)和若干個(gè)子函數(shù)構(gòu)成。函數(shù)的概念從用戶使用的角度,函數(shù)分為兩種標(biāo)準(zhǔn)函數(shù),即庫函數(shù)。由系統(tǒng)提供,比如printf,strlen等用戶自己定義的函數(shù)。也就是我們上面介紹的子函數(shù),目的是解決用戶的專門需求。2.有關(guān)函數(shù)的說明:(1)一個(gè)較大的程序一般應(yīng)分為若干個(gè)程序模塊,每一個(gè)模塊用來實(shí)現(xiàn)一個(gè)特定的功能。在C語言中,用函數(shù)來實(shí)現(xiàn)各功能模塊。(2)一個(gè)C程序可由一個(gè)main主函數(shù)和若干個(gè)其它函數(shù)構(gòu)成。由主函數(shù)調(diào)用其它函數(shù)。(3)一個(gè)源程序文件由一個(gè)或多個(gè)函數(shù)組成,它們是一個(gè)整體。一個(gè)源程序是一個(gè)編譯單位。(4)C程序的執(zhí)行總是從main主函數(shù)開始,調(diào)用其它函數(shù)后流程回到main主函數(shù),在main主函數(shù)中結(jié)束整個(gè)程序的運(yùn)行。main主函數(shù)是系統(tǒng)定義的。(5)所有函數(shù)都是獨(dú)立的,完成一個(gè)特定的功能。3.無參無返回函數(shù)的定義形式void函數(shù)名(){聲明部分語句}主函數(shù)中的調(diào)用的寫法函數(shù)名();6.1.3典型案例典型案例1:下表為某集團(tuán)新能源某不同類型客車在不同時(shí)段的耗油量,編寫程序,要求自定義兩個(gè)函數(shù),分別輸出表頭和內(nèi)容。耗油量如表6-1-2所示。表6-1-SEQ表6-\*ARABIC2耗油量表時(shí)段1時(shí)段2時(shí)段3時(shí)段4時(shí)段5時(shí)段6時(shí)段7時(shí)段88.58.89.210.17.88.68.78.710.2111314.58.99.79.79.8典型案例1的流程圖主要由三部分構(gòu)成,其中主函數(shù)流程圖如圖6-1-2所示,子函數(shù)表頭流程圖如圖6-1-3所示,子函數(shù)內(nèi)容流程圖如圖6-1-4所示。圖6-1-SEQ圖6-\*ARABIC2主函數(shù)流程圖圖6-1-SEQ圖6-\*ARABIC3表頭流程圖圖6-1-SEQ圖6-\*ARABIC4內(nèi)容流程圖程序代碼:#include"stdio.h"voidprint_head(){ inti; printf("集團(tuán)新能源某不同類型客車在不同時(shí)段的耗油量\n"); for(i=1;i<=8;i++) printf("時(shí)段%d\t",i); printf("\n");}voidprint_details(){ floatoilconsumption[2][8]={{8.5,8.8,9.2,10.1,7.8,8.6,8.7,8.7},{10.2,11,13,14.5,8.9,9.7,9.7,9.8}}; inti,j; for(i=0;i<2;i++) { for(j=0;j<8;j++) { printf("%.2f\t",oilconsumption[i][j]); } printf("\n"); }}voidmain(){ print_head(); print_details();}典型案例1運(yùn)行截圖如圖6-1-5所示圖6-1-SEQ圖6-\*ARABIC5典型案例1運(yùn)行截圖小貼士:無參數(shù)無返回值函數(shù)時(shí)最簡單的一種方式,想想大家一件事情時(shí)采用分工合作,是不是就是這種。小貼士:無參數(shù)無返回值函數(shù)時(shí)最簡單的一種方式,想想大家一件事情時(shí)采用分工合作,是不是就是這種。典型案例2:從鍵盤輸入某品牌新能源客車5名駕駛員12個(gè)月的工資,并輸出。典型案例2的流程圖主要由三部分構(gòu)成,其中主函數(shù)流程圖如圖6-1-6所示,子函數(shù)輸入數(shù)據(jù)流程圖如圖6-1-7所示,子函數(shù)輸出數(shù)據(jù)流程圖如圖6-1-8所示。圖6-1-SEQ圖6-\*ARABIC6典型案例2主函數(shù)流程圖圖6-1-SEQ圖6-\*ARABIC7輸入子函數(shù)流程圖圖6-1-SEQ圖6-\*ARABIC8輸出函數(shù)流程圖程序代碼:#include"stdio.h"floatsalary[3][6];voidinput_salary(){ inti,j; for(i=0;i<3;i++) {printf("駕駛員%d六個(gè)月工資:",i+1); for(j=0;j<6;j++) { scanf("%f",&salary[i][j]); } }}voidoutput_salary(){ inti,j; printf("駕駛員6個(gè)月的工資明線表\n"); for(i=0;i<3;i++){ printf("駕駛員%d",i+1); for(j=0;j<6;j++) printf("%d月份",j+1); printf("\n"); for(j=0;j<6;j++) printf("%10.2f",salary[i][j]); printf("\n"); }}voidmain(){ input_salary(); output_salary();}典型案例2運(yùn)行截圖如圖6-1-9所示圖6-1-SEQ圖6-\*ARABIC9典型案例2運(yùn)行截圖6.1.4任務(wù)分析與實(shí)踐任務(wù)目標(biāo)的流程圖主要由四部分構(gòu)成,其中主函數(shù)流程圖如圖6-1-10所示,子函數(shù)顯示內(nèi)容流程圖如圖6-1-11所示。圖6-1-SEQ圖6-\*ARABIC10任務(wù)目標(biāo)主函數(shù)流程圖圖6-1-SEQ圖6-\*ARABIC11任務(wù)目標(biāo)顯示內(nèi)容流程圖程序代碼:#include"stdio.h"voidprint_head(){printf("海格新能源M型大客車6-12月新增明線表\n");printf("\n"); printf("蘇州無錫常州南京\n"); }voidprint_body(){ intV_number[6][4]={{24,14,13,16},{20,16,16,25}, {18,30,20,43},{24,10,8,12},{10,5,6,8},{8,5,5,7}}; inti,j; for(i=0;i<6;i++) { printf("%d月",i+1); for(j=0;j<4;j++) { printf("%6d",V_number[i][j]); } printf("\n"); }}voidprint_foot(){ printf("制表日期:2019年1月2日");}voidmain(){ print_head(); print_body(); print_foot();}6.1.5動(dòng)手練習(xí)1.需要把p1,p2各個(gè)函數(shù)輸出,請?zhí)羁?include<stdio.h>voidp1(){printf("*\n");printf("***\n");printf("*****\n");printf("*******\n");}voidp2(){printf("*\n");printf("*\n");printf("*\n");}voidmain(){__________;__________:}運(yùn)用函數(shù)將“愛家才會(huì)有溫馨,愛國才能得安寧。家庭是溫暖得巢,國家是安穩(wěn)得營?!钡娘@示10遍。課題任務(wù)6.2根據(jù)車輛品牌,顯示車輛數(shù)據(jù)(有參數(shù)無返回值類型) 課型講練授課班級(jí)授課時(shí)數(shù)2教學(xué)目標(biāo)1.掌握通過指針訪問數(shù)組2.指針指向數(shù)組的幾種方式教學(xué)重點(diǎn)指針指向數(shù)組時(shí)幾種方式的轉(zhuǎn)換教學(xué)難點(diǎn)指針指向數(shù)組的理解學(xué)情分析前面已經(jīng)講過了指針指向一個(gè)變量,數(shù)組也學(xué)習(xí)過,基本的轉(zhuǎn)換學(xué)生是可以理解的,但是指針與數(shù)組聯(lián)系后很多同學(xué)不是能理解指針,幾種關(guān)系放在一起更容易亂。教學(xué)效果教后記任務(wù)6.2根據(jù)車輛品牌,顯示車輛數(shù)據(jù)(有參數(shù)無返回值類型) 6.2.1任務(wù)目標(biāo)從鍵盤輸入車輛品牌,如果是比亞迪輸出國產(chǎn)新能源車,否則輸出不能辨別。任務(wù)目標(biāo)運(yùn)行截圖如圖6-2-1所示。圖6-2-1任務(wù)目標(biāo)截圖6.2.2知識(shí)儲(chǔ)備在使用函數(shù)時(shí),有時(shí)我們需要傳遞一些數(shù)據(jù)。這時(shí),子函數(shù)和主函數(shù)就會(huì)有參數(shù)使用。有參無返回函數(shù)的定義形式.void函數(shù)名(數(shù)據(jù)類型形參1,數(shù)據(jù)類型形參2,。。。。。。){聲明部分語句}主函數(shù)中調(diào)用的寫法函數(shù)名(參數(shù)1,實(shí)參2,。。。。。。)6.2.3典型案例典型案例1:從鍵盤輸入一個(gè)車牌,要求長度等于5,如果長度不等于5輸出不合格,如果等于5輸出長度合格。典型案例1的流程圖主要由二部分構(gòu)成,其中主函數(shù)流程圖如圖6-2-2所示,子函數(shù)判斷車牌長度流程圖如圖6-2-3所示。圖6-2-2典型案例1主函數(shù)的流程圖圖6-2-3子函數(shù)判斷車牌長度流程圖程序代碼:#include"stdio.h"#include"string.h"voidplatenumber_len(charplatenumber[]){ if(strlen(platenumber)==5) printf("車牌長度正確!"); else printf("車牌長度有誤!");}voidmain(){ charplatenumber[20]; printf("請輸入車牌號(hào):"); gets(platenumber); platenumber_len(platenumber);}典型案例1運(yùn)行截圖如圖6-2-4所示圖6-2-4典型案例1運(yùn)行截圖典型案例2:從鍵盤輸入一個(gè)數(shù)值,如果輸入1顯示比亞迪,如果輸入2顯示東風(fēng),如果輸入3顯示吉利,其它輸入顯示不確定。典型案例2的流程圖主要由二部分構(gòu)成,其中主函數(shù)流程圖如圖6-2-5所示,子函數(shù)判斷品牌如圖6-2-6所示。圖6-2-5典型案例2流程圖圖6-2-6判斷品牌流程圖程序代碼:#include"stdio.h"voidbrand_info(intn){ switch(n) { case1:printf("比亞迪");break; case2:printf("東風(fēng)");break; case3:printf("吉利");break; default:printf("不確定"); }}voidmain(){ intbrand_number; printf("請輸入品牌號(hào)(1位整數(shù)):"); scanf("%d",&brand_number); brand_info(brand_number);}典型案例2運(yùn)行截圖如圖6-2-7所示。圖6-2-7典型案例2運(yùn)行截圖典型案例3:從鍵盤輸入某品牌新能源客車1名駕駛員12個(gè)月的工資,并輸出。典型案例3的流程圖主要由三部分構(gòu)成,其中主函數(shù)流程圖如圖6-2-8所示,子函數(shù)輸入工資如圖6-2-9所示,子函數(shù)輸出工資如圖6-2-10所示。圖6-2-8典型案例3主函數(shù)流程圖圖6-2-9SEQ圖6-\*ARABIC輸入工資子函數(shù)流程圖圖6-2-10輸出工資子函數(shù)流程圖程序代碼:#include"stdio.h"voidinput_salary(floatsalary[]){ inti; printf("請輸入6個(gè)月的工資:"); for(i=0;i<6;i++) scanf("%f",&salary[i]);}voidoutput_salary(floatsalary[]){ inti; printf("該駕駛員6個(gè)月的工資:"); for(i=0;i<6;i++) printf("%.2f\t",salary[i]);}voidmain(){ floatsalary[6]; input_salary(salary); output_salary(salary);}典型案例3運(yùn)行截圖如圖6-2-11所示圖6-2-11典型案例3運(yùn)行截圖6.2.4任務(wù)分析與實(shí)踐任務(wù)目標(biāo)的流程圖主要由二部分構(gòu)成,其中主函數(shù)流程圖如圖6-2-12所示,子函數(shù)判斷是否是新能源流程圖如圖6-2-13所示。圖6-2-12任務(wù)目標(biāo)主函數(shù)流程圖圖6-2-13子函數(shù)判斷是否是新能源流程圖程序代碼:#include"stdio.h"#include"string.h"voidbrand_identify(charbrand[]){ if(strcmp(brand,"BYD")==0) printf("國產(chǎn)新能源車"); else printf("不能辨別");}voidmain(){ charbrand[20]; printf("請輸入車輛品牌:"); gets(brand); brand_identify(brand);}6.2.5動(dòng)手練習(xí)1.從鍵盤輸入兩名車輛得載重量,運(yùn)用有參無返回值方式求出最重得載重量。2.已知某輛車一個(gè)星期得載重量為{20,15,32,21,24,33,15},使用有參無返回值的方法計(jì)算這星期的總共載重量。課題任務(wù)6.3:根據(jù)車輛品牌,顯示銷售額(有返回值類型)課型講練授課班級(jí)授課時(shí)數(shù)2教學(xué)目標(biāo)1、了解模塊化程序設(shè)計(jì)的方法2、掌握函數(shù)的定義、聲明和調(diào)用3、能夠自行定義簡單的函數(shù)、按要求完成相關(guān)的功能4、有返回值類型主函數(shù)調(diào)用方法,子函數(shù)寫法教學(xué)重點(diǎn)1、模塊化程序設(shè)計(jì)的思想2、函數(shù)的定義、聲明和調(diào)用教學(xué)難點(diǎn)1、函數(shù)形參、實(shí)參的概念2、實(shí)參,形參之間的數(shù)據(jù)傳遞的學(xué)情分析函數(shù)這個(gè)知識(shí)點(diǎn)相對前面的其他知識(shí)點(diǎn)有很大的聯(lián)系。教學(xué)的時(shí)候首先要讓學(xué)生了解使用函數(shù)的優(yōu)點(diǎn),樹立模塊化的意識(shí),再進(jìn)一步介紹函數(shù)的其他知識(shí)。教學(xué)效果教后記任務(wù)6.3:根據(jù)車輛品牌,顯示銷售額(有返回值類型)6.4.1任務(wù)目標(biāo)下圖是幾種車輛的近半年的銷量數(shù),從鍵盤輸入車輛品牌,輸出銷售數(shù)。汽車品牌和銷售量如表6-SEQ表6-\*ARABIC3-1所示。表6-SEQ表6-\*ARABIC3-1汽車品牌的銷售量表汽車品牌數(shù)量吉利汽車1500838東風(fēng)日產(chǎn)1300592長城汽車915039北京現(xiàn)代790177任務(wù)目標(biāo)運(yùn)行截圖如圖6-3-1所示圖6-3-1任務(wù)目標(biāo)截圖6.3.2知識(shí)儲(chǔ)備我們?nèi)绻朐诎俣人阉饕恍﹥?nèi)容,那么會(huì)輸入需要搜索的內(nèi)容,結(jié)果就會(huì)在頁面上顯示我們需要的頁面。程序中也有很多這種情況,需要將子函數(shù)的數(shù)據(jù)返回,這就是有返回值函數(shù)。一般有以下兩種情況,第一種無參數(shù)有返回值,第二種有參數(shù)有返回值。1.無參數(shù)有返回值返回值類型函數(shù)名(){語句;return返回值;}主函數(shù)調(diào)用格式變量名=函數(shù)名();(變量名的數(shù)據(jù)類型和返回值的數(shù)據(jù)類型一致)2.有參數(shù)有返回值返回值類型函數(shù)名(參數(shù)1,參數(shù)2,。。。){語句;return返回值;}主函數(shù)調(diào)用格式變量名=函數(shù)名(實(shí)參);(變量名的數(shù)據(jù)類型和返回值類型一致)6.3.3典型案例典型案例1:某集團(tuán)駕駛員工資根據(jù)駕駛員的安全駕駛年限規(guī)定,安全駕駛0年3000元,1-3年4000元,4-7年6000元,8-10年8000元,10年以上1萬元,從鍵盤輸入安全駕駛年數(shù),輸出工資。典型案例1的流程圖主要由二部分構(gòu)成,其中主函數(shù)流程圖如圖6-3-2所示,子函數(shù)判斷車牌長度流程圖如圖6-3-3所示。圖6-3-2典型案例1的主函數(shù)流程圖圖6-3-3子函數(shù)判斷車牌長度流程圖程序代碼:#include"stdio.h"floatsalary_onfixed(intfixed){ floatsalary=-1; if(fixed<0)printf("輸入有誤"); elseif(fixed==0)salary=3000; elseif(fixed<=3)salary=4000; elseif(fixed<=7)salary=6000; elseif(fixed<=10)salary=8000; elsesalary=10000; returnsalary;}voidmain(){ intyear;floatsalary; printf("請輸入安全駕駛年數(shù)"); scanf("%d",&year);salary=salary_onfixed(year); printf("工資為:%.2f",salary);}典型案例1運(yùn)行截圖如圖6-3-4所示圖6-3-4典型案例運(yùn)行截圖典型案例2:從鍵盤輸入一個(gè)車牌,如果第一個(gè)字符是3,輸出是自選號(hào),否則輸出不是自選號(hào)。典型案例2的流程圖主要由二部分構(gòu)成,其中主函數(shù)流程圖如圖6-3-5所示.圖6-3-5典型案例2主函數(shù)的流程圖程序代碼:#include"stdio.h"#include"string.h"#include"stdlib.h"intPlatenumberisfree(charbrand[]){intresult=0; if(brand[0]=='3') result=1; returnresult;}voidmain(){ charbrand[10]; printf("請輸入車牌號(hào):"); gets(brand); if(Platenumberisfree(brand)==1)printf("是自選號(hào)");elseprintf("不是自選號(hào)");}典型案例2運(yùn)行截圖如圖6-3-6所示圖6-3-6典型案例2運(yùn)行截圖典型案例:3:從鍵盤輸入一個(gè)車牌,要求只包含數(shù)字和大寫字母,判斷是否合格。典型案例3的流程圖主要由三部分構(gòu)成,其中主函數(shù)流程圖如圖6-3-7所示,子函數(shù)判斷車牌長度流程圖如圖6-3-8所示,判斷是否含有5個(gè)數(shù)字和大寫字母流程圖如圖6-3-9所示。圖6-SEQ圖6-\*ARABIC32典型案例3主函數(shù)的流程圖圖6-3-8子函數(shù)判斷車牌長度流程圖圖6-3-9是否含有5個(gè)數(shù)字和大寫字母流程圖程序代碼:#include"stdio.h"#include"string.h"#include"ctype.h"intlen_islegal(charp_n[]){ if(strlen(p_n)==5) return1; return0;}intdigit_upper_islegal(charp_n[]){ intcount=0,i=0; while(p_n[i]!='\0') { if(isdigit(p_n[i])||isupper(p_n[i])) count++; i++; } if(count==5) return1; return0;}voidmain(){ charPlate_number[10]; printf("請輸入車牌號(hào):"); gets(Plate_number); if(len_islegal(Plate_number)&&digit_upper_islegal(Plate_number)) printf("車牌號(hào)合法!"); else printf("車牌號(hào)不合法!"); }典型案例3運(yùn)行截圖如圖6-3-10所示圖6-3-10典型案例3運(yùn)行截圖典型案例4:已知四種汽車品牌的近半年的銷量數(shù),輸出最大銷售數(shù)量。典型案例4的流程圖主要由二部分構(gòu)成,其中主函數(shù)流程圖如圖6-3-11所示,子函數(shù)求最值流程圖如圖6-3-12所示。圖6-3-11典型案例4的主函數(shù)的流程圖圖6-3-12求最值子函數(shù)流程圖程序代碼:#include"stdio.h"intsales[4]={1500838,1300592,915039,790177};intmax_sales(){ inti,max=sales[0]; for(i=1;i<4;i++) { if(max<sales[i]) max=sales[i]; } returnmax;}voidmain(){ printf("最大銷售數(shù)量是:%d",max_sales()); }典型案例4運(yùn)行截圖如圖6-3-13所示圖6-3-13典型案例4運(yùn)行截圖6.3.4任務(wù)分析與實(shí)踐任務(wù)目標(biāo)的流程圖主要由二部分構(gòu)成,其中主函數(shù)流程圖如圖6-3-14所示,子函數(shù)根據(jù)車牌輸出銷售量流程圖如圖6-3-15所示。圖6-3-14任務(wù)目標(biāo)主函數(shù)的流程圖圖6-3-15子函數(shù)根據(jù)車牌輸出銷售量流程圖程序代碼:#include"stdio.h"#include"string.h"charbrand_sales[4][20]={"吉利","東風(fēng)日產(chǎn)","長城","北京現(xiàn)代"};intsales[4]={1500838,1300592,915039,790177};intsearch_salesonbrand(charbrand[]){ intsalesnumber=-1,i; for(i=0;i<4;i++){ if(strcmp(brand,brand_sales[i])==0) { salesnumber=sales[i]; break; } } returnsalesnumber;}voidmain(){ charbrand[20]; printf("請輸入品牌:"); gets(brand); if(search_salesonbrand(brand)!=-1) printf("該品牌的銷售總量是%d",search_salesonbrand(brand)); else printf("無此品牌!");}6.3.5動(dòng)手練習(xí)1.從鍵盤輸入兩名車輛得載重量,運(yùn)用有參有返回值方法求出最重得載重量。2.已知某輛車一個(gè)星期得載重量為{20,15,32,21,24,33,15},使用有參有返回值的方法計(jì)算這星期的總共載重量。課題任務(wù)6.4根據(jù)駕駛員的工作年限,求工資的數(shù)額(嵌套和遞歸)課型講練授課班級(jí)授課時(shí)數(shù)2教學(xué)目標(biāo)掌握遞歸函數(shù)的算法運(yùn)用軟件開發(fā)方法提出問題,分析問題的能力;運(yùn)用各種開發(fā)工具調(diào)試程序。教學(xué)重點(diǎn)遞歸函數(shù)的算法教學(xué)難點(diǎn)遞歸函數(shù)的算法學(xué)情分析學(xué)生前面已經(jīng)學(xué)習(xí)的函數(shù)的方法,在講解循環(huán)中也引入了遞歸函數(shù),此個(gè)遞歸函數(shù)也許會(huì)和循環(huán)講解時(shí)產(chǎn)生問題,此處多注意他們的問題。教學(xué)效果教后記任務(wù)6.4根據(jù)駕駛員的工作年限,求工資的數(shù)額(嵌套和遞歸)6.4.1任務(wù)目標(biāo)已知駕駛員的工資和工作年限相關(guān),第一年每月的工資為5000元,以后每年增長10%,求第12年每月的工資。程序運(yùn)行結(jié)果如圖6-40所示。圖6-40程序運(yùn)行結(jié)果(上圖已修改)6.4.2知識(shí)儲(chǔ)備1.函數(shù)的嵌套調(diào)用在調(diào)用一個(gè)函數(shù)的過程中又調(diào)用另一個(gè)函數(shù)稱為“函數(shù)的嵌套調(diào)用”。示例1,函數(shù)的嵌套調(diào)用的示例代碼如下:#include<stdio.h>voidf1();voidf2(intn);voidmain(){f1();}f1(){f2(5);}voidf2(intn){inti;for(inti;i<=n;i++)rintf(“*”);}示例1的函數(shù)嵌套調(diào)用的示意圖如圖6-41所示。圖6-41函數(shù)的嵌套調(diào)用的示意圖2.函數(shù)的遞歸調(diào)用在調(diào)用一個(gè)函數(shù)的過程中,又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身稱為“函數(shù)的遞歸調(diào)用”。示例2:函數(shù)的遞歸調(diào)用的應(yīng)用。#include<stdio.h>voidf(intn){if(n==0)return;printf("%d\n",n);f(--n); //直接遞歸調(diào)用}voidmain(){intnum=5;f(num);}6.4.3典型案例典型案例1:某集團(tuán)對駕駛員的工資根據(jù)是否出現(xiàn)交通事故而制定,如果沒有出現(xiàn)交通事故,則駕駛員下一個(gè)月的工資會(huì)增加上一個(gè)月工資的10%。一個(gè)駕駛員1月的工資為3000元,假設(shè)該駕駛員全年都沒有出現(xiàn)交通事故,則計(jì)算這個(gè)駕駛員全年的工資(備注一個(gè)函數(shù)求和,一個(gè)函數(shù)求每個(gè)月的工資)。典型案例1嵌套調(diào)用示意圖如圖6-42所示。圖6-42典型案例1嵌套調(diào)用示意圖代碼如下:#include"stdio.h"doublesalaryincrease(intmonth){doublesalary=3000;inti;for(i=2;i<=month;i++)salary=salary*1.1;returnsalary;}doublesum_salary(intmonth){doublesum=0;for(i=1;i<=12;i++)sum=sum+salaryincrease(i);returnsum;}voidmain(){intmonth=12;printf("本年一共領(lǐng)取了%.2f工資",sum_salary(12));}典型案例1的運(yùn)行結(jié)果如圖6-43所示。圖6-43圖6-43典型案例1的運(yùn)行結(jié)果1)算法分析根據(jù)題意可知age(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論