c語言程序設計實例范文

時間:2023-03-27 18:57:51

導語:如何才能寫好一篇c語言程序設計實例,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。

篇1

關鍵詞: C語言程序設計; 案例式教學; 計算思維; 能力

中圖分類號:G642 文獻標志碼:A 文章編號:1006-8228(2013)01-55-02

Study and practice of case teaching of C language programming

Xiong Qijun, Ning Bin, Gu Qiong

(College of mathematics & Computer Science Hubei University of Arts and Science, Xiangyang, Hubei 441053, China)

Abstract: A feasible project of case teaching is put forward for C language programming. Its application in teaching is illustrated from various aspects. The result shows that it plays a positive role in improving the students' programming ability, computational thinking ability and creative ability.

Key words: C language programming; case teaching; computational thinking; ability

0 引言

“C語言程序設計”課程是計算機及相關專業學生進入大學所學習的第一門專業基礎課程。教學實踐證明,該門課程對引領學生進入編程世界、掌握基本概念和原理、產生編程興趣和愛好、完成從傳統學科的思維方式向計算思維方式的轉變、培養編程意識、形成編程風格、提高編程能力等,起著決定性的作用。因此,加強對C語言程序設計課程的教學與研究至關重要。

我校自2008年提出“211”人才培養模式以來,對教學的研究與改革如火如荼,秉持理論夠用,重在實踐的原則,開展教學研究及實踐。針對C語言程序設計課程的教學,筆者曾提出了“四期六段教學模式”[1]、“多元教學模式”[2]等,有力地推動著教學的研究和改革。

1 案例教學法基本思想及特點

目前,案例教學被廣泛應用于醫學、法學和管理學等學科的教學之中。案例教學模式是一種互動式的教學方法,以案例分析為基礎,解決問題為主線, 教學內容圍繞案例的討論、分析逐步展開,通過對案例的剖析,激發學生的求知欲,調動學生的積極性,使學生主動地思考,讓學生充分討論并發表各自的見解,教師適時引導和評判,最后推導出結論[3]。案例是實現案例教學的前提和基礎,教學案例并不是簡單的舉例,不僅要求案例所涉及的知識點要豐富,并且要求案例具有針對性、系統性、可實踐性和啟發性。

由此可見,比起簡單的說教,將案例式教學引入程序設計語言的教學之中,可以起到示范、模仿、思考、啟發、應用、拓展的作用。

2 案例教學法在C語言教學中的應用

案例教學的一般過程是“提出案例-案例分析-要點講解-知識點導入-模仿-應用-拓展”。

2.1 通過案例上好第一次課

C語言教材的第一章是C語言概述,主要講述其發展歷史、特點、應用領域、程序結構、上機操作步驟等。在講授這部分內容時,不需要按部就班,因為計算機語言的發展歷史、特點是純文字的、抽象的、枯燥的,即使演講得天花亂墜,在現階段也是不能被學生所理解的,還可能讓學生產生厭惡、畏懼的情緒。

第一節課就通過案例直接切入主題:讓學生了解計算機解題的步驟、程序的基本組成和框架。

通過簡單的算術運算導入計算機如何解題。譬如計算圓的面積。先用口頭語言或文字進行描述:先需要給定圓周率、指定半徑;然后才是根據固定的計算公式進行計算;最后是顯示結果。這種一目了然的計算步驟,既展示了解題的算法,又體現了順序程序的基本結構,符合人的思維習慣,是容易被理解和接受的,在此基礎上,現場敲入代碼,添加頭文件、主函數,再進行編譯和運行。以這個實例為基礎,再去認識常量、變量、輸入輸出函數、主函數、語句等。這樣,圍繞一個簡單的例子,既演示了解題算法、也講述了程序的基本框架。上好第一節課,盡早將學生引入編程世界、盡早讓學生開始模仿編程、盡早讓學生建立程序框架的概念是可行的,也是必須的。

2.2 通過案例完成教學內容取舍和組合

以教材和教學內容為基礎,對教學內容進行適當的取舍和組合,起到降低難度、分散難點的作用。

⑴ 單純的語法教學向實用型教學轉變。C語言的語法規則繁多且復雜,初學者很難理解、記憶、明晰和掌握。在講述時可以化繁為簡,只講授最簡潔、常用的格式,且嵌入到實際的例子之中,而不是單獨去說教。譬如“輸入輸出的格式控制”,在教學中追求簡單和實用,暫時剔除復雜和靈活方面的內容。即化語法教學向實用化教學方向轉變。

⑵ 及早引入函數的概念和使用簡單的函數。將庫函數、自定義函數與數學上的函數進行類比,譬如“求平方根的函數sqrt”,明晰使用函數的原因和目標,再循序漸進地講述函數的名稱、參數和返回值等專業術語。

⑶ 及早引入指針和地址的概念。指針既是C語言的難點,也是其亮點,更是重點,及早建立指針和地址的概念和關系,了解指針最基本的用法,加強練習分散難點[4]。

⑷ 循環結構的程序設計是教學的重點和難點,必須列舉大量的案例,花大量的時間進行講授和練習。在講授和練習過程中,務必采用手工執行循環體的方式,寫下每次執行時循環變量、中間變量的結果,將循環體執行3到5次,循環體的功能自然能清晰明了。在這項技能掌握熟練之后,再講述單步跟蹤調試。學習過程中切忌“只動眼不動手”。攻克了循環結構,特別是多重循環這個難關,后續的函數、數組的教學就簡單多了。

2.3 通過案例逐步建立計算思維的思想

求和、乘積,是講述循環時的常例,求和時一般設置和的初值為0,乘積初值為1。必須將這個基本規律傳授給學生,并加以靈活使用。

計算機解題的算法雖然來源于數學,但更是數學知識應用的升華。

例如:如何將一個二進制數字串轉化成十進制數。可以這樣引入:一個5位十進制整數12048如何用數學式子表示?數學上可以這樣寫:1*104+2*103+0*102+4*101+8*100,這要進行多少次乘法和加法(禁止使用pow指數函數進行運算);如果寫成(((1*10+2)*10+0)*10+4)*10+8,需要進行多少次乘法和加法,誰的效率更高呢?由此再過渡到使用數組實現一個二進制數字串轉化成十進制數。

在這個案例中,并沒有高深的數學知識,只有思維的轉變。然而,形成計算思維是一個長期引導、積累、思索、實踐的過程,不能操之過急。

2.4 通過案例建立知識的關聯

求最值(最大值、最小值、次大值、次小值)的算法,從講授選擇結構時就可以開始灌輸和培養。從2個數、3個數求最值,到數組求最值,到選擇排序,都使用了這樣的思想——“將左手中握著的最值與右手中的一個個數進行比較、替換”,可見,知識之間存在強烈的內在聯系。早早地灌輸求最值的思想,為講授后續算法做鋪墊。

2.5 通過案例發現規律拓展應用

在講述循環結構的程序設計時,通過求1+2+3+…+n的值,可以過渡到求1+3+5+…的值,再過渡到求1-3+5-7+…的值,過渡到求1+(1+2)+(1+2+3)+…的值;從求1+1/2+1/3+…的值,過渡到求1+1/2+2/3+3/5+…的值……。通過舉例,讓學生學會觀察和分析,尋找項與項之間的關系和規律,學會觀察、思考、應用,最終達到舉一反三的效果。

2.6 通過精選案例收獲多重效果

精選案例,注重案例的實用性、趣味性、綜合性,能達到立竿見影、事半功倍的教學效果。

譬如:在講述關系運算、邏輯運算時,列舉的例子通常是簡單的關系運算或者關系運算的邏輯組合,雖然容易理解,但缺乏趣味性,難以引人入勝。我們可以引入一些推理題,如“誰做了好人好事”、“誰是罪犯”[5]。通過這樣的例子,既講授了基本的概念和原理,又列舉了知識的應用領域,極具實用性、趣味性、可引起學生的共鳴,自然能收到良好的教學效果。

3 培養能力綜合考核

為了提高學生對程序的編輯能力,必須要求熟練計算機基本操作技術。譬如:在實驗課上、在C語言的集成開發環境中,必須強調對Tab、Insert、Home、End等按鍵的功能和使用,因為它們能加快代碼編輯的速度和質量。

為了提高編程能力,必須增加課外學時,勤學苦練,將其與水滴石穿、冰凍三尺非一日之寒、點石成金進行類比,充分說明只有經歷大量的程序閱讀,編寫、調試練習,才能成就文如泉涌、火眼金睛。

