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