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.

(編輯:宋文婷)

主站蜘蛛池模板: 永久免费无码成人网站| 九九九久久国产精品| 黄色网页在线观看| 亚洲人成网站18禁动漫无码| 国产精品无码AⅤ在线观看播放| 色天天综合久久久久综合片| 人妻中文字幕无码久久一区| 中文字幕调教一区二区视频| 视频二区中文无码| 黄色网站在线观看无码| 国产 在线视频无码| 久久综合伊人 六十路| 午夜视频在线观看免费网站| 亚洲欧美一区二区三区蜜芽| 中文字幕永久在线观看| 99热这里只有免费国产精品| 九九热精品视频在线| 22sihu国产精品视频影视资讯| 欧美一区二区精品久久久| 日本免费精品| 青青国产成人免费精品视频| 99久久99这里只有免费的精品| 亚洲国产天堂久久综合| 成人av手机在线观看| 动漫精品中文字幕无码| 国产精欧美一区二区三区| 综合亚洲色图| 国产乱论视频| 国产最新无码专区在线| 国产精品第一区在线观看| 91麻豆精品视频| 亚洲欧美自拍视频| 亚洲精品无码抽插日韩| 一级毛片免费不卡在线| 国产一级在线观看www色| 无码综合天天久久综合网| 97色伦色在线综合视频| 欧美精品二区| 婷婷丁香色| 欧美成人精品一级在线观看| 伊人色天堂| 日韩精品毛片人妻AV不卡| 国产精品短篇二区| 中文字幕亚洲无线码一区女同| 怡春院欧美一区二区三区免费| 五月婷婷综合色| 99久久亚洲综合精品TS| 国产一区三区二区中文在线| 亚洲狼网站狼狼鲁亚洲下载| 大香网伊人久久综合网2020| 亚洲综合香蕉| 在线观看免费黄色网址| 自拍欧美亚洲| 五月天福利视频| 精品少妇人妻无码久久| 久久久久亚洲AV成人网站软件| 亚洲国产精品久久久久秋霞影院| 91视频区| 福利国产在线| 91小视频在线观看| 九九热视频在线免费观看| 亚洲中文字幕精品| 亚洲精品欧美日韩在线| 亚洲AV无码不卡无码| 国内精品久久久久鸭| 久久精品国产91久久综合麻豆自制| 热九九精品| 一区二区午夜| 少妇精品网站| 国产91色| 波多野结衣久久高清免费| 69综合网| 国产日产欧美精品| 丁香六月综合网| 欧美亚洲另类在线观看| 免费人成视网站在线不卡| 91精品福利自产拍在线观看| 精品人妻一区二区三区蜜桃AⅤ| 国产爽歪歪免费视频在线观看| 女人一级毛片| 亚洲人成网站日本片| 国产精品久久久久久久伊一|