為了真正檢驗學習效果,必須改變只憑一次考試決定該課程成績的做法。考試的次數要增加、考試形式要多樣化,可以是機考、筆試、單元測驗、答辯等,便于及時掌握教學效果,檢查、督促和改進。

4 結束語

教學實踐證明,采用案例教學,將抽象的概念、枯燥的語法、繁多的算法,轉化為一個個具體生動的實例,再加上學生多閱讀、多思考、多練習,就能夠很好地解決素質教學中倡導的“3W1H問題(what,where,why,how)”,使C語言程序設計課程達到良好的教學效果,從而使后續的程序設計類課程教學游刃有余。

參考文獻:

[1] 熊啟軍,袁磊,谷瓊.基于“四期六段”模式的C語言教學[J].現代計算機,2012.5:40-42

[2] 曹文平,熊啟軍.多元教學模式在C語言教學中的探索與實踐[J].教育理論與教學研究,2012.6:31-32

[3] 丁海燕,袁國武,周小兵,白孟堯.高級語言程序設計案例式教學模式的探討[J].計算機教育,2011.4:65

篇2

關鍵詞:C程序設計;歷奇教育;案例教學;項目驅動;教學模式

中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2017)17-0134-02

C語言功能豐富,表達能力強,以其豐富靈活地控制、簡潔高效的語句表達、清晰的程序結構、良好的移植性,被廣泛應用于系統軟件和應用軟件的開發中。C語言誕生時間雖早,面臨C#、Java等新興語言強有力的沖擊,但是C語言依然以其良好的底層操作、較小的時空開銷等優勢在互聯網+時代顯示出強大的生命力,成為現代軟件程序員中廣泛使用的編程語言之一,《c程序設計》也成為高等職業學校計算機類專業廣泛開設的一門重要專業課程。在軟件開發領域,IT企業對C語言程序員的需求量相當大,我國每年畢業的計算機專業學生雖然數量很多,但是企業依然難以招聘到可以直接上崗無縫對接的軟件開發人才。如何做好課程內容與職業標準對接、教學過程與生產過程對接,探索適合職業教育特點的有效教學模式成為重要研究課題。本文就《c程序設計》課程教學所存在的問題進行深入分析,探索新型有效的教學模式,使教學質量不斷提高。

1 C程序設計教學內容分析

《C程序設計》是理論實踐一體化專業基礎課程、課證融通類課程,是《數據結構》、《軟件工程》及其他編程語言類課程的前導課程,也是國家工業和信息化部計算機軟件水平考試程序員初級資格考試中要求的主要程序設計語言。課程開設的主要目的是使學生掌握一種基礎編程語言,了解c語言的基本開發要求,掌握C語言數據類型、結構化程序設計方法、數組及函數的使用、指針結構體、文件等基本操作。課程實踐性很強,既要掌握概念、理解原理,又要動手編程,使學生通過C語言的學習得到程序設計的基本訓練,進而為學習其他語言進行軟件開發打好基礎。課程學習難度大,需要以大量的案例、典型的項目以及良好的互動開展教學,運用豐富的教學手段提高學生的學習興趣,幫助學生理解掌握艱深的知識。

2高職學生學情分析

《C程序設計》作為專業基礎課程,一般在大學一年級開設,在傳授知識的基礎上還要培養學生踏實的工作作風,以及耐心、毅力和團隊合作精神。對于高職院校大一新生來說,學生普遍缺乏程序設計方面的知識基礎和邏輯思維,在剛接觸C語言程序設計時,會覺得軟件設計是新潮的高科技工作,在進行學習時情緒會相當高漲,很有學習熱情;但是當初學語言的新鮮感過去,面對艱深的編程語法即便是依然努力也是難以掌握,此時學生的厭學情緒就會接踵而來,在教學過程中跟不上教師的節奏,學習主動性和積極性不夠,甚至放棄學習。同時,學生解決新問題的能力不足,遇到課本上的例題或以前遇到過的問題可以很好地解決,但是一旦遇到新問題便不知如何下手,只能照搬照抄,不能靈活運用。

為此,剛開始接觸語法學習時,教師要根據學生的情況多通過相關案例和有趣的研討活動進行引入,從簡單的例子開始做起,采用少講多練的形式進行教學,多給學生提供練習語法的機會,讓學生逐步克服對編程的恐懼心理,隨著編程能力的逐步提升,學生的自信心也會不斷增強。

3基于歷奇教育理念的混合式教學模式設計

歷奇教育(Adventure Education)是指“在合作、互動、有趣的氛圍下,以自主參與、經歷體驗為基礎,在分享中生成、在探究中成長的教育新理念、教學新模式、學習新方法”。對于相對枯燥難懂的程序設計類課程,歷奇教育模式可以經過教師精心設計的一系列教學活動,通過學生的自主探究、協作學習和交流分享來活躍課堂氛圍,激發學生學習興趣,有效解決學生學習積極性不高的問題。基于歷奇教育理念,結合網絡教學、案例教學、項目驅動等教學方法,我們設計了一種適合本課程的混合式教學模式,以提高程序設計課程教學的效果。

3.1優化教學內容,開展案例教學

《C程序設計》課程當前有關的教材種類繁多,許多都是結合編寫者的經驗進行編寫,彼此之間內容差異不大,形式不夠新穎,特點不夠突出,甚至有的書本知識出現語言不通、內容不全和科學性錯誤;側重點也不盡相同,有的偏重于理論知識,有的偏重于實際經驗,適用性千差萬別。為此,教師在開展課程教學時應當認真選擇教學內容,注意其是否真的適合學生使用,章節編排必須保證合理,條理必須清楚,結構簡明扼要,講解的時候一定要遵循深入淺出的原則,既具備相應的實踐經驗,又要具有相應的知識完整度,要保證科學性不出現誤差,程序案例必須精心選擇和設計,難易適當,數量合適,既能用來進行教學,也方便學生自己課下自主練習。

在案例教學過程中,要經過對學生的實際情況進行了解之后再做決斷,選擇最適合的案例,對象是什么、類是什么、成員方法是什么、成員變量是什么,都要進行具體的思考,每節課要學習的知識點和要完成的教學任務都要合理安排,在案例講解和學生操作過程中要做好充分的指引,提供實訓指導書、實訓任務書給學生,把C語言程序設計相關知識凝練成相應的案例,最后將這些整合起來就形成完整的項目。在相應的案例后面布置一定的練習題,第一個練習應該將主要部分放在“仿”,第二個練習應該將主要部分放在“改”,這對第一個例子起著加工精簡的作用,第三個練習的主要部分應該注重“提高”,這樣能夠便于學生進行深刻的理解和有序的練習,從而增強學習的效果。

3.2精心設計活動,增強學習動力

作為一種程序設計語言,對學生的數學功底和邏輯思維能力要求很高,艱苦的編程工作會使學生精神高度緊張,在學習過程中學生會出現不知所措的局面和情緒較為波動的現象。因此,在進行知識點講解的過程中要把理論與實際案例相結合,盡可能使用形象生動的課件、動畫和微課等教學資源吸引學生注意力,盡可能運用歷奇教育理念組織研討分享和各種有趣的教學活動,使學生保持較強的專注力和學習興趣。每講完一組知識點,就應該及時歸納總結,并向學生提出相應的實際問題進行鞏固練習,讓學生能夠運用所學的知識來解決現實問題。

在這個過程中教師只是起引導的作用,對學生的大腦思維進行開發。這樣做能夠讓學生更加明確學習目標,將教學內容進行相應的規整,不斷降低教學難度。當學生看到自己的學習成果時,學生的成就感瞬間爆棚,從而使得學生學習的信心不斷增強,由此也對程序設計語言產生濃厚的興趣,讓學生明白自己W到了什么,什么還沒有學,下一步應該學什么,教師要讓學生明白自己的目標定位是什么,采用雙向互動教學方式,引導學生對自己的學習情況進行認識,這比只是掌握知識要重要得多。

3.3項目驅動教學,提高實踐能力

結合高職教育的教學目標和特點,《C程序設計》課程教學應當以“任務驅動”、“項目導向”模式為主,結合其他模式的不同特點,相互補充,目的是要幫助學生學會學習,提高能力。在項目教學中,學習過程成為一個人人參與的創造性的實踐活動,它注重的不是最終的結果,而是完成項目的過程。在課程教學過程中以任務或項目為中心,組織教學內容,通過講練結合,使學生在完成工作任務或具體項目的過程中學會知識的應用,構建相關理論知識,發展職業能力。

