複製鏈接
請複製以下鏈接發送給好友

c++程序設計

(2014年譚浩強編寫、清華大學出版社出版的圖書)

鎖定
《c++程序設計》是2014年7月1日清華大學出版社出版的圖書,作者是譚浩強 [1]  [5] 
中文名
c++程序設計
作    者
譚浩強
出版社
清華大學出版社
頁    數
485 頁
ISBN
9787302360292 [5] 
開    本
16 開
裝    幀
平裝

c++程序設計內容簡介

《中國高等院校計算機基礎教育課程體系規劃教材:C++程序設計(第2版)》作者譚浩強深入調查了大學的程序設計課程的現狀和發展趨勢,參閲了國內外數十種有關C++的教材,認真分析了讀者在學習中的困難和認識規律,設計了讀者易於學習的教材體系,於2004年出版了《C++程序設計》一書。該書降低入門起點,不需要C語言的基礎,從零起點介紹程序設計和C++。廣大師生用後反映非常好,認為該書定位準確,概念清晰,深入淺出,取捨合理,以通俗易懂的語言對C++的許多難懂的概念作了透徹而通俗的説明,大大降低了初學者學習的困難,是一本初學者學習C++的好教材。 根據教學實踐的需要,作者對該書進行了修訂,出版了本書,與第1版相比,內容更加豐富,講解更加清晰,學習更加容易,依據ANSIC++標準進行介紹,引導讀者從一開始就按C++的要求編程,而不是過多地遷就C語言的習慣。 [2] 
本書把入門起點降低,讀者不需要具備C語言的基礎。本書包括14章,分為4篇:基本知識;面向過程的程序設計;基於對象的程序設計;面向對象的程序設計。本書內容全面,例題豐富,概念清晰,循序漸進,易於學習。
《C++程序設計》是依據ANSI C++標準進行介紹的,引導讀者從一開始就按標準C++的規定編程。本書配有兩本輔導教材,即《C++程序設計題解與上機指導》和《C++編程實踐指導》,全書分為4篇:基本知識;基於過程的程序設計;基於對象的程序設計;面向對象的程序設計。 本書內容全面,例題豐富,概念清晰,循序漸進,易於學習,即使沒有教師講授,讀者也能看懂本書的大部分內容。本書是學習C++的入門教材,可供各類專業學生使用,也可作為計算機培訓班的教材以及讀者自學參考。

c++程序設計作者簡介

譚浩強,我國著名計算機教育專家。1934年生。1958年清華大學畢業。學生時代曾擔任清華大學學生會主席、北京市人民代表。他是我國計算機普及和高校計算機基礎教育開拓者之一,現任全國高等院校計算機基礎教育研究會會長、教育部全國計算機應用技術證書考試委員會主任委員。
譚浩強教授創造了3個世界記錄:(1)20年來他(及和他人合作)共編著出版了130本計算機著作,此外主編了250多本計算機書籍,是出版科技著作數量最多的人。(2)他編著和主編的書發行量超過5000萬冊,是讀者最多的科技作家。我國平均每26人、知識分子每1.2人就擁有1本譚浩強教授編著的書。(3)他和別人合作編著的《BASIC語言》發行了1250萬冊,創科技書籍發行量的世界紀錄。此外,他編著的《C程序設計》發行了900萬冊。他曾在中央電視台主講了BASIC,FORTRAN,COBOL,Pascal,QBASIC,C,VisualBasic七種計算機語言,觀眾超過300萬人。
在我國學習計算機的人中很少有不知道譚浩強教授的。他善於用容易理解的方法和語言説明覆雜的概念。許多人認為他開創了計算機書籍貼近大眾的新風,為我國的計算機普及事業做出了重要的貢獻。
譚浩強教授曾獲全國高校教學成果國家級獎、國家科技進步獎,以及北京市政府授予的“有突出貢獻專家”稱號。《計算機世界》報組織的“世紀評選”把他評為我國“20世紀最有影響的IT人物”10個人之一(排在第2位)。他的功績是把千百萬羣眾帶入計算機的大門。 [2] 

c++程序設計編輯推薦

