• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      面向?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é)生通過對照理解類的使用方法及其與結(jié)構(gòu)體的區(qū)別,從中體會(huì)面向?qū)ο笈c面向過程兩種編程方式的差異,從而引申出類的訪問控制方式等方面內(nèi)容。

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

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

      中圖分類號:G642

      0 引 言

      面向?qū)ο蟪绦蛟O(shè)計(jì)(C++)是計(jì)算機(jī)專業(yè)的一門重要專業(yè)基礎(chǔ)課程,很多院校一般將其安排在C語言程序設(shè)計(jì)課程之后,并作為C/C++程序高級開發(fā)及Java語言程序設(shè)計(jì)的先修課程進(jìn)行設(shè)置,因此該課程在程序設(shè)計(jì)課程中起著承上啟下的作用,其重要地位不言而喻,但是在教學(xué)過程中,由于學(xué)生在先期的C語言程序設(shè)計(jì)課程中已經(jīng)基本確立了面向過程的程序設(shè)計(jì)思想,面對新的程序設(shè)計(jì)思想,很多學(xué)生難以適應(yīng)新的編程方式,尤其是在入門過程中對類的概念及應(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í)體,即對象為單位實(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)概念上的偏差,影響對后面內(nèi)容的進(jìn)一步學(xué)習(xí),因此在引入類的概念時(shí),可以結(jié)合面向過程程序設(shè)計(jì)方法中學(xué)生熟識的內(nèi)容進(jìn)行講解。

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

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

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

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

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

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

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

      struct stud s[N];

      ……//賦值過程略

      (4)對每位學(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ì)算自己的總成績

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

      };

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

      (2)在主函數(shù)中定義學(xué)生對象數(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ì)算自己的總成績

      void CalAvg(){…… } //計(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)方法并對比以上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é)生對類的使用及類與結(jié)構(gòu)體在應(yīng)用中的區(qū)別有了一定了解,初步確立了面向?qū)ο蟮木幊趟枷?。為了進(jìn)一步鞏固學(xué)習(xí)效果,需要在此基礎(chǔ)上對上述內(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ì)功能,要求對每位學(xué)生的最高成績及最低成績進(jìn)行統(tǒng)計(jì)。

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

      (3)嘗試對學(xué)生的年齡進(jìn)行比較,找出年齡最大的學(xué)生,體會(huì)保護(hù)或私有成員的使用方法,掌握如何對保護(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é)課對于學(xué)生能否順利掌握C++編程語言是相當(dāng)重要的。我們對面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)過程中類的概念及應(yīng)用的引入、比較和強(qiáng)化進(jìn)行了一定的探索,并在實(shí)踐教學(xué)過程中取得了比較滿意的效果,加深了學(xué)生對類的理解,為學(xué)生學(xué)習(xí)后續(xù)課程知識奠定了良好的基礎(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
      電子測試(2018年22期)2018-12-19 05:12:28
      面向?qū)ο蟮挠?jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)軟件系統(tǒng)的開發(fā)
      電子測試(2018年15期)2018-09-26 06:01:34
      面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議研究與應(yīng)用
      面向?qū)ο骔eb開發(fā)編程語言的的評估方法
      基于面向?qū)ο蟮腛ffice評測系統(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)用
      安阳市| 横山县| 会昌县| 大港区| 灯塔市| 科尔| 双桥区| 石门县| 颍上县| 丽江市| 余姚市| 周至县| 江川县| 离岛区| 沅陵县| 康乐县| 墨脱县| 筠连县| 宝应县| 上杭县| 长汀县| 彩票| 仁布县| 西昌市| 榆中县| 义马市| 龙州县| 尼勒克县| 瑞金市| 富裕县| 虹口区| 克什克腾旗| 凌云县| 鄂伦春自治旗| 望城县| 钟山县| 手游| 盐亭县| 安图县| 武平县| 泗阳县|