首頁 > 文章中心 > c語言程序設計論文

      c語言程序設計論文

      前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇c語言程序設計論文范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。

      c語言程序設計論文

      c語言程序設計論文范文第1篇

      關鍵詞:C語言;學生成績管理系統;程序設計

      中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)04-0059-04

      1 背景

      如今各大高校均需要一個完整的系統來管理和保存學生的各門課成績信息,以便后期使用,論文以河海大學文天學院的工科專業學生成績為例,運用C語言程序設計和程序運行的環境,設計了一個簡單的學生成績管理系統,下面就來介紹該系統是如何構建的。

      2 系統需求分析

      2.1 系統功能劃分

      該系統主要功能如下:

      1)學生基本信息和成績的錄入;

      2)學生成績的管理,如計算總分、排序、統計等功能。

      2.2 系統功能結構設計

      這個學生成績管理系統中包含的學生信息有:學生的學號、姓名、性別、高數成績、英語成績、計算機成績、三門功課總分,主要的功能模塊如下:

      1)輸出學生基本信息并算出總分;

      2)按照學號進行排序;

      3)按照總分進行排序;

      4)統計各門課程平均分;

      5)統計男女學生人數;

      6)按照姓名進行排序;

      7)統計高數成績優秀(大于等于80分)的人數,并輸出符合條件的記錄;

      8)統計每門功課成績都在80分以上,或總分在240分以上的人數,并輸出符合條件的記錄。

      C語言中系統的每個功能由一個函數來實現,其系統功能模塊層次結構圖如下:

      圖1 學生成績管理系統功能模塊層次結構圖

      因為函數就是功能,所以對于圖1的功能模塊層次結構圖,每個模塊就對應C語言中的一個函數,該系統中所涉及的函導捌涔δ莧縵攏

      1)int Menu();

      主控菜單函數,有返回值,無參數。用菜單形式顯示該系統能實現的所有功能,以供用戶查看和使用。函數中的返回值為用戶輸入的序號code,為局部整型變量。

      2)void Read(struct student stud[],int *n);

      讀入數據函數,無返回值,有參數。形式參數stud為結構體數組,由于調用此函數時實際參數為數組名,因此此處用數組接收;形式參數n為指針變量,由于實際參數為存放學生人數的整型變量的地址,因此n指向存放學生人數的整型變量,這樣可以在讀入學生信息的同時,還可以統計出學生的人數。

      3)void Print(struct student *pstud,int n);

      輸出數據函數,無返回值,有參數。形式參數pstud為指針變量,指向存放學生信息的結構體數組,這樣可以將相關變動信息返回給主調函數;形式參數n為整型變量,存放學生的人數。

      4)void total_order(struct student *pstud,int n);

      按總分排序函數,無返回值,有參數。形式參數同上。

      5)void num_order(struct student *pstud,int n);

      按學號排序函數,無返回值,有參數。形式參數同上。

      6)void ave_count(struct student *pstud, int n);

      統計各門課平均分函數,無返回值,有參數。形式參數同上。

      7)void nn_count(struct student *pstud,int n);

      統計男女學生人數函數,無返回值,有參數。形式參數同上。

      8)void name_order(struct student *pstud,int n);

      按姓名排序函數,無返回值,有參數。形式參數同上。

      9)void gxyx(struct student *pstud,int n);

      統計高數成績優秀人數函數,無返回值,有參數。形式參數同上。

      10)void mm(struct student *pstud,int n);

      統計每門課分數不小于80分或總分在240分以上人數函數 ,無返回值,有參數。形式參數同上。

      3 C語言程序設計

      一個C語言源程序由若干個函數構成,且有且僅有一個主函數,主函數的名字只能是main,其他函數名字由用戶自己定義,只要滿足標識符的四大規則即可。一個程序總是從主函數開始執行,無論主函數在前還是在后,該系統中除了主函數外,還有十個函數,下面針對其中幾個重要的函數進行程序設計。

      3.1 主函數程序設計

      為了方便讀者更好地讀懂該程序,部分地方加了注釋,以上程序中/* */為注釋,計算機并不執行。其中第四行的N為符號常量,表示該系統記錄了10個學生信息,每個學生信息用結構體類型的數組來保存,該結構體類型包含4個子成員,每個成員又是另一種類型的數據,其中學號、姓名、性別均由字符數組存儲,成績由整型數組存儲,這樣就構成了struct student結構體類型,主函數中的第一條語句就是用這種類型定義了結構體數組stud,用來存放十個學生信息。接下來就在主函數中調用各個函數,實現相對應的功能。

      3.2 用戶自定義函數程序設計

      3.2.1 主控菜單函數的設計

      在屏幕中顯示主控菜單,scanf為輸入函數,需要輸入一個整數,通過輸入相對應的數字序號,可以實現相應的功能,例如輸入1,即顯示學生全部信息。

      3.2.2 讀入數據函數的設計

      該系統是從文件中讀取數據,10名學生的信息存儲在文本文件studfile.txt中,如果想修改學生信息,直接在文件中修改即可,不用修改程序,這樣既方便又快速,大大節省了時間。

      3.2.3 按姓名排序函數的設計

      以上程序使用冒泡的排序方法按姓名從小到大排序,系統直接將排序的結果輸出到屏幕中,以供用戶查看和使用。

      4 系統界面

      將以上程序輸入到計算機C語言開發環境Microsoft Visual C++6.0中,經過編輯、編譯、連接以后就可以運行了,運行界面如下:

      1)系統菜單界面

      當按下回車鍵,系統進入菜單模式,按照序號選擇需要顯示的信息。

      2)@示學生信息界面

      當按下序號1,系統進入顯示全體學生信息界面,顯示的同時計算出了3門課總分。

      3)按學號排序界面

      按下回車鍵繼續進入菜單進行選擇,當按下序號3,系統進入按學號從小到大排序的界面。

      4)統計高數優秀的學生人數和記錄

      按下回車鍵繼續進入菜單進行選擇,當按下序號7,系統進入統計高數不低于80分的人數和記錄。

      5 結束語

      論文主要介紹了學生成績管理系統的設計與實現過程,分別從系統需求分析、系統程序設計和系統界面設計三個方面展示了系統的設計與實現,其中系統需求分析包括大體功能劃分和具體功能結構設計,并設計了功能結構圖,描述了各項功能,系統程序設計包括主函數和其他自定義函數的設計。該系統總共實現了八項功能,學生信息來源于文本文件,這樣大大方便了學生信息的增刪改查等功能。系統中所有功能使用到的方法,還可以實現更多的功能,拓展性能良好,便于各高校各專業使用。

      參考文獻:

      [1] 胡楓. 《C語言程序設計》的案例式教學的設計[J]. 青海師范大學學報, 2010(4).

      [2] 譚浩強. C程序設計[M]. 4版.北京: 清華大學出版社, 2010.

      [3] 宮業芹. C語言程序設計網上教學系統的設計與實現[D]. 濟南: 山東大學, 2012.

      c語言程序設計論文范文第2篇

      關鍵詞:應用型本科;培養軟件工程師;Java課程群;教學研究

      中圖分類號:TP3 文獻標識碼:A 文章編號:1009-3044(2014)19-4518-03

      Java Programs Applied Undergraduate Teaching and Research Group for the Training of Software Engineers

      YU Xiao

      (Wuhan Technology And Business University Department of Information Engineering, Wuhan 430065, China)

      Abstract: In this paper, application-oriented university training Java software engineers in the process of teaching a number of issues, analyzes how demand-oriented enterprise Java software engineers conduct group teaching curriculum design, including accurate positioning training applied talents teaching objectives, optimize Curriculum reconstruction and the accumulation of experience teaching curriculum system, integration and research.

      Key words: Application-Oriented; Training of Software Engineers; Java Curriculum Group; Teaching and Research

      1 應用型本科Java課程群的教學現狀

      隨著計算機行業的發展進入到互聯網時代,由于 Java語言在計算機軟件開發尤其是支持網絡編程方面的優勢,大多數高校計算機科學與技術專業在培養計劃中都設置了Java系列課程的培養方案。應用型本科大學作為第三類大學在進行Java系列課程教學改革中確定Java課程群體系的培養目標是非常重要的。因為應用型本科培養的軟件類畢業生在就業中將會與研究性大學本科專科畢業生、職業技術專科學院和職業培訓機構的學生進行競爭。為了適應軟件行業對Java開發人才的需要,高校簡單的開設一門Java語言程序設計是遠遠不夠的[1]。現階段,應用型本科大學的Java課程體系是參考研究性大學本科課程體系的標準而制定的,并沒有突出應用性的特點,而學生在編程方面的能力培養遠不及職業技術學院、職業培訓機構的學生在實踐編程能力的培養。

      2 面向培養Java軟件工程師課程教學的重要性

      現階段計算機應用軟件的開發主要采用.Net平臺和Java兩大平臺,這兩個平臺各有千秋[2]。在計算機類職業培訓機構的課程體系中Java系列課程也是熱門的課程。Java軟件工程師的職位在目前就業市場中屬于緊缺職位。面向培養IT企業需要的軟件工程師,為企業輸送急需對口人才是各大高校在進行Java課程群的教學建設中需要考慮的問題。但是,很多Java課程體系的教學與市場需求存在脫節的情況。另外,Java教學的知識落后于企業正在使用的技術。計算機行業是發展和更新知識非常快的行業,由于高校教師缺乏與企業交流而導致在Java教學過程中不能及時更新到最新的技術,使得學生在畢業時所學的知識過時。

      3 面向培養軟件工程師的Java課程群教學思路

      3.1應用型本科大學在Java課程群教學改革中的優勢

      應用型本科大學比科研型本科大學在課程設置上允許更為靈活,所以在Java課程群教學中可采用多種培養方式相結合。例如,在實踐教學環節可以加強校企合作。Java的實踐課程可以由企業的講師或軟件培訓機構的人員參與教學過程,在教學內容上,可以比研究性大學更偏重應用。也可以在高年級的實踐教學中的有限課時內讓學生直接在企業中實習。為實施素質教育,提高學生的專業技能,培養技術應用型人才,需要不斷探索以變更落后的教學方法,改革傳統的教學模式[3]。

      應用型本科大學在教學過程中比職業培訓機構更注重綜合能力的培養。比如,應用型本科教學不僅教授的是Java語言,除此之外教學課程體系中還會設置有《數據庫原理》、《計算機網絡工程》、《操作系統原理》和《軟件工程》等重要的理論性指導課程,使學生在計算機應用能力上更具全面性,為學生更好的在職業發展中成為軟件工程師打好理論基礎,而不僅僅只能成為程序員。

      3.2 面向培養軟件工程師的教學目標

      應用型本科Java課程體系教學應將與Java技術緊密相關的多門課程整合起來形成課程群,以強化課程間的關系,理清課程間的銜接,避免課程內容的重復性。設計課程群中實踐課程的遞進關系。課程群的建設應緊密結合企業的需求,設計面向培養軟件工程師所需的能力項目的定向案例或課題。進行Java課程群教學培養的目標應是面向企業需求的以應用型為主的強化實踐編程能力的軟件工程師。

      3.3 Java課程群體系

      根據現有Java技術相關的教學課程選擇五門課程組成Java課程群,分別是Java語言程序設計、Java語言程序設計課程設計、Java Web程序設計、Java Web程序設計課程設計、Java技術畢業設計。課程群中前一門課程是后一門課程的基礎,課程的難度是遞進的由淺入深的介紹Java技術的應用。每門課程都有不同的教學培養的側重點,如下表所示。

      表1 Java課程群的培養與考核

      [課程名\&能力培養側重點說明\&考核方式\&Java語言程序設計\&Java語言基礎、面向對象程序設計、圖形用戶界面編程、文件編程\&理論筆試與實踐課程綜合評分\&Java語言程序設計課程設計\&三個方向的綜合應用程序開發:圖形用戶界面與文件流結合編程;圖形用戶界面與網絡通信結合編程;圖形用戶界面與數據庫結合編程\&答辯與課程設計論文綜合評分\&Java Web程序設計\&JSP技術基礎、JDBC、JSP進行動態網站開發\&理論筆試與實踐課程綜合評分\&Java Web程序設計課程設計\&使用JDBC數據庫連接技術進行JSP動態網站開發的綜合應用\&答辯與課程設計論文綜合評分\&Java技術畢業設計\&使用EJB應用開發、Java API的使用及服務的應用進行小型實際應用項目的開發\&畢業設計答辯與畢業設計論文綜合評分\&]

      課程群的每門課程都分為理論教學環節、實踐教學環節和考核環節組成。每門課程的評分標準根據課程的特點而定。程序設計課程以理論考試與實踐課程的程序完成情況進行綜合評分,課程設計課程以系統運行演示與答辯結合課程設計論文的綜合評分,畢業設計環節需要通過本科畢業設計答辯和本科畢業論文的考核綜合評分。

      4 面向培養軟件工程師Java課程群的教學研究

      4.1 面向培養軟件工程師Java課程群教學方法的研究

      在應用型本科大學教學多年Java課程群的課程以后,根據教學實際情況在教學方法方面進行了歸納總結。在Java課程群教學中應以學生在學習該課程的實際情況為出發點,一方面強化面向對象編程思想,因為面向對象是軟件工程的基礎,為后續用Java工具進行軟件工程與產品設計打基礎;另外一方面應突出Java與C++的不同點和各種工具包,主要以圖形用戶界面與事件作為重難點。具體來說,課堂教學方法上盡量深入淺出而突出重難點,因為一般來說,開設《Java程序設計》課程是在大學本科已經開設了至少兩門語言課程《C語言程序設計》、《C++語言程序設計》之后的高年級專業課,一部分內容希望學生在老師的引導下培養自學能力或在后續課程《軟件工程》與《Java Web程序設計》課程中逐步強化細節。

      4.2面向培養軟件工程師Java課程群教學方式的研究

      教師在本校應用型本科大學教學過程中與學生進行了多次交流,得到了學生寶貴的反饋,結合教師在不斷教學探索與實驗教學過程中的體會與思考,對進行培養面向軟件工程師的Java課程群教學方式改革進行了總結,得到以下五個方面的改進措施。

      1) 實踐教學與課堂教學整合

      學生反映理論教學在教室學習效率不高,建議安排在實驗機房進行教學,理論教學后及時進行上機操作能更好的鞏固知識,實現理論與實踐的同步教學。課堂教學中的每個知識點在理論教學后布置上機的小實例作業,學生通過完成小實例作業就能很好的檢測該知識點的掌握情況,將實踐教學與課堂理論教學整合。整個教學全程安排在實驗機房完成。

      2) 分步式案例教學

      Java課程群中的課程的每門課程開始列出該門課程的重要知識點。在教學過程中以一個綜合應用案例為線索,涵蓋該門課程大部分最重要的知識點應用。將這個綜合案例分解成若干部分,整個教學過程中在不同的重要章節中逐步分別講解案例的某個部分。最后,將分步驟講解的案例部分組合在一起,完成整個案例的拼接運行與演示。這種分步式案例教學讓學生對該門課程有一個完整的知識體系。分步式案例教學在培養學生綜合應用能力方面取得了很好的效果,使學生從應用角度對該門課程每章的內在聯系有了一個總體的了解。

      3) 學生演講與教師指導相結合

      一般來說,學生在學習Java課程群的課程時已經具有了一定程序設計語言的基礎,學生在現有的C語言或C++語言學習的基礎上進行多種編程語言的對比,能更好更快的掌握Java課程群的新知識。關于Java語言基礎和JSP語言基礎部分,例如變量與常量、表達式與運算符等知識點,可以讓學生進行課下自學,并在上課過程中由學生進行演講,對比現已學過的語言,分析Java語言或JSP語言的不同點和相同點。教師在學生講課中及時進行補充或更正學生知識點的講解。學生演講與教師指導相結合的方式適用于Java課程群中程序設計語言基礎部分。這種教學方式在一方面鍛煉了學生的表達能力,在另一方面讓學生鞏固了以往的知識點并學習了新的知識點。在一定程度上調動了學生的學習積極性和促使學生更加參與課程教學,增加教與學的互動。

      4) 分組答辯式教學

      學生的課程設計或教學演講都可以采用分組的方式,例如一個班級30人,一般將該班級分為6個組,每組5人。因為企業大型項目開發都是以團隊的方式進行的。在應用型本科Java課程群的課程設計類課程中以團隊方式進行答辯,每組團隊得到相同的分數等級。使學生更具有團隊合作意識,增進團隊合作能力進行編程,使學生在企業中作為軟件工程師能更快適應軟件開發團隊。

      5) 案例式擴展教學在實踐教學過程中的應用

      Java課程群中實踐課程教學可以采用一個應用實例貫穿到每個實踐環節。從課內小案例的添加功能就可以完成該門課程的大案例,再在這個大案例的基礎上進行優化完善可以完成綜合課程設計,然后添加高級應用功能可以達到畢業設計的要求。使實踐課程體系中的所有課程共同使用一個應用實例使這些多門實踐課程具有內在的連續性,又可以很好的擴展性,使一個應用實例不斷進行加強與優化。

      參考文獻:

      [1] 彭碧濤,羅海蛟,姜靈敏. Java課程群的規劃與建設[J].福建電腦,2014(2):51.

      c語言程序設計論文范文第3篇

      【關鍵詞】C語言;程序設計;教學改革

      一、C語言程序設計教學工作的重要性

      C語言是一門長盛不衰的程序設計語言,深受廣大軟件愛好者的喜愛。它功能豐富、表達能力強、使用靈活方便、應用面廣、目標程序效率高、可移植性好,而且有著比較豐富的數據類型、運算符以及函數供以選用,又直接與內存打交道,使修改、編輯其他程序與文檔變得輕松、簡單,因此而廣受業內人士的青睞。在中等職業學校,C語言程序設計作為一門高級語言程序設計課程,是各理工科專業的公共基礎必修課。所以,開展好C語言程序設計的教學工作具有非常重要的理論意義和現實意義。

      作為中職學校的C語言程序設計教師,我認為要想讓學生學好這門課程,不僅要通過認真講解課本知識讓他們掌握教材內容,更重要的是通過上機實踐增強和鞏固他們的知識,達到活學活用的教學目標。要讓學生在理論學習和基礎實驗的基礎上,提高他們的實際操作能力,培養他們綜合運用理論知識來分析和解決實際問題的能力、嚴謹的科學態度和良好的程序設計習慣,最終實現由知識向智能的初步轉化。在課堂教學中,要把注重教師的教轉向注重學生的學,要讓學生充分參與、充分體驗、充分感受C語言程序設計,通過自主合作探究和動手動腦實踐操作熟練掌握編程技巧,將課本上的理論知識與動手實踐有機地結合起來,既鍛煉他們分析解決實際問題的能力,又提高他們適應實際、實踐編程的能力。這是在傳統教學中難以實現的,因此突破傳統教學的禁錮和束縛,全面深化課堂教學改革,發揮現代課堂的生機與活力,激發學生的學習熱情和求知欲望已經成為當代教師義不容辭而且迫在眉睫的重任。

      二、推進C語言程序設計課堂教學改革的緊迫性

      本人任教的重慶工商學校創建于1987年7月,1996年被認定為首批國家級重點中等職業學校,2002年被確定為中國――澳大利亞職教合作項目五所項目學校之一,先后獲得全國職業教育先進單位、全國成人教育先進單位、全國中等職業學校德育工作先進集體等榮譽稱號。經過27年的辦學實踐探索,我校已成為目前中國西部地區規模最大、綜合辦學實力最強的中等職業學校之一。但是,我校的C語言程序設計教學工作還存在一些亟待解決的問題,迫切需要我們一線教師更新觀念、大膽創新,積極推進這門課程的課堂教學改革,點燃學生的學習熱情,提升課堂教學實效。

      從教師的角度來說,由于C語言程序設計是各理工科專業的公共基礎必修課。因此涉及這門學科的專業較多,由于不同的專業根據實際情況制定了不同的人才培養方案,導致各專業在C語言程序設計課程上設置的學時數、考試性質等不盡相同,教學大綱也會根據人才培養方案中對該課程的不同安排再進行修訂,這就為我們一線教師增加了教學工作需要不斷變換的難度。為此,我們教師應該堅持學習,努力提高自身的教育教學理論水平,把不同專業的不同學時合理地分配到順序、選擇、循環三大基本結構和數組、指針、函數等教學內容當中去,并通過大膽嘗試和積極摸索,全面推進課堂教學改革,培養學生對C語言程序設計的興趣,激發他們的學習實踐熱情,提升課堂教學實效,讓學生通過這門課程的學習切實掌握技能,全面增強能力。

      從學生的角度來說,C語言程序設計課程既不算是文科,也不算是理科,因為文科就算一個論文再長,寫100張紙也總有寫完的時候;理科的數學題再難,只要套上了公式就能得出答案,1就是1,變成2就錯了。但是計算機語言并不是這樣,如果要寫一個程序,你可能2天就做出來了,也有可能兩個月都做不成。再加上這門課程概念繁雜、知識點多、內容枯燥、難度較大且實用性不強,很容易讓學生產生畏難情緒和厭學情緒。而且由于教材對知識的介紹是分散的、循序漸進的,學生在學習過程中接觸到的例題也大都比較簡單,僅為說明某種特定算法而已。與之相反,我們在實際工作中將面臨的問題會復雜得多。另外,C語言提供了大量實用函數和擴展功能,這些往往是學習過程中無法涵蓋的。因此經常會出現這種情況:學生把課本上的知識掌握得滾瓜爛熟,但拿到一個設計卻無從下手,這也會嚴重削弱學生的積極性。針對這種情況,唯有教師改革課堂教學手段,把理論與實踐結合,把知識與能力并重,才能真正提升課堂教學實效,達成這門課程的教學目標。

      三、C語言程序設計課堂教學改革的具體舉措

      1、改變“滿堂灌”的教學方式,把注重教師的教轉向注重學生的學

      課堂上,我們要一改往日“滿堂灌”的授課方式,通過提出問題,引導學生分析問題,讓他們自己去找尋解決問題的方法;然后再給出源代碼,分析源代碼,引出新知識點,對知識點進行講解;最終留給學生一個設計任務,讓他們自主合作探究,通過小組討論、齊心協力共同完成任務,達到鞏固知識點的目的。這樣的授課方式與“滿堂灌”相比,更為形象直觀,而且學生可以主動參與到問題的分析與討論中來,把注重教師的教轉向了注重學生的學,更有利于集中學生的注意力,更有利于發揮學生的主觀能動性,課堂效率也就自然而然提高了。

      2、把理論與實踐結合,把知識與能力并重

      這門課程具有較強的實踐性,我們要給予學生足夠的實踐時間和活動空間,讓他們通過上機實踐鞏固理論知識。我們要通過實驗指導書的設計,讓學生由讀程序、分析程序、程序改錯逐漸達到能夠獨立編寫程序的水平。由于這門課程的實驗內容繁多,加之課時安排有限,要想在課堂時間來分析和完成所有實驗是不可能的。因此,我們要讓學生明白理論與實踐結合的重要性,讓他們在實驗之前主動對下節課的實驗內容進行預習,提前完成分析程序運行結果、完成程序填空、找出程序中的錯誤、編寫程序解決實際問題等。課堂上就只需將程序輸入VC++6.0中進行運行,調試程序中的錯誤,找出錯誤原因即可。這樣既可以提高課堂效率,也可以鍛煉學生分析問題、解決問題的能力,實現知識與能力并重的育人目標。

      c語言程序設計論文范文第4篇

      論文摘要:“C程序設計”課程是電子類專業基礎必修課,主要是為單片機編程服務,該課程的教學效果直接影響到后續單片機課程的學習。本文結合單片機系統開發的特點,探討了C程序設計教學方法,為后續單片機課程的學習打下基礎。

      隨著微電子技術的發展和廣泛應用,基于單片機上的系統開發,C語言作為一種高級的編程語言,越來越受到人們的關注。現在,無論是嵌入式系統開發企業還是電子設計競賽、畢業設計等,一般都以C語言為主要開發工具。結合單片機的系統資源,用C語言開發符合實際工程需要的單片機系統,對于編程者來說就有重要的意義。

      1.C在單片機教學中的地位

      C語言作為一種結構化的程序設計語言,它是程序開發工具中使用最廣泛一門編程語言。C語言具有很強的功能性、結構性、可移植性。用C語言編寫程序比匯編更符合人們的思考習慣,程序開發者可以擺脫與硬件不必要的接觸,更專心地考慮程序的功能和算法而不是考慮一些細節問題,這樣就減少了開發和調試的時間。由于它具有良好的程序結構,適用于模塊化程序設計,因此采用C語言設計單片機應用系統程序時,采用結構化的、自頂向下、逐步求精的程序設計方法,將功能模塊化,由不同的模塊完成不同的功能。這樣可使整個應用系統程序結構清晰,易于調試和維護。

      2.單片機教學現狀

      單片機技術是現代電子工程領域一門飛速發展的技術,是現代電子技術中的一項不可缺少的重要技術。隨著技術的不斷進步和日益普及,單片機技術已滲透到各個領域,影響著我們的日常生活和工作。因此電子技術及相關專業的學生學習單片機技術越來越成為社會發展的需求。當前,各大高校的電子、計算機類專業均開設單片機課程。

      《單片機》是我院電子系一門實踐性極強的專業主干課程,是我校電子系重點建設課程之一,是本專業學生的必修課程。為了提高我系單片機教學效果,我們對單片機教學進行了大膽改革,使用C語言開發單片機,且課程的設計打破了學科體系的框架,將單片機和C語言的相關知識和技能按“項目”進行整合,并將《C程序設計》課程列為電子類專業核心基礎課程之一。因此,《C程序設計》課程教學效果的好壞,將直接影響學生后續專業課程的學習。

      從近幾年我系《C程序設計》課程的教學效果來看,學生普遍反映該課程的學習比較困難,課程的語法知識較多,理解和記憶都不太容易,即使記住了語法知識也不能靈活應用;不知道學習C語言究竟有何用處,學完C后不能很好地利用C進行單片機小型系統的開發,缺乏知識的靈活應用能力。因此,根據以往單片機教學所得經驗,我覺得教師有必要在《C程序設計》課程的教學過程中在以下幾個方面引起足夠的重視,并在教學中加以改進,為后續單片機課程的學習打下堅實的基礎。

      3.《C程序設計》課程教學方法探索

      3.1上好每堂課,激發學生的學習興趣

      語言程序設計教學被認為是一種需要師生雙方改進的一門課程,因為大多數語言教材中通常先給出一般的語法格式,然后逐步講解語法要點,再給出實例。這種順序灌輸會使學生失去學習的興趣,所以我認為在課堂教學環節應采取以學生為主體、以教師為主導的教學模式,要求學生自己先看有關知識點,并識記。教師采取精講實例,在這過程中引出相關知識點,然后再舉一類似實例讓學生自己分析,鞏固知識點。教師應把主要精力放在算法的分析和各語句語法的具體應用上,同時培養學生自學能力,采取互動機制,迫使學生主動學習。

      3.2注重演示,強化實驗,提高實踐操作能力

      因為授課對象是一年級新生,所以教師多用通俗易懂的語言進行講解,多舉實例,使學生容易理解和消化。在教學過程中,盡量采用講解、演示方法,如在講解經典算法后,按照理論方法所述,用DEV C++軟件進行編程演示,從而加深學生對教學內容的理解。

      在教學過程中,教師應將理論知識與實驗內容進行整合,根據教學內容并結合實際應用設置實驗題目,讓每個學生獨立完成。遇到學生不能解決的問題,教師應利用多媒體進行演示解決問題的過程,從而加深學生對教學內容的理解并提高實踐操作能力。  3.3培養良好的編程風格

      3.3.1優化程序

      由于在許多工業測控領域中的嵌入式系統都采用單片機開發,它們所需要的計算和控制工作日趨復雜,其中軟件的設計是最復雜和困難的,工作量大,特別是對于控制系統,設計人員需要考慮單片機的軟硬件資源分配,但是單片機系統是一種資源十分有限的系統。這主要表現在CPU和片內結構簡單、程序存儲器資源的不足。因此在用C語言進行單片機開發時,如何使用好這些有限的資源就顯得十分重要。雖然C語言具有許多的優點,但是生成的代碼相對要長,基本多占用存儲空間20%—50%。因而,在“C程序設計”課程教學中,教師不僅要教會學生如何編寫程序,而且應在教學過程中向學生灌輸優化代碼的思想,讓學生從大一開始就有開發項目的一些經驗。

      3.3.2合理選用數據類型

      C語言在程序開發中提供了的豐富的數據類型,尤其是關于用戶界面開發和一些動畫與圖像技術的實現。但是在開發單片機系統時,我們要按照實際需要,合理地選用數據類型。C語言中有Char等少數的數據類型是機器語言直接支持的數據類型,用此類數據類型的語句所生成的代碼較短,而其它的數據類型如整型、浮點型等數據要有一定的內部程序或內部函數的支持,相對來說較復雜的數據類型的語句生成的代碼也復雜,不利于轉化成單片機的代碼。因此,在“C程序設計“教學過程中,要向學生適當說明選擇合適數據類型的好處,并盡可能地減少程序中使用的數據類型的種類,為以后學生的單片機學習打好基礎。

      3.3.3灌輸模塊化程序設計思想

      在普通微型計算機上進行C語言程序開發設計時,只需考慮程序功能實現,而不必考慮程序代碼的長短。但是在單片機上進行C語言程序設計就必須考慮系統的硬件資源,要求設計的軟件程序結構是合理、緊湊和高效的。同一任務,有時用主程序完成是合理的,但有時需子程序效率最高,占用資源最少;有時并不是程序的算法越簡單、長度越短越好,由于有一些算法要調用一些內部的子程序和函數,生成的機器代碼質量反而較低。不同的算法對程序代碼效率影響很大。因此,在進行“C程序設計”教學時,教師應適當向學生灌輸模塊化程序設計的思想,在不影響程序功能實現的情況下可以采用一些優化算法,并且把程序分成若干個功能獨立的模塊,為學生今后的單片機項目開發做好鋪墊。

      4.結語

      單片機系統采用C語言開發與設計,極大地促進了單片機在生產、生活各個領域的應用,提高了程序開發效率。因而,C語言學習效果的好壞,對今后單片機課程的學習具有深遠的影響。除了講解C語言的基本語法外,更重要的是改善教學方法,利用各種方法培養學生的學習興趣,并向學生灌輸良好的編程風格與編程方法,為今后的單片機課程的學習打下良好的基礎。

      參考文獻

      [1]向艷.“C程序設計”課程教學體系和模式探討[J].計算機教育,2010,(3):112-114.

      [2]董蘊寶,潘旭君.淺談C語言在單片機中的程序設計[J].科技信息,2009,(13):59-67.

      [3]張洪靜.電類專業C語言教學探討[J].電腦知識與技術,2010,(29):8280-8281.

      [4]林益平,趙福建.單片機C語言課程教學的探索與實踐[J].電氣電子教學學報,2007,(2):104-106.

      c語言程序設計論文范文第5篇

      關鍵詞:比較教學法;問題求解能力;關鍵筆記;程序設計課程

      中圖分類號:G434文獻標識碼:A文章編號文章編號:1672-7800(2013)012-0171-03

      作者簡介:沈涵飛(1978-),男,碩士,蘇州工業園區服務外包職業學院講師,研究方向為軟件測試、云計算。

      0引言

      C語言和JAVA語言在TIOBE編程語言排行榜上長期占據前兩名的位置,在計算機行業內有著廣泛的應用。這兩門課程也是教學難度較大的課程,是學生深入接觸計算機學科領域知識的基礎課程。搜索萬方數據和中國知網10年來的論文,并沒有發現探討這兩門程序設計課程之間內在聯系的論文;目前主流的程序設計教材也極少對這兩門語言進行比較。學生在學習這兩門課程時,往往覺得內容繁雜,難于掌握。充分挖掘這兩門課程的共同特性,比較這兩門語言的語法和特性的不同之處,突出課程的重點,能夠幫助學生更好地掌握課程內容。

      JAVA程序設計大體可以分為面向過程的程序設計和面向對象的程序設計。面向過程的JAVA程序設計和C語言程序設計并沒有本質區別,基本思想都是采用“自頂向下、逐步求精”的程序設計方法和“單入口單出口”的控制結構。

      在這兩門課程的多年教學實踐中,通過討論、分析和總結,確定了以程序設計為主線、重點是培養學生的程序設計能力和計算思維,也就是放在思路、算法、編程構思和程序實現上。在程序實現這個環節,通過運用比較教學法進行C語言和JAVA語言的語法和特性的教學,既有助于學生更好更快地掌握高級語言的語法和特性,也有助于學生體會語言只是表達工具,問題求解和計算思維的能力才是核心。

      1程序設計教學中存在的問題

      程序設計課程是計算機及相關專業的基礎課程,教學難度較大。學生往往難以理解程序設計的思維方式,對教學內容似懂非懂,而掌握良好的程序設計方法則更加困難。如果以語言知識為主線組織教學內容,由于C語言和JAVA語言涉及的知識點非常多,很多學生在學完一門課程后,普遍認為程序設計難學,教學內容枯燥,缺乏主動探索問題的興趣。

      傳統的課程教學較少提及這兩門語言的共性,不能在已有的基礎上去完成新知識的建構,大大增加了學生的學習負擔,導致常用C語言編程的同學對JAVA語言產生生疏感,而常用JAVA語言的同學也不樂意使用C語言,不少同學對于學習兩門語言顯得有些無所適從,產生了畏難情緒,放棄了進一步學習程序設計的機會。

      2比較教學法在程序設計課程中的應用

      2.1程序設計課程能力培養目標

      卡內基梅隆大學的周以真教授指出,“計算思維是運用計算機科學的基礎概念去求解問題、設計系統和理解人類的行為”[1]。2010年首屆“九校聯盟(C9)計算機基礎教學課程研討會”上,明確提出計算機基礎教學的核心任務是計算思維能力的培養[2]。清華大學吳文虎教授提出,“以強調動手上機實踐編程為切入點,以任務驅動的方式,通過實例講授程序設計的基本概念和基本方法”[3]。

      2.2比較教學法

      比較教學法是教師在教學實踐中,著重體現辨析并確定教學內容間異同關系的思維過程和方法。其本質特征在于“比較”、“對照”、“對比”、“參照”。即把彼此之間具有某種聯系的教學內容放在一起,加以對比分析,以確定其異同關系,認識其本質差異。

      從思維訓練的角度看,比較數學法可分為兩種類型:①求同比較——將相同的知識,或性質相似的材料放在一塊加以比較,使學生利用新舊知識之間的聯系,加深理解,增強記憶;②求異比較——事物之間存在差異,教師的責任就在于引導學生將這種差異揭示出來。

      2.3比較教學法應用

      程序設計課程的重點是培養問題求解能力,促成學生計算思維的形成,語句只是表達工具,編程思路才是重點和難點。JAVA語言在編程風格上非常接近于C/C++語言,這是比較教學法能用于C和JAVA程序設計教學的重要因素;在線評測系統能夠同時支持這兩種語言,為比較教學法的應用提供了實踐平臺。

      3C語言和JAVA教學內容分析

      C語言本質上是面向過程的設計語言,提倡結構化程序設計;JAVA語言本質上是面向對象的編程語言,但也支持面向過程的程序設計。C語言和JAVA語言在結構化程序設計方面存在大量的相同之處,如在基本數據類型、運算符、表達式、三種基本結構、數組、函數等方面,C語言和JAVA語言高度相似,采用比較教學法可以突出計算思維的本質,培養學生掌握結構化程序設計的基本方法,提升學生學習的效率,克服學生對于程序設計課程的畏難情緒。

      在教學中,把原有的C語言和JAVA語言的教學內容進行了重新組織,包含3部分:C和JAVA共同的結構化程序設計(基本數據類型、運算符、表達式、三種基本結構、數組、函數等);C語言特有部分(字符串、指針、結構體等);JAVA特有部分(面向對象程序設計、圖形界面程序設計、異常處理、多線程等)。

      通過內容的重新組織,強調了結構化程序設計的概念,讓學生真正體會到語句只是表達工具,問題求解能力的培養才是重點。

      4C語言和JAVA比較教學要點

      在C語言和JAVA的教學過程中,要有效地實施以問題求解能力培養為目標的比較教學,建議把握以下要點。

      4.1以問題求解為中心

      程序設計類課程的主要目標就是培養學生應用計算機(體現為編寫程序)解決問題的能力。問題求解能力是在不斷解決問題的過程中逐步得到提高和強化的,這就需要有一個平臺能夠支撐學生完成足夠的練習。

      在實踐過程中,我們采用的是HUST Online Judge。這是由華中科技大學畢業生王良晶等開發并在2008年底以GPL協議進行開源的在線評測系統,該系統基于LAMP平臺,提供了使用Ubuntu的LiveCD系統,用戶無需安裝即可使用其完整功能,并可以圖形化方式完成系統安裝,降低了使用門檻。基于此系統,我們創建了C/C++/JAVA程序自動評測系統,網址為http:///JudgeOnline。

      我們精選了能夠充分體現計算思維特點的大量題目放置在評測系統中,圍繞這些問題展開教學,語言語法圍繞問題逐步引入,強調語句只是表達工具,重點放在思路、算法、編程構思和程序實現上,讓學生在做中學、學中做,通過實踐感受和領悟計算機問題求解的基本方法和思維模式。

      4.2以C語言為主,兼顧JAVA語言

      對于同一個問題求解,既可以使用C語言也可以使用JAVA來解決。在教學過程中,還是需要有個主次,建議采用以C語言為主,兼顧JAVA語言。這樣做主要有以下原因:①同樣的程序,往往C語言的代碼要簡潔一些,更適合初學者上手;②C語言的開發工具(我們采用的是C-Free)更為小巧易用、界面簡潔,適合初學者使用;而JAVA的常用開發工具Eclipse和Netbeans都較為龐大,盡管功能全面但在編寫小規模程序方面并沒有太多優勢;③在結構化程序設計的資源上,無論是教材還是互聯網資源,C語言要遠遠多于JAVA。

      在學生能夠較好地掌握C語言的前提下,鼓勵學生將已有的C語言程序改寫成JAVA語言來完成同樣的任務,能更好地讓學生體會到這兩種語言的異同。

      4.3精選語言語法和規則

      結構化程序設計的教學要以程序設計為主線,結合實際案例來展開,將程序開發過程的相關內容貫穿和滲透到每個知識點的講授中去,訓練學生分析問題和解決問題的能力,讓學生更多地上機編程,鼓勵和引導探索式學習。

      在以問題求解為中心的授課過程中,講授的語法和規則要盡可能簡單,不求面面俱到,夠用就行, 細枝末節的東西可以不講,要學生“抱西瓜”而不是“揀芝麻”。例如,在課程前期,int、double和char這3種基本數據類型就完全夠用,不必將所有數據類型及其細節都呈現給學生,這樣會使不少初學者無所適從。

      4.4結構化程序劃分

      結構化程序設計采用了“單入口單出口”的模式:數據輸入數據處理數據輸出,根據該模式編寫的程序也有利于提交到在線評測系統進行自動化檢測。該類程序可以劃分成4個部分:聲明、輸入、運算和輸出。除了在數據的輸入處理上存在差異外,在聲明、運算和輸出上,C語言和JAVA語言的差異非常小。

      對于簡單的數據輸入,兩種語言的輸入處理都有固定的模式,在教學中提供了關鍵筆記,讓學生在模板的基礎上進行改動,這樣就讓兩種語言在輸入處理方面的差異實現了最小化。

      對于數據的輸出,JAVA語言教材中更多采用的是 System.out.println,使用這種表達方式會導致C語言和JAVA語言的輸出部分代碼存在較大的差異。建議在教學中采用C語言風格的printf,不但實現了在兩種語言下代碼的一致性,而且代碼的可讀性更好,更容易實現浮點數指定格式的輸出。

      求異比較可以更好地了解C語言和JAVA語言的差異。例如對于雙精度浮點數輸出采用 printf(“%.3f”, x) 而不是 printf(“%.3lf”, x),盡管C語言中兩種方式都是正確的,但后者在JAVA語言環境下會產生異常。

      C語言和JAVA語言非本質的差異可以通過一定的方法來弱化,從而突出共同點。例如從形式上看,C語言和JAVA語言的程序入口main函數差異較大,可以將程序框架設計成模板,讓學生直接拿過來使用,學生只需填寫程序的核心部分,這樣更能突出C和JAVA的共同點。

      5應用關鍵筆記(Key Note)提升學習效率

      為配合在線評測系統在教學中的使用,提高學生解決問題的效率,克服學生的畏難情緒,突出教學重點,我們精心設計了關鍵筆記(Key Note)。從形式上看,關鍵筆記僅是一張正反面打印的A4紙,內容精簡,在使用過程中可以根據學生的反饋進行快速調整后再次分發。

      關鍵筆記的內容凝聚了C語言和JAVA(面向過程部分)的所有核心知識點、最常用代碼和典型算法(如計數、統計、排序、數字分離、進制轉換等)及在線評測系統的注意事項,次要內容只提供線索,在需要的時候,學生可以依據線索在互聯網上查找,這也有助于培養學生的網絡學習能力。

      學生可以借助關鍵筆記,分別運用C語言和JAVA語言來完成在線評測系統中的所有練習。這種方式突出了語言知識的重點,強調了運用知識的能力,有助于培養學生的計算思維能力。教材在教學過程中更多地是起到參考書的作用,幫助學生完善對于語言的認識。

      Scanner cin = new Scanner(System.in); // cin means console input

      說明:C語言中的gets函數具有安全隱患,可以在課程后期提醒學生謹慎使用。

      6對比教學法的教學效果

      從2010年開始的3年時間里,程序設計課程的教學逐步從以語言知識為主線轉向了以程序設計為主線,并在C語言和JAVA語言程序設計課程中采用了比較教學法。在采用新的教學方法后,學生的學習目標清晰,學習興趣增強,學期期末的課程評價顯示,學生對于程序設計課程的評價從原來的較為靠后的排名轉變為躍居前列。

      學生參加程序設計競賽的人數和成績也穩步提升。以藍橋杯全國軟件設計與開發大賽個人賽為例,參加人數從2011年的13人、2012年的32人提高到2013年的38人;參賽成績也有很大的提升,近3年獲得江蘇省一等獎的人數分別為0、4、10人,2013年獲得省一等獎的10人中有3人來自C/C++組,有7人來自JAVA組,JAVA組的成績在全省高職院校中排名第一,這個成績說明了在采用比較教學法后,JAVA程序設計的教學質量獲得了顯著提高。

      7結語

      在C語言和JAVA語言程序設計課程中以程序設計為主線展開教學,采用了比較教學法,并給學生提供了包含核心知識點、最常用代碼的關鍵筆記用于在線評測系統中的問題求解,突出了課程的重點,培養了學生的計算思維,激發了學生的興趣,提升了學生對于課程的滿意度。實踐表明,比較教學法的運用顯著提升了程序設計課程尤其是JAVA的教學質量。

      參考文獻參考文獻:

      [1]JEANNETTE M putational Thinking[J].Communications of ACM,2006,49(3):33-35.

      相關期刊更多

      忻州師范學院學報

      省級期刊 審核時間1個月內

      忻州師范學院

      徐州師范大學學報

      省級期刊 審核時間1個月內

      江蘇省教育廳

      贛南師范學院學報

      省級期刊 審核時間1個月內

      贛南師范大學

      久久国产精品亚洲一区二区| 久久91亚洲精品中文字幕| 亚洲国产精品久久66| 亚洲av成人中文无码专区| 久久亚洲精品成人AV| 亚洲人成依人成综合网| 妇女自拍偷自拍亚洲精品| 亚洲综合无码无在线观看| 中文字幕在线观看亚洲视频| 亚洲最大成人网色香蕉| 亚洲乱码无限2021芒果| 亚洲精品国产成人| 亚洲日韩在线视频| 亚洲av产在线精品亚洲第一站| 国产亚洲精品a在线无码| 国产亚洲色婷婷久久99精品| 亚洲人成人一区二区三区| 亚洲最大AV网站在线观看| 亚洲国产区男人本色| 亚洲精品乱码久久久久久下载 | 亚洲AV无码不卡在线观看下载 | 亚洲日韩精品一区二区三区无码| 亚洲小说区图片区另类春色| 久久精品国产亚洲综合色| 亚洲av日韩综合一区在线观看| 91在线亚洲精品专区| 亚洲另类图片另类电影| 2020国产精品亚洲综合网| 中文字幕无码亚洲欧洲日韩| 亚洲日本va一区二区三区| 久久久亚洲精华液精华液精华液| 国产亚洲视频在线播放大全| 亚洲乱码国产一区网址| 亚洲日韩一页精品发布| 99久久亚洲精品无码毛片| 亚洲AV成人无码天堂| 亚洲第一街区偷拍街拍| 亚洲精品黄色视频在线观看免费资源| 亚洲性日韩精品一区二区三区| 亚洲人成伊人成综合网久久久| 午夜亚洲AV日韩AV无码大全|