C++語(yǔ)言是一門傳統(tǒng)的計(jì)算機(jī)程序設(shè)計(jì)高級(jí)語(yǔ)言,它兼有面向過(guò)程和面向?qū)ο蟮某绦蛟O(shè)計(jì)的特點(diǎn),一直是一門應(yīng)用面非常廣泛、長(zhǎng)盛不衰的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,是普通高等院校為計(jì)算機(jī)、信息、電子等工科專業(yè)開(kāi)設(shè)的計(jì)算機(jī)程序設(shè)計(jì)的首選和主要的語(yǔ)言,本書(shū)主要內(nèi)容有C++語(yǔ)言中每種語(yǔ)法成分的定義和作用,每種語(yǔ)句的組成和作用,順序、分支、循環(huán)等基本程序設(shè)計(jì)方法,常量、變量、函數(shù)、表達(dá)式、文件等基本數(shù)據(jù)(運(yùn)算)對(duì)象的使用,類的封裝、繼承、多態(tài)等面向?qū)ο蟮奶匦浴?/pre>
在寫作風(fēng)格和手法上力求體現(xiàn)便
于閱讀和自學(xué)的特點(diǎn),文字?jǐn)⑹鰷\顯易懂,內(nèi)容安排循序漸進(jìn),問(wèn)題
分析簡(jiǎn)明透徹,整體結(jié)構(gòu)貫通一體
C++語(yǔ)言程序設(shè)計(jì)課程是普通高等院校計(jì)算機(jī)、軟件、信息
等專業(yè)的專業(yè)基礎(chǔ)課或通識(shí)課程,目的是讓學(xué)生了解和掌握進(jìn)行計(jì)
算機(jī)程序設(shè)計(jì)的基本概念、知識(shí)和方法,為后續(xù)學(xué)習(xí)專業(yè)課程打下
良好基礎(chǔ)。
《C++語(yǔ)言程序設(shè)計(jì)》是為普通高等院校初學(xué)計(jì)算機(jī)程序設(shè)計(jì)
語(yǔ)言的學(xué)生編寫的教材。全書(shū)共10章,形成了一個(gè)完整體系,從頭
到尾逐次展開(kāi),層層遞進(jìn),環(huán)環(huán)相扣。在寫作手法和意圖上,盡量
做到深入淺出,條理有序,使文字?jǐn)⑹龊团e例說(shuō)明互為印證,相得
益彰,以此降低學(xué)習(xí)難度,提高學(xué)習(xí)興趣,便于教學(xué)以及讀者自學(xué)
和參考。
本書(shū)第1章 C++語(yǔ)言概述,詳細(xì)介紹了 C++語(yǔ)言中的基本
語(yǔ)法規(guī)則和程序組成,以及上機(jī)操作和運(yùn)行 C++語(yǔ)言程序的集成
開(kāi)發(fā)環(huán)境與一般過(guò)程,為學(xué)好后續(xù)章節(jié)做好鋪墊。第2章數(shù)據(jù)類型
和表達(dá)式,學(xué)習(xí)它能夠在程序設(shè)計(jì)中正確地定義和使用數(shù)據(jù)對(duì)象,
從而達(dá)到運(yùn)算和處理數(shù)據(jù)的目的。第 3 章流程控制語(yǔ)句,介紹了
C++語(yǔ)言中所有分支、循環(huán)、轉(zhuǎn)向類語(yǔ)句,這些是構(gòu)成 C++程
序功能模塊(函數(shù))的基本語(yǔ)句。第4章數(shù)組和字符串,利用它們能
夠使計(jì)算機(jī)程序保存和處理具有相同類型的大量數(shù)據(jù)。第5章指針,
它是用來(lái)訪問(wèn)數(shù)據(jù)對(duì)象的另一種方法和途徑,有時(shí)比直接使用變量
訪問(wèn)數(shù)據(jù)更簡(jiǎn)便和有效。第6章函數(shù),介紹了函數(shù)的定義、聲明和
調(diào)用,每個(gè) C++程序都是由一個(gè)或若干個(gè)函數(shù)模塊組成的,通過(guò)
函數(shù)之間的調(diào)用和返回,實(shí)現(xiàn)整個(gè)程序運(yùn)行的全過(guò)程。第7章結(jié)構(gòu)
與聯(lián)合,在程序設(shè)計(jì)中利用它們能夠保存和處理具有相同記錄格式
的表格文檔中的大量數(shù)據(jù)。第8章類與對(duì)象,介紹了一種較復(fù)雜的
用戶自定義數(shù)據(jù)類型———類,它既包含狀態(tài)又包含行為,由它定義
出的對(duì)象既具有狀態(tài)特征,又具有行為特征,而且能夠把屬于自己
的特征很好地隱藏起來(lái)。第9章類的繼承與多態(tài),同第8章一起構(gòu)
成了面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ),使 C語(yǔ)言發(fā)展和提升為既面向過(guò)程
又面向?qū)ο蟮?C++程序設(shè)計(jì)語(yǔ)言。第10章 C++流,介紹了數(shù)據(jù)
文件的定義和使用,利用它能夠訪問(wèn)和處理永久保存在外部介質(zhì)上
1
■ C++語(yǔ)言程序設(shè)計(jì)
的數(shù)據(jù)文件。
本書(shū)的每一章都配有多樣而豐富的課后練習(xí)題,供讀者練習(xí)和使用,以便檢查學(xué)
習(xí)效果。課后練習(xí)題參考解答將通過(guò)出版社網(wǎng)站免費(fèi)提供。
盡管我們做出了很大努力,由于水平有限,本書(shū)中難免存在不足或錯(cuò)誤,敬請(qǐng)廣
大師生和讀者給予批評(píng)指正。
作 者
2021年秋于北京
徐孝凱,男,教授,國(guó)家開(kāi)放大學(xué)(中央廣播電視大學(xué))計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)《C語(yǔ)言程序設(shè)計(jì)》課程主講。1955年3月出生,1982年8月畢業(yè)于南京理工大學(xué)計(jì)算機(jī)系,現(xiàn)任國(guó)家開(kāi)放大學(xué)(中央廣播電視大學(xué))理工教學(xué)部計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院教授。
第1章 C++語(yǔ)言概述 /1
1.1 引言…………………………………………………… 1
1.2 C++字符集 ………………………………………… 2
1.3 C++單詞 …………………………………………… 4
1.4 C++語(yǔ)句 …………………………………………… 6
1.5 C++函數(shù) …………………………………………… 7
1.6 C++程序結(jié)構(gòu) …………………………………… 12
1.7 VC++ 6.0集成開(kāi)發(fā)環(huán)境 ……………………… 14
習(xí)題1 ……………………………………………………… 25
第2章 數(shù)據(jù)類型和表達(dá)式 /28
2.1 數(shù)據(jù)類型 …………………………………………… 28
2.2 常量 ………………………………………………… 31
2.3 變量 ………………………………………………… 35
2.4 運(yùn)算符和表達(dá)式 …………………………………… 39
2.5 常用的系統(tǒng)函數(shù) …………………………………… 47
習(xí)題2 ……………………………………………………… 52
第3章 流程控制語(yǔ)句 /57
3.1 概述 ………………………………………………… 57
3.2 選擇類語(yǔ)句 ………………………………………… 57
3.3 循環(huán)類語(yǔ)句 ………………………………………… 66
3.4 跳轉(zhuǎn)類語(yǔ)句 ………………………………………… 82
習(xí)題3 ……………………………………………………… 85
1
■ C++語(yǔ)言程序設(shè)計(jì)
第4章 數(shù)組和字符串 /92
4.1 數(shù)組的概念 ……………………………………………………………… 92
4.2 一維數(shù)組 ………………………………………………………………… 93
4.3 二維數(shù)組 ………………………………………………………………… 97
4.4 使用typedef語(yǔ)句定義數(shù)組類型 …………………………………… 102
4.5 數(shù)組的應(yīng)用 ……………………………………………………………… 104
4.6 字符串 …………………………………………………………………… 115
4.6.1 字符串的概念 ……………………………………………………… 115
4.6.2 字符串函數(shù) ………………………………………………………… 118
4.6.3 字符串應(yīng)用實(shí)例 …………………………………………………… 121
4.6.4 字符串類型 ………………………………………………………… 125
習(xí)題4…………………………………………………………………………… 127
第5章 指針 /132
5.1 指針的概念 ……………………………………………………………… 132
5.2 指針變量 ………………………………………………………………… 133
5.3 指針運(yùn)算 ………………………………………………………………… 139
5.4 指針與數(shù)組 ……………………………………………………………… 142
5.4.1 指針與一維數(shù)組 …………………………………………………… 142
5.4.2 指針與二維數(shù)組 …………………………………………………… 145
5.5 引用變量 ………………………………………………………………… 146
5.6 動(dòng)態(tài)存儲(chǔ)分配…………………………………………………………… 148
習(xí)題5…………………………………………………………………………… 155
第6章 函數(shù) /161
6.1 函數(shù)定義 ………………………………………………………………… 161
6.1.1 函數(shù)定義格式 ……………………………………………………… 161
6.1.2 函數(shù)定義格式舉例 ………………………………………………… 162
6.1.3 有關(guān)函數(shù)定義的幾點(diǎn)說(shuō)明 ………………………………………… 163
6.2 函數(shù)調(diào)用 ………………………………………………………………… 165
6.2.1 函數(shù)調(diào)用格式 ……………………………………………………… 165
6.2.2 函數(shù)調(diào)用過(guò)程 ……………………………………………………… 166
6.2.3 函數(shù)調(diào)用舉例 ……………………………………………………… 169
6.3 變量作用域 ……………………………………………………………… 173
6.3.1 作用域分類 ………………………………………………………… 173
2
目 錄 ■
6.3.2 具有不同作用域?qū)ο蟮某绦蚺e例 ………………………………… 175
6.4 遞歸函數(shù) ………………………………………………………………… 181
6.5 函數(shù)重載 ………………………………………………………………… 184
6.6 模板函數(shù) ………………………………………………………………… 186
6.7 函數(shù)指針 ………………………………………………………………… 191
習(xí)題6…………………………………………………………………………… 193
第7章 結(jié)構(gòu)與聯(lián)合 /198
7.1 結(jié)構(gòu)和聯(lián)合的概念 …………………………………………………… 198
7.2 結(jié)構(gòu)的定義 ……………………………………………………………… 198
7.3 結(jié)構(gòu)變量的定義和初始化 …………………………………………… 202
7.4 結(jié)構(gòu)成員的訪問(wèn) ……………………………………………………… 205
7.5 使用結(jié)構(gòu)的程序舉例 ………………………………………………… 205
7.6 結(jié)構(gòu)與函數(shù) ……………………………………………………………… 210
7.7 結(jié)構(gòu)與運(yùn)算符重載 …………………………………………………… 213
7.7.1 運(yùn)算符重載的概念 ………………………………………………… 213
7.7.2 用一般函數(shù)實(shí)現(xiàn)對(duì)自定義數(shù)據(jù)類型的運(yùn)算功能 ………………… 214
7.7.3 用運(yùn)算符重載函數(shù)實(shí)現(xiàn)對(duì)自定義數(shù)據(jù)類型的運(yùn)算功能 ………… 217
7.7.4 運(yùn)算符重載函數(shù)應(yīng)用舉例 ………………………………………… 221
7.8 結(jié)構(gòu)與鏈表 ……………………………………………………………… 224
7.9 聯(lián)合 ……………………………………………………………………… 229
習(xí)題7…………………………………………………………………………… 236
第8章 類與對(duì)象 /243
8.1 類的概念與定義 ……………………………………………………… 243
8.2 類的運(yùn)算符重載成員函數(shù) …………………………………………… 249
8.3 構(gòu)造函數(shù) ………………………………………………………………… 253
8.3.1 無(wú)參構(gòu)造函數(shù)和帶參構(gòu)造函數(shù) …………………………………… 253
8.3.2 拷貝構(gòu)造函數(shù) ……………………………………………………… 258
8.3.3 賦值重載函數(shù) ……………………………………………………… 259
8.3.4 構(gòu)造函數(shù)中的初始化表 …………………………………………… 260
8.4 析構(gòu)函數(shù) ………………………………………………………………… 261
8.5 友元函數(shù)和友元類 …………………………………………………… 263
8.6 類的應(yīng)用舉例…………………………………………………………… 269
習(xí)題8…………………………………………………………………………… 276
3
■ C++語(yǔ)言程序設(shè)計(jì)
第9章 類的繼承與多態(tài) /283
9.1 類的繼承 ………………………………………………………………… 283
9.1.1 類的繼承性的概念 ………………………………………………… 283
9.1.2 派生類定義的格式 ………………………………………………… 283
9.1.3 派生類定義格式舉例 ……………………………………………… 285
9.1.4 派生類應(yīng)用舉例 …………………………………………………… 293
9.2 類的虛函數(shù)與多態(tài)性 ………………………………………………… 297
9.3 類的靜態(tài)成員…………………………………………………………… 302
9.3.1 靜態(tài)數(shù)據(jù)成員 ……………………………………………………… 302
9.3.2 靜態(tài)函數(shù)成員 ……………………………………………………… 304
9.4 模板類 …………………………………………………………………… 305
習(xí)題9…………………………………………………………………………… 314
第10章 C++流 /321
10.1 C++流的概念 ……………………………………………………… 321
10.2 輸入輸出格式控制 …………………………………………………… 323
10.2.1 ios類中的枚舉類型 ……………………………………………… 323
10.2.2 ios類中的成員函數(shù) ……………………………………………… 325
10.2.3 格式控制符 ………………………………………………………… 328
10.3 文件操作 ……………………………………………………………… 331
10.3.1 文件的概念 ………………………………………………………… 331
10.3.2 文件的打開(kāi)和關(guān)閉 ………………………………………………… 333
10.3.3 字符文件的訪問(wèn)操作 ……………………………………………… 335
10.3.4 字節(jié)文件的訪問(wèn)操作 ……………………………………………… 343
10.4 字符串流 ……………………………………………………………… 350
習(xí)題10 352
附錄 ASCII代碼表 /358
參考文獻(xiàn) /359