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.

(編輯:宋文婷)

主站蜘蛛池模板: 久久大香香蕉国产免费网站| 亚洲va视频| 久久香蕉国产线看精品| 丁香五月激情图片| 朝桐光一区二区| 中文字幕不卡免费高清视频| 国产成在线观看免费视频 | 18禁黄无遮挡免费动漫网站| 免费三A级毛片视频| 国产va在线观看免费| 国产精品视频久| 99热免费在线| 99re在线免费视频| 欧美精品成人一区二区视频一| 欧美97欧美综合色伦图| 欧美日在线观看| 日韩欧美综合在线制服| 精品少妇人妻一区二区| 老司国产精品视频| 亚洲欧洲日产国码无码av喷潮| 免费人成在线观看成人片| 专干老肥熟女视频网站| 91网红精品在线观看| 国产精品人莉莉成在线播放| av在线人妻熟妇| 国产成人凹凸视频在线| 亚洲国产清纯| 中文成人在线| 99国产精品国产高清一区二区| 麻豆国产精品一二三在线观看| 国产精品视频导航| 色偷偷综合网| 亚洲黄网视频| 欧美激情一区二区三区成人| 久久精品人人做人人爽| 中文一区二区视频| 久热精品免费| 国产精品久久精品| 老司机午夜精品视频你懂的| 成年片色大黄全免费网站久久| 国产国产人免费视频成18| 就去吻亚洲精品国产欧美| 日本尹人综合香蕉在线观看| 2020极品精品国产| 香港一级毛片免费看| 久久黄色一级片| 国产精品成人观看视频国产| 亚洲无码一区在线观看| 亚洲成A人V欧美综合| 亚洲va在线∨a天堂va欧美va| 亚洲AV免费一区二区三区| 天天色天天操综合网| 手机在线国产精品| 亚洲精品无码专区在线观看| 最新日本中文字幕| 欧美性精品不卡在线观看| 午夜一区二区三区| 欧美国产综合色视频| 亚洲天堂久久久| 欧美成人一区午夜福利在线| 亚洲国产欧美目韩成人综合| 中文字幕久久亚洲一区| 亚洲中文字幕23页在线| 日本欧美成人免费| 亚洲手机在线| 婷婷色婷婷| 国产一在线| 国产第一页第二页| 欧美色综合久久| 欧美午夜视频在线| 久久精品亚洲热综合一区二区| 在线无码九区| 日本欧美中文字幕精品亚洲| 在线观看亚洲人成网站| 日本在线免费网站| 国产成人91精品| 香蕉在线视频网站| 国产在线观看99| 狠狠亚洲五月天| 亚洲首页国产精品丝袜| 精品国产99久久| 亚洲国产天堂久久九九九|