《C++程序設計》是譚浩強教授的又一力作,依據C++標準進行介紹,引導學生學習標準C++,而不僅學習依賴於某一特定環境下的“方言化”的C++ ,教與學的新突破,學習“C++ 程序設計”從此變得容易。
本書是為已學過C語言程序設計、具有程序設計初步知識的讀者編寫的,是與作者編著的《C++面向對象程序設計》(清華大學出版社出版)一書配套的輔助教材。本書包括3個部分: 《C++面向對象程序設計》一書各章中的全部習題的參考解答;C++的上機操作,這部分介紹了在兩種典型的環境下運行C++程序的方法,即Visual C++6.0和GCC在DOS/Windows平台上的版本DJGPP(以及與之配合使用的集成軟件開發環境RHIDE);上機實驗內容與安排,這部分提出了上機實驗的指導思想和上機實驗的內容與安排,供教學參考。
隨本書贈送的光盤中包括《C++面向對象程序設計》一書中的全部例題程序,各章習題解答的程序以及DOS/Windows環境下的GCC版本(DJGPP及其配套集成環境RHIDE)。
本書可作為學習《C++面向對象程序設計》的輔助教材,也可供其他初學C++的讀者參考。

c++程序設計本書特色

(1)準確定位,合理取捨。
本書使讀者對C++的全貌有基本的認識,用容易理解的方法講清楚有關的基本概念和基本方法。
(2)全新體系,內容翔實。
本書以面向過程的程序設計為切入點,從編寫簡單的程序開始,循序漸進,由面向過程、基於對象到面向對象,逐步深入,符合讀者的認識規律。
(3)例題豐富,通俗易懂。
本書作者花費了很大的精力去考慮怎樣使讀者易於接受和理解,儘量用通俗易懂的方法和語言敍述複雜的概念,力求減少初學者學習C++的困難。書中所舉的程序,是從教學的角度考慮的,非常切合教學之用。
(4)體現C++標準。
本書依據C++標準進行介紹,引導學生學習標準C++,而不僅學習依賴於某一特定環境下的“方言化”的C++。
(5)配套齊全,考慮縱深。
本書的配套資源:
《C++程序設計題解與上機指導》(附光盤,包括教材中全部例題的源程序)
《C++程序編程實踐指導》(幫助學生提高編程能力)
向選用本教材的教師免費提供講課的電子演示文稿。
本書配有兩本輔導教材,即《C++程序設計題解上機指導》和《C++編程實踐指導》。本書是大學各專業學生學習C++的基礎教材,也是適於初學者學習的教材。即使沒有教師講授,讀者也能看懂本書的大部分內容。

c++程序設計圖書目錄

