• 
    

    
    

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

      ?

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

      2006-09-22 10:40王恩德
      計(jì)算機(jī)教育 2006年9期

      摘要本文以提高計(jì)算機(jī)專(zhuān)業(yè)的程序設(shè)計(jì)水平為目的,主要探討面向?qū)ο蟪绦蛟O(shè)計(jì)的教學(xué)模式、教學(xué)內(nèi)容和教學(xué)方法,提出了如何充分認(rèn)識(shí)面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)和怎樣選擇屬于主流方向的程序設(shè)計(jì)語(yǔ)言,并以C++語(yǔ)言教學(xué)為實(shí)例,提出了如何提高面向?qū)ο蟮某绦蛟O(shè)計(jì)水平。最后,根據(jù)計(jì)算機(jī)技術(shù)的發(fā)展,提出了實(shí)施可視化程序設(shè)計(jì)方法的必要性,并總結(jié)了在講授Visual C++.NET的過(guò)程中應(yīng)該突出的重點(diǎn)內(nèi)容。

      關(guān)鍵詞程序設(shè)計(jì)教學(xué)C語(yǔ)言C++Visual C++.NET

      1 引言

      筆者多年來(lái)一直在高校從事計(jì)算機(jī)科學(xué)技術(shù)的教學(xué)和研究工作,在長(zhǎng)期的實(shí)踐中深刻認(rèn)識(shí)到,計(jì)算機(jī)程序設(shè)計(jì)是計(jì)算機(jī)專(zhuān)業(yè)的基礎(chǔ)課,熟練掌握計(jì)算機(jī)程序設(shè)計(jì)也是學(xué)生將來(lái)從事計(jì)算機(jī)技術(shù)應(yīng)用研究所應(yīng)具備的基本素質(zhì)。然而,程序設(shè)計(jì)技術(shù)水平的提高,僅僅靠一兩門(mén)程序設(shè)計(jì)課程是不夠的。只有經(jīng)歷了計(jì)算模型與算法理論、若干語(yǔ)言(含微程序設(shè)計(jì)和匯編語(yǔ)言程序設(shè)計(jì))的程序設(shè)計(jì)、程序設(shè)計(jì)方法學(xué)、程序理論與軟件開(kāi)發(fā)方法學(xué)、軟件工程以及其他相關(guān)課程的學(xué)習(xí)以后,并經(jīng)過(guò)大量實(shí)踐,才能真正大幅度、整體性地提高程序設(shè)計(jì)水平。我們?cè)谶@里所討論的面向?qū)ο蟪绦蛟O(shè)計(jì),是在學(xué)習(xí)了某種高級(jí)語(yǔ)言(如:C語(yǔ)言或Pascal語(yǔ)言)之后所要學(xué)習(xí)的一門(mén)課程。為了提高面向?qū)ο蟪绦蛟O(shè)計(jì)的教學(xué)水平和培養(yǎng)學(xué)生的程序設(shè)計(jì)能力,既要考慮計(jì)算機(jī)軟件設(shè)計(jì)發(fā)展的方向和需要,又要重視采用科學(xué)、合理和先進(jìn)的教學(xué)模式,并實(shí)施相應(yīng)的教學(xué)內(nèi)容和教學(xué)方法。下面針對(duì)這些問(wèn)題談?wù)劰P者的看法。

      2 充分認(rèn)識(shí)面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)

      隨著程序設(shè)計(jì)學(xué)科的發(fā)展,程序設(shè)計(jì)思想經(jīng)歷了從簡(jiǎn)單的順序計(jì)算到結(jié)構(gòu)化的程序設(shè)計(jì),再到面向?qū)ο蟮某绦蛟O(shè)計(jì)的發(fā)展過(guò)程,形成了一整套的思想理論和設(shè)計(jì)方法。目前看來(lái),面向?qū)ο蟪绦蛟O(shè)計(jì)方法比較接近人們表達(dá)事物和解決問(wèn)題的思維方法,其特點(diǎn)如下。

      (1)具有靜態(tài)屬性和動(dòng)態(tài)行為的對(duì)象與客觀(guān)世界的實(shí)體比較相象,面向?qū)ο蟮某绦蚰軌虮容^自然地模擬客觀(guān)世界,從而使得解空間與問(wèn)題空間在結(jié)構(gòu)上盡可能一致。

      (2)應(yīng)用面向?qū)ο蠹夹g(shù)來(lái)分析、設(shè)計(jì)和實(shí)現(xiàn)軟件系統(tǒng)的過(guò)程與人們認(rèn)識(shí)客觀(guān)世界、解決實(shí)際問(wèn)題的過(guò)程比較一致。

      (3)對(duì)象的封裝性,降低了程序的復(fù)雜性;對(duì)象的繼承性,增加了程序設(shè)計(jì)的可重復(fù)使用性;對(duì)象的多樣性,增強(qiáng)了程序設(shè)計(jì)的靈活性。由此可以明顯提高軟件開(kāi)發(fā)與維護(hù)的效率,降低軟件的總成本。

      應(yīng)用這些特點(diǎn),人們?cè)诔绦蛟O(shè)計(jì)時(shí)首先要考慮系統(tǒng)有哪些需要處理的“數(shù)據(jù)”或者“對(duì)象”,進(jìn)一步分析這些對(duì)象包含了哪些信息,以及處理這些信息所需要的方法。也就是說(shuō),找出對(duì)象、正確地描述對(duì)象、分析對(duì)象與對(duì)象之間的關(guān)系以及采用計(jì)算機(jī)語(yǔ)言來(lái)構(gòu)建系統(tǒng)等工作,這是面向?qū)ο蟪绦虻姆治雠c設(shè)計(jì)的方法。

      近年來(lái),面向?qū)ο蟮募夹g(shù)越來(lái)越受到人們的重視,對(duì)它的應(yīng)用和研究遍及計(jì)算機(jī)軟件和硬件的各個(gè)領(lǐng)域,國(guó)內(nèi)高校普遍開(kāi)設(shè)了面向?qū)ο蟪绦蛟O(shè)計(jì)之類(lèi)的課程。

      3 明確選擇屬于主流方向的程序設(shè)計(jì)語(yǔ)言

      面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言很多,在IT行業(yè)中最為流行的如:C++、Java和Delphi等語(yǔ)言,而我們的教學(xué)中選擇了C++,其理由如下。

      (1)C語(yǔ)言成為程序設(shè)計(jì)入門(mén)的主導(dǎo)語(yǔ)言。由于C語(yǔ)言在當(dāng)今系統(tǒng)軟件和部分應(yīng)用軟件的開(kāi)發(fā)中具有實(shí)用性強(qiáng)的特點(diǎn),又與硬件和程序設(shè)計(jì)環(huán)境底層的聯(lián)系緊密,所以當(dāng)學(xué)生具備了一定的數(shù)學(xué)基礎(chǔ)和計(jì)算機(jī)操作實(shí)驗(yàn)基礎(chǔ)后,首先認(rèn)可在某種計(jì)算模型(如隨機(jī)存儲(chǔ)計(jì)算模型)和軟件技術(shù)(如編譯技術(shù))的支持下,通過(guò)C語(yǔ)言的各種基本成分及其功能的了解,學(xué)習(xí)如何組合各種語(yǔ)言成分來(lái)編制完成某項(xiàng)計(jì)算的程序,然后完成對(duì)某些計(jì)算方法和算法的具體實(shí)現(xiàn),從中體會(huì)計(jì)算機(jī)在處理大量計(jì)算問(wèn)題時(shí)如何從過(guò)程的角度完成具體計(jì)算,從而為學(xué)習(xí)其他計(jì)算機(jī)基礎(chǔ)課程打好基礎(chǔ)。

      (2)C++與C語(yǔ)言有不可分割的親情關(guān)系。C++是在C語(yǔ)言的基礎(chǔ)上演變而來(lái)的一種程序設(shè)計(jì)語(yǔ)言,它不是簡(jiǎn)單地對(duì)C語(yǔ)言作了某些改進(jìn),而是在C語(yǔ)言成功的基礎(chǔ)上進(jìn)行了一場(chǎng)革命。C++語(yǔ)言的創(chuàng)建初衷是“a better C”,但是這并不意味著C++中類(lèi)似C語(yǔ)言的全局變量和函數(shù)所采用的編譯及連接方式與C語(yǔ)言完全相同。作為一種欲與C兼容的語(yǔ)言,C++保留了一部分過(guò)程式語(yǔ)言的特點(diǎn),因而它可以定義為不屬于任何類(lèi)的全局變量和函數(shù)。但是,C++畢竟是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,為了支持函數(shù)的重載,C++對(duì)全局函數(shù)的處理方式與C有明顯的不同。在C++教學(xué)中,重點(diǎn)介紹有關(guān)面向?qū)ο蟮幕靖拍?、基本方法和基本技術(shù),重點(diǎn)介紹兩種語(yǔ)言之間的不同之處,從而實(shí)現(xiàn)了程序設(shè)計(jì)思想、方法和技術(shù)從面向過(guò)程平穩(wěn)過(guò)渡到變?yōu)槊嫦驅(qū)ο?,減小了C++的學(xué)習(xí)難度。

      (3)C++可以很容易延伸到其他語(yǔ)言。與C++接近的有Java語(yǔ)言和C#(C Sharp)語(yǔ)言,它們的基本語(yǔ)句大致相同,其功能主要是開(kāi)發(fā)B/S結(jié)構(gòu)的分布式系統(tǒng)。學(xué)習(xí)這些語(yǔ)言的時(shí)候,在C++語(yǔ)言的基礎(chǔ)上,從語(yǔ)言理論(只引用結(jié)論而不展開(kāi)論述)和語(yǔ)言比較學(xué)的角度出發(fā),放棄語(yǔ)言的共性,重點(diǎn)學(xué)習(xí)對(duì)應(yīng)語(yǔ)言的個(gè)性,這樣達(dá)到事半功倍的效果。同時(shí)引出由于程序設(shè)計(jì)方法和技術(shù)的發(fā)展以及高級(jí)語(yǔ)言進(jìn)一步發(fā)展帶來(lái)的需要在程序設(shè)計(jì)語(yǔ)言中解決的問(wèn)題,如組件、網(wǎng)頁(yè)以及通信等應(yīng)用方面的設(shè)計(jì),向?qū)W生適當(dāng)展示高級(jí)語(yǔ)言與程序設(shè)計(jì)廣闊的天地,為后續(xù)相關(guān)課程埋下伏筆。

      4 注重提高面向?qū)ο蟮某绦蛟O(shè)計(jì)水平

      在引導(dǎo)學(xué)生從面向過(guò)程程序設(shè)計(jì)到面向?qū)ο蟪绦蛟O(shè)計(jì)的轉(zhuǎn)變過(guò)程中,對(duì)于面向?qū)ο蟮囊恍┗靖拍睿ㄈ珙?lèi)、對(duì)象、封裝、繼承和多態(tài)),通過(guò)同現(xiàn)實(shí)生活的事物相對(duì)比,學(xué)生還是很容易理解的。但是,如何將這些概念應(yīng)用到面向?qū)ο蟪绦蛟O(shè)計(jì)中,剛開(kāi)始對(duì)于學(xué)生來(lái)說(shuō)還是有一定的難度。為了克服這個(gè)難題,我們?cè)贑++語(yǔ)言的教學(xué)中注重了以下幾方面內(nèi)容。

      (1)從程序設(shè)計(jì)的角度理解面向?qū)ο蟮幕靖拍?。例如?duì)象的封裝性,我們可以認(rèn)為是一種把代碼和代碼所操作的數(shù)據(jù)捆綁在一起,使這兩者不受外界干擾和誤用的機(jī)制。.封裝可被理解為是一種用做保護(hù)的包裝器,以防止代碼和數(shù)據(jù)被包裝器外部所定義的其他代碼任意訪(fǎng)問(wèn)。對(duì)包裝器內(nèi)部代碼與數(shù)據(jù)的訪(fǎng)問(wèn)通過(guò)一個(gè)明確定義的接口來(lái)控制。封裝代碼的好處是每個(gè)人都知道怎樣訪(fǎng)問(wèn)代碼,而無(wú)需考慮實(shí)現(xiàn)細(xì)節(jié)就能直接使用它,同時(shí)不用擔(dān)心不可預(yù)料的副作用。在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,最基本的封裝單元是類(lèi),一個(gè)類(lèi)定義了由一組對(duì)象所共享的行為(數(shù)據(jù)和代碼)。一個(gè)類(lèi)的每個(gè)對(duì)象均包含它所定義的結(jié)構(gòu)與行為,這些對(duì)象就好像是一個(gè)模子鑄造出來(lái)的一樣,所以對(duì)象也叫做類(lèi)的實(shí)例。對(duì)于類(lèi)的封裝程度,也是有選擇的。類(lèi)提供關(guān)鍵字public、protected 和private,用于聲明哪些數(shù)據(jù)和函數(shù)是公有的、受保護(hù)的或者是私有的,用以控制類(lèi)的封裝程度,公有的數(shù)據(jù)和函數(shù)公開(kāi)必須要讓外界知道的內(nèi)容,而隱藏的是私有的一切內(nèi)容。對(duì)于對(duì)象的繼承性,是指一個(gè)對(duì)象從另一個(gè)對(duì)象中獲得屬性的過(guò)程,它支持按層次分類(lèi)的概念。如果不使用層次的概念,每個(gè)對(duì)象需要明確定義各自的全部特征。通過(guò)層次分類(lèi)方式,一個(gè)對(duì)象只需要在它的類(lèi)中定義屬于它的個(gè)性,然后從父類(lèi)中繼承它的共性。因此,正是由于繼承機(jī)制,才使得一個(gè)對(duì)象可以成為一個(gè)通用類(lèi)的一個(gè)特定實(shí)例。當(dāng)然,類(lèi)的繼承方式,C++提供了公有和私有的兩種選擇。

      (2)培養(yǎng)面向?qū)ο蠹夹g(shù)分析的抽象思維。抽象是程序設(shè)計(jì)的基本要素,程序設(shè)計(jì)者通過(guò)抽象描述來(lái)實(shí)現(xiàn)軟件系統(tǒng)。抽象描述的有效方法是使用層次式的分類(lèi)特性,這種方法允許用戶(hù)根據(jù)物理含義分解一個(gè)復(fù)雜的系統(tǒng),把它劃分成更容易實(shí)現(xiàn)的塊。例如,一個(gè)計(jì)算機(jī)系統(tǒng)是一個(gè)獨(dú)立的對(duì)象,而在計(jì)算機(jī)系統(tǒng)內(nèi)部由幾個(gè)子系統(tǒng)組成:顯示器、鍵盤(pán)、硬盤(pán)驅(qū)動(dòng)器、DVD-ROM、軟盤(pán)、音響等,這些子系統(tǒng)每個(gè)又由專(zhuān)門(mén)的部件組成。在程序設(shè)計(jì)中,其中抽象是自頂向下地逐步求精和模塊化。自頂向下地逐步求精是指首先要對(duì)所設(shè)計(jì)的系統(tǒng)有一個(gè)全面的理解,其次從頂層開(kāi)始連續(xù)地逐層向下分解,直到系統(tǒng)的所有模塊都被分解為一條條的詳細(xì)指令時(shí)為止。模塊化是指把一個(gè)大的程序按照一定的原則劃分為若干個(gè)相對(duì)獨(dú)立但又相互關(guān)聯(lián)的實(shí)體,這些實(shí)體就是我們所面向的對(duì)象,它們用類(lèi)來(lái)描述定義。

      (3)訓(xùn)練面向?qū)ο笤O(shè)計(jì)的邏輯思維。程序設(shè)計(jì)的過(guò)程也就是對(duì)學(xué)生的思維進(jìn)行訓(xùn)練的過(guò)程。在許多常規(guī)學(xué)科的日常教學(xué)中我們不難發(fā)現(xiàn)這樣一個(gè)現(xiàn)象,不少學(xué)生的思維常常處于混亂的狀態(tài)。寫(xiě)起文章來(lái)前言不搭后語(yǔ),令人不知所云;解起數(shù)學(xué)題來(lái)步驟混亂,搞不清因果關(guān)系。這些都是缺乏邏輯思維訓(xùn)練的結(jié)果。程序設(shè)計(jì)的訓(xùn)練不僅可以讓學(xué)生養(yǎng)成良好的程序設(shè)計(jì)習(xí)慣,而且可以有效地培養(yǎng)學(xué)生思維的條理性和邏輯性。

      (4)幫助學(xué)生樹(shù)立系統(tǒng)工程觀(guān)點(diǎn)。在計(jì)算機(jī)行業(yè)中,軟件的設(shè)計(jì)已經(jīng)用工程的觀(guān)念來(lái)進(jìn)行管理。軟件設(shè)計(jì)不再被認(rèn)為是手工作坊里的個(gè)體勞動(dòng),而是被當(dāng)作一項(xiàng)系統(tǒng)工程。軟件工程的復(fù)雜程度不低于甚至高于諸如建筑工程等其他行業(yè)的工程。隨著社會(huì)信息化進(jìn)程的不斷加速,計(jì)算機(jī)應(yīng)用走進(jìn)各行各業(yè)是大勢(shì)所趨,社會(huì)需要大量的計(jì)算機(jī)高等人才,從而對(duì)我們的計(jì)算機(jī)教育提出了更高要求。我們知道,程序設(shè)計(jì)是計(jì)算機(jī)專(zhuān)業(yè)的基礎(chǔ),應(yīng)該從一開(kāi)始使學(xué)生養(yǎng)成一個(gè)好習(xí)慣,樹(shù)立正確的軟件工程觀(guān)點(diǎn)。這樣做不僅可以為學(xué)生將來(lái)從事計(jì)算機(jī)應(yīng)用打下良好的基礎(chǔ),而且有利于提高學(xué)生統(tǒng)籌全局、協(xié)調(diào)關(guān)系的基本能力。

      5 大力強(qiáng)化面向?qū)ο蟮目梢暬绦蛟O(shè)計(jì)方法

      目前,程序設(shè)計(jì)的觀(guān)念發(fā)生了顯著變化,可視化(Visual)技術(shù)廣泛用于各種程序設(shè)計(jì)過(guò)程,就拿C++來(lái)說(shuō),就有C++ Builder和Visual C++不同的可視化程序設(shè)計(jì)語(yǔ)言。這些可視化語(yǔ)言,它們以其圖形化的編程方式將面向?qū)ο蠹夹g(shù)的特性完美地體現(xiàn)出來(lái),使得開(kāi)發(fā)軟件這一原本枯燥、難以理解的工作變得輕松快捷。作為專(zhuān)業(yè)人員不懂得可視化編程技術(shù)將無(wú)法在競(jìng)爭(zhēng)激烈的計(jì)算機(jī)行業(yè)中立足,作為計(jì)算機(jī)學(xué)科的教師不傳授可視化編程技術(shù)將難以滿(mǎn)足學(xué)生強(qiáng)烈的求知欲望。

      從整個(gè)IT產(chǎn)業(yè)的軟件市場(chǎng)來(lái)講,如果要開(kāi)發(fā)高性能的Windows或萬(wàn)維網(wǎng)(WWW)應(yīng)用程序,Visual C++是一種效率較高的開(kāi)發(fā)工具,幾乎所有世界級(jí)的軟件都是使用Visual C++開(kāi)發(fā)系統(tǒng)完成的。在2002年初,微軟公司又推出了Visual C++的最新版本——Visual C++.NET,它繼承了以往Visual C++各版本的優(yōu)點(diǎn),增加了許多新的特性,使得開(kāi)發(fā)的能力更強(qiáng)、開(kāi)發(fā)的效率更高,深受業(yè)內(nèi)人士青睞,所以我們選擇了Visual C++.NET作為可視化程序設(shè)計(jì)語(yǔ)言。

      在學(xué)習(xí)掌握C++語(yǔ)言的基礎(chǔ)上,講授Visual C++.NET需要重點(diǎn)突出以下內(nèi)容。

      (1)MFC(Microsoft Foundation Class,微軟基本類(lèi)庫(kù))。MFC是微軟公司為Windows程序員提供的一個(gè)面向?qū)ο蟮腤indows編程接口,使用它進(jìn)行Windows應(yīng)用程序開(kāi)發(fā)具有很大的優(yōu)越性。首先,MFC提供了一個(gè)標(biāo)準(zhǔn)化的結(jié)構(gòu),開(kāi)發(fā)人員不必從頭設(shè)計(jì)創(chuàng)建和管理一個(gè)標(biāo)準(zhǔn)Windows應(yīng)用程序所需的程序,而是“站在巨人肩膀上”,充分利用Microsoft開(kāi)發(fā)人員多年開(kāi)發(fā)Windows程序的經(jīng)驗(yàn),并可以將這些經(jīng)驗(yàn)融入到用戶(hù)自己開(kāi)發(fā)的應(yīng)用程序中去。我們知道,雖然程序設(shè)計(jì)者要編寫(xiě)的程序在功能上是千差萬(wàn)別的,但從本質(zhì)上來(lái)講,都可以歸納為用戶(hù)交互界面的設(shè)計(jì)、輸入輸出文件的操作、多媒體技術(shù)的應(yīng)用以及數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)等一些最常用的技術(shù)。這一點(diǎn)正是微軟提供MFC類(lèi)庫(kù)的最重要原因,在這個(gè)類(lèi)庫(kù)中包含了一百多個(gè)程序開(kāi)發(fā)過(guò)程中最常用到的類(lèi)。在進(jìn)行程序設(shè)計(jì)的時(shí)候,如果類(lèi)庫(kù)中的某個(gè)類(lèi)具有我們所需要的功能,這時(shí)我們只要簡(jiǎn)單地引用該類(lèi)產(chǎn)生對(duì)應(yīng)對(duì)象,然后通過(guò)對(duì)象調(diào)用有關(guān)方法就可以了。我們還可以利用面向?qū)ο蠹夹g(shù)中很重要的“繼承”方法從類(lèi)庫(kù)中的已有類(lèi)派生出我們自己的類(lèi),該類(lèi)繼承了父類(lèi)的特性和功能,實(shí)現(xiàn)了代碼重用,并在此基礎(chǔ)上還可以根據(jù)自己需要加上所需的特性和方法,從而可以快速設(shè)計(jì)出一個(gè)更專(zhuān)業(yè)的、功能更強(qiáng)大的類(lèi)。

      (2)消息處理機(jī)制。Windows操作系統(tǒng)環(huán)境下運(yùn)行的交互式應(yīng)用程序,不論采用那一種開(kāi)發(fā)工具,它都具有以消息為基礎(chǔ)、由事件驅(qū)動(dòng)的運(yùn)行機(jī)制。事件是外部強(qiáng)加于應(yīng)用程序的操作動(dòng)作,它們有可能來(lái)自系統(tǒng),也有可能來(lái)自用戶(hù)。操作系統(tǒng)將捕捉到的事件,按事件的類(lèi)型和來(lái)源采用相應(yīng)的數(shù)據(jù)結(jié)構(gòu)描述事件,這種形式稱(chēng)為消息。操作系統(tǒng)將事件翻譯成消息之后,接著將消息分發(fā)到消息隊(duì)列中,等待應(yīng)用程序索取并處理。在Visual C++.NET中,消息可分為窗口消息、命令消息、控件消息和交互對(duì)象更新消息,這些不同類(lèi)型的消息各自都有對(duì)應(yīng)的處理方式。熟悉消息的處理方式和靈活應(yīng)用消息,對(duì)于學(xué)生設(shè)計(jì)交互式應(yīng)用程序至關(guān)重要,因?yàn)樵O(shè)計(jì)的大多數(shù)時(shí)間是充分利用各種消息,編寫(xiě)它們對(duì)應(yīng)的處理函數(shù)。如果忽視了消息處理機(jī)制內(nèi)容,學(xué)生編程序或者無(wú)從下手,或者功能簡(jiǎn)單。

      (3)主要應(yīng)用程序類(lèi)型的程序結(jié)構(gòu)。Visual C++.NET提供了良好的開(kāi)發(fā)應(yīng)用程序向?qū)?,在向?qū)У闹敢拢梢宰詣?dòng)生成單文檔、多文檔、對(duì)話(huà)框和多頂級(jí)文檔等四種標(biāo)準(zhǔn)類(lèi)型的應(yīng)用程序結(jié)構(gòu),對(duì)應(yīng)結(jié)構(gòu)都是由MFC中的基類(lèi)派生的類(lèi)組成的。在教學(xué)過(guò)程中,深入剖析這四種應(yīng)用程序結(jié)構(gòu),有助于提高學(xué)生的軟件開(kāi)發(fā)能力。例如多文檔應(yīng)用程序結(jié)構(gòu)目前使用越來(lái)越普遍,人們熟悉的Microsoft公司的Office系列產(chǎn)品以及Visual系列產(chǎn)品都是典型的多文檔應(yīng)用程序。這種多文檔界面具有多窗口的特點(diǎn),因而人們可以在一個(gè)程序中使用多個(gè)子窗口來(lái)實(shí)現(xiàn)不同數(shù)據(jù)的瀏覽查看。一般情況下,這四種結(jié)構(gòu)可以滿(mǎn)足絕大多數(shù)用戶(hù)的要求,但有時(shí)用戶(hù)也可以通過(guò)重載一些函數(shù)來(lái)修改其缺省的風(fēng)格,從而在此結(jié)構(gòu)基礎(chǔ)上設(shè)計(jì)加工具有自己個(gè)性的應(yīng)用程序。

      (4)對(duì)話(huà)框的數(shù)據(jù)交換機(jī)制。對(duì)話(huà)框是應(yīng)用程序的主要交互方式,它作為一種容器,包含了用于輸入輸出信息和控制操作的控件,并且大多數(shù)控件都有對(duì)應(yīng)的內(nèi)存變量。Visual C++.NET對(duì)于實(shí)現(xiàn)控件和變量之間的數(shù)據(jù)交換有自己的一套獨(dú)特機(jī)制,熟悉這種機(jī)制有助于學(xué)生深刻理解輸入輸出數(shù)據(jù)的來(lái)龍去脈。

      以上內(nèi)容如果讓學(xué)生自學(xué)是有一定的難度,所以希望老師重點(diǎn)講解這些內(nèi)容,以便學(xué)生自學(xué)繪圖、數(shù)據(jù)庫(kù)操作和網(wǎng)絡(luò)編程等有關(guān)專(zhuān)題技術(shù)。

      6 結(jié)束語(yǔ)

      目前,計(jì)算機(jī)程序設(shè)計(jì)方法在不斷地更新,當(dāng)我們講授面向?qū)ο蟮某绦蛟O(shè)計(jì)方法時(shí),面向組件和面向服務(wù)的新方法就已經(jīng)產(chǎn)生了。在這種情況下,是不是說(shuō)面向?qū)ο蟮某绦蛟O(shè)計(jì)方法過(guò)時(shí)?我認(rèn)為并不見(jiàn)得過(guò)時(shí)。就像我們應(yīng)用面向?qū)ο蟮脑O(shè)計(jì)方法時(shí)還得應(yīng)用面向過(guò)程的設(shè)計(jì)方法(如設(shè)計(jì)消息處理函數(shù))一樣,面向組件和面向服務(wù)的新方法是在面向?qū)ο蟮幕A(chǔ)上發(fā)展產(chǎn)生的,服務(wù)是組件的容器,組件是對(duì)象的容器,最基本的內(nèi)核還是對(duì)象,只不過(guò)從軟件體系結(jié)構(gòu)的角度來(lái)講,服務(wù)和組件相對(duì)于對(duì)象來(lái)說(shuō),是形成體系結(jié)構(gòu)的更大力度的結(jié)構(gòu)元素。所以說(shuō),講授好面向?qū)ο蟪绦蛟O(shè)計(jì)方法,是為將來(lái)學(xué)習(xí)面向組件和面向服務(wù)的程序設(shè)計(jì)方法打基礎(chǔ)。

      參考文獻(xiàn)

      [1] 譚浩強(qiáng).C程序設(shè)計(jì)(第二版)[M].清華大學(xué)出版社,2001,8.

      [2] 鄭莉,董淵.C++語(yǔ)言程序設(shè)計(jì)(第二版)[M].清華大學(xué)出版社,2002,1.

      [3] 張海藩,牟永敏.面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)用教程[M].清華大學(xué)出版社,2002,6

      [4] 王恩德.Visual C++.NET程序設(shè)計(jì)教程 [M].清華大學(xué)出版社,2004,7.

      怀仁县| 普洱| 芮城县| 宁强县| 布尔津县| 星子县| 三台县| 延长县| 耿马| 清苑县| 潜山县| 樟树市| 山西省| 濉溪县| 乡城县| 冕宁县| 嘉峪关市| 静海县| 荥阳市| 三河市| 山西省| 龙南县| 扎鲁特旗| 江华| 青川县| 长海县| 澳门| 阳谷县| 塔城市| 綦江县| 濮阳县| 黄山市| 龙井市| 军事| 江北区| 凌海市| 罗定市| 柳河县| 涟源市| 报价| 临武县|