国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2017-05-31 09:21尹鴻峰
計算機教育 2017年5期
關(guān)鍵詞:面向?qū)ο?/a>

尹鴻峰

摘 要:面向?qū)ο蟪绦蛟O(shè)計是計算機專業(yè)的一門重要專業(yè)基礎(chǔ)課程,讓學生正確理解類的概念是掌握面向?qū)ο蟪绦蛟O(shè)計方法的關(guān)鍵一步。文章提出通過使用結(jié)構(gòu)體和類兩種方式實現(xiàn)相同功能,讓學生通過對照理解類的使用方法及其與結(jié)構(gòu)體的區(qū)別,從中體會面向?qū)ο笈c面向過程兩種編程方式的差異,從而引申出類的訪問控制方式等方面內(nèi)容。

關(guān)鍵詞:面向?qū)ο?;類;結(jié)構(gòu)體;面向過程

文章編號:1672-5913(2017)05-0082-03

中圖分類號:G642

0 引 言

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

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

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

2 類的引入

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

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

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

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

struct stud {char name[10]; int age; float score[3];};

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

void CalSum_Avg( struct Stud *s){ …… //中間過程略 }

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

struct stud s[N];

……//賦值過程略

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

for( int i=0; i

CalSum_Avg( &s[i] );

2)使用類方式。

(1)聲明學生類。

class stud {

protected:

char name[10];

int age;

float score[3];

public:

void InitStud();//為成員賦值

void CalSum(); //計算自己的總成績

void CalAvg(); //計算自己的平均成績

};

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

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

stud s[N];

for( int i=0; i

s[i]. InitStud ();

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

for( int i=0; i

s[i].CalSum();

s[i].CalAvg();

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

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

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

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

struct stud {

char name[10];

int age;

float score[3];

void InitStud(){ …… }//為成員賦值

void CalSum(){…… } //計算自己的總成績

void CalAvg(){…… } //計算自己的平均成績

};

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

struct stud s[N];

for( int i=0; i

s[i]. InitStud ();

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

for( int i=0; i

s[i].CalSum();

s[i].CalAvg();

}

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

4 概念的強化

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

(1)增加分數(shù)統(tǒng)計功能,要求對每位學生的最高成績及最低成績進行統(tǒng)計。

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

(3)嘗試對學生的年齡進行比較,找出年齡最大的學生,體會保護或私有成員的使用方法,掌握如何對保護或私有成員進行讀、寫等基本操作。

5 結(jié) 語

類的概念是面向?qū)ο蟪绦蛟O(shè)計方法中最基礎(chǔ)也是最重要的概念,關(guān)系著學生能否進一步理解和運用面向?qū)ο蟪绦蛟O(shè)計課程的后續(xù)內(nèi)容,因此,講好類的入門這一節(jié)課對于學生能否順利掌握C++編程語言是相當重要的。我們對面向?qū)ο蟪绦蛟O(shè)計教學過程中類的概念及應用的引入、比較和強化進行了一定的探索,并在實踐教學過程中取得了比較滿意的效果,加深了學生對類的理解,為學生學習后續(xù)課程知識奠定了良好的基礎(chǔ)。

參考文獻:

[1] 譚浩強. C++程序設(shè)計[M]. 2版. 北京: 清華大學出版社, 2011: 223.

(編輯:宋文婷)

猜你喜歡
面向?qū)ο?/a>
面向?qū)ο髷?shù)據(jù)庫教學方法的探討
基于案例的面向?qū)ο蟪绦驅(qū)嵺`教學模式探索
面向?qū)ο蟮挠嬎銠C導論課程教學
基于Web的科研項目管理系統(tǒng)的設(shè)計與實現(xiàn)
應力波反射法測錨索長度的數(shù)據(jù)處理軟件設(shè)計與實現(xiàn)
關(guān)于計算機語言面向?qū)ο箝_發(fā)的發(fā)展研究
面向?qū)ο蠹夹g(shù)中數(shù)據(jù)訪問方法研究
IEC61850在電能量管理系統(tǒng)通信中的應用
基于遙感技術(shù)的植被信息提取方法研究
高職計算機專業(yè)的一次信息化教學單元設(shè)計
普兰县| 哈巴河县| 丰台区| 淮滨县| 蒙城县| 万山特区| 孝感市| 酒泉市| 荆门市| 自贡市| 聂拉木县| 新和县| 陇西县| 丰原市| 宝鸡市| 西乡县| 罗甸县| 安陆市| 沙河市| 南宁市| 政和县| 广平县| 昆明市| 抚远县| 和静县| 陆丰市| 龙南县| 大厂| 灵宝市| 体育| 通许县| 宣恩县| 萨迦县| 阜新市| 明水县| 吉安县| 全椒县| 丹阳市| 大同县| 温宿县| 师宗县|