出版時(shí)間:2009-9 出版社:清華大學(xué)出版社 作者:許薇,方修豐 編著 頁數(shù):201
前言
計(jì)算機(jī)問世以后,在世界范圍內(nèi),幾乎全部的行業(yè)和部門管理工作都使用了計(jì)算機(jī),因而使管理工作出現(xiàn)了高效率、快節(jié)奏,而且節(jié)省了很多人力、物力,其經(jīng)濟(jì)效益是無法計(jì)量的。對于計(jì)算機(jī)本身來說,這些顯著的成就更加取決于對軟件的依賴。將現(xiàn)實(shí)世界的情況準(zhǔn)確地映射到計(jì)算機(jī)中,以求解決面臨的問題是程序設(shè)計(jì)所追求的目標(biāo)。長期以來,人們一直研究科學(xué)的方法和技術(shù)來解決由需求增加導(dǎo)致的需要依靠計(jì)算機(jī)來完成的各種問題。面向過程的程序設(shè)計(jì)方法在一個(gè)歷史時(shí)期內(nèi)適應(yīng)了這種情況,成為程序設(shè)計(jì)的首選。隨著問題規(guī)模的擴(kuò)大,面向過程的方法和技術(shù)已經(jīng)不能夠適應(yīng)新的發(fā)展。面向?qū)ο蠓椒ǖ幕舅枷胧菑默F(xiàn)實(shí)世界中客觀存在的事物出發(fā)來構(gòu)造軟件系統(tǒng),在系統(tǒng)構(gòu)造中盡可能地運(yùn)用人類的自然思維方式。其開發(fā)本質(zhì)是應(yīng)用領(lǐng)域內(nèi)概念的鑒別和組織,而不是它們在一種程序設(shè)計(jì)語言中的最終表示。面向?qū)ο笳Z言是一類以對象作為基本程序結(jié)構(gòu)單位的程序設(shè)計(jì)語言,用于描述的設(shè)計(jì)是以對象為核心,而對象是程序運(yùn)行時(shí)刻的基本成分,語言中提供了類、繼承等成分。面向?qū)ο笏枷氲膶?shí)踐依賴于面向?qū)ο笳Z言的實(shí)現(xiàn)。面向?qū)ο蠓椒ǖ陌l(fā)展推動了面向?qū)ο笳Z言的不斷出現(xiàn)和進(jìn)步。目前支持面向?qū)ο蟮恼Z言有很多種,其中C++和Java最能夠體現(xiàn)面向?qū)ο蟮乃枷?。C++是一種廣泛使用的支持面向?qū)ο蠹夹g(shù)的程序設(shè)計(jì)語言,同時(shí)也保留了C語言的靈活性特點(diǎn)。考慮到以C語言為代表的面向過程語言的普及性,本書采用了C++作為描述工具,以求達(dá)到盡可能強(qiáng)的適應(yīng)性。面向?qū)ο蠓椒ǖ暮诵膬r(jià)值體現(xiàn)在類的設(shè)計(jì)和代碼復(fù)用理念。運(yùn)用一種面向?qū)ο笳Z言為工具來表述面向?qū)ο蟮乃枷牒头椒ㄊ亲珜懕緯哪康模虼司唧w的C++語法規(guī)范不是本書的論述重點(diǎn)。根據(jù)本書的編排,讀者們能夠掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本方法,并學(xué)會利用C++程序設(shè)計(jì)語言編寫具有面向?qū)ο筇卣鞯某绦虼a,從中體會出面向?qū)ο蟪绦蛟O(shè)計(jì)的精髓。全書由8個(gè)章節(jié)和2個(gè)附錄構(gòu)成。第1章C++基礎(chǔ)知識,簡要介紹了C++語言的部分知識,這些知識主要為后面采用C++工具描述面向?qū)ο蟮乃枷牒头椒ㄌ峁┝思夹g(shù)支撐; 第2章面向?qū)ο蟪绦蛟O(shè)計(jì)概述,主要介紹面向?qū)ο蟪绦蛟O(shè)計(jì)所涉及的基本概念和基本方法,重點(diǎn)表述了面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì)、面向?qū)ο髮?shí)現(xiàn)及面向?qū)ο蟮臏y試和軟件維護(hù); 第3章類與對象,主要介紹對象和類的產(chǎn)生機(jī)制,以及采用C++語言對其實(shí)現(xiàn)的方法; 第4章繼承和派生,主要講述了面向?qū)ο蠓椒ㄖ写a重用問題,并采用C++語言予以實(shí)現(xiàn); 第5章多態(tài)性,主要講述在代碼復(fù)用的基礎(chǔ)上如何使程序的表示形式與程序的表達(dá)內(nèi)容盡可能無關(guān); 第6章模板,模板提供了數(shù)據(jù)類型的靈活性,并且支持了編譯時(shí)的語法檢查,極大地提高了程序的可重用性; 第7章異常,主要介紹異常的處理思想和C++的異常處理機(jī)制; 第8章流類庫,流類庫是C++語言利用繼承組織類層次的典范,通過介紹流類庫和它的使用方法來體現(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)思想。附錄中對采用Visual C++6.0調(diào)試程序的方法做了必要的描述。本書中列舉了大量實(shí)例,大部分的程序均已在 Visual C++6.0下調(diào)試通過,由于Visual C++6.0對標(biāo)準(zhǔn)C++規(guī)范的改變,使它不能夠完成全部例程的調(diào)試,所以采用了Cfree4.0調(diào)試了部分程序。與其他面向?qū)ο蟪绦蛟O(shè)計(jì)書籍相比較,本書有以下幾個(gè)特點(diǎn): 主旨明確,拋開語法細(xì)節(jié),直入核心理念。舉例精簡,力求以簡明表述說明內(nèi)在本質(zhì),防止陷入程序細(xì)節(jié)而妨礙對知識點(diǎn)的理解。環(huán)節(jié)驅(qū)動,章前有導(dǎo)讀,章后有總結(jié)并輔以思考問答使讀者學(xué)前有所思學(xué)后有收獲。脈絡(luò)清晰,知識章節(jié)編排突出循序漸進(jìn)的原則,使讀者能夠系統(tǒng)地掌握面向?qū)ο蠹夹g(shù)的基礎(chǔ)知識、基本技能。形成嚴(yán)密的邏輯思維能力,進(jìn)而掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的思想和方法。本書適合于具有結(jié)構(gòu)化程序設(shè)計(jì)方法知識的讀者使用,可作為計(jì)算機(jī)專業(yè)學(xué)生面向?qū)ο蟪绦蛟O(shè)計(jì)課程的教材,也可作為從事計(jì)算機(jī)軟件開發(fā)人員的參考資料。在本書的編寫過程中,我們參考和引用了國內(nèi)外同行的書籍和文獻(xiàn),在此,向被引用文獻(xiàn)的作者以及給予本書幫助的所有人士表示衷心的感謝!盡管作者是多年從事面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)的一線教師,有著比較豐富的教學(xué)經(jīng)驗(yàn),由于面向?qū)ο蠹夹g(shù)的快速發(fā)展,我們難以對面向?qū)ο蟪绦蛟O(shè)計(jì)的最新成果加以全面表述,更由于作者的學(xué)識水平限制,書中尚有不足和錯(cuò)誤之處,懇請讀者予以批評指正,以便再版時(shí)修訂。
內(nèi)容概要
本書以C++語言為描述工具,描述了面向?qū)ο蟪绦蛟O(shè)計(jì)的主要思想和方法,并對其中的重要概念和機(jī)制做了詳細(xì)論述及C++技術(shù)的實(shí)現(xiàn)。書中知識編排脈絡(luò)清晰、主旨明確,用例簡潔且針對性強(qiáng),突出并實(shí)現(xiàn)了閱讀環(huán)節(jié)對學(xué)習(xí)效果的價(jià)值。 本書適合于具有結(jié)構(gòu)化程序設(shè)計(jì)方法知識的讀者使用,可作為計(jì)算機(jī)專業(yè)學(xué)生面向?qū)ο蟪绦蛟O(shè)計(jì)課程的教材,也可作為從事計(jì)算機(jī)軟件開發(fā)人員的參考資料。
書籍目錄
第1章 C++基礎(chǔ)知識 1.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)語言 1.1.1 C++語言 1.1.2 Java語言 1.1.3 Visual Basic語言 1.2 變量 1.2.1 變量的定義方法 1.2.2 const修飾符 1.2.3 引用類型 1.3 函數(shù) 1.3.1 函數(shù)原型 1.3.2 內(nèi)聯(lián)函數(shù) 1.3.3 帶默認(rèn)參數(shù)的函數(shù) 1.3.4 函數(shù)的參數(shù)傳遞 1.3.5 函數(shù)重載 1.4 名字空間 1.5 動態(tài)內(nèi)存分配 1.5.1 內(nèi)存申請 1.5.2 內(nèi)存釋放 1.6 作用域 1.6.1 生存期 1.6.2 全局和局部變量 1.7 多文件結(jié)構(gòu) 本章小結(jié) 思考與練習(xí)第2章 面向?qū)ο蟪绦蛟O(shè)計(jì)概述 2.1 面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念 2.1.1 面向?qū)ο蠓椒ǖ漠a(chǎn)生 2.1.2 面向?qū)ο蠓椒ǖ姆椒ㄅc結(jié)構(gòu) 2.1.3 類和對象的概念 2.1.4 消息與事件的概念 2.2 面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn) 2.2.1 抽象性 2.2.2 封裝性 2.2.3 繼承性 2.2.4 多態(tài)性 2.3 面向?qū)ο蟮能浖_發(fā) 2.3.1 面向?qū)ο蠓治觥 ?.3.2 面向?qū)ο笤O(shè)計(jì) 2.3.3 面向?qū)ο髮?shí)現(xiàn) 2.3.4 面向?qū)ο鬁y試 2.3.5 面向?qū)ο筌浖S護(hù) 本章小結(jié) 思考與練習(xí)第3章 類與對象 3.1 類 3.1.1 類的定義 3.1.2 訪問控制 3.1.3 成員變量 3.1.4 成員函數(shù) 3.2 構(gòu)造函數(shù)與析構(gòu)函數(shù) 3.2.1 構(gòu)造函數(shù) 3.2.2 析構(gòu)函數(shù) 3.2.3 拷貝構(gòu)造函數(shù) 3.2.4 淺拷貝與深拷貝 3.2.5 構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用過程 3.3 對象 3.3.1 對象的定義 3.3.2 類成員的訪問 3.4 子對象 3.4.1 組合模式 3.4.2 子對象和構(gòu)造函數(shù)設(shè)計(jì) 3.4.3 內(nèi)部類 3.5 靜態(tài)成員 3.5.1 定義與引用 3.5.2 靜態(tài)數(shù)據(jù)成員 3.5.3 靜態(tài)成員函數(shù) 3.6 友元 3.6.1 友元的作用 3.6.2 友元函數(shù) 3.6.3 友元類 3.6.4 友元成員函數(shù) 3.7 設(shè)計(jì)舉例 本章小結(jié) 思考與練習(xí)第4章 繼承與派生第5章 多態(tài)性第6章 模板第7章 異常處理第8章 流類庫附錄A 基本ASCII字符集附錄B Visual C++下的程序調(diào)試參考文獻(xiàn)
章節(jié)摘錄
插圖:2.3.1 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治鍪侵冈谏钊?、全面理解問題本質(zhì)需求的基礎(chǔ)上,確定類與對象、屬性,分析對象模式及類對象的關(guān)聯(lián)關(guān)系,確定行為等要素。為全面正確理解問題的實(shí)質(zhì)和要素,在面向?qū)ο蟪绦蜍浖_發(fā)的分析階段,系統(tǒng)分析員應(yīng)與客戶一起工作。應(yīng)從目標(biāo)問題的分析和描述人手,建立一個(gè)符合系統(tǒng)內(nèi)在邏輯、能客觀反映系統(tǒng)重要特性的準(zhǔn)確數(shù)學(xué)模型。在深入理解客戶需求分析的基礎(chǔ)上,面向?qū)ο蠓治鲆龅闹饕ぷ靼ù_定類、確定類的屬性和確定類的方法。另外,還要確定類之間的聯(lián)系方式,這稱為確定對象模式。實(shí)際上,在一個(gè)較大的軟件系統(tǒng)分析中,確定類和確定對象模式是結(jié)合起來完成的。1.確定類類是對象模型的基礎(chǔ),尋找并整理出對象模型中的全部類,是首先要做的工作。面向?qū)ο蟪绦蛟O(shè)計(jì)的重要步驟之一就是將如何將現(xiàn)實(shí)世界的對象關(guān)系映射到計(jì)算機(jī)的虛擬世界中去,對于現(xiàn)實(shí)世界來說,對象可分為以下幾種情況:(1)需求分析包括的可感知的實(shí)體和抽象的概念??筛兄膶?shí)體如計(jì)算機(jī)、防盜門、出租車、茶杯、臺燈等,抽象的概念如學(xué)校校規(guī)、交通法規(guī)等。(2)需求分析包括的人或組織的角色,如司機(jī)、教師、學(xué)生、市長、工人、醫(yī)生、護(hù)士、病人等。(3)需求分析所涉及事件,如學(xué)生在食堂買飯、顧客在商場購物、汽車發(fā)生交通事故、飛機(jī)發(fā)生空難事故等。事件是指一個(gè)狀態(tài)的改變,或者一個(gè)活動的發(fā)生。事件可按需求分析得出的重要程度分為一般事件和重要事件。一般事件可在相關(guān)類中增加屬性并增加相應(yīng)的方法。重要事件可設(shè)計(jì)為類,例如,飛機(jī)發(fā)生空難事故,這種需要長期保存資料的事件就要設(shè)計(jì)成單獨(dú)的類。
編輯推薦
《面向?qū)ο蟪绦蛟O(shè)計(jì)(C++描述)》是由清華大學(xué)出版社出版。教學(xué)目標(biāo)明確,注重理論與實(shí)踐的結(jié)合教學(xué)方法靈活,培養(yǎng)學(xué)生自主學(xué)習(xí)的能力教學(xué)內(nèi)容先進(jìn),反映了計(jì)算機(jī)學(xué)科的最新發(fā)展教學(xué)模式完善,提供配套的教學(xué)資源解決方案
圖書封面
評論、評分、閱讀與下載