C++程序設計簡明教程
-
【作 者】黃能耿 黃致遠 胡麗丹
【I S B N 】978-7-5170-7961-3
【責任編輯】石永峰
【適用讀者群】本專通用
【出版時間】2019-11-12
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數(shù)】328
【千字數(shù)】501
【印 張】20.5
【定 價】¥48
【叢 書】高等職業(yè)教育“十三五”規(guī)劃教材(軟件技術(shù)專業(yè))
【備注信息】
簡介
本書特色
前言
章節(jié)列表
精彩閱讀
下載資源
相關(guān)圖書
本書是“Jitor實訓叢書”中的一本,以軟件行業(yè)對編程人才的需求為導向,以培養(yǎng)應用型和創(chuàng)新型人才為目標,以Visual C++ 6.0為平臺,重點講解C++程序設計基礎(chǔ)、數(shù)組、函數(shù)、指針、面向?qū)ο蟮某绦蛟O計等內(nèi)容,最后以一個綜合項目結(jié)束。本書面向初學者,以程序設計的基本主線為重點,深入講解程序設計的內(nèi)涵,并將軟件企業(yè)中的開發(fā)流程、編碼規(guī)范等職業(yè)素養(yǎng)有機地融入到教材中。
本書的特點是提供了一個在線的Jitor校驗器軟件(下載地址為http://ngweb.org/),提供了160個Jitor實訓項目和46個Jitor綜合實訓項目,讀者可以在Jitor校驗器的指導下一步步地完成實訓任務,每完成一步都提交給Jitor校驗器檢查,并實時得到通過或失敗的反饋信息,校驗通過后才能進入下一步操作。Jitor校驗器還會將成績上傳到服務器,讓教師實時掌握學生的實訓進展情況。此外,本書還針對C++的重點和難點提供了25個微課。
本書既可作為高等職業(yè)院校的教材,也可作為應用型本科、中等職業(yè)院校、非學歷培訓機構(gòu)的教材,還可供自學者使用。
本書中的206個Jitor實訓項目也可配合其他教材使用。
實例:豐富典型,簡明扼要,易于理解
實訓:通過Jitor校驗器在線使用實時反饋結(jié)果
微課:針對C++ 的重點和難點提供了微課
綜合實訓:測試讀者綜合運用所學知識的能力
綜合項目:可以安排在單獨的課程設計專用周中完成
本書根據(jù)高等職業(yè)教育特點,結(jié)合作者多年教學改革和應用實踐經(jīng)驗編寫而成。全書遵循項目導向的理念,在內(nèi)容上做到簡而精,在要求上實現(xiàn)高而嚴。本書不求面面俱到,但重點和難點會詳細講解,并通過Jitor校驗器指導讀者反復練習,通過動手做讓學習更輕松、理解更深刻、記憶更久遠。
本書的最大特點是采用了作者開發(fā)的Jitor實訓平臺(見表2)。
表2 Jitor實訓平臺功能介紹
Jitor實訓平臺是信息技術(shù)大類專業(yè)課程(C、C++、Java、Python、MySQL和SQL Server等)的實訓教學平臺,提供實訓項目供教師選用。每門課程提供100~200個實訓項目,對學生編寫的代碼和運行結(jié)果進行實時評價,實時監(jiān)測全班學生的實訓進展情況。
Jitor實訓平臺下載地址為http://ngweb.org,包括Jitor校驗器和Jitor管理器的入口地址。
教師容易使用,一步一步地教
根據(jù)教學進度,在Jitor管理器中選擇合適的Jitor實訓項目發(fā)布給學生,要求學生在指定的時間內(nèi)完成。可以安排在實訓課的上課時間,也可以安排在課前課后時間里完成,教師可以實時掌握每位學生每個步驟的成功或失敗情況。
實訓項目的每個步驟都有實訓指導內(nèi)容,詳細描述了該步驟的要求。教師只要布置好實訓,Jitor校驗器就會自動地一步一步教學生如何去完成,并檢查完成的效果。 學生樂于學習,一關(guān)一關(guān)地學
每個實訓項目由若干步驟組成,就像通關(guān)游戲一樣,每個步驟如同關(guān)卡,每通過一個關(guān)卡就能得到一定的分數(shù),如果通關(guān)失敗,則倒扣1分。只要通過所有關(guān)卡,就能得到及格以上分數(shù),如果想得高分,就要盡量避免失敗。
學生按照每一關(guān)卡的要求進行編程操作,完成后提交給Jitor校驗器檢查,成功通關(guān)并得到分數(shù)后才能進入下一個關(guān)卡。學生只需跟著一關(guān)一關(guān)地學,就能學到編程技能。
本書每個章節(jié)都有代碼實例,提供了206個在線Jitor實訓項目,供讀者選擇使用;最后一章是“綜合項目”,綜合運用本書知識完成一個學生成績管理系統(tǒng)的開發(fā)。
本書特點如下:
(1)實例:本書包含大量實例,實例簡明扼要、容易理解。
(2)實訓:所有實例都有配套的實訓,通過Jitor校驗器在線使用,實時反饋結(jié)果。
(3)綜合實訓:每章結(jié)尾都有一些綜合實訓,測試讀者綜合運用所學知識的能力。
(4)綜合項目:最后一章是一個綜合性項目,可以安排在單獨的課程設計專用周中完成。
(5)微課:針對C++的重點和難點提供了25個微課。
本書遵循高職學生的認知和技能形成規(guī)律,使用通俗易懂的語言,配合數(shù)量眾多的實例,由易到難、由淺入深、循序漸進地介紹各個知識點,通過大量的Jitor實訓項目進行驗證和鞏固,并通過每章結(jié)尾的綜合實訓進行綜合練習。在最后一章的綜合項目中進行全面綜合運用,將知識融于形象的案例中,提高學習的興趣和效果。
本書面向初學者,起點低、無門檻,不需要任何編程基礎(chǔ)知識,高中生就能學習。讀者學完本書后,可以閱讀更多的C++書籍,進一步提高編程水平。
本書第1章至第8章以C語言程序設計為主(僅有輸入/輸出和內(nèi)存分配采用C++語言),因此本書也可用作C語言程序設計課程的教材;第9章至第13章為面向?qū)ο蟪绦蛟O計部分,全面講解了面向?qū)ο蟪绦蛟O計的三大特征:封裝性、繼承性和多態(tài)性。教師可以根據(jù)學生情況和教學安排(通常分為兩個學期)來組織教學內(nèi)容(見表3),如果課時不夠可以跳過某些內(nèi)容。
表3 課時安排建議
章 課時 章 課時
第1章 C++概述 4 第8章 枚舉和結(jié)構(gòu)體 8
第2章 C++語言基礎(chǔ) 8 第9章 類和對象—封裝性 12
第3章 程序結(jié)構(gòu)和流程控制 12 第10章 父類和子類—繼承性 8
第4章 數(shù)組 10 第11章 重載和覆蓋—多態(tài)性 8
第5章 函數(shù) 12 第12章 文件操作 4
第6章 編譯預處理 4 第13章 綜合項目(課程設計) 專用周
第7章 指針與引用 12 合計 102
本書提供的課件、軟件等相關(guān)資源可以從本書主頁http://ngweb.org/下載。
本書由無錫職業(yè)技術(shù)學院的黃能耿和胡麗丹、無錫賽博盈科科技有限公司的黃致遠共同編寫,由無錫職業(yè)技術(shù)學院的劉德強副教授主審。其中黃致遠和胡麗丹各執(zhí)筆100千字,Jitor實訓平臺由黃能耿研發(fā),Jitor實訓項目由黃致遠制作,全書由黃能耿統(tǒng)稿。在本書編寫過程中編者得到單位領(lǐng)導和同事的大力支持和幫助,在此表示衷心感謝。
由于編者水平有限,加之時間倉促,書中不足甚至錯誤之處在所難免,懇請讀者批評指正。
編者
2019年7月
1.1 為什么學C++ 1
1.2 安裝VC++ 6.0開發(fā)軟件 1
1.3 體驗C++ 2
1.3.1 體驗C++程序和Jitor校驗器 2
1.3.2 Jitor校驗器的使用 7
1.3.3 C++的輸入和輸出 10
1.3.4 C++程序的結(jié)構(gòu) 12
1.3.5 C++程序的開發(fā)過程 15
1.3.6 C++工作空間和項目 15
1.4 常見問題 16
1.4.1 VC++ 6.0的安裝 16
1.4.2 VC++ 6.0的使用 16
1.4.3 VC++ 6.0的項目和文件 17
1.4.4 編程時遇到的問題 18
1.5 常用資源 19
1.6 綜合實訓 19
第2章 C++語言基礎(chǔ) 20
2.1 C++的基本要素 20
2.1.1 關(guān)鍵字 20
2.1.2 標識符 20
2.1.3 分隔符 20
2.1.4 代碼注釋 21
2.2 數(shù)據(jù)類型 21
2.3 變量和常量 22
2.3.1 變量 22
2.3.2 字面常量 24
2.3.3 const常量 26
2.3.4 中文字符 26
2.3.5 程序調(diào)試:變量的查看 27
2.4 運算符和表達式 28
2.4.1 表達式與算術(shù)運算符、賦值運算符 28
2.4.2 自增、自減運算符 29
2.4.3 關(guān)系運算符和關(guān)系表達式 30
2.4.4 邏輯運算符和邏輯表達式 30
2.4.5 邏輯運算和關(guān)系運算的應用 31
2.4.6 位運算符和位運算表達式 32
2.4.7 復合賦值運算符 33
2.4.8 數(shù)據(jù)類型轉(zhuǎn)換 33
2.4.9 運算符的優(yōu)先級 35
2.5 簡單的輸入輸出 36
2.5.1 數(shù)據(jù)輸出 36
2.5.2 數(shù)據(jù)輸入 37
2.5.3 數(shù)據(jù)格式控制 38
2.6 綜合實訓 40
第3章 程序結(jié)構(gòu)和流程控制 41
3.1 基本結(jié)構(gòu)和語句 41
3.1.1 程序的三種基本結(jié)構(gòu) 41
3.1.2 C++程序的指令和語句 41
3.2 分支語句 42
3.2.1 if語句 42
3.2.2 if語句的嵌套 45
3.2.3 條件運算符和條件表達式 47
3.2.4 switch語句 48
3.2.5 實例詳解(一):求給定年份和
月份的天數(shù) 52
3.2.6 代碼命名和排版規(guī)范 54
3.3 循環(huán)語句 55
3.3.1 while循環(huán)語句 55
3.3.2 do…while循環(huán)語句 56
3.3.3 程序調(diào)試:循環(huán)的跟蹤調(diào)試 57
3.3.4 for循環(huán)語句 58
3.3.5 循環(huán)語句的幾種變化 59
3.3.6 循環(huán)語句的嵌套 60
3.3.7 實例詳解(二):求π的近似值 61
3.3.8 實例詳解(三):斐波那契數(shù)列 62
3.4 控制語句 62
3.4.1 break語句 62
3.4.2 continue語句 63
3.4.3 語句標號和goto語句 64
3.4.4 exit()和abort()函數(shù) 65
3.4.5 實例詳解(四):求自然對數(shù)的底
e的近似值 66
3.4.6 實例詳解(五):輸出素數(shù)表 66
3.4.7 實例詳解(六):百錢買百雞問題 68
3.5 綜合實訓 69
第4章 數(shù)組 71
4.1 一維數(shù)組 71
4.1.1 一維數(shù)組的定義和使用 72
4.1.2 一維數(shù)組的最大值、最小值和
平均值 73
4.1.3 一維數(shù)組逆序交換 74
4.1.4 程序調(diào)試:一維數(shù)組的跟蹤調(diào)試 75
4.1.5 實例詳解(一):冒泡排序法 75
4.1.6 實例詳解(二):選擇排序法 77
4.1.7 實例詳解(三):擂臺排序法 78
4.2 二維數(shù)組 80
4.2.1 二維數(shù)組的定義和使用 81
4.2.2 二維數(shù)組的平均值 82
4.2.3 實例詳解(四):二維數(shù)組(矩陣)
的轉(zhuǎn)置 83
4.3 字符數(shù)組 84
4.3.1 字符數(shù)組和字符串 84
4.3.2 字符串處理函數(shù) 87
4.4 綜合實訓 88
第5章 函數(shù) 90
5.1 函數(shù)概述 90
5.1.1 使用C/C++庫函數(shù) 90
5.1.2 使用自定義函數(shù) 91
5.1.3 函數(shù)返回值 93
5.1.4 無返回值的函數(shù) 94
5.1.5 main函數(shù)的形式 96
5.1.6 函數(shù)原型說明 96
5.1.7 程序調(diào)試:函數(shù)的跟蹤調(diào)試 98
5.2 函數(shù)調(diào)用 99
5.2.1 傳值調(diào)用—實參與形參的關(guān)系 99
5.2.2 嵌套調(diào)用—楊輝三角 100
5.2.3 遞歸調(diào)用—階乘 102
5.3 函數(shù)參數(shù)與數(shù)組 103
5.3.1 數(shù)組元素作為函數(shù)參數(shù) 103
5.3.2 一維數(shù)組作為函數(shù)參數(shù) 104
5.3.3 二維數(shù)組作為函數(shù)參數(shù) 106
5.4 變量的存儲類型 108
5.4.1 函數(shù)與源代碼文件 108
5.4.2 作用域 110
5.4.3 動態(tài)變量與靜態(tài)變量 113
5.4.4 局部變量與全局變量 114
5.4.5 外部變量 116
5.4.6 全局變量與全局靜態(tài)變量 117
5.4.7 聲明和定義的區(qū)別 118
5.4.8 寄存器變量 119
5.5 內(nèi)聯(lián)函數(shù) 119
5.6 參數(shù)默認值 120
5.7 函數(shù)重載 121
5.8 綜合實訓 122
第6章 編譯預處理 123
6.1 宏定義指令 123
6.1.1 不帶參數(shù)的宏定義 123
6.1.2 帶參數(shù)的宏定義 125
6.2 文件包含指令 126
6.2.1 包含系統(tǒng)頭文件 126
6.2.2 包含自定義頭文件 127
6.2.3 嵌套的文件包含 128
6.3 條件編譯指令 128
6.3.1 條件編譯 128
6.3.2 條件編譯與文件包含 129
6.3.3 實例詳解:文件包含與條件編譯 130
6.4 綜合實訓 132
第7章 指針與引用 133
7.1 指針變量 133
7.1.1 指針變量與普通變量 134
7.1.2 指針變量與一維數(shù)組 136
7.1.3 指針變量的運算 138
7.1.4 指針指向的值的運算 138
7.1.5 指針運算的優(yōu)先級 139
7.1.6 程序調(diào)試:變量、指針與內(nèi)存 141
7.2 指針與數(shù)組 143
7.2.1 一維數(shù)組與指針 143
7.2.2 二維數(shù)組與指針 145
7.2.3 字符數(shù)組與字符指針 147
7.3 指針與函數(shù)參數(shù) 149
7.3.1 傳指針調(diào)用—指針變量作為
函數(shù)參數(shù) 149
7.3.2 一維數(shù)組與指針作為函數(shù)參數(shù) 151
7.3.3 字符串復制函數(shù) 152
7.4 指針數(shù)組與數(shù)組指針 153
7.4.1 指針數(shù)組—每個元素都是指針 153
7.4.2 數(shù)組指針—指向數(shù)組的指針 155
7.5 指針函數(shù)與函數(shù)指針 158
7.5.1 指針函數(shù)—返回指針值的函數(shù) 158
7.5.2 函數(shù)指針—保存函數(shù)地址的指針 159
7.5.3 實例詳解(一):通用求定積分
函數(shù) 162
7.6 動態(tài)內(nèi)存分配 164
7.6.1 new和delete運算符 164
7.6.2 實例詳解(二):一維數(shù)組的
動態(tài)管理 166
7.6.3 實例詳解(三):二維數(shù)組的
動態(tài)管理 168
7.7 引用類型變量和const的指針 169
7.7.1 引用類型變量 169
7.7.2 傳引用調(diào)用—引用變量作為
函數(shù)參數(shù) 170
7.7.3 const的指針 172
7.8 綜合實訓 173
第8章 枚舉和結(jié)構(gòu)體 174
8.1 枚舉類型 174
8.1.1 枚舉類型的使用 174
8.1.2 枚舉變量的類型轉(zhuǎn)換、輸出和輸入 176
8.2 結(jié)構(gòu)體類型 177
8.2.1 結(jié)構(gòu)體類型的使用 177
8.2.2 結(jié)構(gòu)體變量的輸入和輸出 180
8.2.3 結(jié)構(gòu)體指針 182
8.2.4 結(jié)構(gòu)體作為函數(shù)參數(shù) 184
8.2.5 結(jié)構(gòu)體的典型應用—鏈表 187
8.2.6 鏈表的基本操作 187
8.2.7 程序調(diào)試:內(nèi)存中的鏈表 190
8.2.8 清空鏈表 191
8.2.9 查找節(jié)點 192
8.2.10 刪除節(jié)點 192
8.2.11 按序插入節(jié)點 193
8.3 綜合實訓 195
第9章 類和對象—封裝性 196
9.1 類與對象 196
9.1.1 類與對象的使用 196
9.1.2 程序調(diào)試:內(nèi)存中的對象和
對象數(shù)組 199
9.1.3 類和封裝性 200
9.1.4 對象的輸入和輸出 201
9.1.5 對象指針 203
9.1.6 對象作為函數(shù)參數(shù) 206
9.1.7 對象作為類的成員變量 209
9.1.8 引用性說明和定義性說明 210
9.2 訪問控制 213
9.2.1 訪問控制修飾符 213
9.2.2 友元函數(shù)和友元類 215
9.3 構(gòu)造函數(shù) 217
9.3.1 構(gòu)造函數(shù)的使用 217
9.3.2 用構(gòu)造函數(shù)建立一個對象的拷貝 221
9.3.3 new運算符和構(gòu)造函數(shù) 222
9.4 析構(gòu)函數(shù) 224
9.4.1 析構(gòu)函數(shù)的使用 224
9.4.2 delete運算符和析構(gòu)函數(shù) 226
9.5 構(gòu)造函數(shù)和成員對象 227
9.5.1 調(diào)用成員對象的構(gòu)造函數(shù) 227
9.5.2 多個成員對象的構(gòu)造函數(shù) 229
9.6 靜態(tài)成員變量 232
9.7 this指針 234
9.8 綜合實訓 234
第10章 父類和子類—繼承性 236
10.1 類的繼承 236
10.1.1 父類與子類 236
10.1.2 程序調(diào)試:內(nèi)存中的父類對象和
子類對象 239
10.1.3 訪問控制 240
10.1.4 繼承方式 241
10.1.5 單繼承與多重繼承 242
10.1.6 構(gòu)造函數(shù)的調(diào)用次序 244
10.2 命名沖突和支配規(guī)則 245
10.2.1 多重繼承時的命名沖突—
域運算符 245
10.2.2 父類與子類的命名問題—
支配規(guī)則 246
10.3 對象的賦值兼容規(guī)則 248
10.4 虛基類(虛繼承) 249
10.5 綜合實訓 253
第11章 重載和覆蓋—多態(tài)性 255
11.1 靜態(tài)的多態(tài) 255
11.1.1 函數(shù)重載 255
11.1.2 運算符重載 255
11.1.3 二元運算符重載(普通函數(shù)版) 256
11.1.4 二元運算符重載(成員函數(shù)版) 260
11.1.5 二元運算符重載(友元函數(shù)版) 261
11.1.6 一元運算符重載 263
11.1.7 字符串類運算符重載 266
11.2 動態(tài)的多態(tài) 268
11.2.1 虛函數(shù) 268
11.2.2 程序調(diào)試:內(nèi)存中的虛函數(shù) 272
11.2.3 純虛函數(shù)和抽象類 274
11.3 綜合實訓 275
第12章 文件操作 276
12.1 輸入輸出流 276
12.2 文件讀寫操作 277
12.2.1 文件讀寫概述 277
12.2.2 讀寫和復制文本文件 278
12.2.3 讀寫文本文件(二維數(shù)組) 280
12.2.4 讀寫文本文件(對象數(shù)組) 282
12.2.5 復制二進制文件 285
12.2.6 插入“<<”和提取“>>”運算符
的重載 286
12.3 綜合實訓 287
第13章 綜合項目 289
13.1 學生管理系統(tǒng) 289
13.1.1 需求分析 289
13.1.2 技術(shù)選型和功能設計 289
13.1.3 類結(jié)構(gòu)設計 290
13.1.4 程序結(jié)構(gòu)設計 291
13.1.5 項目實現(xiàn) 292
13.1.6 項目完整源代碼 292
13.1.7 開發(fā)過程總結(jié) 307
13.2 自定義管理系統(tǒng) 308
參考文獻 309
附錄A ASCII碼表 310
附錄B C++關(guān)鍵字 311
附錄C C++運算符與優(yōu)先級 312
附錄D C++常用庫函數(shù) 313
- 機械制圖 [許淑珍 于利民]
- 微積分(經(jīng)管類)導學篇(下冊) [王海棠 曹海軍 周玲麗]
- 大學生創(chuàng)新創(chuàng)業(yè)基礎(chǔ) [主編 姜國權(quán) 姜福佳]
- 農(nóng)產(chǎn)品云倉模式研究—以北京農(nóng)產(chǎn)品流通物流供應鏈重構(gòu)為例 [武曉釗 王成林 王春娟 等著]
- 信息技術(shù)(微課版) [王云 徐江鴻 李清霞 羅學鋒 ]
- 管理基礎(chǔ)與實務 [主編 王鳳基 顏漢軍]
- 高等數(shù)學導學篇(下冊) [主編 李文婧 胡雷 尹金生]
- 高等數(shù)學導學篇(上冊) [主編 李文婧 胡雷 尹金生]
- 高等數(shù)學(下冊) [主編 李愛芹 胡雷 尹金生]
- 高等數(shù)學(上冊) [主編 李愛芹 胡雷 尹金生]
- 庭院風骨—樹、灌、籬 [創(chuàng)意房主 著]
- Python語言程序設計教程 [郭其標 房宜汕]
- 微積分(經(jīng)管類)教程篇(下冊) [曹海軍 王海棠 周玲麗]
- 微積分(經(jīng)管類)教程篇(上冊) [曹海軍 王海棠 周玲麗]
- 微積分(經(jīng)管類)導學篇(上冊) [王海棠 曹海軍 周玲麗]
- 網(wǎng)站前端技術(shù)案例教程(HTML+CSS+JavaScript)(第二版) [黃華升]
- 線性代數(shù) [主編 史昱 陳鳳欣]
- 電力電子技術(shù)課程學習及實驗指導 [主編 陳榮]
- 成長對話:青春的榜樣 [主編 施端銀 黃武剛 應巨林]
- 人工智能應用基礎(chǔ) [主編 楊纓 李佳]
- 中華水文化(慕課版)(第二版) [畢雪燕 楊華軻 羅玲誼 等編著]
- 電路與電子技術(shù)Ⅱ——電路分析基礎(chǔ) [主編 陳曉 金哲]
- 飛機維修專業(yè)英語——飛機系統(tǒng)(第二版) [趙迎春]
- 英語大爆炸:跟趣味情景劇學口語(微課版) [秦然 編著]
- 機械工程制圖任務跟蹤訓練 [主編 王瑞清 趙金考 周彥云 ]
- 機械工程制圖 [主編 覃國萍 劉百順 禹晨]
- 平面設計與制作項目化教程 [主編 李晨]
- 后期影像剪輯技術(shù) [主編 郭建偉]
- 人工智能概論(第二版) [主編 任云暉 丁紅 徐迎春 ]
- 信息時代美育之道 [主編 劉宏宇 黎婭]