• 
    

    
    

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

      C++面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)踐教學(xué)改革探討*

      2015-08-16 09:34:59張會
      關(guān)鍵詞:面向?qū)ο?/a>結(jié)點(diǎn)程序設(shè)計(jì)

      張會

      (攀枝花學(xué)院 數(shù)學(xué)與計(jì)算機(jī)學(xué)院,四川 攀枝花617000)

      C++面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)踐教學(xué)改革探討*

      張會

      (攀枝花學(xué)院 數(shù)學(xué)與計(jì)算機(jī)學(xué)院,四川 攀枝花617000)

      針對“C++面向?qū)ο蟪绦蛟O(shè)計(jì)”課程教學(xué)中存在的問題,提出了包括驗(yàn)證型、設(shè)計(jì)型、綜合型的多樣型實(shí)踐教學(xué)改革實(shí)施方案,該方案有效的提高了學(xué)生的學(xué)習(xí)興趣及綜合編程能力。

      程序設(shè)計(jì);驗(yàn)證型;設(shè)計(jì)型

      引言

      《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》是計(jì)算機(jī)專業(yè)的一門專業(yè)基礎(chǔ)課,其主要目的是培養(yǎng)學(xué)生采用面向?qū)ο笏季S編寫程序,為后續(xù)軟件開發(fā)類課程打下堅(jiān)實(shí)基礎(chǔ)。該門課程是實(shí)踐性較強(qiáng)的一門課程,要求學(xué)生學(xué)完本門課程后能獨(dú)立編寫應(yīng)用程序,本文就《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)踐教學(xué)中存在的問題進(jìn)行分析并提出了多樣型實(shí)驗(yàn)教學(xué)模式的改革探討。

      1 存在的問題

      1.1 學(xué)生面向過程編程思想根深蒂固,難于轉(zhuǎn)變

      很多高校都是先開設(shè)C語言程序設(shè)計(jì)課程,再開設(shè)面向?qū)ο蟪绦蛟O(shè)計(jì)的C++程序設(shè)計(jì)課程。學(xué)生在學(xué)習(xí)C++程序設(shè)計(jì)時(shí)難以從面向過程編程轉(zhuǎn)化為面向?qū)ο缶幊趟季S,而很多教師忽略此情況,只注重照搬書本講解概念,導(dǎo)致學(xué)生學(xué)完C++程序設(shè)計(jì)課程后,仍采用結(jié)構(gòu)化程序設(shè)計(jì)方法的編程思想,未達(dá)到面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)之目的。

      1.2 學(xué)生在學(xué)習(xí)過程中未形成面向?qū)ο蟮闹R體系

      在C++程序設(shè)計(jì)課程中,教學(xué)內(nèi)容主要包括類、對象、繼承、多態(tài)、抽象、接口、異常、I/O流、運(yùn)算符重載等。學(xué)生學(xué)習(xí)完C++課程后,腦海中未形成一個(gè)完整的知識體系結(jié)構(gòu),無法將各內(nèi)容有機(jī)的關(guān)聯(lián)起來,更無法將各知識點(diǎn)靈活應(yīng)用于上機(jī)實(shí)踐,編寫出一個(gè)具有創(chuàng)新水平的應(yīng)用程序。

      1.3 不注重提高學(xué)生的編程能力

      學(xué)生知識體系不健全,各知識點(diǎn)孤立,片面,無法靈活運(yùn)用所學(xué)知識解決實(shí)際問題,因此在編寫程序過程中顯得特別被動,只會為了驗(yàn)證一個(gè)知識點(diǎn)而編寫程序。老師要求學(xué)生編寫綜合型實(shí)踐項(xiàng)目,學(xué)生不會主動思考獨(dú)立編寫程序而只會一味等待老師編寫的參考程序。而后再照搬參考程序,因此學(xué)生喪失了主動編寫程序的能力,無法達(dá)到舉一反三,靈活運(yùn)用各知識點(diǎn)于實(shí)際編程中的能力,當(dāng)然也就無法設(shè)計(jì)出一個(gè)易用性、擴(kuò)展性和復(fù)用性強(qiáng)的程序,因此編程能力無法得到有效的提高。

      1.4 上機(jī)實(shí)踐項(xiàng)目類型單一

      由于C++程序設(shè)計(jì)理論教學(xué)中的概念知識點(diǎn)較多,因此與之配套的實(shí)踐項(xiàng)目多是驗(yàn)證型實(shí)驗(yàn),所設(shè)計(jì)的題目基本上都是為了驗(yàn)證某一個(gè)或多個(gè)知識點(diǎn)而設(shè)計(jì)的實(shí)驗(yàn)項(xiàng)目,從而使學(xué)生感覺對所學(xué)語法或知識點(diǎn)較茫然,不知如何用所學(xué)知識解決實(shí)際問題,使學(xué)生覺得學(xué)無所用。

      2 教學(xué)改革的措施和方法

      2.1 讓學(xué)生清楚面向?qū)ο蟪绦蛟O(shè)計(jì)與面向過程程序設(shè)計(jì)間的關(guān)系

      基于對象的編程更符合人的思維模式,其具有封裝性、繼承性和多態(tài)性的特點(diǎn),因此易于擴(kuò)展和復(fù)用[1]。面向?qū)ο缶幊淌菍傩院筒僮鞣庋b成一個(gè)類,再通過類實(shí)例化的主體調(diào)用類中定義的方法對屬性變量進(jìn)行操作。如家用洗衣機(jī)將內(nèi)部結(jié)構(gòu)相對于用戶進(jìn)行封裝隱藏,通過使用對外的接口按鈕來啟動、設(shè)置和停止洗衣功能。

      面向過程編程的核心是編寫解決某個(gè)問題的程序段,如C中的函數(shù)。函數(shù)是程序執(zhí)行時(shí)產(chǎn)生的一種行為,但面向過程函數(shù)沒有行為主體,不符合自然界中的主體行為規(guī)律,即某一行為是由某一主體(對象)所產(chǎn)生。如編寫一個(gè)max()函數(shù),該函數(shù)不從屬于任何一個(gè)主體,可以直接調(diào)用,不符合自然界中主體發(fā)出操作的規(guī)律,不利于程序的擴(kuò)展和維護(hù)。面向?qū)ο缶幊瘫容^接近人們表達(dá)事物和解決問題的思維方法,其編程的核心圍繞對象,一切行為屬性均從屬于某一特定的對象。

      面向?qū)ο缶幊绦枰帉戭愔蟹庋b的方法體,即寫一個(gè)小算法,同時(shí)面向?qū)ο缶幊套⒅卦鯓雍侠?、有效地組織類,對象。因此教學(xué)中應(yīng)把結(jié)構(gòu)化程序設(shè)計(jì)與面向?qū)ο蟪绦蛟O(shè)計(jì)有機(jī)地結(jié)合起來,并注意與結(jié)構(gòu)化程序設(shè)計(jì)方法相比較,注重面向?qū)ο蟪绦蛟O(shè)計(jì)思想的傳授,引導(dǎo)學(xué)生程序設(shè)計(jì)思維的轉(zhuǎn)變[2]。

      2.2 理論聯(lián)系實(shí)踐,學(xué)生在實(shí)踐中形成面向?qū)ο蟮闹R體系

      學(xué)生在理論教學(xué)中學(xué)習(xí)的知識點(diǎn)片面、孤立,不通過實(shí)踐環(huán)節(jié),無法將其有效組合在一起,形成知識體系結(jié)構(gòu),不能有效地應(yīng)用所學(xué)知識點(diǎn),易遺忘,易產(chǎn)生所學(xué)知識無用的想法,因此只有在掌握基本知識點(diǎn)的基礎(chǔ)上,進(jìn)行一些綜合項(xiàng)目的訓(xùn)練,才能真正提高學(xué)生利用所學(xué)知識解決問題的能力,才能對實(shí)際中需解決的問題觸類旁通,舉一反三,因此項(xiàng)目實(shí)踐與課堂教學(xué)缺一不可,不能厚此鄙薄[3]。

      驗(yàn)證型實(shí)驗(yàn)只是為了讓學(xué)生熟悉基本概念,基本語法,建立C++基本的知識框架,但無法讓學(xué)生靈活使用所學(xué)習(xí)相關(guān)知識點(diǎn),因此,筆者在實(shí)踐教學(xué)過程,采用驗(yàn)證型實(shí)驗(yàn)+設(shè)計(jì)型實(shí)驗(yàn)搭配組合,讓學(xué)生實(shí)踐一個(gè)驗(yàn)證型實(shí)驗(yàn)后,再讓學(xué)生做一個(gè)設(shè)計(jì)型實(shí)驗(yàn)項(xiàng)目。學(xué)生在實(shí)踐過程中強(qiáng)化理論教學(xué)中的知識點(diǎn),同時(shí)形成有用的知識鏈。如在學(xué)完類、對象相關(guān)概念后,安排學(xué)生先做實(shí)驗(yàn)教材中的驗(yàn)證型實(shí)驗(yàn),再做一個(gè)貪吃蛇游戲或一個(gè)小的系統(tǒng)如職工工資管理系統(tǒng)之類的設(shè)計(jì)型實(shí)驗(yàn),此類設(shè)計(jì)型實(shí)驗(yàn)中融合類及對象的相關(guān)用法。學(xué)生在做設(shè)計(jì)型實(shí)驗(yàn)時(shí)是在驗(yàn)證型實(shí)驗(yàn)的基礎(chǔ)更進(jìn)一步的學(xué)習(xí),既鞏固了驗(yàn)證型實(shí)驗(yàn)中的知識點(diǎn),同時(shí)也提高了學(xué)生的編程能力,使學(xué)生能夠體會到學(xué)以致用的樂趣,從而可以極大的調(diào)動學(xué)生的學(xué)習(xí)主動性和積極性。下面舉例說明。

      貪吃蛇游戲是學(xué)生在學(xué)完類、對象概念且做了一個(gè)驗(yàn)證型實(shí)驗(yàn)后,所設(shè)計(jì)的一個(gè)設(shè)計(jì)型實(shí)驗(yàn),以使學(xué)生把所學(xué)知識及時(shí)運(yùn)用于實(shí)踐中,從而提高學(xué)生的學(xué)習(xí)興趣。貪吃蛇游戲中類的設(shè)計(jì)主要由圍墻類,蛇身結(jié)點(diǎn)類,食物類實(shí)現(xiàn)。圍墻類用一個(gè)二維數(shù)組來實(shí)現(xiàn),封裝在墻類中的操作包括初始化外墻和輸出外墻。墻類(Fence類)的聲明如下:

      蛇身結(jié)點(diǎn)(ShakNode)類,類中包括蛇身結(jié)點(diǎn)在墻內(nèi)的坐標(biāo)x,y值,蛇用類中定義的prior,next指針將蛇身結(jié)點(diǎn)連接,使用鏈表是為方便插入刪除蛇身結(jié)點(diǎn)。定義get_x(),get_y()兩個(gè)方法用于獲得蛇頭結(jié)點(diǎn)在墻內(nèi)的x,y坐標(biāo)。add_head()在蛇移動或吃到食物時(shí),蛇頭部插入一個(gè)節(jié)點(diǎn)。delete_tail()蛇移動過程中,為使蛇看起來在移動,在蛇頭部插入一個(gè)結(jié)點(diǎn)時(shí),尾部刪除一個(gè)結(jié)點(diǎn)。moving()方法通過調(diào)用add_head()及delet_tail()方 法 使 蛇 動 起 來 ,change_direction(char)根據(jù)鍵盤上的上下左右鍵操作來確定蛇身的移動方向,蛇身結(jié)點(diǎn)類聲明如下,該類中包含了蛇身結(jié)點(diǎn)的操作和屬性變量的聲明:

      食物類(Food),Food類操作當(dāng)食物被蛇在移動過程中吃掉后,通過get_food()隨機(jī)生成一個(gè)食物,其位置在墻內(nèi)的任一位置,食物的位置值存放于food_x,food_y值中。Food類聲明如下:

      在此實(shí)驗(yàn)中既涉及到算法的分析,即如何讓蛇在圍墻中動起來,如何隨機(jī)產(chǎn)生食物,如何讓蛇吃食物的算法分析,同時(shí)也需要學(xué)生考慮定義哪些類,及定義類中的屬性和方法。通過該實(shí)驗(yàn)項(xiàng)目的練習(xí)后,學(xué)生對類和對象的使用有了更具體的認(rèn)識,體會到了學(xué)有所用的樂趣,也明白了學(xué)習(xí)不只停留在對所學(xué)知識點(diǎn)驗(yàn)證的層面上。

      學(xué)生學(xué)完類的繼承、抽象、虛函數(shù)后,可以讓學(xué)生做一個(gè)職工工資管理系統(tǒng)讓學(xué)生將類、繼承、抽象、虛函數(shù)等知識點(diǎn)靈活而很自然的運(yùn)用于所編寫的系統(tǒng)中。

      學(xué)生學(xué)完友元函數(shù),運(yùn)算符重載,輸入輸出流、文件等相關(guān)知識后,實(shí)踐一個(gè)復(fù)數(shù)計(jì)算器設(shè)計(jì)型類的實(shí)驗(yàn)項(xiàng)目。復(fù)數(shù)計(jì)算器要求有:①能進(jìn)行加減乘除,自增,自減,關(guān)系運(yùn)算(比較復(fù)數(shù)模的大?。?。②輸入重載函數(shù),輸入形如a+bi的復(fù)數(shù),給實(shí)部虛部正確賦值,輸入有誤時(shí),在程序中進(jìn)行異常判斷。③記錄下不同用戶使用計(jì)算器的情況,以文件的形式保存在計(jì)算機(jī)內(nèi)。根據(jù)計(jì)算器功能的描述,需要聲明兩個(gè)類,聲明形式如下:

      復(fù)數(shù)計(jì)算器例子是一包含了友元函數(shù),運(yùn)算符重載,輸入輸出流、文件等知識點(diǎn)的一個(gè)綜合實(shí)例,從而鞏固實(shí)驗(yàn)教材上的驗(yàn)證型實(shí)驗(yàn),同時(shí)也提高了學(xué)生的學(xué)習(xí)興趣。

      2.3 上機(jī)實(shí)踐實(shí)驗(yàn)需要項(xiàng)目多樣化,注重提高學(xué)生的編程能力

      為使C++課程的實(shí)驗(yàn)教學(xué)達(dá)到預(yù)期目標(biāo),就必須重視實(shí)驗(yàn)教學(xué)內(nèi)容的豐富性,啟發(fā)性以及整個(gè)實(shí)驗(yàn)課題的系統(tǒng)性[4]。因此與C++程序設(shè)計(jì)課程相配套的實(shí)驗(yàn)不能只局限于驗(yàn)證型實(shí)驗(yàn),需要有設(shè)計(jì)型,綜合型實(shí)驗(yàn)項(xiàng)目,讓學(xué)生通過實(shí)驗(yàn)達(dá)到知識結(jié)構(gòu)的系統(tǒng)性,同時(shí)體會到學(xué)有所用,從而使學(xué)生有成就感。為使學(xué)生所學(xué)知識點(diǎn)形成體系結(jié)構(gòu),在學(xué)生學(xué)習(xí)完一定的知識點(diǎn)后實(shí)踐一個(gè)驗(yàn)證型實(shí)驗(yàn),再實(shí)踐一個(gè)設(shè)計(jì)型實(shí)驗(yàn),對相關(guān)知識進(jìn)行鞏固,在設(shè)計(jì)實(shí)驗(yàn)時(shí)一定要考慮到趣味性及實(shí)用性。在C++程序設(shè)計(jì)教學(xué)結(jié)束時(shí),再做一個(gè)綜合型實(shí)驗(yàn)包含整個(gè)C++相關(guān)知識點(diǎn)的綜合型實(shí)驗(yàn)。筆者在實(shí)踐教學(xué)過程的實(shí)驗(yàn)項(xiàng)目設(shè)計(jì)如下:

      表1 C++程序設(shè)計(jì)實(shí)踐教學(xué)安排表

      3 結(jié)束語

      通過筆者多次在所授班級中實(shí)踐,采用多樣型實(shí)驗(yàn)教學(xué)模式,教學(xué)效果和教學(xué)質(zhì)量有了顯著的提高。所授課的學(xué)生參加期末考試及各類比賽如ACM大賽,均取得了很好的成績。采用驗(yàn)證實(shí)驗(yàn)+設(shè)計(jì)型實(shí)驗(yàn)的實(shí)踐教學(xué)模式既豐富了教學(xué)內(nèi)容,也極大的提高了學(xué)生學(xué)習(xí)的主動性和創(chuàng)新性,能積極的采用面向?qū)ο蟪绦蛟O(shè)計(jì)思想進(jìn)行編程,解決實(shí)際問題,從而有效的提高了學(xué)生的編程能力。

      注釋及參考文獻(xiàn):

      [1]耿祥義,張躍平.Java面向?qū)ο蟪绦蛟O(shè)計(jì)[M].第2版.北京:清華大學(xué)出版社,2013.

      [2]張本成,龔偉.面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)改革探討[J].內(nèi)蒙古師范大學(xué)學(xué)報(bào),2008(1):134-136.

      [3]魯麗,張采芳.面向?qū)ο蟪绦蛟O(shè)計(jì)課程實(shí)踐教學(xué)改革的探討[J].電腦知識與技術(shù),2013(3)::285-286.

      [4]趙曉,王麗麗.C++面向?qū)ο蟪绦蛟O(shè)計(jì)多樣型實(shí)驗(yàn)探究[J].Computer Era,2013(7):46-47.

      Discussion on Experiment forC++Object-oriented Programming

      ZHANG Hui
      (School of Mathematics and Computer Science,Panzhihua University,Panzhihua,Sichuan 617000)

      According to teaching problems of“C++object oriented programming”course,this paper puts forward the scheme of the teaching reform practice of biodiversity,including verification type,design type, comprehensive experiment,and gives the implementation method.This scheme effectively improves the students' learning interest and comprehensive ability of programming.

      programming;verification type;design type

      TP311.1-4

      A

      1673-1891(2015)01-0151-03

      2014-10-10

      四川省教育廳理工科一般項(xiàng)目(項(xiàng)目編號:14ZB0407)。

      張會(1980-),女,四川射洪人,講師,碩士,研究方向:計(jì)算機(jī)應(yīng)用,應(yīng)用程序開發(fā)。

      猜你喜歡
      面向?qū)ο?/a>結(jié)點(diǎn)程序設(shè)計(jì)
      基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
      從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
      電子制作(2019年9期)2019-05-30 09:42:04
      面向?qū)ο蟮挠?jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)軟件系統(tǒng)的開發(fā)
      電子測試(2018年15期)2018-09-26 06:01:34
      Ladyzhenskaya流體力學(xué)方程組的確定模與確定結(jié)點(diǎn)個(gè)數(shù)估計(jì)
      面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議研究與應(yīng)用
      高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
      面向?qū)ο骔eb開發(fā)編程語言的的評估方法
      PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
      面向?qū)ο笮畔⑻崛≈杏跋穹指顓?shù)的選擇
      河南科技(2014年10期)2014-02-27 14:09:03
      基于Raspberry PI為結(jié)點(diǎn)的天氣云測量網(wǎng)絡(luò)實(shí)現(xiàn)
      金坛市| 闽清县| 陵水| 衡水市| 京山县| 石泉县| 新昌县| 友谊县| 伊金霍洛旗| 西和县| 阜南县| 旬邑县| 竹山县| 札达县| 江北区| 扶绥县| 临汾市| 钦州市| 天峻县| 大埔区| 凌云县| 德庆县| 全州县| 富川| 兴化市| 东乡县| 万州区| 灵石县| 宿松县| 嘉定区| 马鞍山市| 和田县| 永川市| 色达县| 襄垣县| 合江县| 长沙县| 宣汉县| 资溪县| 潼南县| 天门市|