本書系統(tǒng)地講述了C++語言的基本概念和編程方法,首先介紹C++的基本表達(dá)式、基本語句和函數(shù),接著闡述面向?qū)ο蟮幕靖拍詈皖、對象的設(shè)計方法,然后講述C++程序設(shè)計的繼承、多態(tài)和輸入輸出結(jié)構(gòu),最后通過實(shí)際例子闡明C++程序設(shè)計方法和技巧。
本書針對我國計算機(jī)程序設(shè)計教育的特點(diǎn),重點(diǎn)放在讓讀者掌握分析問題和解決問題的方法上,力求將復(fù)雜的概念用簡潔的語言描述出來,讓讀者學(xué)會用C++語言編寫實(shí)際應(yīng)用程序。本書內(nèi)容豐富、結(jié)構(gòu)合理、語言流暢,融趣味性與科學(xué)性于一體,同時配有大量習(xí)題和實(shí)訓(xùn)題目,讀者可通過學(xué)習(xí)本書的配套用書《C++程序設(shè)計實(shí)訓(xùn)(第2版)》,加深對本書的理解。
本書適合作為大學(xué)各專業(yè)程序設(shè)計語言課程的教材,也可供各類計算機(jī)應(yīng)用人員學(xué)習(xí)使用。
第2版前言
C++程序設(shè)計(第2版)隨著計算機(jī)科學(xué)技術(shù)的迅猛發(fā)展和面向?qū)ο蠹夹g(shù)的日臻完善,《C++程序設(shè)計》第1版經(jīng)過全國各地師生5年教與學(xué)的實(shí)踐,受到了眾多讀者的好評與鼓勵,同時也得到了一些有益的修改建議。為了使本書更好地滿足教學(xué)的需要,更好地做到思路清晰,通俗易懂,由淺入深,重在實(shí)用,更加強(qiáng)調(diào)增強(qiáng)學(xué)生的實(shí)際編程能力,讓學(xué)生學(xué)得會、用得上,我們對部分內(nèi)容進(jìn)行了適當(dāng)?shù)男抻啞?br />在教材的修訂過程中,作者對C++的知識體系和核心內(nèi)容再次進(jìn)行了深入的探討,綜合考慮C++的整體結(jié)構(gòu)和C++初學(xué)者的接受能力,為了更加適應(yīng)讀者的學(xué)習(xí)需求,認(rèn)真調(diào)整了講授內(nèi)容和表述方式,主要做了如下幾點(diǎn)工作:
(1) 適當(dāng)調(diào)整了講解內(nèi)容的難易程度,語句更加通俗易懂,題意和題型同時做到循序漸進(jìn)、由淺入深,更加適合初學(xué)者閱讀理解。
(2) 以實(shí)用為宗旨,做到多講常用的內(nèi)容,少講罕用的內(nèi)容,不講幾乎不用的內(nèi)容,重寫了第2章數(shù)據(jù)類型和表達(dá)式、第3章語句和函數(shù)、第10章輸入流和輸出流以及第12章綜合應(yīng)用實(shí)例的部分內(nèi)容。
(3) 案例更加貼近生活,注重提升學(xué)生的學(xué)習(xí)興趣,適當(dāng)增加訓(xùn)練強(qiáng)度,修訂了部分例題和習(xí)題。
(4) 改正了第1版出現(xiàn)的一些錯誤,刪除了一些學(xué)生反映難懂的部分,補(bǔ)充了相應(yīng)的易學(xué)內(nèi)容,使知識點(diǎn)更加完備,又易于學(xué)習(xí)掌握。
(5) 書中的所有的程序在VC++6.0環(huán)境下,編譯運(yùn)行通過,便于學(xué)生學(xué)習(xí)。
安徽大學(xué)對本書的修訂工作從人力物力上給予了大力支持,楊為民參加了本書第2版的修訂工作,王書宇參加了本書第2版的第10章輸入流和輸出流及第12章綜合應(yīng)用實(shí)例的重寫工作,高莉參加了本書第2版的第2章數(shù)據(jù)類型和表達(dá)式及第3章語句和函數(shù)的重寫工作,紀(jì)霞、徐怡也為本書第2版的修訂做了大量的工作。
全國各地的讀者對《C++程序設(shè)計》第1版給予了高度評價,同時也提出了許多寶貴的意見和建議,對讀者的厚愛和無私幫助表示衷心的感謝。我的許多同事和學(xué)生,對第2版書稿提出了大量寶貴意見,在此表示衷心的感謝。
一切為了讀者,為了一切讀者,為了讀者一切,是我們的心愿和目標(biāo),但是由于作者水平有限,難免出現(xiàn)這樣或那樣的錯誤與不足,敬請廣大讀者不吝賜教。
李龍澍
2008年6月30日于安徽大學(xué)
第1版前言
C++程序設(shè)計(第2版)隨著信息科學(xué)的發(fā)展,計算機(jī)應(yīng)用范圍越來越廣,每一個工作者,都有必要學(xué)會使用計算機(jī),最基本的要求就是學(xué)會一門計算機(jī)語言,C++是當(dāng)前最流行的一種面向?qū)ο蟪绦蛟O(shè)計語言,它是在C語言的基礎(chǔ)上擴(kuò)充發(fā)展起來的,C++程序設(shè)計把數(shù)據(jù)和關(guān)于數(shù)據(jù)的操作封裝在一起,這種解決問題的方法更符合人們的思維習(xí)慣,使用C++編制程序更方便,軟件維護(hù)更容易。
根據(jù)多年的教學(xué)經(jīng)驗,本書針對學(xué)生學(xué)習(xí)中遇到的問題,反復(fù)修正教學(xué)內(nèi)容,總結(jié)啟發(fā)式教學(xué)思路,力爭讓學(xué)生學(xué)得會,用得上。
本書的特點(diǎn):思路清晰,重點(diǎn)放在讓讀者掌握分析問題和解決問題的方法上;通俗易懂,將復(fù)雜的概念用讀者容易理解的簡潔語言描述出來;由淺入深,從最簡單的概念開始讓讀者逐步掌握C++語言的完整體系;重在實(shí)用,讓讀者學(xué)完本書后會用C++語言編寫實(shí)際應(yīng)用程序。
全書共分12章,第1章C++入門介紹C++的簡單概念,講述應(yīng)用Visual C++ 6.0編制小程序。第2章數(shù)據(jù)類型和表達(dá)式介紹C++的基本數(shù)據(jù)類型和基本表達(dá)式。第3章語句和函數(shù)講述C++的基本語句和最小程序?qū)嶓w函數(shù)。第4章類介紹最基本的面向?qū)ο蟾拍铑,類是C++的編程基礎(chǔ)。第5章對象講述對象的設(shè)計和使用,對象是C++最基本的程序?qū)嶓w。第6章指針和引用講述指針的定義和使用,討論引用的定義和使用。第7章繼承講述類之間的繼承機(jī)制。第8章靜態(tài)成員和友元介紹靜態(tài)成員、友元、運(yùn)算符重載等C++的一些高級編程技巧。第9章多態(tài)和虛函數(shù)討論類之間派生中的動態(tài)繼承問題。第10章輸入/輸出流介紹C++的基本輸入輸出機(jī)制。第11章模板和異常處理討論C++的模板使用技巧和異常處理方法。第12章綜合應(yīng)用實(shí)例給出實(shí)際應(yīng)用例子。本書的全部例題在Visual C++ 6.0環(huán)境下運(yùn)行通過。讀者還可以學(xué)習(xí)配套的《C++程序設(shè)計實(shí)訓(xùn)》,加深對本書的理解。
本書是在李龍澍教授的主持下完成的。初稿的第1、4、5章由李龍澍執(zhí)筆,第2、3章由唐彬執(zhí)筆,第6、7章由盧冰原執(zhí)筆,第8、9、11章由楊增光執(zhí)筆,第10、12章由凌成執(zhí)筆。全書由李龍澍統(tǒng)一修改后定稿。張霞、楊濤、葉紅、龐開放為本書的編寫也做了大量的工作。中國科學(xué)技術(shù)大學(xué)劉振安教授、安徽大學(xué)程慧霞教授為本書提出了許多建設(shè)性的寶貴意見,作者表示衷心感謝。
由于作者水平有限,難免出現(xiàn)一些疏漏和錯誤,殷切希望讀者提出批評建議和修改意見。
作者
2002年9月于安徽大學(xué)
第1章 C++入門1
1.1 什么是C++1
1.1.1 什么是C++程序設(shè)計語言1
1.1.2 C++程序開發(fā)過程1
1.2 一個C++程序3
1.3 C++程序的結(jié)構(gòu)5
1.3.1 主程序5
1.3.2 函數(shù)6
1.3.3 輸入輸出7
1.3.4 頭文件7
1.3.5 注釋8
1.4 例題分析和小結(jié)8
1.4.1 例題8
1.4.2 解題分析10
1.4.3 小結(jié)11
實(shí)訓(xùn)1 編制一個簡單C++的程序12
習(xí)題112
第2章 數(shù)據(jù)類型和表達(dá)式14
2.1 詞法符號14
2.1.1 標(biāo)識符14
2.1.2 關(guān)鍵字15
2.1.3 常量15
2.2 基本數(shù)據(jù)類型17
2.2.1 基本數(shù)據(jù)類型18
2.2.2 變量19
2.3 結(jié)構(gòu)數(shù)據(jù)類型21
2.3.1 數(shù)組21
2.3.2 結(jié)構(gòu)體類型26
2.3.3 共用體類型 28
2.4 表達(dá)式29
2.4.1 算術(shù)表達(dá)式29
2.4.2 關(guān)系表達(dá)式31
2.4.3 邏輯表達(dá)式31
2.4.4 運(yùn)算順序32
2.5 例題分析和小結(jié)34
2.5.1 例題34
2.5.2 解題分析38
2.5.3 小結(jié)38
實(shí)訓(xùn)2 標(biāo)識符和表達(dá)式實(shí)訓(xùn)38
C++程序設(shè)計(第2版)目錄 習(xí)題239
第3章 語句和函數(shù)43
3.1 賦值語句43
3.2 選擇語句45
3.2.1 條件語句45
3.2.2 開關(guān)語句 46
3.3 循環(huán)語句48
3.3.1 while 循環(huán)語句48
3.3.2 for循環(huán)語句50
3.3.3 break和continue語句50
3.3.4 多重循環(huán)51
3.4 函數(shù)52
3.4.1 函數(shù)的定義52
3.4.2 函數(shù)的調(diào)用53
3.4.3 函數(shù)的傳值參數(shù)57
3.4.4 函數(shù)的引用參數(shù)58
3.4.5 函數(shù)的默認(rèn)參數(shù)59
3.5 函數(shù)的重載60
3.5.1 函數(shù)參數(shù)類型重載60
3.5.2 函數(shù)參數(shù)個數(shù)重載61
3.6 系統(tǒng)函數(shù)的調(diào)用62
3.7 例題分析和小結(jié)63
3.7.1 例題63
3.7.2 解題分析66
3.7.3 小結(jié)66
實(shí)訓(xùn)3 職工信息處理和趣味取球66
習(xí)題367
第4章 面向?qū)ο蠡靖拍钆c類71
4.1 面向?qū)ο蟪绦蛟O(shè)計的基本概念71
4.1.1 對象71
4.1.2 抽象73
4.1.3 封裝74
4.1.4 繼承75
4.1.5 多態(tài)76
4.2 類77
4.2.1 類的定義77
4.2.2 類的數(shù)據(jù)成員79
4.2.3 類的成員函數(shù)80
4.2.4 類成員存取權(quán)限83
4.3 成員函數(shù)重載84
4.4 例題分析和小結(jié)87
4.4.1 例題87
4.4.2 解題分析88
4.4.3 小結(jié)88
實(shí)訓(xùn)4 建造集合類實(shí)訓(xùn)89
習(xí)題489
第5章 對象92
5.1 對象的建立和撤銷92
5.1.1 對象的定義92
5.1.2 構(gòu)造函數(shù)95
5.1.3 析構(gòu)函數(shù)100
5.2 對象的賦值103
5.2.1 復(fù)制構(gòu)造函數(shù)103
5.2.2 重載賦值運(yùn)算符107
5.2.3 修改對象的數(shù)據(jù)成員108
5.3 例題分析和小結(jié)110
5.3.1 例題110
5.3.2 解題分析111
5.3.3 小結(jié)112
實(shí)訓(xùn)5 數(shù)組數(shù)據(jù)處理對象實(shí)訓(xùn)112
習(xí)題5113
第6章 指針和引用117
6.1 指針117
6.1.1 指針變量的定義117
6.1.2 指針的賦值118
6.1.3 對象指針121
6.1.4 this指針124
6.2 引用125
6.2.1 引用的定義和使用125
6.2.2 引用返回值127
6.3 例題分析和小結(jié)128
6.3.1 例題128
6.3.2 解題分析129
6.3.3 小結(jié)129
實(shí)訓(xùn)6 編制一個排序數(shù)組類129
習(xí)題6130
第7章 繼承134
7.1 基類和派生類134
7.1.1 派生類的定義134
7.1.2 繼承方式136
7.2 單繼承137
7.2.1 繼承成員的訪問權(quán)限137
7.2.2 構(gòu)造函數(shù)和析構(gòu)函數(shù)141
7.2.3 單繼承的應(yīng)用143
7.3 多繼承145
7.3.1 多繼承的概念145
7.3.2 多繼承的構(gòu)造函數(shù)146
7.3.3 多繼承的應(yīng)用147
7.4 虛基類148
7.4.1 虛基類的定義148
7.4.2 虛基類的構(gòu)造函數(shù)149
7.4.3 虛基類的應(yīng)用150
7.5 例題分析和小結(jié)152
7.5.1 例題152
7.5.2 例題分析154
7.5.3 小結(jié)154
實(shí)訓(xùn)7 人員類的繼承155
習(xí)題7155
第8章 靜態(tài)成員和友元159
8.1 靜態(tài)成員159
8.1.1 靜態(tài)成員的定義159
8.1.2 靜態(tài)成員的使用160
8.2 友元162
8.2.1 友元的定義162
8.2.2 友元的使用164
8.3 運(yùn)算符重載166
8.3.1 運(yùn)算符重載規(guī)則167
8.3.2 重載為成員函數(shù)167
8.3.3 重載為友元函數(shù)169
8.4 例題分析和小結(jié)171
8.4.1 例題171
8.4.2 解題分析175
8.4.3 小結(jié)175
實(shí)訓(xùn)8 個人所得稅計算和運(yùn)算符重載175
習(xí)題8177
第9章 多態(tài)和虛函數(shù)178
9.1 虛函數(shù)178
9.1.1 虛函數(shù)的定義178
9.1.2 純虛函數(shù)182
9.2 抽象類183
9.3 多態(tài)185
9.3.1 多態(tài)的概念186
9.3.2 多態(tài)的應(yīng)用186
9.4 例題分析和小結(jié)187
9.4.1 例題187
9.4.2 解題分析190
9.4.3 小結(jié)190
實(shí)訓(xùn)9 應(yīng)用多態(tài)設(shè)計學(xué)生類190
習(xí)題9191
第10章 輸入流和輸出流193
10.1 輸入流和輸出流的概念193
10.1.1 基本概念193
10.1.2 輸入輸出類庫194
10.2 輸出流195
10.2.1 基本輸出操作195
10.2.2 按指定格式輸出數(shù)據(jù)197
10.3 輸入流202
10.4 文件205
10.4.1 文件的打開和關(guān)閉205
10.4.2 文件的讀寫207
10.4.3 文件的隨機(jī)讀寫211
10.5 例題分析與小結(jié)214
10.5.1 例題214
10.5.2 解題分析216
10.5.3 小結(jié)216
實(shí)訓(xùn)10 輸入流和輸出流217
習(xí)題10217
第11章 模板和異常處理220
11.1 模板220
11.1.1 模板的定義220
11.1.2 模板的使用221
11.2 異常處理223
11.2.1 異常處理的語法結(jié)構(gòu)223
11.2.2 異常處理的應(yīng)用224
11.3 例題分析和小結(jié)225
11.3.1 例題225
11.3.2 解題分析227
11.3.3 小結(jié)227
實(shí)訓(xùn)11 建造數(shù)組模板和異常處理228
習(xí)題11228
第12章 綜合應(yīng)用實(shí)例231
12.1 商場員工信息登記系統(tǒng)231
12.1.1 問題的描述231
12.1.2 類設(shè)計231
12.1.3 源代碼232
12.2 小結(jié)242
實(shí)訓(xùn)12 倉庫商品檢查登記管理系統(tǒng)243
參考文獻(xiàn)244