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