出版時(shí)間:2002-5 出版社:藍(lán)色暢想圖書發(fā)行有限公司 作者:陳奇 頁數(shù):340 字?jǐn)?shù):530000
前言
怎樣學(xué)好一種語言?怎樣學(xué)會(huì)用正確的方法用這種語言編程?這恐怕是所有渴望成為一個(gè)優(yōu)秀軟件工程師的人都必須面對(duì)的問題。古人云:學(xué)而不思則罔,思而不學(xué)則怠。這是一個(gè)很好的經(jīng)驗(yàn)教訓(xùn),不過還應(yīng)該再補(bǔ)充一點(diǎn):實(shí)踐。學(xué)好語言最重要的法寶是編程,再編程。接觸過不少同學(xué),他們非常熱愛計(jì)算機(jī),非常渴望成為一個(gè)卓越的程序員,他們也很努力,但效果卻不如人意,有些人甚至走了很長的彎路。自己當(dāng)初也經(jīng)歷過種種曲折,很希望做點(diǎn)什么對(duì)這些同學(xué)有所助益。本書是講述面向?qū)ο蟪绦蛟O(shè)計(jì)方法與C++的,但我們不希望把它僅僅寫成一種語言教材。學(xué)好語言不等于學(xué)好了編程,而不以編程為目的的語言學(xué)習(xí)也是不可能真正學(xué)好語言的。本書在內(nèi)容取舍、教材結(jié)構(gòu)及習(xí)題設(shè)置方面都力求體現(xiàn)這一點(diǎn)。20世紀(jì)90年代初以前,我一直是用c語言寫軟件,用Pascal講課。當(dāng)時(shí)我們開了一門叫做高級(jí)程序設(shè)計(jì)的課程,力圖告訴學(xué)生怎樣才算是好程序,怎樣才是一個(gè)高的編程境界。多年后,一些學(xué)生回憶起來,仍覺得獲益良多。通過那門課的教學(xué),我們(我和我的學(xué)生們)明白了一個(gè)道理,編程就像武俠小說里的練武,光是一招一式是不夠的,要成為一個(gè)武林高手,就要掌握關(guān)鍵,就要追求那種境界。當(dāng)時(shí),我們?cè)谡n上讀了不少非常優(yōu)美的程序,也寫了一些所謂的大作業(yè)(一千行開外,四、五千行以內(nèi)),好像也挺優(yōu)美的。但一到寫實(shí)際的程序(一般在數(shù)萬行以上),最終總是寫得很蹩腳。當(dāng)時(shí)用的是結(jié)構(gòu)化編程,我自己的體會(huì)是很有道理的,但總是寫不好。一方面得承認(rèn)自己練得不夠純熟,一方面好像總覺得結(jié)構(gòu)化程序設(shè)計(jì)本身是一套境界不夠高的“拳”,坦率地說,我一直沒有在用c語言編寫大程序上體會(huì)到多少內(nèi)在的樂趣。20世紀(jì)80年代末開始,我們接觸到了面向?qū)ο蟪绦蛟O(shè)計(jì),進(jìn)而又接觸了C++,當(dāng)我們開始嘗試用C++以面向?qū)ο蠓绞骄幊虝r(shí),各種條件都還比較差,國內(nèi)教材幾乎沒有,當(dāng)時(shí)流行的C++編譯器都還只有C版本。但即使在那樣的條件下,當(dāng)在寫一個(gè)C++的軟件系統(tǒng)時(shí),我第一次在復(fù)雜程序組織方面體會(huì)到一種令人驚奇的美妙感覺。很久以后,我才逐漸明白了面向?qū)ο笏枷刖薮蟮镊攘λ?,這是一種令人振奮的體驗(yàn)。面向?qū)ο笳娴哪敲春脝??國外有人說,C++的好處你得寫五萬行以上的程序才能體會(huì)到。這也許說得有些過,但確實(shí),結(jié)構(gòu)化程序設(shè)計(jì)和面向?qū)ο蟪绦蛟O(shè)計(jì),都是程序越來越復(fù)雜的產(chǎn)物。在本書中,我們給出了一個(gè)較大的程序?qū)嵗?,展示了采用結(jié)構(gòu)化的C與面向?qū)ο蟮腃++不同的實(shí)現(xiàn)方案。但限于篇幅,我們?nèi)詻]有機(jī)會(huì)接觸真正復(fù)雜的程序,希望讀者能多加一些想像去體會(huì)面向?qū)ο笤趶?fù)雜程序組織中的意義。本書不打算寫成一本手冊(cè),所以讀者不會(huì)在其中查到C++的全部細(xì)節(jié)。我們認(rèn)為目前主要的C++編程環(huán)境提供的聯(lián)機(jī)幫助遠(yuǎn)比課本要好得多。本書的目的是想幫助讀者掌握面向?qū)ο缶幊膛cC++的關(guān)鍵。以前接觸過一些“精通”c++的學(xué)生,令人驚奇的是,他們對(duì)最關(guān)鍵、最重要的C++基本成分居然不得要領(lǐng),甚至全然不知,而且更無法想像的是,這種情況還比較普遍,我們希望在“學(xué)”這一環(huán)節(jié)上,能給讀者正確的引導(dǎo)。
內(nèi)容概要
本書針對(duì)學(xué)過一門結(jié)構(gòu)化語言的讀者,以C++為背景語言,全面介紹了面向?qū)ο蟪绦蛟O(shè)計(jì)的一些概念和方法。主要內(nèi)容包括:結(jié)構(gòu)化程序設(shè)計(jì),C語言回顧,面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ),C++語言基礎(chǔ),面向?qū)ο蟮姆治龊驮O(shè)計(jì),C++深入論題,標(biāo)準(zhǔn)模板庫STL,Windows編程和MFC,一個(gè)綜合實(shí)例研究。全書系統(tǒng)地介紹了C++的要點(diǎn)與關(guān)鍵,深入分析了C++中的難點(diǎn),并對(duì)重要的實(shí)現(xiàn)機(jī)制進(jìn)行了必要的討論,力求幫助讀者在全面掌握面向?qū)ο蟪绦蛟O(shè)計(jì)方法與C++編程精髓的基礎(chǔ)上,進(jìn)入一種良好的編程境界。 本書強(qiáng)調(diào)實(shí)例分析與概念理論相結(jié)合,通過一個(gè)貫穿全書的實(shí)例——圖書館管理系統(tǒng),比較完整地展示了采用結(jié)構(gòu)化編程語言C與面向?qū)ο缶幊陶Z言C++的不同實(shí)現(xiàn)方案,具有較強(qiáng)的實(shí)用性。本書可作為高等學(xué)校計(jì)算機(jī)或相關(guān)專業(yè)的教材或參考書,也可供對(duì)計(jì)算機(jī)有較高要求專業(yè)的研究生使用。對(duì)于希望深入掌握面向?qū)ο蟪绦蛟O(shè)計(jì)方法與C++編程技術(shù)的讀者,本書也不啻是一本較好的參考書。
書籍目錄
第一章 結(jié)構(gòu)化程序設(shè)計(jì) 1.1 軟件和編程 1.2 結(jié)構(gòu)化程序設(shè)計(jì) 1.3 層次樹狀的結(jié)構(gòu) 1.4 模塊化 1.5 自頂向下方法 1.6 軟件開發(fā)的瀑布模型 習(xí)題1第二章 C語言回顧 2.1 C語言基礎(chǔ) 2.1.1 編碼 2.1.2 類型 2.1.3 三種控制結(jié)構(gòu) 2.1.4 程序的結(jié)構(gòu) 2.1.5 程序運(yùn)行時(shí)的內(nèi)存占用 2.1.6 文件 2.2 C語言中的指針 2.2.1 指針基礎(chǔ) 2.2.2 指針和數(shù)組 2.2.3 指針的指針 2.2.4 更為復(fù)雜的指針 2.3 程序設(shè)計(jì)風(fēng)格基礎(chǔ) 2.3.1 程序的清晰性 2.3.2 程序的堅(jiān)固性 2.3.3 程序的通用性 2.3.4 程序的交互性 2.4 用C語言實(shí)現(xiàn)的簡單圖書館管理系統(tǒng) 習(xí)題2第三章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ) 3.1面向?qū)ο蟮挠蓙砗桶l(fā)展 3.2類和對(duì)象 3.3面向?qū)ο笾械某橄? 3.4繼承性和多態(tài)性 3.5面向?qū)ο蠓椒ê驮图夹g(shù) 習(xí)題3第四章C++語言基礎(chǔ) 4.1 C++的發(fā)展 4.2 更好的C 4.2.1 簡潔的單行注釋 4.2.2 嚴(yán)格的參數(shù)檢查 4.2.3 引用 4.2.4 靈活的局部變量說明 4.2.5 函數(shù)的缺省值 4.2.6 內(nèi)聯(lián)函數(shù) 4.2.7 常量修飾 4.2.8 空間申請(qǐng)和釋放 4.3 數(shù)據(jù)抽象和封裝 4.3.1 類的引入 4.3.2 類和對(duì)象 4.3.3 成員函數(shù)和this指針 4.3.4 構(gòu)造和析構(gòu) 4.3.5 常量成員函數(shù) 4.3.6 友元 4.4 繼承 4.5 多態(tài)性 4.5.1 重載 4.5.2 虛函數(shù) 4.5.3 純虛函數(shù)與抽象類 4.6 文件和流 4.6.1 文本流的操作 4.6.2 二進(jìn)制流的操作 習(xí)題4第五章 UML與面向?qū)ο蟮姆治雠c設(shè)計(jì) 5.1統(tǒng)一建模語言UML概述 5.1.1 UML的產(chǎn)生和成長 5.1.2 UML的內(nèi)容 5.1.3 UML的應(yīng)用領(lǐng)域 5.2 統(tǒng)一建模語言UML的靜態(tài)建模機(jī)制 5.2.1 用例圖 5.2.2 類圖 5.2.3 組件圖和配置圖 5.3 統(tǒng)一建模語言UML的動(dòng)態(tài)建模機(jī)制 5.4 使用UML的過程 5.5 UML的應(yīng)用實(shí)例:一個(gè)圖書館信息系統(tǒng) ……第六章 C++深入論題第七章 標(biāo)準(zhǔn)模板庫STL第八章 Windows編程和MFC第九章 綜合實(shí)例:圖書館管理系統(tǒng)
章節(jié)摘錄
插圖:程序設(shè)計(jì)主流已經(jīng)從結(jié)構(gòu)化程序設(shè)計(jì)過渡到了面向?qū)ο蟪绦蛟O(shè)計(jì)。有人錯(cuò)誤地以為這兩者是完全對(duì)立的,其實(shí)不然,面向?qū)ο蟪绦驘o論從發(fā)展的歷史上看還是從其內(nèi)在的意義上看,都是結(jié)構(gòu)化程序設(shè)計(jì)的發(fā)展。在一定意義上講,可以認(rèn)為面向?qū)ο蟪绦蛟O(shè)計(jì)更徹底地實(shí)現(xiàn)了結(jié)構(gòu)化程序設(shè)計(jì)的理想。為了更好地討論面向?qū)ο蟪绦蛟O(shè)計(jì),我們有必要首先來回顧一下結(jié)構(gòu)化程序。與此同時(shí),目前面向?qū)ο蟪绦蛟O(shè)計(jì)的主流語言C++又恰恰是從結(jié)構(gòu)化程序設(shè)計(jì)的主流語言C發(fā)展過來的,為后面講述的方便,我們也一并回顧一下C語言中的難點(diǎn)、要點(diǎn)或一些容易忽略而又很有意義的問題。已經(jīng)熟悉這些內(nèi)容的讀者可以跳過本章。1-1軟件和編程計(jì)算機(jī)是20世紀(jì)人類偉大的成就之一。計(jì)算機(jī)在誕生以來的50多年中的發(fā)展速度是令人震驚的,不僅在于其迅速提高的速度和容量,更在于其應(yīng)用的廣闊性。計(jì)算機(jī)為什么會(huì)有如此超乎人們想像的今天呢?一個(gè)重要的奧秘就是“軟件”。什么是軟件?認(rèn)真一想一定會(huì)發(fā)現(xiàn)有些難以回答,軟件是程序、工具還是一類機(jī)器?或者是機(jī)器中的一種組成部分?把軟件看作是一類機(jī)器或機(jī)器部件是有道理的,但它和傳統(tǒng)機(jī)器的最大區(qū)別就在于它的“軟”,即容易改變。計(jì)算機(jī)的一個(gè)基本設(shè)計(jì)就是將“機(jī)器”分成了兩部分:一部分是具有普遍性的支撐平臺(tái),人們抽象出了基本的邏輯結(jié)構(gòu)和物理結(jié)構(gòu),即計(jì)算機(jī)的硬件;另一部分是可以隨時(shí)根據(jù)用戶的需要定制和改變的,即軟件。制造和出售硬件的廠商在某種程度上不用關(guān)心他們制造的“機(jī)器”將會(huì)用來干什么,但在這種機(jī)器上附著的軟件為它提供了無限的可能。
編輯推薦
《面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)教程》是由高等教育出版社出版的。
圖書封面
評(píng)論、評(píng)分、閱讀與下載
面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)教程 PDF格式下載