面向?qū)ο蟪绦蛟O(shè)計(C++)教學(xué)方法探討_第1頁
面向?qū)ο蟪绦蛟O(shè)計(C++)教學(xué)方法探討_第2頁
面向?qū)ο蟪绦蛟O(shè)計(C++)教學(xué)方法探討_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

面向?qū)ο蟪绦蛟O(shè)計(C++)教學(xué)方法探討面向?qū)ο蟪绦蛟O(shè)計(C++)教學(xué)辦法探討

文章編號:1672-5913〔2022〕05-0082-03

中圖分類號:G642

0引言

面向?qū)ο蟪绦蛟O(shè)計〔C++〕是計算機專業(yè)的一門重要專業(yè)根底課程,很多院校一般將其安頓在C語言程序設(shè)計課程之后,并作為C/C++程序高級開發(fā)及Java語言程序設(shè)計的先修課程進(jìn)行設(shè)置,因此該課程在程序設(shè)計課程中起著承上啟下的作用,其重要地位不言而喻,但是在教學(xué)過程中,由于學(xué)生在先期的C語言程序設(shè)計課程中已經(jīng)根本確立了面向過程的程序設(shè)計思想,面對新的程序設(shè)計思想,很多學(xué)生難以適應(yīng)新的編程方式,尤其是在入門過程中對類的概念及應(yīng)用的理解。

1面向?qū)ο笈c面向過程的區(qū)別

面向過程是以函數(shù)為單位實現(xiàn)的[1],每個函數(shù)代表一個獨立的動作,完成一個獨立的功能,而完成動作的實體都是被動地在函數(shù)間傳遞,實體和動作之間沒有緊密聯(lián)系,實體只是像提線木偶一樣被動地接受加工,目標(biāo)的實現(xiàn)完全由動作的代表――假設(shè)干個函數(shù)貫通完成;而面向?qū)ο笫且詫嶓w,即對象為單位實現(xiàn)的[1],每個動作完全由明確的實體執(zhí)行,實體貫通于程序的整個執(zhí)行過程,目標(biāo)的實現(xiàn)那么是由多個實體相互協(xié)作完成,因此面向?qū)ο筮@種設(shè)計方式更加合乎人們的思維方式。

2類的引入

在課堂講授過程中,如果直接引入類的概念及應(yīng)用辦法,難免會導(dǎo)致局部學(xué)生在理解上與面向過程產(chǎn)生混同,從而出現(xiàn)概念上的偏差,影響對后面內(nèi)容的進(jìn)一步學(xué)習(xí),因此在引入類的概念時,可以結(jié)合面向過程程序設(shè)計辦法中學(xué)生熟識的內(nèi)容進(jìn)行講解。

C語言程序設(shè)計是C++語言的先期課程,在學(xué)習(xí)課程時,學(xué)生已經(jīng)對結(jié)構(gòu)體的使用有了一定了解,而結(jié)構(gòu)體與類之間的區(qū)別僅體現(xiàn)在訪問控制方式及行為,即成員函數(shù)的引入方面。因此,引入類的概念就可以借助于結(jié)構(gòu)體來實現(xiàn),這樣可以讓學(xué)生通過對日常生活中的一些普通事件進(jìn)行編程處理,來察看兩者之間的區(qū)別,如待處理的學(xué)生信息包括姓名、年齡和成績〔包括數(shù)學(xué)、語文和英語3門課程〕3種,要求對每位學(xué)生的總成績和平均成績進(jìn)行計算統(tǒng)計,試通過使用結(jié)構(gòu)體和類兩種方式對學(xué)生進(jìn)行成績分析,并察看兩者之間的區(qū)別。

1〕使用結(jié)構(gòu)體方式。

〔1〕聲明結(jié)構(gòu)體類型。

structstud{charname[10];intage;floatscore[3];};

〔2〕定義計算函數(shù),以計算每位學(xué)生的總成績和平均成績并輸出。

