定 價:32 元
叢書名:普通高等院校計算機(jī)專業(yè)(本科)實用教程系列
- 作者:徐孝凱
- 出版時間:2007/10/1
- ISBN:9787302157618
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP312C
- 頁碼:
- 紙張:膠版紙
- 版次:1
- 開本:16
本書較全面和詳細(xì)地介紹了C++語言的所有語法規(guī)則,對于每一語法規(guī)則不僅給予準(zhǔn)確定義,而且在程序設(shè)計中給予自然和靈活的運(yùn)用,便于讀者在應(yīng)用中把握和加深對概念的理解。本書較詳細(xì)地介紹了在Microsoft Visual C++ 6.0集成開發(fā)環(huán)境下的控制臺應(yīng)用程序的開發(fā)過程,書中的每個程序都在此環(huán)境下運(yùn)行通過。本書的每章后面給出了適量的、針對性強(qiáng)的各種程序分析和設(shè)計應(yīng)用題,供讀者自行練習(xí),并且專門配套出版了相應(yīng)的習(xí)題參考解答書,供自學(xué)者參考。
本書已被列選為普通高等教育“十一五”國家級規(guī)劃教材,已被許多高校選定為C/C++語言程序設(shè)計課程的教材和考研的指定參考書。
本書第一版已經(jīng)出版近7年,得到社會上的廣泛認(rèn)可和好評,被許多高校選定為教材或考研參考書,并被評定為普通高等教育“十一五”國家級規(guī)劃教材,按照學(xué)科發(fā)展和讀者要求,現(xiàn)在及時修訂為第二版。
C++語言是對傳統(tǒng)C語言的豐富和發(fā)展,是C語言的更新?lián)Q代產(chǎn)品,它含有目前軟件開發(fā)技術(shù)中的所有要素,如函數(shù)重載、運(yùn)算符重載、類、對象、模板、繼承、多態(tài)、流、名字空間等,有許多要素是傳統(tǒng)C語言所沒有的,所以C++語言既能夠代替C語言作為入門語言來學(xué)習(xí),又能夠?qū)W到比C語言豐富、實用和現(xiàn)代得多的知識。計算機(jī)及相關(guān)專業(yè)把C++語言定位為第一門計算機(jī)語言課程,代替?zhèn)鹘y(tǒng)的C語言,的確是明智之舉。
本書第二版仍然保持原書第一版的優(yōu)點,即內(nèi)容豐富實用、敘述條理清楚、概念講解明晰、問題分析透徹、程序設(shè)計規(guī)范、例題選擇廣泛、語法聯(lián)系實際應(yīng)用緊密和深入、前后章節(jié)內(nèi)容組織和安排有序、創(chuàng)作風(fēng)格便于自學(xué)和閱讀。
本書第二版對第一版主要做了如下修改和補(bǔ)充:
1.增加了第一章“程序設(shè)計引論”。介紹了計算機(jī)中的數(shù)制和編碼的概念,利用計算機(jī)編程解決問題的設(shè)計思路、方法和原則,利用文字?jǐn)⑹龊透鞣N流程圖描述算法(即解決問題的方法)的特點和應(yīng)用事例等內(nèi)容。讓讀者在學(xué)習(xí)C++語言之前就能夠了解和掌握利用計算機(jī)解決問題的思路和方法,能夠用文字或流程圖描述出來,待后面學(xué)習(xí)了C++語言后會很方便地編寫出相應(yīng)的程序。這一章不屬于C++語言本身的內(nèi)容,但能夠為學(xué)習(xí)C++語言做好鋪墊。如果通過前面課程對這一章內(nèi)容有所了解,則可把這一章列為自學(xué)或選學(xué)內(nèi)容。
2.在每章開始增加一段文字,簡要地給出本章的主要內(nèi)容和學(xué)習(xí)目標(biāo),讓讀者能夠在學(xué)習(xí)具體內(nèi)容前做到心中有數(shù)、有的放矢,增強(qiáng)學(xué)習(xí)的主動性和自覺性。在每章結(jié)束處高度地概括、歸納和提煉出主要知識點,能夠使讀者對本章所學(xué)的全部知識得到進(jìn)一步的鞏固和提升。
3.在第二章“C++語言概述”中,對于頭文件的使用,引入了std名字空間的概念,這樣更能體現(xiàn)C++語言的編程風(fēng)格,對于在VC++ 6.0集成開發(fā)環(huán)境中建立工作區(qū)、工程項目和程序文件,作了較詳細(xì)的介紹,有利于讀者上機(jī)操作進(jìn)行建立和調(diào)試程序。
4.在第八章“結(jié)構(gòu)和聯(lián)合”中,增加了對鏈表的一些操作算法的分析,如插入和刪除結(jié)點等,使得進(jìn)行鏈表的運(yùn)算更加豐富,同時也加深對動態(tài)分配和回收對象的運(yùn)算的理解和應(yīng)用。
5.在第九章“類與對象”中,把類的運(yùn)算符重載成員函數(shù)專門列為一節(jié)討論,在本章的末尾增加一節(jié)“類的應(yīng)用舉例”,這些都能夠加深讀者對類與對象概念的理解。
6.對書中各章的一些內(nèi)容,為了敘述更加條理和簡明,便于理解和掌握,適當(dāng)?shù)卦黾雍图?xì)化了內(nèi)容標(biāo)題。
7.為了便于讀者自學(xué),專門配套編寫和同時出版了習(xí)題參考解答一書,該書給出了C++語言基礎(chǔ)教程(第二版)中每章習(xí)題的全部參考解答和必要的分析與提示,并且還補(bǔ)充了一些練習(xí)題及參考解答。
8.在清華大學(xué)出版社圖書網(wǎng)站的該書網(wǎng)頁上給出講課教案或課件素材供教師免費下載使用,并在適當(dāng)?shù)臅r候開設(shè)交流窗口供師生相互交流和研討。
總之,經(jīng)過這次修改和再版后,使得全書內(nèi)容更加具有科學(xué)性、先進(jìn)性、實用性和可讀性,提供了多樣性地教學(xué)支持服務(wù),本書更加適合作為普通高校開設(shè)C++語言程序設(shè)計課程的教材或教學(xué)參考書。
另外,本書具有較豐富的程序設(shè)計例題和習(xí)題,涉及數(shù)值計算、數(shù)據(jù)處理等各方面的應(yīng)用,它們均可以作為上機(jī)實驗操作題使用,不需要另配實驗教材。
盡管本人作了認(rèn)真地修訂,但可能仍有不盡如人意的地方,敬請熱心讀者斧正。本書編輯的電子郵件地址為:zhengyk@tup.tsinghua.edu.cn;作者的聯(lián)系電話為:010-64910302,電子郵件地址為:xuxk@crtvu.edu.cn。
徐孝凱
2007年8月
第一版前言
C++語言是當(dāng)前最流行和最實用的一種計算機(jī)高級程序設(shè)計語言,它具有豐富的數(shù)據(jù)類型和各種運(yùn)算功能,帶有龐大的函數(shù)庫和類庫,既支持面向過程的程序設(shè)計,又支持面向?qū)ο蟮某绦蛟O(shè)計,因此是目前進(jìn)行軟件開發(fā)的主要工具之一。
同其他所有計算機(jī)程序設(shè)計語言相比,C++語言具有非常明顯的優(yōu)勢,正在成為普通高等院校開設(shè)程序設(shè)計課程的首選語言,因此在這套計算機(jī)專業(yè)系列教材中把它列為唯一必修的計算機(jī)語言課程是正確和明智的選擇。
在這套系列教材中,C++語言基礎(chǔ)課程具有非常重要的地位和作用,它將為數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、數(shù)據(jù)庫、軟件工程、面向?qū)ο蟪绦蛟O(shè)計、計算機(jī)網(wǎng)絡(luò)等所有后續(xù)課程打下堅實的計算機(jī)語言和程序設(shè)計基礎(chǔ)。C++語言的知識將貫穿于所有這些課程之中,使得你的軟件開發(fā)水平得到不斷地提升,最終能夠達(dá)到用面向?qū)ο蟮姆椒ń鉀Q實際應(yīng)用中的軟件開發(fā)問題。
同社會上已經(jīng)出版的各種C++語言教材相比,本書具有以下特點和優(yōu)勢:
1.采用最新、最流行和最實用的Microsoft Visual C++ 6.0為依據(jù),對C++語言的基本內(nèi)容作了詳細(xì)地介紹,改變了計算機(jī)語言教材落后和脫離現(xiàn)實的狀況。
2.對C++語言中的每一種數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、語句等基本內(nèi)容,不僅從概念敘述上做到條理清楚、層次分明,而且精心選擇針對性強(qiáng)的典型語句或程序段加以解釋和闡述,使你能夠從概念、理論到應(yīng)用的結(jié)合上加深理解和認(rèn)識。
3.本書從訓(xùn)練和提高初學(xué)者分析和編寫一般應(yīng)用程序的能力出發(fā),結(jié)合介紹分支、循環(huán)、函數(shù)調(diào)用等語句,并介紹數(shù)組、字符串、指針、結(jié)構(gòu)、聯(lián)合、類、文件等數(shù)據(jù)類型,給出了具有各種實際應(yīng)用價值的一般典型程序的設(shè)計方法。通過這些基本訓(xùn)練后,你不僅能夠?qū)W會閱讀和分析現(xiàn)有的程序,而且能夠具有解決實際問題的編程思路和方法,編寫出符合規(guī)范化要求的性能良好的程序。
4.每一章后面都給出了具有各種題型的大量練習(xí)題,以便從各種不同的角度加強(qiáng)你對所學(xué)知識的訓(xùn)練和提高。
5.C++語言系統(tǒng)龐大,知識點之間像一張網(wǎng),錯綜復(fù)雜,如何能夠按照一般的認(rèn)知規(guī)律,把所有知識點按章節(jié)劃分為前后有序的一個線性結(jié)構(gòu),由淺入深、由易到難、循序漸進(jìn)地組織內(nèi)容,并使之前后呼應(yīng)、條理清楚、方便自學(xué),是編寫教材成功與否的關(guān)鍵。本書在這方面作了很大的努力,使你能夠較輕松地學(xué)好本門課程,掌握C++語言的基本內(nèi)容,為學(xué)好后續(xù)課程打下良好的基礎(chǔ)。
6.本書中所有的C++語句、程序段、函數(shù)、程序等都在Microsoft Visual C++ 6.0集成開發(fā)環(huán)境下運(yùn)行通過,確保它們是正確無誤的。
7.本書由一人創(chuàng)作完成,確保了體系的完整性,前后內(nèi)容的一致性,編寫風(fēng)格的統(tǒng)一性,避免了由多人創(chuàng)作帶來的種種弊端。
8.本書的習(xí)題參考解答將被放在清華大學(xué)出版社的該教材的網(wǎng)頁上,供讀者隨時訪問和下載。
本書雖然是為普通高等院校計算機(jī)專業(yè)開設(shè)程序設(shè)計語言課程而編寫的教材,由于學(xué)習(xí)它只需要初等數(shù)學(xué)的知識和對計算機(jī)的初步了解,學(xué)習(xí)目標(biāo)是掌握C++語言的基本語法規(guī)則和分析與編寫解決簡單通用問題的程序,所以,同樣適合作為其他各專業(yè)開設(shè)C++語言課程的教材。
本書共分為10章,依次為C++語言概述、數(shù)據(jù)類型和表達(dá)式、流程控制語句、數(shù)組和字符串、指針、函數(shù)、結(jié)構(gòu)與聯(lián)合、類與對象、類的繼承與多態(tài)性、C++流等。各章之間的內(nèi)容連貫有序,銜接自然,成為一個有機(jī)的整體。
C++語言課程是一門實踐性極強(qiáng)的課程,只有多閱讀別人的程序,多練習(xí)編寫自己的程序,多上機(jī)調(diào)試和運(yùn)行程序,才能夠獲得真正的知識。書中所有例題和習(xí)題的程序均可以作為上機(jī)題使用。
本課程總課時應(yīng)安排在80~100之間,其中講授與上機(jī)課時之比應(yīng)為3∶2左右。若課時緊張,可根據(jù)教學(xué)需要自行取舍內(nèi)容,其剩余內(nèi)容留作學(xué)生自學(xué)。
承蒙北京大學(xué)計算機(jī)系孫家骕教授在百忙之中認(rèn)真審閱了全部書稿,給予了高度評價,并提出了一些修改意見,對此表示衷心感謝!
盡管本人做出了最大努力,但由于水平所限,錯誤和不足之處在所難免,敬請專家和讀者批評指正。本人電子郵件地址為:xuxk@crtvu.edu.cn。
徐孝凱
2002年1月
VI
C++語言基礎(chǔ)教程(第二版)
VII
第二版前言
第一章 程序設(shè)計引論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è)計舉例9
1.3.3 算法設(shè)計的一般原則11
1.4 用流程圖描述算法13
1.4.1 傳統(tǒng)流程圖13
1.4.2 盒圖14
1.4.3 問題分析圖14
1.5 用流程圖描述算法應(yīng)用舉例15
本章小結(jié)20
習(xí)題一21
第二章 C++語言概述23
2.1 引言23
2.2 C++字符集24
2.3 C++單詞26
2.4 C++語句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集成開發(fā)環(huá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 實型常量57
3.2.6 地址常量58
3.3 變量58
3.4 運(yùn)算符和表達(dá)式62
3.5 函數(shù)70
本章小結(jié)76
習(xí)題三76
第四章 流程控制語句78
4.1 概述78
4.2 if語句78
4.3 switch語句83
4.4 for語句87
4.5 while語句96
4.6 do語句101
4.7 跳轉(zhuǎn)語句106
本章小結(jié)109
習(xí)題四109
第五章 數(shù)組和字符串114
5.1 數(shù)組的概念114
5.2 一維數(shù)組115
5.3 二維數(shù)組119
5.4 使用typedef語句定義數(shù)組類型124
5.5 數(shù)組的應(yīng)用126
5.5.1 數(shù)值計算126
5.5.2 統(tǒng)計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 動態(tài)存儲分配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ù)定義的幾點說明177
7.2 函數(shù)調(diào)用179
7.2.1 調(diào)用格式179
7.2.2 調(diào)用過程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)成員的訪問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ù)實現(xiàn)對自定義數(shù)據(jù)類型的運(yùn)算功能234
8.7.3 用運(yùn)算符重載函數(shù)實現(xiàn)對自定義數(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
第九章 類與對象263
9.1 類的概念與定義263
9.2 類的運(yùn)算符重載成員函數(shù)269
9.3 構(gòu)造函數(shù)273
9.3.1 無參構(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 文件的打開和關(guān)閉349
11.3.3 字符文件的訪問操作352
11.3.4 字節(jié)文件的訪問操作360
11.4 字符串流367
本章小結(jié)369
習(xí)題十一370
附錄 ASCII代碼表376
??
??
??
??
XII
C++語言基礎(chǔ)教程(第二版)
XIII
目 錄