前言:想要寫出一篇引人入勝的文章?我們特意為您整理了開展C語言程序設(shè)計教學(xué)探究范文,希望能給你帶來靈感和參考,敬請閱讀。
【摘要】C語言程序設(shè)計是一門重要的計算機專業(yè)基礎(chǔ)課程,結(jié)合實例開展教學(xué)能夠增加學(xué)生的學(xué)習(xí)興趣,提高學(xué)生的學(xué)習(xí)積極性。選取貼近學(xué)生日常生活的內(nèi)容或社會的熱點問題作為實例,更能提高學(xué)生的學(xué)習(xí)熱情。將東京奧運會這一熱點話題作為實例,淺談如何開展C語言程序設(shè)計的教學(xué)設(shè)計。
【關(guān)鍵詞】C語言;實例;教學(xué)設(shè)計;奧運會
0引言
C語言程序設(shè)計不僅是計算機大類中各專業(yè)的一門專業(yè)基礎(chǔ)課程,而且是非計算機專業(yè)的學(xué)生需要學(xué)習(xí)的主要程序設(shè)計語言課程之一。這門課程不僅要求學(xué)生掌握傳統(tǒng)意義上的程序編寫,更要求學(xué)生轉(zhuǎn)換求解問題時的思維方式,培養(yǎng)學(xué)生的計算思維。這門課程主要包括C語言的基礎(chǔ)知識和程序設(shè)計的基本方法。以實際問題的求解過程為引導(dǎo),以實際應(yīng)用為背景,在一個實際案例的不斷深化中逐步引出相關(guān)知識點,努力貼近學(xué)生,使知識點更加通俗易懂,案例內(nèi)容能夠緊密結(jié)合實踐,并引導(dǎo)學(xué)生舉一反三、融會貫通。在實際教學(xué)中,案例可以選擇貼近學(xué)生日常生活的內(nèi)容,例如,學(xué)生信息管理系統(tǒng)、學(xué)生食堂管理系統(tǒng)、學(xué)生成績管理系統(tǒng);或是社會的熱點話題,如近期的東京奧運會、河南洪水賑災(zāi)、疫情防控等,這些實例都可以被分解成很多細小的程序設(shè)計問題,然后穿插在課程的各個知識點中,增強學(xué)生對于知識點的進一步理解。下面以東京奧運會這一內(nèi)容為實例,淺談如何結(jié)合實例開展C語言程序設(shè)計的教學(xué)。
1教學(xué)設(shè)計
C語言程序設(shè)計按照章節(jié)安排,包括基礎(chǔ)知識、數(shù)據(jù)類型、格式化輸入輸出、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組、函數(shù)等部分,下面將選取其中部分章節(jié)的知識點,分析如何結(jié)合奧運會比賽中的實例進行教學(xué)設(shè)計。
1.1數(shù)據(jù)類型
在C語言中,數(shù)據(jù)有常量和變量兩種形式,基本的數(shù)據(jù)類型包括整型、實型、字符型和字符串型。在學(xué)習(xí)這個知識點時,可以結(jié)合奧運會中運動員各種不同數(shù)據(jù)類型的信息。例如,運動員的年齡信息保存為整型數(shù)據(jù),性別信息保存為字符型數(shù)據(jù)(F為女性、M為男性),國籍信息保存為字符串型數(shù)據(jù)(如中國的國家代碼為CHN),運動員的姓名信息保存為字符串型數(shù)據(jù),運動員參賽項目信息保存為字符串信息,等等。另外,還可以向?qū)W生解釋說明常量和變量的實際意義,如運動員姓名、年齡、國籍、參賽項目等一些不可以修改的數(shù)據(jù)為常量,運動員的最佳成績、體重等可以修改的數(shù)據(jù)為變量。
1.2格式化輸入輸出
鍵盤輸入和屏幕輸出是編寫簡單的順序結(jié)構(gòu)程序時最經(jīng)常用到的操作。在學(xué)習(xí)了通過調(diào)用輸入/輸出函數(shù)實現(xiàn)鍵盤輸入和屏幕輸出后,深入學(xué)習(xí)數(shù)據(jù)的格式化輸入輸出。格式轉(zhuǎn)換說明符包括帶符號的十進制整數(shù)說明符%d、字符說明符%c、字符串說明符%s、十進制小數(shù)說明符%f等,格式修飾符包括long型數(shù)據(jù)修飾符l、顯示精度的修飾符.n等。在學(xué)習(xí)這個知識點時,可以結(jié)合奧運會的不同運動項目在屏幕上顯示其比賽結(jié)果,例如,籃球比賽、排球比賽等球類比賽的結(jié)果是整數(shù),在屏幕上顯示結(jié)果時可以用%d;跑步比賽、游泳比賽等比賽的結(jié)果是精確到小數(shù)點后兩位,在屏幕上輸出結(jié)果時可以用%8.2f,這里的%8.2表示輸出數(shù)據(jù)所占的域?qū)挒?0,顯示的精度為2;在飛碟射擊比賽中,需要用O和X表示擊中和未擊中,在屏幕上顯示結(jié)果時可以用%c。
1.3選擇結(jié)構(gòu)
選擇結(jié)構(gòu)也稱為分支控制結(jié)構(gòu),包括單分支、雙分支、多分支選擇控制結(jié)構(gòu),所用到的語句包括if-else和switch。在學(xué)習(xí)這個知識點時,可以結(jié)合奧運比賽中成績的排序。對于2人(或兩隊)參加決賽的項目,如球類比賽,此時已知比賽得分,需要由此得出金銀牌得主分別是哪一隊,就可以用到if-else語句;對于4人(或4隊)參加決賽的項目,如皮劃艇的B組決賽,要想分出1~4名,可以用到if-else語句的嵌套使用;對于8人(或8隊)參加決賽的項目,如跑步?jīng)Q賽、游泳決賽等,想要分出1~8名,既可以用if-else語句嵌套使用,也可以為后面章節(jié)的數(shù)組排序做鋪墊。另外,在奧運會的游泳比賽中,很多項目的報名人數(shù)很多,如100米自由泳,進行預(yù)賽時會根據(jù)運動員的報名成績分成快組和慢組,因為如果比賽者能力參差不齊,不利于成績好的運動員的發(fā)揮,需要將水平相近的運動員放在同組,此時可以用到switch-case語句,將成績區(qū)間相同的選手放在同一組。
1.4循環(huán)結(jié)構(gòu)
循環(huán)結(jié)構(gòu)部分主要介紹計數(shù)控制的循環(huán)和如何尋找累加或累乘項(即通項)的構(gòu)成規(guī)律。循環(huán)結(jié)構(gòu)包括計數(shù)控制的循環(huán)、條件控制的循環(huán)和嵌套循環(huán)。在學(xué)習(xí)這個知識點時,可以結(jié)合奧運會中的射擊比賽,在計算最終成績時,需要將每一輪的環(huán)數(shù)相加,射擊的輪數(shù)會多達幾十輪,若使用普通的順序結(jié)構(gòu),程序會變得冗長,此時就需要用到循環(huán)結(jié)構(gòu),每一輪射擊結(jié)束后計算當(dāng)前總環(huán)數(shù)的方法都是本輪射擊環(huán)數(shù)加上本輪之前的總環(huán)數(shù),所以可以保證循環(huán)體內(nèi)執(zhí)行的操作完全一樣。在使用這個實例時,可以分別用for循環(huán)、while循環(huán)和do-while循環(huán)結(jié)構(gòu)進行編寫,并且可以比較這三種結(jié)構(gòu)下循環(huán)體有何異同。
1.5數(shù)組
數(shù)組是一組具有相同類型的變量的集合,例如,可以將8個參加游泳決賽的運動員成績存儲在內(nèi)存的一個連續(xù)區(qū)域中,使用一個統(tǒng)一的名字來標識這組相同類型的數(shù)據(jù),這個名字稱為數(shù)組名,如取名為result。在介紹選擇結(jié)構(gòu)時曾使用對奧運決賽成績排序的實例,當(dāng)數(shù)據(jù)數(shù)量較多時,使用if-else的嵌套就會使程序變得冗長,此時就需要引入數(shù)組,排序是數(shù)組的一個典型應(yīng)用,可以以對奧運會決賽成績進行排序為實例,分別使用選擇排序、冒泡排序和插入排序編寫對應(yīng)程序。另外,在學(xué)習(xí)二維數(shù)組時,可以結(jié)合運動員編號和成績這個實例,并且強調(diào)不能用姓名和成績,因為數(shù)組里的每個元素都必須是同一類型,姓名是一個字符串類型,與成績的數(shù)據(jù)類型一定不一樣。
1.6函數(shù)
在C語言中,函數(shù)是構(gòu)成程序的基本模塊。程序的執(zhí)行從main()的入口開始,到main()的出口結(jié)束,中間循環(huán)、往復(fù)、迭代地調(diào)用一個又一個函數(shù),每個函數(shù)分工明確、各司其職。在學(xué)習(xí)這個知識點時,可以使用奧運比賽中輸入成績,排序后,再顯示在屏幕上這個實例,以及前面章節(jié)的內(nèi)容。例如,已知入圍游泳決賽的8位運動員的半決賽成績,需要為他們安排決賽的道次,此時就需要調(diào)用輸入函數(shù)輸入8位選手的半決賽成績,再調(diào)用排序函數(shù)對成績進行排序,最后調(diào)用輸出函數(shù)將成績及分配的對應(yīng)道次顯示在屏幕上。
1.7自定義數(shù)據(jù)類型
對于數(shù)組而言,它只能存儲同一類型的元素,那在程序中要如何表示一位運動員的姓名、性別、成績等不同類型的信息呢?此時就要使用到自定義數(shù)據(jù)類型的結(jié)構(gòu)體類型。在學(xué)習(xí)這個知識點時,可以結(jié)合奧運會中選手信息存儲的實例,定義一個名為athlete的結(jié)構(gòu)體類型,結(jié)構(gòu)體的成員可以包括運動員編號longathleteID;運動員姓名charathleteName[10];運動員性別charathleteSex;運動員出生年份intyearOfBirth;運動員參加項目charathleteItem[10]等,結(jié)構(gòu)體可以將不同類型的數(shù)據(jù)成員組織在一起,形成數(shù)據(jù)結(jié)構(gòu),可以將運動員的不同數(shù)據(jù)類型的信息保存在連續(xù)的存儲空間中。
2結(jié)語
通過日常的教學(xué)實踐可以證明,采用一些社會熱點話題作為教學(xué)實例進行C語言教學(xué),可以將C語言中學(xué)生難以理解的概念性知識點、枯燥乏味的語法知識、復(fù)雜的程序結(jié)構(gòu)和繁多的算法,通過具體直觀的案例提高學(xué)生的學(xué)習(xí)興趣。奧運會是近期的熱點話題,用其中的實例輔助學(xué)生理解知識點,培養(yǎng)學(xué)生主動思考、主動學(xué)習(xí)的習(xí)慣,以提高C語言程序設(shè)計這門課程的教學(xué)效果,為后續(xù)其他的程序設(shè)計類課程打好基礎(chǔ)。
【參考文獻】
[1]王青松,張鑫琪,劉建.真實問題為導(dǎo)向的C語言課程教學(xué)改革實踐[J].遼寧大學(xué)學(xué)報(自然科學(xué)版),2020,47(4):319-324.
[2]劉路.C語言程序設(shè)計教學(xué)模式探索[J].福建電腦,2020,36(12):165-168.
[3]丁發(fā)紅.任務(wù)驅(qū)動法在《C語言程序設(shè)計》課程教學(xué)中的應(yīng)用研究[J].科技視界,2020(25):104-105.
[4]王倩麗.應(yīng)用型本科院校C語言程序設(shè)計教學(xué)改革探索[J].微型電腦應(yīng)用,2021,37(5):146-147.
[5]羅曉麗.淺談“C語言程序設(shè)計”趣味創(chuàng)新案例教學(xué)[J].科技與創(chuàng)新,2021(6):110-111.
作者:仲冰 單位:鹽城工學(xué)院信息工程學(xué)院