計(jì)算機(jī)專業(yè)C與C++程序設(shè)計(jì)研究論文
摘要:首先介紹了目前高校計(jì)算機(jī)學(xué)院C族語言相關(guān)程序設(shè)計(jì)課程的建設(shè)狀況。然后從C族語言的相互衍生關(guān)系出發(fā),提出了在高校計(jì)算機(jī)課程體系中去除C語言的基礎(chǔ)課程,將其綜合成一門C++程序設(shè)計(jì)課程來供學(xué)生學(xué)習(xí),并對(duì)課程內(nèi)容、參考教材和課時(shí)安排上給出了自己的建議。
關(guān)鍵詞:C語言;C++語言;程序設(shè)計(jì)
高校的C族語言教學(xué)總是按照先學(xué)C語言,再學(xué)C++的順序進(jìn)行,這種學(xué)習(xí)順序隨著C++標(biāo)準(zhǔn)的不斷升級(jí)改革后變得越來越不適用。早期的C++屬于多面性語言,即可以像C一樣進(jìn)行模塊化的面向過程的編程設(shè)計(jì),也可以像Java一樣進(jìn)行抽象的面向?qū)ο蟪绦蛟O(shè)計(jì)。那時(shí)的教學(xué)者考慮的是學(xué)生應(yīng)當(dāng)從較為便于理解的面向過程的編程思路入門學(xué)習(xí)C語言編程,然后在熟練了面向過程的編程方式后再從C語言延伸到C++,轉(zhuǎn)而學(xué)習(xí)面向?qū)ο蟮某绦蛟O(shè)計(jì)?墒请S著面向?qū)ο蟮某绦蛟O(shè)計(jì)在應(yīng)用市場上占領(lǐng)了絕對(duì)的主導(dǎo)地位后,再讓學(xué)生從面向過程著手就等于是浪費(fèi)學(xué)習(xí)時(shí)間。加上C++和C兩門語言的初級(jí)語法思想是完全一致的,開設(shè)兩門課程浪費(fèi)了學(xué)時(shí),也耽誤后續(xù)更重要的核心課程的學(xué)習(xí)。
1程序設(shè)計(jì)語言C與C++的比較
1.1C與C++的共性。一般簡要的介紹是把C++當(dāng)作C的加強(qiáng)版,這種認(rèn)知當(dāng)然是錯(cuò)誤的,C++語言的設(shè)計(jì)者在設(shè)計(jì)之初為了保障自家語言會(huì)受到開發(fā)者的關(guān)注,所以兼容了的C的語法,這就自然使得C++可以使用C的編程方式進(jìn)行程序設(shè)計(jì),所以也導(dǎo)致了很多人對(duì)這兩種語言的關(guān)系產(chǎn)生了錯(cuò)誤的認(rèn)知。同時(shí)由于C語言本身設(shè)定上的優(yōu)越性,所以C++在進(jìn)行自我定義的時(shí)候也沿用了C語言很多優(yōu)良的性質(zhì);A(chǔ)數(shù)據(jù)結(jié)構(gòu)一致,C與C++的基礎(chǔ)數(shù)據(jù)類型都是以變量和常量作為基本屬性劃分,類型上有字符型、整型、長整型、單精度浮點(diǎn)型和雙精度浮點(diǎn)型,不過C++額外增設(shè)了布爾型。復(fù)合型數(shù)據(jù)結(jié)構(gòu)上也都同時(shí)具有數(shù)組、多維數(shù)組、結(jié)構(gòu)體、枚舉類型和共同體,但是C++增設(shè)了字符串類型以替代C語言中的字符數(shù)組,功能上更加強(qiáng)大,也更加便捷。在語法方面,聲明、賦值、循環(huán)、選擇的結(jié)構(gòu)和實(shí)現(xiàn)都是一致的,并且C++雖然提倡使用類和對(duì)象的概念去設(shè)計(jì)程序結(jié)構(gòu),可也同樣支持函數(shù)體結(jié)構(gòu)的程序設(shè)計(jì)結(jié)構(gòu)。并且C語言中函數(shù)的賦值都是間接調(diào)用,在使用C語言函數(shù)時(shí)總是會(huì)在指針上出現(xiàn)各種紕漏,但是C++的函數(shù)體可以使用引用參數(shù),這就使得C++的函數(shù)體比之C的更加好用?偟恼f來就是,C++標(biāo)準(zhǔn)下用戶可以完全使用C語法進(jìn)行編程而不會(huì)出現(xiàn)任何BUG,同時(shí)C++自身的優(yōu)越設(shè)定和標(biāo)準(zhǔn)使得其設(shè)計(jì)能力比C要強(qiáng)大數(shù)倍,是目前市場上大型程序開發(fā)的首選語言。
1.2C與C++的不同。上一節(jié)介紹了C++和C的基礎(chǔ)語法上的區(qū)別,這些區(qū)別都是C++的作者在C的基礎(chǔ)之上修訂而來的結(jié)果,是為了讓C++標(biāo)準(zhǔn)下得面向過程的程序設(shè)計(jì)比之單純的C更加便捷方便。但是C++的誕生伊始,就是一門向上使用面對(duì)對(duì)象的程序設(shè)計(jì)思想的高級(jí)編程語言。它的封裝性、繼承性、多態(tài)性和對(duì)象唯一性才是C++成為強(qiáng)大高級(jí)語言的重要原因,這些特性都是C語言不可能擁有的。所以C能夠?qū)崿F(xiàn)的程序,C++能夠?qū)崿F(xiàn)并且實(shí)現(xiàn)的更為方便,C不能實(shí)現(xiàn)的程序,C++同樣可以實(shí)現(xiàn)。
1.3C++的特色。承接上一節(jié),C++和C之間最大的不同,也是C++自身最值得夸耀的特性,就是面向?qū)ο蟪绦蛟O(shè)計(jì)思想。這種思想使得C++語言設(shè)計(jì)出來的程序,變成了類和對(duì)象的有機(jī)結(jié)合,這種結(jié)合的代碼比之面向過程的函數(shù)體架構(gòu)的代碼更加易讀,共同開發(fā)起來容易上手,后續(xù)的維護(hù)者也不用費(fèi)更多的腦筋去理解前人的代碼含義。而類和對(duì)象的設(shè)計(jì)思路,使得開發(fā)者合作時(shí)相互之間的工作變的更為獨(dú)立,雙方之間只需要知道對(duì)方所寫的類實(shí)現(xiàn)的功能和包含的數(shù)據(jù)就行。這種特性我們稱之為良好的封裝性,開發(fā)者之間不需要去知道對(duì)方的代碼是如何實(shí)現(xiàn),甚至在此之上還可以保證良好的代碼健壯性。因?yàn)轭惖囊,更先進(jìn)的作用域機(jī)制也被引入進(jìn)來,類的書寫者往往會(huì)將自己類中的數(shù)據(jù)進(jìn)行嚴(yán)格的作用域限定,防止其他合作者擅自去修改和使用自己類中的數(shù)據(jù)。合作者想要知道類中的數(shù)據(jù)或者使用類中的數(shù)據(jù),只能通過類的書寫者定義的帶有檢查機(jī)制的方法才行。這樣會(huì)使得很多人合作開發(fā)的大型項(xiàng)目的穩(wěn)定性和安全性比之用C語言開發(fā)時(shí)再上一個(gè)臺(tái)階。同時(shí)類的概念中還有一個(gè)先進(jìn)的設(shè)定就是繼承性,并且由這個(gè)繼承性還延伸出了接口的概念。有了可以繼承的接口和類,那么開發(fā)者在對(duì)程序進(jìn)行迭代的瀑布開發(fā)流程時(shí),就可以很好的使用自己曾經(jīng)開發(fā)的源代碼,或者借用其他項(xiàng)目的源代碼,因?yàn)橹灰獙W(xué)會(huì)科學(xué)的使用繼承機(jī)制,就不僅僅是節(jié)約程序員的代碼時(shí)間,也減少了程序員在回顧曾經(jīng)代碼時(shí)發(fā)生的錯(cuò)誤和歧義。而與繼承機(jī)制配合使用的是多態(tài)性,曾經(jīng)C語言中定義的函數(shù),其靈活度非常差,特定的函數(shù)只能滿足特定程序定義的需求,想要重用曾經(jīng)的源代碼是幾乎不可能的事情。我們剛才提到的繼承機(jī)制使得C++開發(fā)者復(fù)用源代碼成為了一種習(xí)慣,但是復(fù)用時(shí)不可避免的修改問題又?jǐn)[到了臺(tái)面上,多態(tài)機(jī)制順應(yīng)而生了。多態(tài)機(jī)制使得類不僅可以繼承其他類,將父類的數(shù)據(jù)和方法都在本類體中自如的使用,同時(shí)還可以用本類中新的定義和代碼去覆蓋父類中的數(shù)據(jù)定義和方法。這就讓程序員變的更加自由,想用父類的數(shù)據(jù)和方法時(shí)就去繼承,但是不想全部使用時(shí)就加上多態(tài)機(jī)制去覆蓋。這樣代碼之間的重復(fù)利用率變得十分客觀,節(jié)約了大量的開發(fā)時(shí)間和開發(fā)成本。
2程序設(shè)計(jì)語言C與C++開設(shè)建議
C++課程的內(nèi)容應(yīng)當(dāng)如下安排:第一部分,教授C++的基礎(chǔ)語法,讓學(xué)生可以編寫出在DOS命令行下輸入輸出的程序,了解編程的基本概念和思想。并且這時(shí)應(yīng)當(dāng)同時(shí)進(jìn)行C和C++的雙向語法教學(xué),為日后學(xué)生進(jìn)入高年級(jí)后的方向選擇打下基礎(chǔ)。此部分使用半個(gè)學(xué)期最為適宜,并且此時(shí)并不灌輸學(xué)生何為面向?qū)ο蠛螢槊嫦蜻^程,而主在讓學(xué)生使用基礎(chǔ)語法進(jìn)行最基本的編程探索。第二部分,在學(xué)生有了基礎(chǔ)編程知識(shí)后,將數(shù)據(jù)結(jié)構(gòu)的內(nèi)容放入課程中去,用半學(xué)期的時(shí)間教授學(xué)生用C++實(shí)現(xiàn)的各類常見數(shù)據(jù)結(jié)構(gòu)。并且結(jié)合實(shí)際開發(fā)項(xiàng)目中的代碼作為閱讀補(bǔ)充,讓學(xué)生明白數(shù)據(jù)結(jié)構(gòu)的知識(shí)對(duì)程序開發(fā)的意義,然后將簡化后的小項(xiàng)目作為課堂的主要內(nèi)容,用實(shí)際的代碼讓學(xué)生去理解那些枯燥的數(shù)學(xué)定理和概念。而且在實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的過程中,必然會(huì)面對(duì)一些更為高級(jí)的C++語法和概念?偟膩碚f,用大一上的一個(gè)學(xué)期讓學(xué)生對(duì)于基礎(chǔ)編程有了良好的認(rèn)知和深入,是十分值得和有效的。第三部分,在學(xué)生有了數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)和C++的基本語法掌握后,應(yīng)當(dāng)面對(duì)一些實(shí)際的開發(fā)項(xiàng)目和問題。當(dāng)然實(shí)際的問題還是需要老師進(jìn)行簡化,其主要目的是讓學(xué)生掌握C++的高級(jí)特性和實(shí)際軟件開發(fā)的過程與思路,并且想學(xué)生傳授基礎(chǔ)的算法。這一部分較為困難,應(yīng)當(dāng)使用一個(gè)學(xué)期讓學(xué)生慢慢的掌握和熟悉。第四部分,在學(xué)生算是對(duì)C++語言和數(shù)據(jù)結(jié)構(gòu)與算法都有了基礎(chǔ)的入門后,再進(jìn)行課堂教學(xué)意義就不大了,應(yīng)當(dāng)再大二上學(xué)期開設(shè)一門課程設(shè)計(jì)實(shí)驗(yàn)課,讓學(xué)生完成幾個(gè)難度從小到大的項(xiàng)目,循序漸進(jìn)的掌握基本的實(shí)際開發(fā)技巧和思維。
參考文獻(xiàn)
[1]羅莉.計(jì)算機(jī)程序設(shè)計(jì)的多應(yīng)用型開發(fā)與實(shí)現(xiàn)[J].產(chǎn)業(yè)與科技論壇,2015(14):54-55.
[2]鄧薇,何锫,錢俊彥,等.深度優(yōu)先的多基因表達(dá)式程序設(shè)計(jì)[J].模式識(shí)別與人工智能,2013(9):819-828.
[3]宛西原,汪霞.非計(jì)算機(jī)本科專業(yè)計(jì)算機(jī)程序設(shè)計(jì)課程的改革思考[J].計(jì)算機(jī)工程與科學(xué),2014(z1):56-59.
【計(jì)算機(jī)專業(yè)C與C++程序設(shè)計(jì)研究論文】相關(guān)文章:
地方高校計(jì)算機(jī)專業(yè)程序設(shè)計(jì)研究論文02-23
非計(jì)算機(jī)專業(yè)C語言教學(xué)模式分析論文02-20
計(jì)算機(jī)專業(yè)程序設(shè)計(jì)基礎(chǔ)課程教學(xué)改革論文11-09
C語言專業(yè)論文致謝詞12-11
計(jì)算機(jī)專業(yè)圖像處理課程改革研究論文02-18
計(jì)算機(jī)C語言的論文致謝詞03-19
《C語言程序設(shè)計(jì)》課程的教學(xué)改革與實(shí)踐論文03-06
計(jì)算機(jī)C語言論文致謝11-26
- 相關(guān)推薦