亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        尹鴻峰

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

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

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

        中圖分類號(hào):G642

        0 引 言

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

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

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

        2 類的引入

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

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

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

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

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

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

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

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

        struct stud s[N];

        ……//賦值過程略

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

        for( int i=0; i

        CalSum_Avg( &s[i] );

        2)使用類方式。

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

        class stud {

        protected:

        char name[10];

        int age;

        float score[3];

        public:

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

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

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

        };

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

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

        stud s[N];

        for( int i=0; i

        s[i]. InitStud ();

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

        for( int i=0; i

        s[i].CalSum();

        s[i].CalAvg();

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

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

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

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

        struct stud {

        char name[10];

        int age;

        float score[3];

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

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

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

        };

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

        struct stud s[N];

        for( int i=0; i

        s[i]. InitStud ();

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

        for( int i=0; i

        s[i].CalSum();

        s[i].CalAvg();

        }

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

        4 概念的強(qiáng)化

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

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

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

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

        5 結(jié) 語

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

        參考文獻(xiàn):

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

        (編輯:宋文婷)

        猜你喜歡
        面向?qū)ο?/a>
        面向?qū)ο蠓椒ㄔ谒罾銹LC編程中應(yīng)用分析
        電子制作(2019年7期)2019-04-25 13:18:00
        電子測(cè)試(2018年22期)2018-12-19 05:12:28
        面向?qū)ο蟮挠?jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)軟件系統(tǒng)的開發(fā)
        面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議研究與應(yīng)用
        面向?qū)ο骔eb開發(fā)編程語言的的評(píng)估方法
        基于面向?qū)ο蟮腛ffice評(píng)測(cè)系統(tǒng)的分析
        峰叢洼地農(nóng)作物面向?qū)ο笮畔⑻崛∫?guī)則集
        遙感信息(2015年3期)2015-12-13 07:26:54
        基于E-cognition的面向?qū)ο蟮母叻直媛蔬b感圖像分類研究
        基于面向?qū)ο蟮能囕v管理軟件的研制與開發(fā)
        面向?qū)ο蟮腟oS體系結(jié)構(gòu)建模方法及應(yīng)用
        色yeye在线观看| 亚洲国产精品一区二区成人片国内| 国产精品亚洲二区在线看| 极品尤物精品在线观看| 又硬又粗进去好爽免费| 色多多性虎精品无码av| 中文字幕人妻第一区| 中文字幕亚洲视频一区| 成人大片在线观看视频| 亚洲av高清一区二区三区| 精品国产日韩亚洲一区在线| 亚洲成人一区二区av| 国产在线一区二区三区四区不卡| 国产女人精品视频国产灰线| 97精品国产一区二区三区| 日产亚洲一区二区三区| 六月丁香综合在线视频| 99久久伊人精品综合观看| 国产成人vr精品a视频| 精品久久久久久无码不卡| 伊人狠狠色j香婷婷综合| 粉嫩av一区二区在线观看| av无码av在线a∨天堂app| 久久亚洲sm情趣捆绑调教| 色老汉免费网站免费视频| 亚洲V在线激情| 无码AV无码免费一区二区| 国产桃色精品网站| 成人影院羞羞的视频免费观看| 国产精品成人av大片| 一区二区三区无码高清视频| 欧美大片aaaaa免费观看| 国精品无码一区二区三区在线蜜臀| 久久精品国产亚洲av麻| 国产乱子伦精品免费女| 亚洲地区一区二区三区| 亚洲av乱码国产精品色| 亚洲国产成人久久精品美女av| 亚洲av色香蕉一区二区三区av| 水蜜桃男女视频在线观看网站| 一区二区三区午夜视频在线|