定 價(jià):32 元
叢書(shū)名:普通高等院校計(jì)算機(jī)專業(yè)(本科)實(shí)用教程系列
- 作者:徐孝凱
- 出版時(shí)間:2007/10/1
- ISBN:9787302157618
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP312C
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16
本書(shū)較全面和詳細(xì)地介紹了C++語(yǔ)言的所有語(yǔ)法規(guī)則,對(duì)于每一語(yǔ)法規(guī)則不僅給予準(zhǔn)確定義,而且在程序設(shè)計(jì)中給予自然和靈活的運(yùn)用,便于讀者在應(yīng)用中把握和加深對(duì)概念的理解。本書(shū)較詳細(xì)地介紹了在Microsoft Visual C++ 6.0集成開(kāi)發(fā)環(huán)境下的控制臺(tái)應(yīng)用程序的開(kāi)發(fā)過(guò)程,書(shū)中的每個(gè)程序都在此環(huán)境下運(yùn)行通過(guò)。本書(shū)的每章后面給出了適量的、針對(duì)性強(qiáng)的各種程序分析和設(shè)計(jì)應(yīng)用題,供讀者自行練習(xí),并且專門配套出版了相應(yīng)的習(xí)題參考解答書(shū),供自學(xué)者參考。
本書(shū)已被列選為普通高等教育“十一五”國(guó)家級(jí)規(guī)劃教材,已被許多高校選定為C/C++語(yǔ)言程序設(shè)計(jì)課程的教材和考研的指定參考書(shū)。
本書(shū)第一版已經(jīng)出版近7年,得到社會(huì)上的廣泛認(rèn)可和好評(píng),被許多高校選定為教材或考研參考書(shū),并被評(píng)定為普通高等教育“十一五”國(guó)家級(jí)規(guī)劃教材,按照學(xué)科發(fā)展和讀者要求,現(xiàn)在及時(shí)修訂為第二版。
C++語(yǔ)言是對(duì)傳統(tǒng)C語(yǔ)言的豐富和發(fā)展,是C語(yǔ)言的更新?lián)Q代產(chǎn)品,它含有目前軟件開(kāi)發(fā)技術(shù)中的所有要素,如函數(shù)重載、運(yùn)算符重載、類、對(duì)象、模板、繼承、多態(tài)、流、名字空間等,有許多要素是傳統(tǒng)C語(yǔ)言所沒(méi)有的,所以C++語(yǔ)言既能夠代替C語(yǔ)言作為入門語(yǔ)言來(lái)學(xué)習(xí),又能夠?qū)W到比C語(yǔ)言豐富、實(shí)用和現(xiàn)代得多的知識(shí)。計(jì)算機(jī)及相關(guān)專業(yè)把C++語(yǔ)言定位為第一門計(jì)算機(jī)語(yǔ)言課程,代替?zhèn)鹘y(tǒng)的C語(yǔ)言,的確是明智之舉。
本書(shū)第二版仍然保持原書(shū)第一版的優(yōu)點(diǎn),即內(nèi)容豐富實(shí)用、敘述條理清楚、概念講解明晰、問(wèn)題分析透徹、程序設(shè)計(jì)規(guī)范、例題選擇廣泛、語(yǔ)法聯(lián)系實(shí)際應(yīng)用緊密和深入、前后章節(jié)內(nèi)容組織和安排有序、創(chuàng)作風(fēng)格便于自學(xué)和閱讀。
本書(shū)第二版對(duì)第一版主要做了如下修改和補(bǔ)充:
1.增加了第一章“程序設(shè)計(jì)引論”。介紹了計(jì)算機(jī)中的數(shù)制和編碼的概念,利用計(jì)算機(jī)編程解決問(wèn)題的設(shè)計(jì)思路、方法和原則,利用文字?jǐn)⑹龊透鞣N流程圖描述算法(即解決問(wèn)題的方法)的特點(diǎn)和應(yīng)用事例等內(nèi)容。讓讀者在學(xué)習(xí)C++語(yǔ)言之前就能夠了解和掌握利用計(jì)算機(jī)解決問(wèn)題的思路和方法,能夠用文字或流程圖描述出來(lái),待后面學(xué)習(xí)了C++語(yǔ)言后會(huì)很方便地編寫出相應(yīng)的程序。這一章不屬于C++語(yǔ)言本身的內(nèi)容,但能夠?yàn)閷W(xué)習(xí)C++語(yǔ)言做好鋪墊。如果通過(guò)前面課程對(duì)這一章內(nèi)容有所了解,則可把這一章列為自學(xué)或選學(xué)內(nèi)容。
2.在每章開(kāi)始增加一段文字,簡(jiǎn)要地給出本章的主要內(nèi)容和學(xué)習(xí)目標(biāo),讓讀者能夠在學(xué)習(xí)具體內(nèi)容前做到心中有數(shù)、有的放矢,增強(qiáng)學(xué)習(xí)的主動(dòng)性和自覺(jué)性。在每章結(jié)束處高度地概括、歸納和提煉出主要知識(shí)點(diǎn),能夠使讀者對(duì)本章所學(xué)的全部知識(shí)得到進(jìn)一步的鞏固和提升。
3.在第二章“C++語(yǔ)言概述”中,對(duì)于頭文件的使用,引入了std名字空間的概念,這樣更能體現(xiàn)C++語(yǔ)言的編程風(fēng)格,對(duì)于在VC++ 6.0集成開(kāi)發(fā)環(huán)境中建立工作區(qū)、工程項(xiàng)目和程序文件,作了較詳細(xì)的介紹,有利于讀者上機(jī)操作進(jìn)行建立和調(diào)試程序。
4.在第八章“結(jié)構(gòu)和聯(lián)合”中,增加了對(duì)鏈表的一些操作算法的分析,如插入和刪除結(jié)點(diǎn)等,使得進(jìn)行鏈表的運(yùn)算更加豐富,同時(shí)也加深對(duì)動(dòng)態(tài)分配和回收對(duì)象的運(yùn)算的理解和應(yīng)用。
5.在第九章“類與對(duì)象”中,把類的運(yùn)算符重載成員函數(shù)專門列為一節(jié)討論,在本章的末尾增加一節(jié)“類的應(yīng)用舉例”,這些都能夠加深讀者對(duì)類與對(duì)象概念的理解。
6.對(duì)書(shū)中各章的一些內(nèi)容,為了敘述更加條理和簡(jiǎn)明,便于理解和掌握,適當(dāng)?shù)卦黾雍图?xì)化了內(nèi)容標(biāo)題。
7.為了便于讀者自學(xué),專門配套編寫和同時(shí)出版了習(xí)題參考解答一書(shū),該書(shū)給出了C++語(yǔ)言基礎(chǔ)教程(第二版)中每章習(xí)題的全部參考解答和必要的分析與提示,并且還補(bǔ)充了一些練習(xí)題及參考解答。
8.在清華大學(xué)出版社圖書(shū)網(wǎng)站的該書(shū)網(wǎng)頁(yè)上給出講課教案或課件素材供教師免費(fèi)下載使用,并在適當(dāng)?shù)臅r(shí)候開(kāi)設(shè)交流窗口供師生相互交流和研討。
總之,經(jīng)過(guò)這次修改和再版后,使得全書(shū)內(nèi)容更加具有科學(xué)性、先進(jìn)性、實(shí)用性和可讀性,提供了多樣性地教學(xué)支持服務(wù),本書(shū)更加適合作為普通高校開(kāi)設(shè)C++語(yǔ)言程序設(shè)計(jì)課程的教材或教學(xué)參考書(shū)。
另外,本書(shū)具有較豐富的程序設(shè)計(jì)例題和習(xí)題,涉及數(shù)值計(jì)算、數(shù)據(jù)處理等各方面的應(yīng)用,它們均可以作為上機(jī)實(shí)驗(yàn)操作題使用,不需要另配實(shí)驗(yàn)教材。
盡管本人作了認(rèn)真地修訂,但可能仍有不盡如人意的地方,敬請(qǐng)熱心讀者斧正。本書(shū)編輯的電子郵件地址為:zhengyk@tup.tsinghua.edu.cn;作者的聯(lián)系電話為:010-64910302,電子郵件地址為:xuxk@crtvu.edu.cn。
徐孝凱
2007年8月
第一版前言
C++語(yǔ)言是當(dāng)前最流行和最實(shí)用的一種計(jì)算機(jī)高級(jí)程序設(shè)計(jì)語(yǔ)言,它具有豐富的數(shù)據(jù)類型和各種運(yùn)算功能,帶有龐大的函數(shù)庫(kù)和類庫(kù),既支持面向過(guò)程的程序設(shè)計(jì),又支持面向?qū)ο蟮某绦蛟O(shè)計(jì),因此是目前進(jìn)行軟件開(kāi)發(fā)的主要工具之一。
同其他所有計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言相比,C++語(yǔ)言具有非常明顯的優(yōu)勢(shì),正在成為普通高等院校開(kāi)設(shè)程序設(shè)計(jì)課程的首選語(yǔ)言,因此在這套計(jì)算機(jī)專業(yè)系列教材中把它列為唯一必修的計(jì)算機(jī)語(yǔ)言課程是正確和明智的選擇。
在這套系列教材中,C++語(yǔ)言基礎(chǔ)課程具有非常重要的地位和作用,它將為數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、數(shù)據(jù)庫(kù)、軟件工程、面向?qū)ο蟪绦蛟O(shè)計(jì)、計(jì)算機(jī)網(wǎng)絡(luò)等所有后續(xù)課程打下堅(jiān)實(shí)的計(jì)算機(jī)語(yǔ)言和程序設(shè)計(jì)基礎(chǔ)。C++語(yǔ)言的知識(shí)將貫穿于所有這些課程之中,使得你的軟件開(kāi)發(fā)水平得到不斷地提升,最終能夠達(dá)到用面向?qū)ο蟮姆椒ń鉀Q實(shí)際應(yīng)用中的軟件開(kāi)發(fā)問(wèn)題。
同社會(huì)上已經(jīng)出版的各種C++語(yǔ)言教材相比,本書(shū)具有以下特點(diǎn)和優(yōu)勢(shì):
1.采用最新、最流行和最實(shí)用的Microsoft Visual C++ 6.0為依據(jù),對(duì)C++語(yǔ)言的基本內(nèi)容作了詳細(xì)地介紹,改變了計(jì)算機(jī)語(yǔ)言教材落后和脫離現(xiàn)實(shí)的狀況。
2.對(duì)C++語(yǔ)言中的每一種數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、語(yǔ)句等基本內(nèi)容,不僅從概念敘述上做到條理清楚、層次分明,而且精心選擇針對(duì)性強(qiáng)的典型語(yǔ)句或程序段加以解釋和闡述,使你能夠從概念、理論到應(yīng)用的結(jié)合上加深理解和認(rèn)識(shí)。
3.本書(shū)從訓(xùn)練和提高初學(xué)者分析和編寫一般應(yīng)用程序的能力出發(fā),結(jié)合介紹分支、循環(huán)、函數(shù)調(diào)用等語(yǔ)句,并介紹數(shù)組、字符串、指針、結(jié)構(gòu)、聯(lián)合、類、文件等數(shù)據(jù)類型,給出了具有各種實(shí)際應(yīng)用價(jià)值的一般典型程序的設(shè)計(jì)方法。通過(guò)這些基本訓(xùn)練后,你不僅能夠?qū)W會(huì)閱讀和分析現(xiàn)有的程序,而且能夠具有解決實(shí)際問(wèn)題的編程思路和方法,編寫出符合規(guī)范化要求的性能良好的程序。
4.每一章后面都給出了具有各種題型的大量練習(xí)題,以便從各種不同的角度加強(qiáng)你對(duì)所學(xué)知識(shí)的訓(xùn)練和提高。
5.C++語(yǔ)言系統(tǒng)龐大,知識(shí)點(diǎn)之間像一張網(wǎng),錯(cuò)綜復(fù)雜,如何能夠按照一般的認(rèn)知規(guī)律,把所有知識(shí)點(diǎn)按章節(jié)劃分為前后有序的一個(gè)線性結(jié)構(gòu),由淺入深、由易到難、循序漸進(jìn)地組織內(nèi)容,并使之前后呼應(yīng)、條理清楚、方便自學(xué),是編寫教材成功與否的關(guān)鍵。本書(shū)在這方面作了很大的努力,使你能夠較輕松地學(xué)好本門課程,掌握C++語(yǔ)言的基本內(nèi)容,為學(xué)好后續(xù)課程打下良好的基礎(chǔ)。
6.本書(shū)中所有的C++語(yǔ)句、程序段、函數(shù)、程序等都在Microsoft Visual C++ 6.0集成開(kāi)發(fā)環(huán)境下運(yùn)行通過(guò),確保它們是正確無(wú)誤的。
7.本書(shū)由一人創(chuàng)作完成,確保了體系的完整性,前后內(nèi)容的一致性,編寫風(fēng)格的統(tǒng)一性,避免了由多人創(chuàng)作帶來(lái)的種種弊端。
8.本書(shū)的習(xí)題參考解答將被放在清華大學(xué)出版社的該教材的網(wǎng)頁(yè)上,供讀者隨時(shí)訪問(wèn)和下載。
本書(shū)雖然是為普通高等院校計(jì)算機(jī)專業(yè)開(kāi)設(shè)程序設(shè)計(jì)語(yǔ)言課程而編寫的教材,由于學(xué)習(xí)它只需要初等數(shù)學(xué)的知識(shí)和對(duì)計(jì)算機(jī)的初步了解,學(xué)習(xí)目標(biāo)是掌握C++語(yǔ)言的基本語(yǔ)法規(guī)則和分析與編寫解決簡(jiǎn)單通用問(wèn)題的程序,所以,同樣適合作為其他各專業(yè)開(kāi)設(shè)C++語(yǔ)言課程的教材。
本書(shū)共分為10章,依次為C++語(yǔ)言概述、數(shù)據(jù)類型和表達(dá)式、流程控制語(yǔ)句、數(shù)組和字符串、指針、函數(shù)、結(jié)構(gòu)與聯(lián)合、類與對(duì)象、類的繼承與多態(tài)性、C++流等。各章之間的內(nèi)容連貫有序,銜接自然,成為一個(gè)有機(jī)的整體。
C++語(yǔ)言課程是一門實(shí)踐性極強(qiáng)的課程,只有多閱讀別人的程序,多練習(xí)編寫自己的程序,多上機(jī)調(diào)試和運(yùn)行程序,才能夠獲得真正的知識(shí)。書(shū)中所有例題和習(xí)題的程序均可以作為上機(jī)題使用。
本課程總課時(shí)應(yīng)安排在80~100之間,其中講授與上機(jī)課時(shí)之比應(yīng)為3∶2左右。若課時(shí)緊張,可根據(jù)教學(xué)需要自行取舍內(nèi)容,其剩余內(nèi)容留作學(xué)生自學(xué)。
承蒙北京大學(xué)計(jì)算機(jī)系孫家骕教授在百忙之中認(rèn)真審閱了全部書(shū)稿,給予了高度評(píng)價(jià),并提出了一些修改意見(jiàn),對(duì)此表示衷心感謝!
盡管本人做出了最大努力,但由于水平所限,錯(cuò)誤和不足之處在所難免,敬請(qǐng)專家和讀者批評(píng)指正。本人電子郵件地址為:xuxk@crtvu.edu.cn。
徐孝凱
2002年1月
VI
C++語(yǔ)言基礎(chǔ)教程(第二版)
VII
第二版前言
第一章 程序設(shè)計(jì)引論1
1.1 數(shù)制1
1.1.1 不同數(shù)制的表示與求值1
1.1.2 不同數(shù)制的轉(zhuǎn)換3
1.2 編碼5
1.3 算法8
1.3.1 算法的概念8
1.3.2 算法設(shè)計(jì)舉例9
1.3.3 算法設(shè)計(jì)的一般原則11
1.4 用流程圖描述算法13
1.4.1 傳統(tǒng)流程圖13
1.4.2 盒圖14
1.4.3 問(wèn)題分析圖14
1.5 用流程圖描述算法應(yīng)用舉例15
本章小結(jié)20
習(xí)題一21
第二章 C++語(yǔ)言概述23
2.1 引言23
2.2 C++字符集24
2.3 C++單詞26
2.4 C++語(yǔ)句28
2.5 C++函數(shù)30
2.5.1 系統(tǒng)函數(shù)30
2.5.2 用戶函數(shù)32
2.6 C++程序34
2.7 VC++ 6.0集成開(kāi)發(fā)環(huán)境簡(jiǎn)介37
本章小結(jié)47
習(xí)題二48
第三章 數(shù)據(jù)類型和表達(dá)式51
3.1 數(shù)據(jù)類型51
3.2 常量54
3.2.1 整型常量54
3.2.2 字符常量55
3.2.3 邏輯常量56
3.2.4 枚舉常量56
3.2.5 實(shí)型常量57
3.2.6 地址常量58
3.3 變量58
3.4 運(yùn)算符和表達(dá)式62
3.5 函數(shù)70
本章小結(jié)76
習(xí)題三76
第四章 流程控制語(yǔ)句78
4.1 概述78
4.2 if語(yǔ)句78
4.3 switch語(yǔ)句83
4.4 for語(yǔ)句87
4.5 while語(yǔ)句96
4.6 do語(yǔ)句101
4.7 跳轉(zhuǎn)語(yǔ)句106
本章小結(jié)109
習(xí)題四109
第五章 數(shù)組和字符串114
5.1 數(shù)組的概念114
5.2 一維數(shù)組115
5.3 二維數(shù)組119
5.4 使用typedef語(yǔ)句定義數(shù)組類型124
5.5 數(shù)組的應(yīng)用126
5.5.1 數(shù)值計(jì)算126
5.5.2 統(tǒng)計(jì)130
5.5.3 排序132
5.5.4 查找134
5.6 字符串137
5.6.1 字符串概念137
5.6.2 字符串函數(shù)140
5.6.3 字符串應(yīng)用舉例144
本章小結(jié)147
習(xí)題五148
第六章 指針150
6.1 指針的概念150
6.2 指針變量151
6.3 指針運(yùn)算156
6.4 指針與數(shù)組160
6.4.1 指針與一維數(shù)組160
6.4.2 指針與二維數(shù)組162
6.5 引用變量164
6.6 動(dòng)態(tài)存儲(chǔ)分配166
本章小結(jié)169
習(xí)題六170
第七章 函數(shù)175
7.1 函數(shù)定義175
7.1.1 函數(shù)定義格式175
7.1.2 函數(shù)定義格式舉例176
7.1.3 有關(guān)函數(shù)定義的幾點(diǎn)說(shuō)明177
7.2 函數(shù)調(diào)用179
7.2.1 調(diào)用格式179
7.2.2 調(diào)用過(guò)程180
7.2.3 函數(shù)調(diào)用舉例183
7.3 變量作用域187
7.3.1 作用域分類187
7.3.2 程序舉例189
7.4 遞歸函數(shù)195
7.5 函數(shù)重載198
7.6 模板函數(shù)200
7.7 函數(shù)指針204
本章小結(jié)206
習(xí)題七207
第八章 結(jié)構(gòu)與聯(lián)合214
8.1 結(jié)構(gòu)和聯(lián)合的概念214
8.2 結(jié)構(gòu)的定義214
8.3 結(jié)構(gòu)變量的定義和初始化218
8.4 結(jié)構(gòu)成員的訪問(wèn)221
8.5 使用結(jié)構(gòu)的程序舉例221
8.6 結(jié)構(gòu)與函數(shù)229
8.7 結(jié)構(gòu)與運(yùn)算符重載233
8.7.1 運(yùn)算符重載的概念233
8.7.2 用一般函數(shù)實(shí)現(xiàn)對(duì)自定義數(shù)據(jù)類型的運(yùn)算功能234
8.7.3 用運(yùn)算符重載函數(shù)實(shí)現(xiàn)對(duì)自定義數(shù)據(jù)類型的運(yùn)算功能237
8.7.4 運(yùn)算符重載函數(shù)應(yīng)用舉例242
8.8 結(jié)構(gòu)與鏈表244
8.9 聯(lián)合249
本章小結(jié)256
習(xí)題八257
第九章 類與對(duì)象263
9.1 類的概念與定義263
9.2 類的運(yùn)算符重載成員函數(shù)269
9.3 構(gòu)造函數(shù)273
9.3.1 無(wú)參構(gòu)造函數(shù)和帶參構(gòu)造函數(shù)273
9.3.2 拷貝構(gòu)造函數(shù)278
9.3.3 賦值重載函數(shù)279
9.3.4 構(gòu)造函數(shù)中的初始化表280
9.4 析構(gòu)函數(shù)281
9.5 友元函數(shù)和友元類283
9.6 類的應(yīng)用舉例289
本章小結(jié)295
習(xí)題九297
第十章 類的繼承與多態(tài)308
10.1 類的繼承308
10.1.1 類的繼承性的概念308
10.1.2 派生類定義的格式308
10.1.3 派生類定義格式舉例310
10.1.4 派生類應(yīng)用舉例318
10.2 類的虛函數(shù)與多態(tài)性321
10.3 類的靜態(tài)成員325
10.3.1 靜態(tài)數(shù)據(jù)成員325
10.3.2 靜態(tài)函數(shù)成員328
10.4 模板類329
本章小結(jié)331
習(xí)題十332
第十一章 C++流338
11.1 C++流的概念338
11.2 輸入輸出格式控制340
11.2.1 ios類中的枚舉常量340
11.2.2 ios類中的成員函數(shù)342
11.2.3 格式控制符345
11.3 文件操作347
11.3.1 文件的概念347
11.3.2 文件的打開(kāi)和關(guān)閉349
11.3.3 字符文件的訪問(wèn)操作352
11.3.4 字節(jié)文件的訪問(wèn)操作360
11.4 字符串流367
本章小結(jié)369
習(xí)題十一370
附錄 ASCII代碼表376
??
??
??
??
XII
C++語(yǔ)言基礎(chǔ)教程(第二版)
XIII
目 錄