第1篇基本知識
第1章C++的初步知識 [3] 
1.1從C到C++
1.2最簡單的C++程序
1.3C++程序的構成和書寫形式
1.4C++程序的編寫和實現
1.5關於C++上機實踐
習題
第2章數據類型和表達式
2.1C++的數據類型
2.2常量
2.2.1什麼是常量
2.2.2數值常量
2.2.3字符常量
2.2.4符號常量
2.3變量
2.3.1什麼是變量
2.3.2變量名規則
2.3.3定義變量
2.3.4對變量賦初值
2.3.5常變量
2.4C++的運算符
2.5算術運算符與算術表達式
2.5.1基本的算術運算符
2.5.2算術表達式和運算符的優先級與結合性
2.5.3表達式中各類數值型數據間的混合運算
2.5.4自增(++)和自減(——)運算符
2.5.5強制類型轉換運算符
2.6賦值運算符和賦值表達式
2.6.1賦值運算符
2.6.2賦值過程中的類型轉換
2.6.4賦值表達式
2.7逗號運算符和逗號表達式
習題
第2篇基於過程的程序設計
第3章程序設計初步
3.1基於過程的程序設計和算法
3.1.1算法的概念+
3.1.2算法的表示
3.2C++的程序結構和C++語句
3.3賦值操作
3.4C++的輸入與輸出
3.4.1輸入流與輸出流的基本操作
3.4.2在標準輸入流與輸出流中使用控制符
3.4.3用getchar和putchar函數進行字符的輸入和輸出
3.4.4用scanf和printf函數進行輸入和輸出
3.5編寫順序結構的程序
3.6關係運算和邏輯運算
3.6.1關係運算和關係表達式
3.6.2邏輯常量和邏輯變量
3.6.3邏輯運算和邏輯表達式
3.7選擇結構和if語句
3.7.1if語句的形式
3.7.2if語句的嵌套
3.7.3條件運算符和條件表達式
3.7.4多分支選擇結構與switch語句
3.7.5 編寫選擇結構的程序
3.8循環結構和循環語句
3.8.1用while語句構成循環
3.8.2用do-while語句構成循環
3.8.3用for語句構成循環
3.8.4幾種循環的比較
3.12循環的嵌套79
3.13break語句和continue語句79
3.14編寫循環結構的程序80
習題85
第4章函數與預處理88
4.1概述88
4.2定義函數的一般形式90
4.2.1定義無參函數的一般形式90
4.2.2定義有參函數的一般形式91
4.3函數參數和函數的值91
4.3.1形式參數和實際參數91
4.3.2函數的返回值93
4.4函數的調用94
4.4.1函數調用的一般形式94
4.4.2函數調用的方式94
4.4.3對被調用函數的聲明和函數原型95
*4.5內置函數97
*4.6函數的重載99
*4.7函數模板102
*4.8有默認參數的函數103
4.9函數的嵌套調用105
4.10函數的遞歸調用109
4.11局部變量和全局變量112
4.11.1局部變量112
4.11.2全局變量113
4.12變量的存儲類別115
4.12.1動態存儲方式與靜態存儲方式115
4.12.2自動變量116
4.12.3用static聲明靜態局部變量116
4.12.4用register聲明寄存器變量119
4.12.5用extern聲明外部變量119
4.12.6用static聲明靜態外部變量121
4.13變量屬性小結122
4.14關於變量的聲明和定義124
4.15內部函數和外部函數125
4.15.1內部函數125
4.15.2外部函數125
4.16預處理命令127
4.16.1宏定義127
4.16.2“文件包含”處理128
4.16.3條件編譯131
習題132
第5章數組134
5.1數組的概念134
5.2一維數組的定義和引用135
5.2.1定義一維數組135
5.2.2引用一維數組的元素135
5.2.3一維數組的初始化136
5.2.4一維數組程序舉例137
5.3二維數組的定義和引用139
5.3.1定義二維數組139
5.3.2二維數組的引用140
5.3.3二維數組的初始化140
5.3.4二維數組程序舉例142
5.4用數組名作函數參數144
5.5字符數組148
5.5.1字符數組的定義和初始化148
5.5.2字符數組的賦值與引用149
5.5.3字符串和字符串結束標誌150 [4] 
5.5.4字符數組的輸入輸出151
5.5.5字符串處理函數152
5.5.6字符數組應用舉例155
*5.6C++處理字符串的方法——字符串類與字符串變量156
5.6.1字符串變量的定義和引用156
5.6.2字符串變量的運算157
5.6.3字符串數組158
5.6.4字符串運算舉例159
習題162
第6章指針164
6.1指針的概念164
6.2變量與指針166
6.2.1定義指針變量166
6.2.2引用指針變量167
6.2.3指針作為函數參數170
6.3數組與指針174
6.3.1指向數組元素的指針174
6.3.2用指針變量作函數參數接收數組地址178
6.3.3多維數組與指針180
6.4字符串與指針184
6.5函數與指針186
6.5.1用函數指針變量調用函數186
6.5.2用指向函數的指針作函數參數187
6.6返回指針值的函數188
6.7指針數組和指向指針的指針188
6.7.1指針數組的概念188
6.7.2指向指針的指針190
6.8有關指針的數據類型和指針運算的小結192
6.8.1有關指針的數據類型的小結192
6.8.2指針運算小結193
*6.9引用194
6.9.1什麼是變量的引用194
6.9.2引用的簡單使用195
6.9.3引用作為函數參數195
習題199
第7章自定義數據類型201
7.1.1結構體概述201
7.1.2結構體類型變量的定義方法及其初始化202
7.1.3結構體變量的引用205
7.1.4結構體數組207
7.1.5指向結構體變量的指針211
7.1.6結構體類型數據作為函數參數214
*7.1.7動態分配和撤銷內存的運算符new和delete217
7.2共用體219
7.2.1共用體的概念219
7.2.2對共用體變量的訪問方式220
7.2.3共用體類型數據的特點220
7.3枚舉類型222
習題227第3篇基於對象的程序設計第8章類和對象231
8.1面向對象程序設計方法概述231
8.1.1什麼是面向對象的程序設計231
8.1.2面向對象程序設計的特點234
8.1.3類和對象的作用235
8.1.4面向對象的軟件開發236
8.2類的聲明和對象的定義238
8.2.1類和對象的關係238
8.2.2聲明類類型238
8.2.3定義對象的方法240
8.2.4類和結構體類型的異同242
8.3類的成員函數243
8.3.1成員函數的性質243
8.3.2在類外定義成員函數244
8.3.3inline成員函數245
8.3.4成員函數的存儲方式246
8.4對象成員的引用248
8.4.1通過對象名和成員運算符訪問對象中的成員248
8.4.2通過指向對象的指針訪問對象中的成員249
8.4.3通過對象的引用變量來訪問對象中的成員249
8.5類的封裝性和信息隱蔽249
8.5.1公用接口與私有實現的分離249
8.5.2類聲明和成員函數定義的分離251
8.5.3面向對象程序設計中的幾個名詞254
8.6類和對象的簡單應用舉例254
習題261
第9章關於類和對象的進一步討論263 [4] 
9.1構造函數263
9.1.1對象的初始化263
9.1.2構造函數的作用264
9.1.3帶參數的構造函數266
9.1.4用參數初始化表對數據成員初始化267
9.1.5構造函數的重載267
9.1.6使用默認參數的構造函數269
9.2析構函數272
9.3調用構造函數和析構函數的順序274
9.4對象數組275
9.5對象指針277
9.5.1指向對象的指針277
9.5.2指向對象成員的指針278
9.5.3this指針281
9.6共用數據的保護282
9.6.1常對象283
9.6.2常對象成員284
9.6.3指向對象的常指針285
9.6.4指向常對象的指針變量285
9.6.5對象的常引用289
9.6.6const型數據的小結290
9.7對象的動態建立和釋放290
9.8對象的賦值和複製291
9.8.1對象的賦值291
9.8.2對象的複製293
9.9靜態成員295
9.9.1靜態數據成員296
9.9.2靜態成員函數298
9.10友元301
9.10.1友元函數301
9.10.2友元類305
9.11類模板306
習題310
第10章運算符重載314
10.1什麼是運算符重載314
10.2運算符重載的方法316
10.3重載運算符的規則318
10.4運算符重載函數作為類成員函數和友元函數320
10.5重載雙目運算符323
10.6重載單目運算符328
10.7重載流插入運算符和流提取運算符331
10.7.1重載流插入運算符“<<”331
10.7.2重載流提取運算符“>>”333
10.8不同類型數據間的轉換335
10.8.1標準類型數據間的轉換335
10.8.2轉換構造函數336
10.8.3類型轉換函數338
習題343第4篇面向對象的程序設計第11章繼承與派生347
11.1繼承與派生的概念347
11.2派生類的聲明方式350
11.3派生類的構成351
11.4派生類成員的訪問屬性352
11.4.1公用繼承353
11.4.2私有繼承355
11.4.3保護成員和保護繼承358
11.4.4多級派生時的訪問屬性361
11.5派生類的構造函數和析構函數363
11.5.1簡單的派生類的構造函數363
11.5.2有子對象的派生類的構造函數366
11.5.3多層派生時的構造函數369
11.5.4派生類構造函數的特殊形式372
11.5.5派生類的析構函數372
11.6多重繼承373
11.6.1聲明多重繼承的方法373
11.6.2多重繼承派生類的構造函數373
11.6.3多重繼承引起的二義性問題376
11.6.4虛基類379
11.7基類與派生類的轉換384
11.8繼承與組合388
11.9繼承在軟件開發中的重要意義389
習題390
第12章多態性與虛函數395
12.1多態性的概念395
12.2一個典型的例子396
12.3虛函數401
12.3.1虛函數的作用401
12.3.2靜態關聯與動態關聯405
12.3.3在什麼情況下應當聲明虛函數406
12.4純虛函數與抽象類408
12.4.1純虛函數408
12.4.2抽象類409
12.4.3應用實例410
習題416
第13章輸入輸出流417
13.1C++的輸入和輸出417
13.1.1輸入輸出的含義417
13.1.2C++的I/O對C的發展——類型安全和
可擴展性417
13.1.3C++的輸入輸出流418
13.2標準輸出流422
13.2.1cout,cerr和clog流422
13.2.2格式輸出425
13.2.3用流成員函數put輸出字符429
13.3標準輸入流430
13.3.1cin流430
13.3.2用於字符輸入的流成員函數432
13.3.3istream類的其他成員函數436
13.4文件操作與文件流439
13.4.1文件的概念439
13.4.2文件流類與文件流對象440
13.4.3文件的打開與關閉441
13.4.4對ASCII文件的操作443
13.4.5對二進制文件的操作448
13.5字符串流453
習題458
第14章C++工具459
14.1異常處理459
14.1.1異常處理的任務459
14.1.2異常處理的方法460
14.1.3在函數聲明中進行異常情況指定467
14.1.4在異常處理中處理析構函數467
14.2命名空間469
14.2.1為什麼需要命名空間469
14.2.2什麼是命名空間473
14.2.3使用命名空間解決名字衝突475
14.2.4使用命名空間成員的方法477
14.2.5無名的命名空間479
14.2.6標準命名空間std479
14.3使用早期的函數庫480
習題481
附錄A常用字符與ASCII代碼對照表483
附錄B運算符與結合性484
參考文獻486 [4] 
參考資料