項目設計以學生編程能力的培養為線索來進行,突出對高職學生職業能力的訓練,理論知識的選取緊緊圍繞工作任務完成的需要來進行,同時又充分考慮高等職業教育對理論知識學習的需要,并融合了相關職業資格證書對知識、技能和態度的要求。通過系列教學項目,培養高職學生計算機編程基本思想、編程基本技能以及邏輯思維能力,掌握運用C語言編程來解決生活中實際問題的方法和步驟,為可持續發展能力和拓展職業空間打下堅實基礎。

篇3

關鍵詞: C 語言;匯編語言;混合編程

中圖分類號:TP313 文獻標識碼:A 文章編號:1006-4311(2014)24-0231-02

0 引言

匯編語言是一種面向機器的語言,其優點是運行速度快,占用存儲空間小,可直接對硬件進行控制。缺點是編寫、調試困難、移植性差。C語言簡潔、靈活、庫函數豐富、調試方便、移植性好,目前已被廣泛地應用于系統軟件和應用軟件的開發中,為了發揮各自優勢,取長補短,采用混合編程。大部分程序,如界面、人機接口(外殼程序)、數據處理等用C語言編寫,以提高程序的開發效率。而某些程序,如需要縮短程序的運行時間,或需要對硬件進行直接操作,或需要利用操作系統的某些功能模塊,或頻繁使用的程序、或需要占用內存空間少的程序(內核程序),則用匯編編寫,以提高程序的運行效率。

1 嵌入式匯編

嵌入式匯編也稱行內匯編,源程序中直接插入匯編語句。匯編語句可直接訪問C程序中定義的常量、變量、函數。不必考慮二者之間的接口,方便編程。

1.1 嵌入式匯編語句的格式

格式:asm操作碼 操作數[;或換行]

其中:操作數可以是匯編語句中的立即數、寄存器、表達式等還可以是C中的常量、變量、標號等。分號;是匯編語句結束符,并非注解,要用注解,用C的注解。如下例

所示。

1.2 匯編語句訪問C的數據

嵌入的匯編語句可以訪問C語言程序中的任何標識符,包括變量、常量、標號、函數名、寄存器變量、函數參數等。如下例所示。

1.3 匯編語言與C語言接口規則

1.4 編譯過程

命令行鍵入命令:TCC-B-Iinclude-Llib 文件名.c即可. TCC會自動調用TASM.EXE和TLINK.EXE,并且TLINK.EXE能正確的找到需要的.obj和.lib文件,要保證TC目錄下存在TASM.EXE文件。如果單步編譯,可能會碰到很多的問題,主要是TLINK.EXE不會自己去找.obj和.lib文件。該命令的功能是:.C編譯TCC.ASM匯編TASM.OBJ連接TLINK.EXE。

2 Turbo C模塊連接方式

C、匯編程序各自編程,各自編譯,然后連接在一起。

2.1 匯編語言與C語言接口規則

①命名約定:匯編的名字前加一個下劃線,C的名字前不加下劃線(編譯后內部自動加),以確保兩個模塊內部名字一致。

3 結語

混合編程,主要涉及接口,匯編調C的函數、全局變量。C調匯編的函數、變量。本文對此做了淺述。

參考文獻:

[1]譚浩強.C語言程序設計[M].清華大學出版社,2004.

篇4

關鍵詞:卓越計劃;C語言;教學方法;研究性教學

中圖分類號:TN70-4;G642

鑒于“C語言程序設計”這門課的重要性,以及目前在實際教學過程中這門課存在的亟待解決問題,在景德鎮陶瓷學院計算機科學與技術專業被立為江西省“卓越工程師教育培養計劃”的背景下,改革該課程的教學組織形式和教學方法,提高教學效果,為實施“卓越計劃”奠定堅實的基礎。

1 教學組織形式和教學方法改革

“C語言程序設計”這門課程是為計算機專業一年級本科生開設的專業必修課,景德鎮陶瓷學院信息工程學院在制定課程教學大綱時,理論教學32學時,上機實踐32學時。開設課程時間為大一第一學期,學生幾乎沒有任何的編程基礎知識。學生剛接觸時普遍認為這門課程難度較大,容易打擊學生的學習積極性并導致學習興趣不高。“卓越計劃”的目的是旨在培養適應社會需求,具有較強工程能力,實踐能力和創新能力的技術人才,因此需要在實際的教學過程中改變教學組織形式并進行教學方法改革,本文提出了五種教學組織形式和教學方法,如圖1所示,并將其貫穿于整個理論教學和實踐教學過程中。下面將結合具體的實例來介紹這些教學方法。

圖1 五種教學組織形式和教學方法

(1)啟發式。比如編程實現求圓的周長和面積。學生在學習了C語言的基本數據類型與表達式后,就可以寫出如下的程序。

void main()

{

float r,l,s,pi;

r=2.0;

pi=3.14;

l=2*pi*r;

s=r*r*pi;

}

這個例子中半徑只能固定為某一個值,如果半徑變了,需要修改程序。如果問題改成:從鍵盤輸入圓半徑,求圓的周長與半徑并輸出,要求圓的半徑可變。這樣給學生以啟迪,并引出了輸入輸出函數的教學內容,并可以調動學生學習這部分內容的積極性。

(2)探究式。假設a=3,b=5,編程實現交換兩個變量a和b的值。剛開始學生會寫出如下的程序。

void main()

{

int a=3, b=5;

a=b;

b=a;

printf(“a=%d,b=%d”,a,b);

}

程序運行后發現a和b的值都是5。實驗結果與預期的不一樣,這樣需要探究分析下出現這樣結果的原因,需要學生學會編程工具的調試功能,經過單步調試發現,執行完a=b這條語句后a的值已經是5,在執行b=a后,沒有將a原來的值3賦給b,而是將a新的值5賦給了b,再進一步的探究分析,原來a是變量,經過a=b這個賦值操作后a原來的值沒有了,這就需要定義個臨時變量int t 來存儲a的值,程序修改如下:t=a;a=b;b=t;

(3)討論式。在講授了利用循環語句求1到100的累加和之后,馬上給出思考題,求解100的階乘,然后讓學生進行分組討論,如何在1到100的累加和的程序上做修改,1到100的累加和的程序如下。

void main()

