• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            road420

            導(dǎo)航

            <2013年7月>
            30123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            統(tǒng)計(jì)

            常用鏈接

            留言簿(2)

            隨筆檔案

            文章檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            五種程序設(shè)計(jì)方法

            五種程序設(shè)計(jì)方法

            1.        結(jié)構(gòu)化程序設(shè)計(jì)

            為了提高程序的可讀性、可重用性等,逐漸出現(xiàn)了將程序開發(fā)中經(jīng)常用到的相同的功能,比如數(shù)學(xué)函數(shù)運(yùn)算、字符串操作等,獨(dú)立出來編寫成函數(shù),然后按照相互關(guān)系或應(yīng)用領(lǐng)域匯集在相同的文件里,這些文件構(gòu)成了函數(shù)庫

            函數(shù)庫是一種對(duì)信息的封裝,將常用的函數(shù)封裝起來,人們不必知道如何實(shí)現(xiàn)它們。只需要了解如何調(diào)用它們即可。函數(shù)庫可以被多個(gè)應(yīng)用程序共享,在具體編程環(huán)境中,一般都有一個(gè)頭文件相伴,在這個(gè)頭文件中以標(biāo)準(zhǔn)的方式定義了庫中每個(gè)函數(shù)的接口,根據(jù)這些接口形式可以在程序中的任何地方調(diào)用所需的函數(shù)。

            由于函數(shù)、庫、模塊等一系列概念和技術(shù)的出現(xiàn),程序設(shè)計(jì)逐漸變成如圖所示的風(fēng)格。程序被分解成一個(gè)個(gè)函數(shù)模塊,其中既有系統(tǒng)函數(shù),也有用戶定義的函數(shù)。通過對(duì)函數(shù)的調(diào)用,程序的運(yùn)行逐步被展開。閱讀程序時(shí),由于每一塊的功能相對(duì)獨(dú)立,因此對(duì)程序結(jié)構(gòu)的理解相對(duì)容易,在一定程度上緩解了程序代碼可讀性和可重用件的矛盾,但并未徹底解決矛盾。隨著計(jì)算機(jī)程序的規(guī)模越來越大,這個(gè)問題變得更加尖銳,于是出現(xiàn)了另一種編程風(fēng)格——結(jié)構(gòu)化程序設(shè)計(jì)

            在結(jié)構(gòu)化程序設(shè)計(jì)中,任何程序段的編寫都基于3種結(jié)構(gòu):分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和順序結(jié)構(gòu)。程序具有明顯的模塊化特征,每個(gè)程序模塊具有惟一的出口和入口語句。結(jié)構(gòu)化程序的結(jié)構(gòu)簡單清晰,模塊化強(qiáng),描述方式貼近人們習(xí)慣的推理式思維方式。因此可讀性強(qiáng),在軟件重用性、軟件維護(hù)等方面都有所進(jìn)步,在大型軟件開發(fā)尤其是大型科學(xué)與工程運(yùn)算軟件的開發(fā)中發(fā)揮了重要作用。因此到目前為止,仍有許多應(yīng)用程序的開發(fā)采用結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)和方法。即使在目前流行的面向?qū)ο筌浖_發(fā)中也不能完全脫離結(jié)構(gòu)化程序設(shè)計(jì)。

             

            2.        面向?qū)ο蟪绦蛟O(shè)計(jì)

            面向?qū)ο蟮某绦蛞塾?jì)方法是程序設(shè)計(jì)的一種新方法。所有面向?qū)ο蟮某绦蛟O(shè)計(jì)語言一般都含有三個(gè)方面的語法機(jī)制,即對(duì)象和類、多態(tài)性、繼承性。

            1.對(duì)象和類

            對(duì)象的概念、原理和方法是面向?qū)ο蟮睦硇蛟O(shè)計(jì)語言暈重要的特征。對(duì)象是用戶定義的類型(稱為類)的變量。一個(gè)對(duì)象是既包含數(shù)據(jù)又包合操作該數(shù)據(jù)的代碼(函數(shù))的邏輯實(shí)體。對(duì)象中的這些數(shù)據(jù)和函數(shù)稱為對(duì)象的成員,即成員數(shù)據(jù)和成員函數(shù)。對(duì)象中的成員分為公有的和私有的。公有成員是對(duì)象與外界的接口界面。外界只能通過調(diào)用訪問一個(gè)對(duì)象的公有成員來實(shí)現(xiàn)該對(duì)象的功能。私有成員體現(xiàn)一個(gè)對(duì)象的組織形式和功能的實(shí)現(xiàn)細(xì)節(jié)。外界無法對(duì)私有成員進(jìn)行操作。類對(duì)象按照規(guī)范進(jìn)行操作,將描述客觀事物的數(shù)據(jù)表達(dá)及對(duì)數(shù)據(jù)的操作處理封裝在一起,成功地實(shí)現(xiàn)了面向?qū)ο蟮某绦蛟O(shè)計(jì)。當(dāng)用戶定義了一個(gè)類類型后,就可以在該類型的名下定義變量(即對(duì)象)了。類是結(jié)構(gòu)體類型的擴(kuò)充。結(jié)構(gòu)體中引入成員函數(shù)并規(guī)定了其訪問和繼承原則后便成了類。

            2.多態(tài)性

            面向?qū)ο蟮某绦蛟O(shè)計(jì)語言支持多態(tài)性,把一個(gè)接口用于一類活動(dòng)。即一個(gè)接口多種算法。具體實(shí)施時(shí)該選擇哪一個(gè)算法是由特定的語法機(jī)制確定的。C++編譯時(shí)和運(yùn)行時(shí)都支持多態(tài)性。編譯時(shí)的多態(tài)性體現(xiàn)在重載函數(shù)和重載運(yùn)算符等方面。運(yùn)行時(shí)的多態(tài)性體現(xiàn)在繼承關(guān)系及虛函數(shù)等方面。

            3.繼承性

            C++程序中,由一個(gè)類(稱為基類)可以派生出新類(稱為派生類)。這種派生的語法機(jī)制使得新類的出現(xiàn)輕松自然,使得一個(gè)復(fù)雜事物可以被順理成章地歸結(jié)為由逐層派生的對(duì)象描述。派生使得程序中定義的類呈層次結(jié)構(gòu)。處于子層的對(duì)參既具有其父層對(duì)象的共性.又具有自身的特性。繼承性是一個(gè)類對(duì)象獲得其基類對(duì)象特性的過程。C++中嚴(yán)格地規(guī)定了派生類對(duì)其基類的繼承原則和訪問權(quán)限,使得程序中對(duì)數(shù)據(jù)和函數(shù)的訪間,需在家族和朋友間嚴(yán)格區(qū)分。

             

            3.        事件驅(qū)動(dòng)的程序設(shè)計(jì)

            事件驅(qū)動(dòng)的程序設(shè)計(jì)實(shí)際上是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)應(yīng)用,但它目前僅適用于windows系列操作系統(tǒng)windows環(huán)境中的應(yīng)用程序與MSDOS環(huán)境中的應(yīng)用程序運(yùn)行機(jī)制不同、設(shè)計(jì)程序的方式也不一樣。windows程序采用事件驅(qū)動(dòng)機(jī)制運(yùn)行,這種事件驅(qū)動(dòng)程序由事件的發(fā)生與否來控制,系統(tǒng)中每個(gè)對(duì)象狀態(tài)副改變都是事件發(fā)生的原由或結(jié)果,設(shè)計(jì)程序時(shí)需以一種非順序方式處理事件,與順序的、過程驅(qū)動(dòng)的傳統(tǒng)程序設(shè)計(jì)方法迥異

            事件也稱消息,含義比較廣泛,常見的事件有鼠標(biāo)事件(如民標(biāo)移動(dòng)、單擊、掠過窗口邊界)、鍵盤事件(如按鍵的壓下與拾起)等多種。應(yīng)用程序運(yùn)行經(jīng)過一系列必要的初始化后,將進(jìn)入等待狀態(tài),等待有事件發(fā)生,一旦事件出現(xiàn),程序就被激活并進(jìn)行相應(yīng)處理。

            事件驅(qū)動(dòng)程序設(shè)計(jì)是圍繞著消息的產(chǎn)生與處理進(jìn)行的.消息可來自程序中的某個(gè)對(duì)象,也可由用戶、wlndow s或運(yùn)行著的其他應(yīng)用程序產(chǎn)生。每當(dāng)事件發(fā)生時(shí),Windows俘獲有關(guān)事件,然后將消息分別轉(zhuǎn)發(fā)到相關(guān)應(yīng)用程序中的有關(guān)對(duì)象,需要對(duì)消息作出反應(yīng)的對(duì)象應(yīng)該提供消息處理函數(shù),通過這個(gè)消息處理函數(shù)實(shí)現(xiàn)對(duì)象的一種功能或行為。所以編寫事件驅(qū)動(dòng)程序的大部分工作是為各個(gè)對(duì)象()添加各種消息的處理函數(shù)。由于一個(gè)對(duì)象可以是消息的接收者,同時(shí)也可能是消息的發(fā)送者,所發(fā)送的消息與接收到的消息也可以是相同的消息,而有些消息的發(fā)出時(shí)間是無法預(yù)知的(比如關(guān)于鍵盤的消息),因此應(yīng)用程序的執(zhí)行順序是無法預(yù)知的。

            4.        邏輯式對(duì)象程序設(shè)計(jì)

            邏輯式程序設(shè)計(jì)的概念來自邏輯式程序設(shè)計(jì)語言Prolog這一曾經(jīng)在計(jì)算機(jī)領(lǐng)域引起震動(dòng)的日本第五代計(jì)算機(jī)的基本系統(tǒng)語言,在這種第五代計(jì)算機(jī)中,Prolog的地位相當(dāng)于當(dāng)前計(jì)算機(jī)中的機(jī)器語言。

            Prolog主要應(yīng)用在人工智能領(lǐng)域,在自然語言處理、數(shù)據(jù)庫查詢、算法描述等方面都有應(yīng)用,尤其適于作為專家系統(tǒng)的開發(fā)工具。

            Prolog是一種陳述式語言,它不是一種嚴(yán)格的通用程序設(shè)計(jì)語言,使用Prolog編寫程序不需要描述具體的解題過程、只需結(jié)出一些必要的事實(shí)和規(guī)則,這些規(guī)則是解決問題方法的規(guī)范說明,根據(jù)這些規(guī)則和事實(shí).計(jì)算機(jī)利用渭詞邏輯,通過演繹推理得到求解問題的執(zhí)行序列。

            5.        并行程序設(shè)計(jì)

            一個(gè)有實(shí)際應(yīng)用的并行算法,最終總要在并行機(jī)上實(shí)現(xiàn),為此首先就要將并行算法轉(zhuǎn)化為并行程序,此過程就是所謂的并行程序設(shè)計(jì)(Parallel Program)。它要求算法設(shè)計(jì)者、系統(tǒng)結(jié)構(gòu)師和軟件工作者廣泛頻繁的交互。因?yàn)樵O(shè)計(jì)并行程序涉及到的知識(shí)面較廣,主要包括操作系統(tǒng)中的有關(guān)知識(shí)和優(yōu)化編譯方面的知識(shí)。操作系統(tǒng)內(nèi)容非常豐富,并行程序中最基本的計(jì)算要素如任務(wù)、進(jìn)程、線程等基本概念、同步機(jī)制和通信操作等。

            目前并行程序設(shè)計(jì)的狀況是:并行軟件的發(fā)展落后于并行硬件;和串行系統(tǒng)與應(yīng)用軟件相比,現(xiàn)今的并行系統(tǒng)與應(yīng)用軟件甚少且不成熟;并行軟件的缺乏是發(fā)展并行計(jì)算的主要障礙;不幸的是,這種狀態(tài)似乎仍在繼續(xù)著。究其原因是并行程序設(shè)計(jì)遠(yuǎn)比串行程序設(shè)計(jì)復(fù)雜:并行程序設(shè)計(jì)不但包含了串行程序設(shè)計(jì),面且還包含了更多的富有挑戰(zhàn)性的問題;串行程序設(shè)計(jì)僅有一個(gè)普遍被接受的馮·諾依曼計(jì)算模型,而并行計(jì)算模型雖有好多,但沒有一個(gè)可被共同認(rèn)可的像馮·諾依曼那樣的優(yōu)秀模型;并行程序設(shè)計(jì)對(duì)環(huán)境工具(如編譯、查錯(cuò)等)的要求遠(yuǎn)比串行程序設(shè)計(jì)先進(jìn)得多;串行程序設(shè)計(jì)比較適合于自然習(xí)慣,且人們?cè)谶^去積累了大量的編程知識(shí)、經(jīng)驗(yàn)和寶貴的軟件財(cái)富。

            posted on 2010-09-16 14:45 深邃者 閱讀(283) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            伊人久久大香线蕉av不卡| 亚洲国产精品成人AV无码久久综合影院 | 亚洲国产日韩欧美综合久久| 亚洲国产视频久久| 国产成人精品三上悠亚久久| 粉嫩小泬无遮挡久久久久久| 久久电影网| 老色鬼久久亚洲AV综合| 久久精品亚洲福利| 久久久久女人精品毛片| 久久亚洲欧洲国产综合| 久久午夜无码鲁丝片| 国产精品99久久久久久宅男 | 亚洲午夜久久久久久久久久| 成人精品一区二区久久久| 久久亚洲AV成人无码| 国产福利电影一区二区三区久久久久成人精品综合 | 精品国产乱码久久久久久郑州公司| 久久精品黄AA片一区二区三区| 久久精品国产一区二区三区| 久久久一本精品99久久精品66| 久久婷婷五月综合97色直播| 狠狠色婷婷综合天天久久丁香| 久久久久国色AV免费看图片| 亚洲人成无码网站久久99热国产| 婷婷久久香蕉五月综合加勒比| 久久免费视频一区| 情人伊人久久综合亚洲| 久久精品www人人爽人人| 久久久亚洲裙底偷窥综合| 久久精品无码一区二区app| 久久精品国产只有精品2020| 久久亚洲精精品中文字幕| 精品久久久久成人码免费动漫| 国产成人精品久久亚洲高清不卡 | 久久综合给合久久国产免费| 2021国产精品久久精品| 久久这里都是精品| 久久久久亚洲国产| 久久久噜噜噜久久中文字幕色伊伊 | 色诱久久av|