voidCalSum_Avg〔structStud*s〕{……//中間過程略}

〔3〕在主函數(shù)中定義學(xué)生結(jié)構(gòu)體數(shù)組并賦值。

structstuds[N];

……//賦值過程略

〔4〕對每位學(xué)生分別進(jìn)行函數(shù)調(diào)用計算結(jié)果。

for〔inti=0;iCalSum_Avg〔&s[i]〕;

2〕使用類方式。

〔1〕聲明學(xué)生類。

classstud{

protected:

charname[10];

intage;

floatscore[3];

public:

voidInitStud〔〕;//為成員賦值

voidCalSum〔〕;//計算自己的總成績

voidCalAvg〔〕;//計算自己的平均成績

};

……//成員函數(shù)實現(xiàn)局部略

〔2〕在主函數(shù)中定義學(xué)生對象數(shù)組并賦值。

studs[N];

for〔inti=0;is[i].InitStud〔〕;

〔3〕讓每位學(xué)生分別調(diào)用相應(yīng)成員函數(shù)計算結(jié)果。

for〔inti=0;is[i].CalSum〔〕;

s[i].CalAvg〔〕;

教師可讓學(xué)生察看上述兩種程序設(shè)計辦法在思路上的區(qū)別,體會面向過程與面向?qū)ο髢煞N程序設(shè)計思想的不同之處,并討論這兩種設(shè)計思想中哪種辦法更接近人們的行為方式,理解類的定義及使用辦法,解釋類的訪問控制方式;此外,還可以融入下列例如作為過渡。

3用結(jié)構(gòu)體實現(xiàn)類的概念的《^渡

在C++編譯器中,使用結(jié)構(gòu)體代替類,以實現(xiàn)上述類的功能,讓學(xué)生在應(yīng)用中體會從結(jié)構(gòu)體向類的過渡過程。

〔1〕依照類的定義格式,使用結(jié)構(gòu)體方式定義上述學(xué)生類。

structstud{

charname[10];

intage;

floatscore[3];

voidInitStud〔〕{……}//為成員賦值

voidCalSum〔〕{……}//計算自己的總成績

voidCalAvg〔〕{……}//計算自己的平均成績

};

〔2〕在主函數(shù)中定義學(xué)生結(jié)構(gòu)體數(shù)組并賦值。

structstuds[N];

for〔inti=0;is[i].InitStud〔〕;

〔3〕讓每位學(xué)生分別調(diào)用相應(yīng)成員函數(shù)計算結(jié)果。

for〔inti=0;is[i].CalSum〔〕;

s[i].CalAvg〔〕;

}

教師可讓學(xué)生察看這種實現(xiàn)辦法并比照以上3種實現(xiàn)方式的區(qū)別,分析哪些行為應(yīng)該是公發(fā)展現(xiàn)的,哪些是應(yīng)該隱藏的,由此確定哪些屬性或行為應(yīng)該公開,哪些是不能公開的,從而進(jìn)一步解釋為什么需要設(shè)置數(shù)據(jù)訪問控制方式;并理解私有、愛護(hù)與公有的區(qū)別,闡述類的封裝與隱藏的意義所在,同時分析并介紹類與結(jié)構(gòu)體在使用上的區(qū)別。

4概念的強化

經(jīng)過上述講解,學(xué)生對類的使用及類與結(jié)構(gòu)體在應(yīng)用中的區(qū)別有了一定了解,初步確立了面向?qū)ο蟮木幊趟枷?。為了進(jìn)一步穩(wěn)固學(xué)習(xí)效果,需要在此根底上對上述內(nèi)容進(jìn)行強化練習(xí),如可以布置下一個任務(wù),要求學(xué)生嘗試在學(xué)生類中增加實現(xiàn)下列相關(guān)內(nèi)容。

〔1〕增加分?jǐn)?shù)統(tǒng)計功能,要求對每位學(xué)生的最高成績及最低成績進(jìn)行統(tǒng)計。

〔2〕增加對數(shù)據(jù)成員進(jìn)行修改賦值的成員函數(shù)。

〔3〕嘗試對學(xué)生的年齡進(jìn)行比擬,找出年齡最大的學(xué)生,體會愛護(hù)或私有成員的使用辦法,掌握如何對愛護(hù)或私有成員進(jìn)行讀、寫等根本操作。

5結(jié)語

類的概念是面向?qū)ο蟪绦蛟O(shè)計辦法中最根底也是最重要的概念,關(guān)系著學(xué)生能否進(jìn)一步理解和運用面向?qū)ο蟪绦蛟O(shè)計課程的后

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論