日韩有码亚洲专区|国产探花在线播放|亚洲色图双飞成人|不卡 二区 视频|东京热av网一区|玖玖视频在线播放|AV人人爽人人片|安全无毒成人网站|久久高清免费视频|人人人人人超碰在线

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

c語言程序設計論文

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

c語言程序設計論文

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

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

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

1 背景

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

2 系統(tǒng)需求分析

2.1 系統(tǒng)功能劃分

該系統(tǒng)主要功能如下:

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

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

2.2 系統(tǒng)功能結構設計

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

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

2)按照學號進行排序;

3)按照總分進行排序;

4)統(tǒng)計各門課程平均分;

5)統(tǒng)計男女學生人數;

6)按照姓名進行排序;

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

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

C語言中系統(tǒng)的每個功能由一個函數來實現(xiàn),其系統(tǒng)功能模塊層次結構圖如下:

圖1 學生成績管理系統(tǒng)功能模塊層次結構圖

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

1)int Menu();

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

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

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

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);

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

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

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

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

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

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

統(tǒng)計高數成績優(yōu)秀人數函數,無返回值,有參數。形式參數同上。

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

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

3 C語言程序設計

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

3.1 主函數程序設計

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

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

3.2.1 主控菜單函數的設計

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

3.2.2 讀入數據函數的設計

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

3.2.3 按姓名排序函數的設計

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

4 系統(tǒng)界面

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

1)系統(tǒng)菜單界面

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

2)@示學生信息界面

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

3)按學號排序界面

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

4)統(tǒng)計高數優(yōu)秀的學生人數和記錄

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

5 結束語

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

參考文獻:

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

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

[3] 宮業(yè)芹. C語言程序設計網上教學系統(tǒng)的設計與實現(xiàn)[D]. 濟南: 山東大學, 2012.

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

關鍵詞:應用型本科;培養(yǎng)軟件工程師;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課程群的教學現(xiàn)狀

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

2 面向培養(yǎng)Java軟件工程師課程教學的重要性

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

3 面向培養(yǎng)軟件工程師的Java課程群教學思路

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

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

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

3.2 面向培養(yǎng)軟件工程師的教學目標

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

3.3 Java課程群體系

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

表1 Java課程群的培養(yǎng)與考核

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

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

4 面向培養(yǎng)軟件工程師Java課程群的教學研究

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

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

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

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

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

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

2) 分步式案例教學

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

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

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

4) 分組答辯式教學

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

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

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

參考文獻:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.單片機教學現(xiàn)狀

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

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

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

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

3.1上好每堂課,激發(fā)學生的學習興趣

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

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

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

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

3.3.1優(yōu)化程序

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

3.3.2合理選用數據類型

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

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

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

4.結語

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

參考文獻

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

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

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

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

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

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

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

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

0引言

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

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

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

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

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

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

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

2.1程序設計課程能力培養(yǎng)目標

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

2.2比較教學法

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

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

2.3比較教學法應用

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

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

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

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

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

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

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

4.1以問題求解為中心

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

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

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

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

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

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

4.3精選語言語法和規(guī)則

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

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

4.4結構化程序劃分

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

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

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

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

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

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

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

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

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

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

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

6對比教學法的教學效果

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

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

7結語

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

參考文獻參考文獻:

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

相關期刊更多

忻州師范學院學報

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

忻州師范學院

徐州師范大學學報

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

江蘇省教育廳

贛南師范學院學報

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

贛南師范大學