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