999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向對象程序設計(C++)教學方法探討

2017-05-31 09:21:50尹鴻峰
計算機教育 2017年5期

尹鴻峰

摘 要:面向對象程序設計是計算機專業的一門重要專業基礎課程,讓學生正確理解類的概念是掌握面向對象程序設計方法的關鍵一步。文章提出通過使用結構體和類兩種方式實現相同功能,讓學生通過對照理解類的使用方法及其與結構體的區別,從中體會面向對象與面向過程兩種編程方式的差異,從而引申出類的訪問控制方式等方面內容。

關鍵詞:面向對象;類;結構體;面向過程

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

中圖分類號:G642

0 引 言

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

1 面向對象與面向過程的區別

面向過程是以函數為單位實現的[1],每個函數代表一個獨立的動作,完成一個獨立的功能,而完成動作的實體都是被動地在函數間傳遞,實體和動作之間沒有緊密聯系,實體只是像提線木偶一樣被動地接受加工,目標的實現完全由動作的代表——若干個函數貫穿完成;而面向對象是以實體,即對象為單位實現的[1],每個動作完全由明確的實體執行,實體貫穿于程序的整個執行過程,目標的實現則是由多個實體相互協作完成,因此面向對象這種設計方式更加符合人們的思維方式。

2 類的引入

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

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

1)使用結構體方式。

(1)聲明結構體類型。

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

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

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

(3)在主函數中定義學生結構體數組并賦值。

struct stud s[N];

……//賦值過程略

(4)對每位學生分別進行函數調用計算結果。

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(); //計算自己的平均成績

};

……//成員函數實現部分略

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

stud s[N];

for( int i=0; i

s[i]. InitStud ();

(3)讓每位學生分別調用相應成員函數計算結果。

for( int i=0; i

s[i].CalSum();

s[i].CalAvg();

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

3 用結構體實現類的概念的過渡

在C++編譯器中,使用結構體代替類,以實現上述類的功能,讓學生在應用中體會從結構體向類的過渡過程。

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

struct stud {

char name[10];

int age;

float score[3];

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

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

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

};

(2)在主函數中定義學生結構體數組并賦值。

struct stud s[N];

for( int i=0; i

s[i]. InitStud ();

(3)讓每位學生分別調用相應成員函數計算結果。

for( int i=0; i

s[i].CalSum();

s[i].CalAvg();

}

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

4 概念的強化

經過上述講解,學生對類的使用及類與結構體在應用中的區別有了一定了解,初步確立了面向對象的編程思想。為了進一步鞏固學習效果,需要在此基礎上對上述內容進行強化練習,如可以布置下一個任務,要求學生嘗試在學生類中增加實現以下相關內容。

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

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

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

5 結 語

類的概念是面向對象程序設計方法中最基礎也是最重要的概念,關系著學生能否進一步理解和運用面向對象程序設計課程的后續內容,因此,講好類的入門這一節課對于學生能否順利掌握C++編程語言是相當重要的。我們對面向對象程序設計教學過程中類的概念及應用的引入、比較和強化進行了一定的探索,并在實踐教學過程中取得了比較滿意的效果,加深了學生對類的理解,為學生學習后續課程知識奠定了良好的基礎。

參考文獻:

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

(編輯:宋文婷)

主站蜘蛛池模板: 手机看片1024久久精品你懂的| 精品久久蜜桃| 亚洲精品手机在线| 在线免费观看a视频| 亚洲成在线观看| 秋霞国产在线| 日韩人妻少妇一区二区| 在线观看国产精品日本不卡网| 成人午夜亚洲影视在线观看| 亚洲午夜福利精品无码| 国产在线日本| 综合亚洲网| 日韩精品成人网页视频在线| 在线无码私拍| 日韩成人高清无码| 国产成年女人特黄特色毛片免| 国产精品熟女亚洲AV麻豆| 国产人人射| 四虎成人精品在永久免费| 亚洲av片在线免费观看| 91在线激情在线观看| 久久特级毛片| 成年人免费国产视频| 污网站免费在线观看| 91视频99| 精品国产欧美精品v| 内射人妻无套中出无码| 在线观看91精品国产剧情免费| 久久黄色一级片| 午夜激情福利视频| 国产一区二区网站| 亚洲国产精品无码AV| 国产欧美中文字幕| 97在线国产视频| 国产精品无码影视久久久久久久| 久久中文字幕不卡一二区| 国外欧美一区另类中文字幕| 久久婷婷色综合老司机| 亚洲一区免费看| 亚洲综合一区国产精品| 国产成人精品一区二区三在线观看| 亚洲视频无码| 国产无人区一区二区三区| 97视频精品全国免费观看| 欧美日韩一区二区三| a欧美在线| 农村乱人伦一区二区| 韩国v欧美v亚洲v日本v| 国产夜色视频| 亚洲人成网址| 亚洲精品国产首次亮相| 自慰网址在线观看| 国产在线欧美| 成人精品区| 国产国模一区二区三区四区| 国产麻豆精品在线观看| 四虎国产在线观看| 区国产精品搜索视频| 国产精品一线天| 成人在线第一页| 国产无码性爱一区二区三区| 精品国产欧美精品v| 久久天天躁狠狠躁夜夜2020一| 免费A∨中文乱码专区| 91毛片网| 欧美国产综合视频| 国产亚洲日韩av在线| 欧美a在线看| 国产va在线观看免费| 91亚洲国产视频| 永久成人无码激情视频免费| 欧美亚洲日韩中文| 72种姿势欧美久久久久大黄蕉| 久久无码av三级| 国产成人高清精品免费软件 | 国产日韩欧美中文| 国产精品无码制服丝袜| 亚洲无码不卡网| 91精选国产大片| 98精品全国免费观看视频| 国产成人精品亚洲日本对白优播| 亚洲人成在线免费观看|