{

int s=0;

int i;

for(i=1;i

s+=i;

printf(“s=%d”,s);

}

經過五分鐘左右的討論后,絕大部分學生做出了兩處修改:s=1;s*=i;但是運行程序后發現結果與預期不一樣。老師經過引導,指出要注意變量的數據類型及范圍,學生經過討論后發現需要修改s的數據類型和輸出函數的格式控制字符串。經過討論和老師的引導后,首先對循環語句有了更深刻的了解,同時鞏固了之前所學的輸入輸出函數和數據類型這兩個知識點。

(4)參與式。在理論課教學時,主要以老師的知識點灌輸為主,學生參與較少,即使參與,多以簡單地回答老師的提問,偶爾會有一些老師引導式的討論,學生的主動性發揮得不夠。參與式教學方式中,將以學生為主,老師為輔。這種參與式教學方式主要在實踐教學中應用。因為上機實踐部分不同于理論教學部分,需要學生全身心的參與到程序設計開發過程中來,自己動手編寫程序。比如求ax2+bx+c=0的解。大多數同學在編寫該程序時,僅考慮到該方程有兩個實根的情況,未考慮到該方程有可能不是一元二次方程以及方程的根是虛根這兩種情況。學生只有參與到該程序的編寫當中,才知道在編程時需要全面考慮問題的各種可能性。

(5)合作式。經過了所有知識點的學習后,學生已基本掌握了程序設計的常用方法和編程技巧,也積累了一些編程和調試的經驗。但是之前的課程教學過程中以及上機實踐過程中所使用的例子都較為簡單,基本上學生個人可以獨立完成,然而現在的系統和軟件開發不是一個人所能完成的。因此為了進一步提高學生的動手能力、解決實際問題的能力,特別是團隊協作與合作能力。為此,設計了五個綜合性的應用程序設計實例,分別是簡易學生選修課程系統,可以進行方程求解和科學計算的計算器,簡單學生成績統計,班級學生通訊錄,商品庫存管理。模仿數學建模比賽,三個學生一個小組,分工協作完成功能描述與劃分、總體設計、詳細設計、程序編寫、總結報告等任務,讓學生充分地體驗合作式程序開發過程。

2 結束語

本文結合了C語言程序設計教學過程中典型的實際案例,介紹了啟發式、探究式、討論式、參與式、合作式等五種教學組織形式和教學方法,并在2013級計算機專業學生的C語言課程教學中進行了實踐,表明學生的編程能力、動手能力和協作能力得到了一定的提高,符合計算機科學與技術專業的“卓越工程師教育培養計劃”的目標。

參考文獻:

[1]朱福珍,楊自恒,蔣愛平,王曉飛,甄佳奇,付麗.基于“卓越計劃”的“數字圖像處理”課程教學研究[J].中國電力教育,2013(28):128-129.

[2]林健.面向“卓越工程師”培養的課程體系和教學內容改革[J].高等工程教育研究,2011(05):1-9.

[3]徐靜.卓越工程師培養計劃下“Java程序設計”課程改革[J].計算機時代,2013(09):65-66.

[4]白忠建,李巧勤.面向卓越工程師培養的C++教材研究與建設――兼談C++課程建設[J].教育教學論壇,2013(06):193-195.

[5]章義來,葉君耀.C語言程序設計[M].國防科技大學出版社,2011.

作者簡介:徐星(1984-),男,博士,副教授;柳炳祥(1966-),男,信息工程學院書記,博士,教授,碩導。

篇5

【關鍵詞】微課 C語言 程序設計

一、何謂微課

2008年美國的戴維?彭羅斯,運用建構主義理論,以在線學習或移動學習為目的,提煉課程要點,制成了十幾分鐘的微課并上傳網絡,從此微課被提出進入了大眾視野。我國廣東佛山教育局的胡鐵生,率先在國內提出了以“微視頻為中心”的新型教學資源這一理念。近年來隨著翻轉課堂的推行以及可汗學院在互聯網上推出的系列微視頻,微課在全球迅速走紅成為教育界關注的熱點話題。

“微課”是按照新課程標準及教學實踐要求,以“微視頻”為主要載體,針對某個知識點或教學環節而開展教與學活動,包括各種教學資源有機組合。

微視頻是微課的核心,為了使教學更有效,基于學生的認知特點和視覺駐留規律,時間長度控制在5~10分鐘左右。微視頻可以無論是在課前、課內、課后都可以使用。學生可以在課前先預習,這樣課堂上教師就可以把課內重點放在學生對知識的掌握吸收上,比如進行個性化的輔導、討論來解決問題。如果課上有些同學還想復習或者上課沒有聽清,課后都能夠繼續使用視頻、課件等資源進行學習。隨著手機、平板電腦等終端的普及,碎片化移動學習逐漸成為人們學習生活方式的主流,微課適合學習者自主學習、按需學習、個性化學習,既可查缺補漏又能強化鞏固知識,是傳統課堂學習的一種重要補充和拓展資源,真正做到了以學位本。

二、微課的具體應用

1.課程背景

C語言程序設計是高職計算機信息管理專業的一門專業基礎課,也是許多非計算機專業的主要選修課,是一門實踐性與應用性較強的課程,目的是培養學生算法設計的基本思想和程序設計的基本技能。但是根據筆者的實踐,許多同學學習編寫程序感到比較困難,上課也聽不懂,因此害怕編寫程序。通過與學生的交談,同事的交流,以及教學實踐,筆者發現主要原因是一方面是課程本身的邏輯性強,有一定的靈活性,課程本身有一定的難度,另一方面是學生在一開始學習的時候就不是很感興趣,學習也沒有成就感,就喪失了自信心。順序結構、選擇結構、循環結構是結構化程序的三種基本程序結構,其中編寫順序結構程序是后續學習編寫選擇結構、循環結構程序的基礎,正式學習編寫程序一般是從編寫順序結構程序開始的,很多同學由于一開始學編寫順序結構程序時學習不得法,不能真正理解如何來編寫程序,入不了門,在心理上害怕編寫程序,看到問題就無從下手,導致后續的學習沒有興趣,無法繼續后續的學習。微課展示時時間段、主題鮮明、內容簡潔,可以使學生在注意力較為集中的時期對教學重點和難點有一個較好的把握,也可以反復學習。針對以上這些情況,因此選取編寫簡單順序結構程序為題作為微課的內容。

2.微課在C語言程序設計中的教學設計實例

【微課名稱】

編寫簡單順序結構程序

【教學背景】

本知識點是計算機信息管理專業高職二年級《C語言程序設計》課程中的一個知識點,在學習該知識點之前要求已經掌握C語言的書寫格式和調試環境、常量和變量、數據類型、運算符表達式及輸入輸出函數。

【教學目標】

(1)了解順序結構程序的特點;

(2)理解簡單順序結構程序的編寫思路;

(3)學會編寫簡單的順序結構程序。

【教學重點】

(1)順序結構程序的特點;

(2)編寫簡單的順序結構程序的思路。

【教學難點】

靈活編寫簡單的順序結構程序。

【教學活動設計】

本微課采用演示法和講授法,從具體簡單的兩個整數的加法為例,先提出生活中怎樣完成求兩個整數的和。這個問題學生在小學就學過,肯定都能回答出來,即一個加數加上另一個加數得出和。接下來引導學生思考,如果把這個任務交給計算機程序來自動完成應該如何實現,由于不知道兩個整數具體是多少,也就是說這兩個參與運算的整數是可變的,所以可以定義兩個整型變量比如a和b來存放參與運算的兩個加數,由于加數是可變的,那么最終計算出的和也是可變的,所以還需要定義一個變量比如sum來存放最終的和,接著通過一個賦值語句sum=a+b;可以讓計算機自動把和求出來,最終為了讓結果顯示出來,還需要將結果輸出。通過一步步進行分析,了解為什么要寫這么一條語句,最終完成程序的編寫。為了讓學生對程序能進一步理解,我還對程序執行的過程進一步進行模擬,讓學生在程序執行的過程中看到每個語句起的作用,進一步理解該程序。雖然針對不同的問題,編寫程序的語句不同,但是順序結構編寫程序的思想還是一致的,通過編寫完成兩個整數的加法這個特殊的例子,最終歸納出一般順序結構程序的步驟:(1)定義需要的變量,使部分變量有值,可以通過賦值的方法,也可以通過輸入的方法。(2)根據具體的要求,讓計算機完成相應的操作或運算。(3)將最終得到的結果輸出,給出問題解決所需要的結果。

這是一個由特殊到一般、由簡單到復雜的過程,符合學生的認知規律。為了檢驗或評價學習的效果并鞏固所學內容,課后還安排了練習(微課學習任務單并附有答案),旨在引導學習者學會編寫簡單的順序結構程序,達到觸類旁通、舉一反三的效果,在設計該微課任務單時,安排的練習也是從簡單到復雜,在難易度上有一定的梯度,方便學生循序漸進的練習。該微課配套的學習資源主要有微視頻、課件、微課學習任務單。

附:任務單

微課學習任務單

【教學反思】

1.收獲

制作微課對于教師的個人專業化成長是有很大的幫助的。首先需要教師轉變教學理念,在教學過程中教師是真正的主導者,學生是學習的主體,現在的學習必須具有更高的實效性。本微視頻采用的是超級錄屏軟件結合power point 2007來制作的,實現起來比較簡單。通過此次微課的制作與實踐,筆者對于微課的概念有了進一步的理解,也熟悉了微課設計與制作的流程。在制作微課的過程中,為了制作微視頻,我還熟悉了微課制作的幾個小軟件,比如:超級錄屏、Camtasia Studio、屏幕錄像專家等。另外,在選題時,需要仔細斟酌,要思考選取哪個知識點來作為微課程的內容,可以針對教學的難點,也可以針對教學的重點,在這個思考的過程中,又加深了教師對教材知識內容的進一步理解。

當然微課的受益者還是學生,由于選取的內容出發點門檻比較低,從簡單的例子引到計算機程序,一定程度上幫助學生化解了學習的難度,提高對學習的自信心。另外本課程內容有一定的實踐性,學生在學習的過程中也可以動手體驗,一定程度上也能提高學習者學習的參與度。有了微視頻、課件等教學資源,學生可以反復學習和使用,無論在課堂內外,都能學習,能幫助接受能力弱的同學慢慢學,學會“知新”;能幫助所有同學重新回顧課堂上所講內容,學會“溫故”。如果學生在課前提前預習,教師上課的時間就可以主要花在讓學生對知識進行消化、吸收與促進上,課堂的形式可以有互動討論、答疑解惑等多種形式,而不是純粹的知識講解,這能讓學生的學習相對原來的傳統學習更具有有效性,一定程度上也幫助學生慢慢養成自主學習的習慣,使課內學習與課外學習相互銜接,滿足學生的個性學習和共性學習。

此次微課實施后,從學生的微課任務單以及學生的反映來看,效果相對于傳統的教學都不錯,對學生的幫助還是比較大的。

2.不足

本微課雖然通過簡單通俗的例子把問題講清楚了,但是由于學習的內容還不能直接作用于生產生活,在教學的實用性方面還有所欠缺。另外,內容在激發學生學習的興趣方面還需要下功夫,還不能達到引人入勝的效果。

三、結束語

微課作為一種新型的學習形式和資源,無論對老師還是學生都是一種機遇,在C語言程序設計課程教學中,要真正做到增強學習效果,需要全面使用微課這種資源還需要開發系列化的微課程,形成本門課程的微課“資源庫”,并在教學實踐中逐步加以提高和完善,這也需要更多的時間和精力。本文是筆者在本門課程中的初次應用,還存在許多的不足,需要不斷地完善和思考。

【參考文獻】

[1] 汪瓊. 微課關鍵在課不在微,《中國教育網絡》,2013(10).

[2] 黎加厚. 微課的含義與發展,《中小學信息技術教育》,2013(04).

[3] 陳磊、魏林. C語言課程中循環嵌套的微課教學設計與思考,《科教導刊》,2014(12).

篇6

關鍵詞:For語句 循環結構 條件表達式

1、for語句的表達形式

for(表達式1;表達式2;表達式3),3個表達式的主要作用:表達式1設置初始條件,只執行一次;表達式2循環條件表達式,用來判斷程序是否繼續執行,在每次執行循環體前先執行此表達式,決定是否繼續執行循環體;表達式3是對循環的調整,是在執行完循環體后才進行的。所以我們可以對for語句這樣理解 for(循環變量賦初值;循環條件;循環變量自增或自減)例如:

for(i=1;i

sum=sum+i;

其中i=1是給循環變量賦初值1,i

(1)for語句表達形式中的表達式1可以省略,但表達式1后邊的分號不能省略。例如:

for(;i

(2)for語句表達形式中的表達式2也可以省略,但表達式2后邊的分號不能省略。即不設置和檢查循環結束的條件。例如:for(i=1; ;i++) sum=sum+i;此時循環無終止的進行下去,也就說表達式2一直為真.

(3)表達式3也可以省略,但此時程序設計者應另外設法保證循環能正常結束。

(4)表達式1和表達式3都沒有,只有表達式2,即只給出循環結束條件。對于沒有表達式1和表達式3的for循環語句,為了讓循環正常執行,應當在for語句前給循環變量賦初值。 從此處我們可以看出for語句比while語句功能更強大,除了可以給出循環條件外,還可以賦初值,使循環變量自動增減等。

(5)表達式1、表達式2和表達式3都可以省略。例如:for(; ;) printf(“%d\\n”,i);

相當于 while(1) printf(“%d\\n”,i);即就是不設初值,不判斷表達式2的條件(表達式2始終為真),不改變循環變量。這樣程序就無終止的執行循環體語句。顯然這樣的程序是沒有任何價值的。

(6)表達式1可以是設置循環變量初值的賦值表達式,也可以是與循環變量無關的其他表達式。

例如:for(sum=0;i

(7)表達式1和表達式3可以是一個簡單的表達式,也可以是逗號表達式,即就是包含一個以上的簡單表達式,中間用逗號隔開。

如:for(sum=0,i=1,i

(8)表達式2一般是關系表達式(如i

①for(i=0;(ch1=getchar())!=’\\n’;i+=ch1);在表達式2中先從終端接收一個字符賦給ch1,然后判斷這個賦值表達式的值是否不等于‘\\n’(轉移字符 換行),如果不等于’\\n’,就執行這個循環體,它完成的作用是不斷輸入字符,將他們的ASCⅡ碼相加,直到輸入一個“換行”符為止,程序結束執行。這里我們要注意的是:此時for語句的循環語句為空語句,把本來要在循環體內處理的內容放在表達式3中,作用是一樣的,可見for語句功能的強大,可以再表達式中完成本來應在循環體內完成的操作。

②for(;((ch1=getchar())!=’\\n’;) printf(“%c”,ch1);這個for語句中只有表達式2,而無表達式1和表達式3.它的作用是每讀入一個字符后立即輸出該字符,直到輸入一個“換行”為止。

運行情況: Computer((輸入) Computer(輸出)。這里我們要注意的是:從終端鍵盤向計算機輸入時,是在按Enter鍵以后將一批數據一起送到內存緩沖區去的。因此輸出結果不是CCoommppuutteerr,即不是從終端輸入一個字符馬上輸出一個字符,而是在按Enter鍵后數據才送入內存緩沖,然后每次從緩沖區讀一個字符,再輸出該字符。

從上面的介紹我們可以看到,C語言的FOR語句使用非常靈活,變化多端。C語言的FOR語句比其他語言中的for語句靈活和強大的多。可以把循環體和一些循環控制無關的操作也作為表達式1和表達式3的出現,這樣程序可以比較簡潔。

2、for語句的執行過程

(1)先求解表達式1.

(2)再求解表達式2,如果表達式2為真,則執行FOR語句中的循環體,然后執行(3),如果為假,則循環結束,轉到第(5)步。

(3)求解表達式3.

(4)轉回步驟(2)繼續執行。

(5)循環結束,執行for語句下面的一個語句。

3.種循環的比較

(1) 在處理循環語句中,while、do-while和for 都可以用來處理同一個問題,一般情況下他們3個可以互換。

(2)在while循環和do-while循環中,只在while后面的括號內指定循環條件,因此為了使循環能正常結束,應在循環中包含使循環區域結束的語句。For循環可以在表達式3中包含使循環趨于結束的操作,甚至可以將循環體重的操作全部放到表達式3中。因此for語句的功能更強,凡是while循環能完成的,用for循環都能實現。

(3)用while和do-while循環時,循環變量初始化的操作應在while和do-while語句之間完成。而for語句可以在表達式1中實現循環變量的初始化。

(4)while、do-while和for循環,都可以用break語句跳出循環,用continue語句結束本次循環。

4.種循環舉例:求1+2+3+……+100,即∑100n=1n

(作者單位:陜西國際商貿學院)

參考文獻:

[1]《電腦知識與技術》2009年第24期。

篇7

[關鍵詞]STC51 DHT11 LCD1602

中圖分類號:TP274 文獻標識碼:A 文章編號:1009-914X(2016)24-0105-01

引言

溫度、濕度和人類的生產、生活有著密切的關系,同時也是工業生產中最常見最基本的工藝參數,例如機械、電子、石油、化工等各類工業中廣泛需要對溫度濕度進行檢測與控制。隨著人們生活水平的提高,人們對自己的生存環境越來越關注,空氣中溫濕度的變化與人體的舒適度和情緒都有直接的影響,所以對溫度濕度的檢測及控制就非常有必要了。

1.總體方案設計

按照系統功能的具體要求,在保證實現其功能的基礎上,盡可能降低系統成本。總體設計方案如圖1所示。從圖中可以看出,系統設計以STC51單片機為控制核心,包含微處理器模塊、DHT11溫濕度傳感器模塊、閾值設置模塊、1602字符液晶顯示模塊、報警模塊。

2.系統硬件設計

2.1 DHT11傳感器模塊接口電路設計

DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器。它應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性與卓越的長期穩定性。單線制串行接口,使系統集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上。

DHT11傳感器與單片機采用單總線的方式進行通訊。由于測量范圍電路小于20米,在DHT11傳感器的DATA引腳接一個10K的上拉電阻后直接與51單片機的P2.0引腳連接。

2.2 1602液晶顯示模塊設計

液晶顯示原理是利用液晶物理特性, 通過電壓對其顯示區域控制,有電就有顯示,這樣即可以顯示出圖形。LCD1602液晶是一種工業字符型液晶,能夠同時顯示2行,每行16個字符。在本系統中,第一行顯示測量的溫度和濕度值,第二行顯示溫度上下限值和濕度上下限值。當溫度或濕度超過設定范圍是,該測量值閃爍顯示。

LCD1602液晶顯示器與單片機采用并行通訊方式。單片機的P0口與LCD1602的8位雙向數據端即第7~14腳相連,單片機的P1.0~P1.2與LCD1602數據通訊控制口RS、RW、EN腳相連。

2.3 閥值設置和報警電路設計

該溫濕度測試儀閥值的設置通過按鍵來完成,設置內容包括溫度上、下限和濕度上、下限四項內容。設計了K1、K2、K3、K4四個按鍵。K1為設置鍵,該鍵按下進入設置狀態,設置項閃爍顯示,再次按下此鍵退出設置狀態;K2為切換鍵,按下K2切換設置的項目,設置項目在四個之間輪換;K3為加一鍵,按下該鍵設置值在原來的基礎上加一;K4為減一鍵,按下該鍵設置值在原來的基礎上減一。由于按鍵數量比較少,而且單片機I/O口資源充足,在本系統中采用獨立式按鍵接口設計,按鍵一腳接地,另一腳與單片機的P2.0~P2.3相連。

報警采用蜂鳴器鳴叫和指示燈閃爍來實現,當測量的溫度或濕度超過設定的上限或下限則發出報警。蜂鳴器和指示燈分別與單片機的P2.4、P2.5相連。單片機引腳的驅動電流比較小,不足以驅動蜂鳴器工作,因此采用三極管C9013驅動蜂鳴器發聲。

3.系統軟件設計

該溫濕度測試儀的軟件分模塊設計,包括主程序、鍵盤掃描處理程序、顯示程序、溫濕度測量處理程序、聲光報警程序組成。

3.1 主程序設計

該系統的主程序流程圖如圖2所示。系統上電后對單片機I/O口、LCD1602、溫濕度傳感器進行初始化設置。在主循環中單片機循環執行讀取溫濕度傳感器的測量數據,對測量數據進行處理計算得到當前的溫度和濕度值;單片機執行按鍵識別與處理程序;溫濕度及溫濕度的上下限送LCD1602顯示;測量的溫濕度值與閥值進行比較,如果超出閥值范圍則發出聲光報警。

3.2 傳感器模塊程序設計

DHT11作為新型的單總線溫濕度數字傳感器控制方便。總線空閑狀態為高電平,主機把總線拉低等待DHT11響應,主機把總線拉低必須大于18毫秒,保證DHT11能檢測到起始信號。DHT11接收到主機的開始信號后,等待主機開始信號結束,然后發送80us低電平響應信號。主機發送開始信號結束后,延時等待20-40us后, 讀取DHT11的響應信號,主機發送開始信號后,可以切換到輸入模式,或者輸出高電平均可, 總線由上拉電阻拉高。總線為低電平,說明DHT11發送響應信號,DHT11發送響應信號后,再把總線拉高80us,準備發送數據,每一bit數據都以50us低電平時隙開始,高電平的長短定了數據位是0還是1.格式見下面圖示.如果讀取響應信號為高電平,則DHT11沒有響應,請檢查線路是否連接正常.當最后一位數據傳送完畢后,DHT11拉低總線50us,隨后總線由上拉電阻拉高進入空閑狀態。

4 結論

本文在論述了溫濕度測試儀系統的總體設計方案,根據這個方案完成了系統的硬件和軟件設計、應用程序的編寫及調試,經實際運行驗證,取得了滿意的效果。

參考文獻

[1]張秀國.單片機C語言程序設計.北京大學出版社.2008。

篇8

1微課建設總體思路

如果需要將一門課程建設成微課程的形式到網上,讓更多的人方便學習,需要做的第一步就是選題,,即站在一門課的整體內容的角度,梳理整個框架,摘出課程中所有可以作為重點、難點或易錯點的知識點,作為微課選題的目標范圍;第二步,是對每個串起來就能掌握整個課程內容的知識點進行精心設計,包輯如何導人、如何展示、.如何交互等;第三步,根據設計結果,采用合適的制作工具,制作出一個一個小而精的微視頻,并配上學習任務單(與微課程配套的學案,主要包括學習目標、學習資源、學習方法、學習任務、學習反思和后續學習預告),加上片頭片尾,那么,一個完整的微謀程系列就出爐了

2微課教學設計三部曲

在制作微視頻之前,先要進行微:課的教學設計,就像蓋樓一樣,要先對未來的大樓進行設計規劃,有了設計圖,下一步就可以按照設計圖施工了u同樣的道理,有了微課的設計結果,就可以按照這個結果制作微視頻了u如果你想做個精致、實用、符合教學規律的微課視頻甚至是系列,就需要前期做精心設計u傳統的教學方式是在一節課50分鐘或45分鐘之內講解幾個知識點,包括導人、講授、活動、評價及小結等環節,這些也同樣適用于微課,只是微課程只涉及1個知識點,時間在8分鐘之內因此,微課教學更需要在財間、語言、展示、手段等方面進行精煉、精確和精彩的設計與安排,設計的越詳細越到位,將來的微視頻制作才更有的放矢u那么,針對一般敎學的導人、講授和小結三個環節來看看分別需要考慮哪方面的設計

2.1導入

在講授一個新知識點的內容時需要通過某種方式介紹給學生,包括為什么要學習這方面的內容(必要性),該內容在什么情況下需要用到(情景或背景)等等u因此,導人的方式可以有問題導人、情景導人、故事導人、目標導人等等具體采用哪種導人方式還要看內容本身的需要,但不管哪種導人都要遵循時間短、簡明扼要、流暢銜接、目標明確的特點,以符合微課小而精的碧求

2.2講授

將課程內容導人之后,下一步就是以流暢的銜接方式進人講授環節u這個環節可以融人教師豐富的教學經驗和個性的教學風格,在有限的時間內將知識點的主要內容進行講解和展示4語言方面,盡量聞練、準確、能風趣幽默一些更好;思路要清晰明了;簡單的內容點到為止不必啰嗦,復雜有難度的內容可以用案例法、類比法、舉例法、演示法、操作法等教學方法以直觀、形象、通俗易懂的方式講解;展示手段可以用文字、表格、圖表、動畫、實物、實驗、截取視頻直播、現場操作等方式;對于啟發性教學,還需要設計恰當的交互環節總之,教師在這個環節可以充分發揮自己的教學特長,如高超的內容組織編排能力、一流的口才、強大的動手操作能力、豐富的想象力、時間的把控力等。

2.3小結

最后用1分鐘或半分鐘的時間對整個知識點內容做一個簡短的小結,包括重點、難點、易錯點的總結、步驟思路的梳理、課后思考或內容引申等,主要是起到點睛或提綱挈領的作用u這個環節雖然簡短,但卻必不可少。

3微課教學設計實例

以《C語言程序設計課程中“數組與指針”一節中的“用指針訪問一維數組”知識點給出具體的微課設計實例供同行參考下面具體展示該設計實例主要包括的幾個部分。

3.1選題意圖

“用指針訪問一維數組”知識點是該課程的“指針”一章中的教學重點和.教學難點,指針和數組不僅是C語言中的兩種重要數據類型,也是C++、C#等其他竄言中必備的數據類型,而且在實際編程中因指針訪問數組對于提升算法的空間效率和時間效率效果顯著,因此,如果將該知識點做成微課形式,貝不但提升授課效果,而且可以服務學生的課后鞏固復習,幫助學生強化二者的基:本概念、使用操作及應用技巧,為學生在今后的編程過程中提升和優化軟件功能奠定基礎u

3.2教學目標

教學目標包括:①領悟理解用指針訪問一維數組的好處;②識別記憶如何定義指向數組元素的指針變量并賦值;③簡單應用方面,能夠用指針訪問一維數組元素來實現,如比較大小、排序、矩陣操作等u

3.3教學過程及設計意圖

該過程共需6分鐘,分7步進行,具體見圖3~6該過程按照前面所述的導人、講授、小結的順序進行設計,并在講授環節使用了多種教學法

3.4設計亮點

該實例的設計亮點有5個:①在導人和講授環節融人了多達9種的教孛方法,尤其在講授環節,采用溫故知新法引出需要的前期知識即一維數組和指針變量的定義,然后使用陳述法并穿插對比法和歸納法說明指向一維數組的指針變量的賦值與引用方法,有了這個基礎,下一步就是如何應用了u因此使用舉例法結合圖示法說明應用過程,之后采用列舉法說明注意事項,這樣,主要知識點都講授完畢,花一點時間做個小結梳理,從思路上將應用要點串一遍,形成4匡架知識(歸納法),最后,為了讓學生加深對下標法和指針法表示數組元素的區別理解,設計一個練習題和一個思考題加以鞏固(練習法);②本知識點的選取原則既考慮到內容的重點性和難點性,叉考慮到該知識點對后續知識學習的鋪墊功能;③媒體選擇了圖示法和程序法,將課件中的部分內容直接展示于此,有利于描述的直觀性和簡潔性;④在互動環節設計了課堂絳習和思考題;⑤梳理了整個教學過程框架:問題導人->講授:先概念、后使用、再應用->小結:梳理重點和思路。

4結束語

篇9

人物語錄:或許對于他人來說,軟件編程是一件復雜且需要無限耐心的工作。但對于我來說,軟件編程是一件非常有趣的事情,特別是在解決程序中某個BUG的時候,所體驗到的成就感是無法用言語描述的。

不知是因為日常生活太平凡,還是因為人們的思維易于停滯,大多數人總是善于“習慣”。因習慣,而“視若無睹”;因習慣,而“毫無創新”。 羅曼?羅蘭曾說過:“唯有創造才是快樂,只有創造的生靈才是生靈。”作為軟件工程師的陳杰,大概就是一位如上所說的“生靈”。在筆者與其談到為何要以“孤膽”作為自己的網名時,這位低調的軟件工程師說:“ ‘孤膽’其實是我在學生時代為了轉換心情而玩的一個游戲。在那個時候,我就憧憬自己可以成為一名擁有孤膽膽魄,但不封閉自我內心的人。”

“”曾經瘋狂的快樂時光

雖然筆者與陳杰是第一次交談,但完全沒有感到拘束或是無法順暢交流的壓迫感。在交談中,陳杰興奮的說起上學時候的事,“在上學時,我的學習成績處于中等偏上,一旦學習起來,就會完全置入其中。記得有一次寫項目,早上7點我就起床開始敲代碼,一直到晚上10點,除了去了幾趟廁所,我基本上就沒有離開過電腦。午飯也是請人送來的,那段日子我非常地瘋狂,也許那段時光是我為數不多的快樂時光。”陳杰在說這句話的時候,他自己或許并沒有發覺到,他的語氣與神情中,正透露出他品質中某種堅定的意念,也正是由于這樣的意念令他在將來的軟件編程的工作中,感到樂趣無窮。

原本,陳杰在大學期間所學的專業是機電一體化,畢業后,學校將其分配到合作單位――中國核工業建設集團做技術員。在回憶那段經歷時,陳杰的語氣中顯露出成熟。“第一份工作地點是在深圳的一個郊區,每天坐著班車來回。由于去市區一趟要來回6、7個小時,因此,大多數休息時間我都是在宿舍里度過的。在這家公司里,我的工作職責是負責核電站內設備的安裝,具體主要是負責電氣隊一組施工材料的申請;核實倉庫到貨情況;與不同部門協調、溝通等。第一份工作我大概做了1年,就主動辭職了。因為我覺得再這樣下去,只是在無意義的消耗自己的生命。人生的成長難道不是在于不斷地前進嗎?我對自己主動辭職這件事情,一點也不后悔。”

便捷的“奢華”源自幕后英雄

結束了第一份工作,陳杰來到了南京,經過一段時間的考慮后,他決定到北大青鳥學習軟件工程。當筆者問其在軟件工程的學習中最大的樂趣是什么時,陳杰笑著說,“學習軟件工程的樂趣在于,計算機能夠按照我的指示做出相應的反應。”

軟件工程培訓課程結束后,陳杰成功進入一家500強企業,總公司位于德國,中國總部位于上海。新的工作,新的工作職責,對于陳杰來說,意味著新的挑戰與機遇。“在新公司里,我的工作主要是根據項目經理的設計實施開發。我還清晰得記得,有一次需要改一個業務需求,當我拿到這個需求之后,發現其中的代碼有不少問題,改了兩天也沒有搞定,最后,我重構了那個業務需求的代碼。同事知道后說真佩服我的勇氣,因為我所重構的業務需求中所包含的代碼真的十分多,并且還需要理解原先的開發者思路。但我個人認為,比起不斷地給程序打補丁,重構代碼更有長遠意義。”

在說起新工作時,筆者發現陳杰顯得很活潑,而不再是之前他自稱的“低調”。在談論到新工作的成就時,陳杰表示說:“軟件工程師其實是一份十分需要耐心與技術的工作。說到這份工作的成就,我會不自主地聯想到‘幕后英雄’這個詞來。”

交談中,陳杰很興奮地向筆者介紹了時下熱門的電子購物方式的“隱秘”。他說,“喜歡網絡購物的人都知道淘寶商城,便捷且安全的購物模式越來越受到人們的青睞。但其實,普通大眾都只是看到最表面的東西,即見即所得的東西。買家拍下的某個訂單是如何出現在賣家的后臺,賣家后臺中的多個訂單又是如何高效運作等這類問題,我相信大多數人都沒有考慮過。但這些問題恰恰是我作為軟件工程師的工作。”

作為一名“風頭正勁”的職場奮斗者,陳杰說了自己的從業體會:“自從成為了軟件工程師,我學會用簡單的方法解決復雜的問題。這一點對于是否能夠成為優秀的軟件工程師是尤為重要的。因為一段簡潔、清晰的代碼將可使程序使用者感受到更為舒適、快捷的操作體驗。”

大多數人都知道,軟件工程師是一份十分枯燥的工作,一定要耐得住寂寞才能有所作為。陳杰對此深有體會,在采訪即將結束時,他告訴筆者,“每天面對著如蝌蚪般的代碼,是一件非常鍛煉人的事情。除此之外,與領導通過郵件溝通這項日常工作也非常能鍛煉人,因為你要非常清晰地描述自己已經做的工作,在工作中發現的問題,以及解決這些問題的方法。若一個人不具有清晰的邏輯思維,很容易將郵件寫的雜亂無章,直接影響工作效率。”

期待和自己喜歡的人牽手同行

在對陳杰采訪結束后的當天晚上,他給筆者發了一份與上司溝通的郵件。郵件的內容如陳杰之前所說的一樣,邏輯思維十分清晰,不同重點與注意事項也用不同的顏色標注了出來。在郵件的末尾處,陳杰說:“比起名牌的大學畢業生,我可能微不足道。但是我相信,每個人都有只屬于他的閃光點,而人的一生就如走在旅途中尋找自我的閃光點一般,不斷地向前邁進。作為一名軟件工程師,我感到很充實,以自己踏實、積極的上進心不斷地向前邁進。我有一個小小的希望,就是能夠在南京買一套房子,與自己喜歡的人住在里面,朝著共同的目標,一起努力下去。”

專業Tips:

軟件工程專業簡介:軟件工程師是對應用軟件、創造軟件的人們的統稱。軟件工程師按照所處的領域不同可以分為系統分析員,軟件設計師,系統架構師,程序員,測試員等。目前,我國軟件高級人才的短缺已經成為制約我國軟件產業快速發展的一個瓶頸。在中國,國內市場對軟件人才的需求每年高達80萬人,而高校計算機畢業生中的軟件工程人才還很缺乏,尤其是高素質的軟件工程人才極度短缺。

篇10

【關鍵詞】 野外;監護儀;便攜

在當今的醫療領域中,無論診斷還是護理工作,都越來越依賴于儀器設備的輔助。在大多數醫院中,床旁監護儀都是不可或缺的基礎設施。現代的監護儀發展十分迅速,然而,針對病房監護設計的監護儀,追求大屏幕,高清晰,高精確度,多功能,模塊化插件,乃至工業設計,外觀裝潢,不可避免的存在體積大,重量大,搬運不便,易受物理損壞,脫離電源后工作時間有限等問題。

而在野外急救,維穩處突,部隊衛勤保障方面,卻恰恰需要一款重量輕,體積小,結實耐用,持續工作時間長的監護設備。

鑒于此,可以認為,在野外的特殊條件下,對監護儀的要求重點在于解決有和無的問題,而非花樣繁多的附加功能。從這個前提出發,分析現有監護儀體積過大的原因,主要有三點。

1.為便于查看,顯示屏設計的很大。

2.因為顯示屏和電路板的高耗電,不得不配備體積和重量都較大的電池。

3.因為過大的顯示屏和美觀需要,不得不使用遠大于裝載電路板需要的機殼。

借助日新月異的電子技術,分別在屏幕,處理器,機械工作部件,電池,以及機體結構上下功夫,并且采取特殊的節電設計,是可以得到符合要求的便攜式監護儀的。

1 硬件設計

處理器方面,使用低功率16位RISC混合信號處理器的MSP430, 在保持低功率的同時,得以能同步連接至模擬信號傳感器,模擬信號和數字組件。針對將來設備小型化、便攜化的趨勢,該單片機專門對功耗方面做了優化。作為一款16位單片機,它又具備了遠高于8位處單片機的運算和處理能力。

整個系統則分為四個部分。

1.輸入設備:包括電極片,袖帶及壓力傳感器,血氧飽和探頭等傳感器,和醫務人員操作裝置。

2.轉換部分,包括數據采集,過濾干擾,A/D轉換(模擬信號/數字信號轉換)。

3.運算處理部分。

4.輸出部分,包括屏幕,報警燈,揚聲器。

2 輸入設備

此類采用市場上現有成熟設備,在操作設備方面,則應考慮到野外條件和耐用,省電等理由,使用傳統的按鈕式操作。

3 轉換部分

該部分由五個不同的模塊組成,實現對探頭輸入模擬信號的接收,轉化,放大工作。

4 心電檢測

采用現通用的三電極胸部檢測方法。由于傳感器探頭外接,引線較長,所以心電檢測容易受到外部干擾。而心電信號比較微弱,在探頭信號必需放大處理,所以采用輸入阻抗高、漂移低的運算放大器作為第一級放大。過濾掉干擾之后再對信號進行二次放大,再經過波形變換電路后,直接送入單片機的模擬信號輸入口,再利用單片機內置的16位模數轉化器,將模擬信號轉化為數字信號,即提取了心率信號,可用于屏顯和儲存。

5 血壓測量

參考第三軍醫大學學報上的文章《一片8Xc196 mc 單片機的便攜式多參數監護儀的研制》,血壓參數可以采用無創袖套間接方式來檢測,其檢測原理選用先進的振動法(Oscillometric method) [1,2]通過單片機控制的氣泵和電磁閥,我們可以實現血壓的定時自動檢測。具體方法是用一個壓力傳感器在袖帶放氣過程之中同時檢測袖帶的靜壓及脈搏波的變化情況。

6 體溫測量

溫度傳感器選用集成數字溫度傳感器LM92,它耗電低,分辨率高,在10℃~50℃之間最大誤差僅有0.5℃。它采用串行的方式直接輸出12位數字信號,不占用單片機的A/D轉化器資源,數據可以直接由單片機處理,可靠性高,是測量體溫的理想芯片。

7 呼吸頻率測量

由于使用單片機內置的A/D轉化器,所以呼吸頻率的測量不像體溫測量一樣直接由探頭發出數字信號,所以選用四電極恒流源電阻橋法來測量呼吸頻率,由交流恒流源輸出100 kHz 的正弦波信號對呼吸信號進行調制處理,在本儀器內部對調制信號放大,解調,濾波,即可得到較為完美的呼吸信號。然后輸入單片機的模擬輸入口,再利用單片機內置的16位模數轉化器,將模擬信號轉化為數字信號,可用于屏顯和儲存。

8 血氧飽和度

根據郎伯比爾定律采用光電技術測定。鑒于現有探頭技術已很成熟,故選用普通血氧探頭在此不做贅述。設置定時電路以控制LED發光次序,并將檢測到的光電信號轉換為電壓信號,經放大,濾波,信號基線電平變換和去直流分量等信號調理過程后,輸出至具有自動增益調整功能的電壓/電流轉換電路,然后由積分電路對信號積分,最后用A/D轉換器轉換成數字信號。為加強信號質量,可配備masimo血氧飽和度套件過濾噪聲影響。

9 運算處理部分

由于MSP430F42X系列單片機僅有三對模擬信號輸入口,而測量的模擬信號超過三種,因些需要采用分時技術對模擬信號輸入口進行復用。如系統原理圖所示,通過一片74LS138 h芯片進行譯碼,將三位單片機接口的狀態字轉化為8個端口,在某個時間點只有一個端口輸出為高電平1,代表與此端口連接的功能模塊工作,其余端口均為0,與其相連的功能模塊不工作。由于單片機的運算速度很快,因此感覺不到監控參數是分時測量的。

軟件使用C語言進行開發。C語言具有實時性高,編寫效率較匯編語言高,易讀易維護的特點,并且相關的調試技術也很成熟,是開發單片機系統的理想語言。

基于上述的硬件設計,由軟件定時,使某個時間點只測量某一個參數,具體測量參數調用相應的子程序進行測量,再將測量數據匯集到相應的儲存和顯示參數上。

10 輸出設備

屏幕方面,使用分辨率為640×480像素的彩色液晶屏,可以提供豐富的色彩。按鈕采用加大設計,方便在野外或是移動過程中使用,減少誤按率。配置背光,便于在黑暗中查看。

由于顯示屏尺寸較小,同屏只顯示心電波形和兩參數,所以設置切換開關,可手動切換,也可自動每10 s切換一次。

屏幕耗電較大,為解決這個問題,屏幕具備兩種模式,在通常模式下,屏幕常亮,用于對需要連續觀測的重癥患者監護,在省電模式下,屏幕常滅,工作人員可手動點亮屏幕,30 s無操作自動熄滅。在屏幕熄滅的情況下,監護儀依然在工作,依然能儲存患者信息可供醫護人員以后查看,并且在出現異常情況時能報警并自動點亮屏幕。

11 功耗和電源

根據TI的官方資料,MSP430F42X在工作模式下消耗電流僅400 μA,而待機模式更是低至1.6微安。液晶顯示屏工作電流約為200 mA(帶背光)充氣泵工作時消耗電流500 mA,工作1 min,停止4 min。可視為連續工作電流為100 mA。

其他傳感器工作電流總和不超過100 mA,因此整個儀器最大連續工作電流不超過500 mA。本儀器采用4芯鋰電池并聯供電,電池規格為3.7V 6000 mAH,在整機以最大功耗工作時,工作時間應不低于12 h。考慮到電池老化,在充放電大約600次之后電池容量將下將一半,但此時連續工作時間仍不低于6 h。足以滿足大多數情況需要,更遠優于市面上現行監護儀1.5~2 h的工作時間。

12 體積體積和重量

由于采用了大規模集成電路,并且盡可能地利用了單片機內部的集成器件和功能,使得元件較少,可以大大縮小電路板尺寸,降到150 mm×80 mm。顯示屏,電路板,電池三者采取重疊的布局,長寬均可保持在180 mm×90 mm以內。

為防止野外使用時的摔落和碰撞,外殼應加入一定緩沖的空隙。并在外殼與原件之間布設減震裝置。整個儀器的體積最終應在200 mm×100 mm×50 mm左右,重量500 g左右。基本實現了小巧,便攜,耐用的初衷。同時,在外殼設計上,對顯示屏,按鈕,電線接口的易損部件,采取內凹式設計予以保護。

13 結論

該設備具備以下功能:①ECG顯示與測量功能:信號采集時可實時顯示心電波形和心率,并可存儲1 min 的ECG波形數據,存儲的ECG波形可重放、凍結、水平滾動,并可通過光標對ECG波形的幅度、相關時間進行測量。②血壓測量:其測量范圍為0~250 mm Hg(0~33.33 kPa),可同時檢測收縮壓、平均壓、舒張壓三個血壓指標。③呼吸頻率:測量范圍0~100 次/ min。④體溫:測量范圍0℃~60℃,精度0.1℃。⑤趨勢圖顯示功能:可顯示24 h 內的心率、血壓(收縮壓、平均壓、舒張壓) 、體溫、呼吸頻率,血氧飽和度的趨勢圖。

該機可由醫護人員隨身放置,可配備掛扣,扣于腰帶上攜行,需要數量較多時,可以大批裝箱運送,在使用過程中,可以用簡易支架放置于任意平臺,也可掛扣于擔架等處。配備完善裝具時,可以充分發揮,小,靈,輕,便的優勢,提供醫護人員所需最基本的生理指征。同時,記錄的生理數據,也可以在返回后方醫院時作為醫生判斷的依據。無論是在自然災害,戰場救護,野外衛勤保障方面,都有著廣泛的用途和顯著的作用。

參 考 文 獻

[1] 王成,張劍戈,李斌,錢明理,黃盺編著.醫療儀器原理.上海交通大學出版社,2008.

[2] 沈建華, 楊艷琴, 翟驍曙編著. MSP430系列16位超低功耗單片機原理與應用. 北京:清華大學出版社,2004.

[3] 張晞, 王德銀, 張晨編著. MSP430系列單片機實用C語言程序設計. 北京:人民郵電出版社,2005.

[4] 魏小龍編著. MSP430系列單片機接口技術及系統設計實例. 北京:北京航空航天大學出版社,2002.