面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)(第2版)
定 價:35 元
- 作者:李師賢 等 著
- 出版時間:2005/3/1
- ISBN:9787040166507
- 出 版 社:高等教育出版社
- 中圖法分類:TP312
- 頁碼:488
- 紙張:膠版紙
- 版次:2
- 開本:16K
本書第一版被列入“面向21世紀課程教材”,自出版以來,深受讀者歡迎。作為給程序設(shè)計初學者提供的一本入門教材,它以循序漸進、深入淺出的方式,引導眾多學子走進了面向?qū)ο蟪绦蛟O(shè)計的大門;不少高校采用它作為大學生首門程序設(shè)計課程的教材。
在歸納多年教學體會的基礎(chǔ)上,我們以繼續(xù)保持原書的特色為前提,對本書進行了修改和補充,以便相關(guān)的概念闡述得更加通俗易懂;并適當?shù)卦黾恿讼嚓P(guān)的例子,以求使讀者在學習時能更好地理解和領(lǐng)會。例如,在第四章增加了常用編譯預(yù)處理命令的說明;在第四、五、六、七、八、九等章加入了針對性的應(yīng)用實例等。
程序設(shè)計課程教學的宗旨是培養(yǎng)學生掌握程序設(shè)計的基本概念、基本思想和方法。我們采用c++語言作為學習面向?qū)ο蟪绦蛟O(shè)計的工具;但是,不能認為C++就是面向?qū)ο蟪绦蛟O(shè)計,C++語言僅僅是學習所用的工具而已,它并非學習的最終目標。所以,本書也不打算編成c++大全,涉及C++語言的眾多細節(jié)、C++語言各種具體版本的制約等內(nèi)容都未列入本書討論的范疇。透過現(xiàn)象抓本質(zhì),這也正是我們重要的體會。
《面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)(第2版)》第一版被列入“面向21世紀課程教材”,自出版以來,深受讀者歡迎。作為給程序設(shè)計初學者提供的一本入門教材,《面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)》以循序漸進,深入淺出的方式,引導眾多學子走進了面向?qū)ο蟪绦蛟O(shè)計的大門。新版教材在歸納多年教學體會的基礎(chǔ)上,以繼續(xù)保持原書的特色為前提,對前版教材進行了修改和補充,使相關(guān)概念闡述得更加通俗易懂,并適當增加了相關(guān)的例子,以求使讀者在學習時能更好地理解和領(lǐng)會。新版教材內(nèi)容包括了程序設(shè)計基礎(chǔ)、程序設(shè)計語言、算法與復(fù)雜性和軟件工程等內(nèi)容,可作為高校計算機專業(yè)本科生入門教材,也可供相關(guān)專業(yè)高年級學生作為面向?qū)ο蟪绦蛟O(shè)計課程教材使用。
第一章 程序設(shè)計與C++語言初步
1.1 計算機程序
1.1.1 算法
1.1.2 實體
1.1.3 程序
1.1.4 程序設(shè)計
1.2 程序設(shè)計的演變
1.2.1 早期程序設(shè)計
1.2.2 結(jié)構(gòu)化程序設(shè)計
1.2.3 面向?qū)ο蟪绦蛟O(shè)計
1.3 程序設(shè)計語言的定義
1.3.1 語法和語義
1.3.2 字符集
1.3.3 Backus-Naur范式
1.3.4 語法圖
1.4 C++語言的程序結(jié)構(gòu)
1.4.1 C++語言程序的組成
1.4.2 C++語言程序的基本結(jié)構(gòu)
1.4.3 C+4-語言程序的退化結(jié)構(gòu)
1.5 C++語言程序的運行
1.6 面向?qū)ο蟪绦蛟O(shè)計
1.6.1 面向?qū)ο蟪绦蛟O(shè)計過程
1.6.2 面向?qū)ο蟪绦蛟O(shè)計的特征
本章小結(jié)
練習與思考題
上機實習題
第二章 基本數(shù)據(jù)類型
2.1 數(shù)據(jù)類型概述
2.1.1 類型
2.1.2 類型的作用
2.1.3 C++語言的類型
2.2 保留字、標識符、常量與變量
2.2.1 單詞
2.2.2 保留字
2.2.3 標識符
2.2.4 選擇合適的標識符
2.2.s常量與變量
2.2.6 簡單輸入/輸出
2.3 基本數(shù)據(jù)類型
2.3.1 字符類型
2.3.2 整數(shù)類型
2.3.3 浮點類型和雙精度類型
2.3.4 字符串常量
2.3.5 符號常量
2.4 運算符與表達式
2.4.1 表達式
2.4.2 表達式的運算次序
2.4.3 C++的運算符
2.4.4 算術(shù)運算
2.4.5 關(guān)系運算
2.4.6 邏輯運算
2.4.7 位運算
2.4.8 條件運算
2.4.9 sizeof運算
2.4.10 賦值運算
2.4.11 逗號運算
2.4.12 表達式與運算符的應(yīng)用舉例
2.5 類型之問的關(guān)系
2.5.1 隱式類型轉(zhuǎn)換
2.5.2 強制類型轉(zhuǎn)換
2.6 一個簡單的應(yīng)用程序
本章小結(jié)
練習與思考題
上機實習題
第三章 基本控制結(jié)構(gòu)
3.1 程序的基本控制結(jié)構(gòu)
3.1.1 C++語言的簡單語句
3.1.2 單入口/單出口控制結(jié)構(gòu)
3.1.3 結(jié)構(gòu)化程序設(shè)計工具
3.2 選擇結(jié)構(gòu)
3.2.1 if語句
3.2.2 switch語句
3.3 循環(huán)結(jié)構(gòu)
3.3.1 while語句
3.3.2 do-while語句
3.3.3 for語句
3.3.4 一個簡單的循環(huán)例子
3.3.5 設(shè)計正確的循環(huán)
3.4 簡單程序設(shè)計舉例
3.4.1 問題
3.4.2 求解問題的精美算法
3.4.3 求解問題的原始算法
本章小結(jié)
練習與思考題
上機實習題
第四章 函數(shù)
4.1 C++語言的函數(shù)
4.1.1 例程與函數(shù)
4.1.2 函數(shù)的建立與使用
4.1.3 兩個簡單的例子
4.2 函數(shù)的聲明與調(diào)用
4.2.1 函數(shù)聲明
4.2.2 return語句
4.2.3 函數(shù)調(diào)用
4.2.4 函數(shù)與模塊
4.2.5 內(nèi)聯(lián)函數(shù)
4.3 參數(shù)傳遞
4.3.1 參數(shù)傳遞方式
4.3.2 按值調(diào)用
4.3.3 缺省參數(shù)
4.4 作用域與生存期
4.4.1 標識符的作用域
4.4.2 C++程序的存儲組織
4.4.3 變量的生存期
4.5 局部變量與全局變量
4.5.1 局部變量
4.5.2 全局變量
4.5.3 局部變量與全局變量的討論
4.6 變量的存儲類別
4.6.1 自動變量和寄存器變量
4.6.2 靜態(tài)變量
4.6.3 外部變量
4.7 遞歸程序設(shè)計
4.7.1 簡單遞歸程序
4.7.2 梵塔問題
4.8 預(yù)處理命令
4.8.1 文件包含
4.8.2 宏定義
4.8.3 條件編譯
4.9 C++語言的庫函數(shù)
4.9.1 庫函數(shù)的用法
4.9.2 常用數(shù)值函數(shù)
4.9.3 常用字符函數(shù)
本章小結(jié)
練習與思考題
上機實習題
第五章 類與對象
5.1 類的引人
5.1.1 循環(huán)計數(shù)器
5.1.2 關(guān)于循環(huán)計數(shù)器的討論
5.1.3 類作為構(gòu)造程序的基本單位
5.2 類的定義
5.2.1 類聲明
5.2.2 類成員的訪問控制
5.2.3 類界面與類實現(xiàn)
5.2.4 標識符的類作用域
5.3 對象的創(chuàng)建
5.3.1 對象聲明
5.3.2 使用對象成員
5.3.3 對象的生存期
5.4 對象的初始化
5.4.1 構(gòu)造函數(shù)
5.4.2 析構(gòu)函數(shù)
5.4.3 對象成員的初始化
5.5 使用類與對象構(gòu)造程序的實例
5.5.1 模擬數(shù)字式時鐘
5.5.2 模擬加油站油泵的對象工作
5.5.3 單實例對象類
5.6 關(guān)于類與對象的進一步討論
5.6.1 基本數(shù)據(jù)類型與對象
5.6.2 抽象數(shù)據(jù)類型
5.6.3 設(shè)計良好的類界面
5.6.4 再論對象
5.6.5 下一步
本章小結(jié)
練習與思考題
上機實習題
第六章 復(fù)合數(shù)據(jù)類型
6.1 變量與賦值的進一步討論
6.2 指針類型
6.2.1 指針的聲明
6.2.2 指針的引用
6.2.3 指針的運算
6.2.4 按引用調(diào)用的參數(shù)傳遞方式
6.3 數(shù)組類型
6.3.1 一維數(shù)組的聲明
6.3.2 一維數(shù)組元素的引用與初始化
6.3.3 數(shù)組作為函數(shù)的參數(shù)
6.3.4 一維數(shù)組應(yīng)用舉例
6.3.5 二維數(shù)組的聲明
6.3.6 二維數(shù)組元素的引用與初始化
6.3.7 二維數(shù)組應(yīng)用舉例
6.3.8 指針與數(shù)組
6.3.9 指針數(shù)組與數(shù)組指針
6.4 字符串
6.4.1 字符串常量與變量
6.4.2 字符串數(shù)組
6.4.3 關(guān)于字符串操作的庫函數(shù)
6.4.4 字符串與指針數(shù)組應(yīng)用的例子(主函數(shù)帶參數(shù))
6.5 指向?qū)ο蟮闹羔?br />
6.5.1 對象指針
6.5.2 對象的動態(tài)創(chuàng)建與撤銷
6.5.3 對象的復(fù)制與比較
6.6 指向函數(shù)的指針
6.6.1 函數(shù)指針
6.6.2 函數(shù)指針作為參數(shù)
6.6.3 主動對象
6.7 結(jié)構(gòu)類型、枚舉類型與類型別名
6.7.1 結(jié)構(gòu)類型
6.7.2 枚舉類型
6.7.3 類型別名
6.8 高級數(shù)據(jù)結(jié)構(gòu)應(yīng)用
本章小結(jié)
練習與思考題
上機實習題
第七章 繼承機制
7.1 繼承的基本概念
7.2 C++語言的繼承機制
7.3 繼承與構(gòu)造函數(shù)、析構(gòu)函數(shù)
7.4 繼承成員的調(diào)整
7.5 多重繼承
7.6 重復(fù)繼承
7.7 優(yōu)化類層次設(shè)計
本章 小結(jié)
練習與思考題
上機實習題
第八章 多態(tài)性
8.1 多態(tài)性的基本概念
8.2 函數(shù)重載
8.3 拷貝構(gòu)造函數(shù)
8.4 運算符重載
8.5 虛函數(shù)
8.6 抽象類
本章 小結(jié)
練習與思考題
上機實習題
第九章 類屬機制
9.1 類屬的基本概念
9.2 類模板
9.3 函數(shù)模板
本章 小結(jié)
練習與思考題
上機實習題
第十章 輸入/輸出流
10.1 C++語言輸入/輸出
10.2 C++的流類庫
10.3 格式化輸入/輸出
10.4 常用成員函數(shù)輸入/輸出
10.5 設(shè)計自己的輸入/輸出操作
10.6 檢測流操作的錯誤
10.7 文件流
本章 小結(jié)
練習與思考題
上機實習題
第十一章 面向?qū)ο筌浖䴓?gòu)造
11.1 軟件質(zhì)量
11.2 程序斷言機制
11.3 異常處理機制
11.4 可重用構(gòu)件庫
11.5 面向?qū)ο筌浖䴓?gòu)造
11.6 實例研究:Petri網(wǎng)圖形編輯器的討論
第十二章 結(jié)束語
12.1 程序設(shè)計風范
12.2 面向?qū)ο蟪绦蛟O(shè)計語言
本章 小結(jié)
練習與思考題
上機實習題
附錄 A ASCII編碼表
附錄 B 主要術(shù)語索引
附錄 C 主要參考文獻
由于二進制數(shù)據(jù)不便書寫與閱讀,所以常用八進制或十六進制取代二進制。在c++語言中,八進制數(shù)用“0”開始,十六進制數(shù)用“0x”開始,其他表示十進制數(shù)。對于一個給定的字節(jié)01001010,相應(yīng)的八進制、十六進制與十進制表示分別是0112、04和74。這個字節(jié)表示的到底是什么數(shù)據(jù)呢?這可能有多種解釋。如果將它理解為無符號整數(shù),則這個字節(jié)表示的是正整數(shù)+74;如果將它理解為一個AscII編碼的字符,這個字節(jié)表示的又是英文字母“J”。由此可見,要理解一個數(shù)據(jù)到底表達的是什么含義還必須依賴于這個數(shù)據(jù)應(yīng)做何解釋,這種對數(shù)據(jù)的解釋稱為類型(type)。在程序設(shè)計中,類型有重要的意義:程序中所有的數(shù)據(jù)都屬于特定的類型,數(shù)據(jù)的表示方式、取值范圍以及對數(shù)據(jù)可以使用的操作都由數(shù)據(jù)所屬的類型決定。 類型可以幫助編譯程序生成高效率的目標代碼。為了讓編譯程序了解數(shù)據(jù)所屬的類型,通常程序設(shè)計語言都遵循“先聲明、后使用”的原則,即在使用一個數(shù)據(jù)之前必須先聲明它屬于哪種類型。這樣,編譯程序在生成目標代碼時,就能知道需要分配多大的存儲空間以及如何引用這個數(shù)據(jù)。類型對于編寫程序的程序員也有重要意義。由于程序中的每一個數(shù)據(jù)都明確地屬于一種類型,所以這些數(shù)據(jù)的取值范圍、可以操作的運算等信息就可通過數(shù)據(jù)所屬的類型顯式地反映出來,提高了程序的可讀性和可理解性。在程序中使用數(shù)據(jù)時,可以根據(jù)數(shù)據(jù)的特點(如是字符還是數(shù)值、有無小數(shù)等)與可能的取值范圍決定數(shù)據(jù)的類型。一個數(shù)據(jù)屬于某一特定類型后,在該數(shù)據(jù)上允許操作的運算也就確定了下來。例如,兩個整數(shù)可以進行加、減、乘、除、整除、取模等運算,而兩個字符串則可進行比較、連接、判斷子串等操作,但不可做四則運算。