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