C++案例項目精講
-
【作 者】主編 楊國興
【I S B N 】978-7-5226-1922-4
【責任編輯】魏淵源
【適用讀者群】本專(zhuān)通用
【出版時(shí)間】2023-12-19
【開(kāi) 本】16開(kāi)
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁(yè) 數】272
【千字數】392
【印 張】17
【定 價(jià)】¥49
【叢 書(shū)】暫無(wú)分類(lèi)
【備注信息】
簡(jiǎn)介
本書(shū)特色
前言
章節列表
精彩閱讀
下載資源
相關(guān)圖書(shū)
本書(shū)以五子棋項目案例為主線(xiàn),介紹使用C++開(kāi)發(fā)應用軟件的各種技術(shù),并充分體現面向對象的程序設計思想。本書(shū)內容包括多線(xiàn)程與網(wǎng)絡(luò )編程基礎、單機版五子棋、網(wǎng)絡(luò )五子棋、棋譜的保存與回放和五子棋人機對戰等。本書(shū)對C++中的界面編程、多線(xiàn)程編程、網(wǎng)絡(luò )編程、數據庫編程以及五子棋算法都有詳細的討論。
本書(shū)案例趣味性強,項目實(shí)現過(guò)程描述詳細,可作為大專(zhuān)院校計算機類(lèi)各專(zhuān)業(yè)C++程序設計實(shí)訓、C++程序設計課程設計等課程的教材,也可以作為C++程序設計愛(ài)好者的參考書(shū)。
前 言
C++是目前最流行的程序設計語(yǔ)言之一,是在C語(yǔ)言的基礎上發(fā)展起來(lái)的,融入了面向對象的程序設計方法。對軟件開(kāi)發(fā)人員來(lái)說(shuō),掌握 C++基礎以及具有使用 C++進(jìn)行軟件開(kāi)發(fā)的能力是非常重要的,因此大多數與計算機相關(guān)的專(zhuān)業(yè)都開(kāi)設了C++程序設計課程。
C++程序設計(包括任何一種計算機語(yǔ)言課程)是一門(mén)實(shí)踐性很強的課程,僅掌握 C++的基本語(yǔ)法知識,與利用 C++進(jìn)行軟件開(kāi)發(fā)還有很大的差距。因此,學(xué)習者在掌握 C++的基本語(yǔ)法知識后,應該通過(guò)大量的編程實(shí)踐,逐步提高利用C++進(jìn)行軟件開(kāi)發(fā)的能力。
《C++開(kāi)發(fā)案例精講》以五子棋游戲制作為例,介紹利用C++進(jìn)行軟件開(kāi)發(fā)的技術(shù)。五子棋游戲比較簡(jiǎn)單,是大家比較熟悉的游戲之一,因此選擇五子棋游戲為例,有助于提高學(xué)習者的興趣,易于按照書(shū)中介紹的步驟,逐步將五子棋游戲制作出來(lái)。
本書(shū)由 5 章內容組成,包括多線(xiàn)程與網(wǎng)絡(luò )編程基礎、單機版五子棋、網(wǎng)絡(luò )五子棋、棋譜的保存與回放以及五子棋人機對戰,涉及的主要知識有界面編程、多線(xiàn)程編程、數據庫編程和網(wǎng)絡(luò )編程等。本書(shū)的所有程序都由編者親自編寫(xiě),并在 Visual Studio 2022環(huán)境下調試通過(guò),數據庫使用的是MySQL數據庫。
本書(shū)的主要特色是給出了程序實(shí)現的詳細過(guò)程,真正體現手把手教學(xué),學(xué)習者只要按照書(shū)中介紹的步驟練習,就能得到最終所需要的程序。
為了方便教師教學(xué)與學(xué)生學(xué)習,本書(shū)提供了 PowerPoint 電子教案,方便教師根據具體情況進(jìn)行必要的修改;為自學(xué)的讀者提供了全書(shū)的視頻講解,可掃描書(shū)中的二維碼觀(guān)看。
北京科技大學(xué)姚琳教授、魏增產(chǎn)教授,防災科技學(xué)院李忠教授認真審閱了全書(shū)并提出了許多寶貴意見(jiàn)。本書(shū)的編寫(xiě)得到了北京科技大學(xué)教材建設經(jīng)費的資助,在此一并表示衷心的感謝!
由于編者水平有限,書(shū)中若有不妥之處,懇請專(zhuān)家與讀者批評指正。
編 者
2023年5月
第1章 多線(xiàn)程與網(wǎng)絡(luò )編程基礎 1
1.1 安裝Visual Studio 2022 1
1.1.1 下載Visual Studio 2022安裝程序 1
1.1.2 安裝Visual Studio 2022 1
1.2 多線(xiàn)程編程基礎 3
1.2.1 線(xiàn)程的基本操作 3
1.2.2 線(xiàn)程同步 9
1.3 網(wǎng)絡(luò )編程基礎 20
1.3.1 網(wǎng)絡(luò )基本概念 21
1.3.2 套接字編程的基本步驟 21
1.3.3 網(wǎng)絡(luò )編程的主要函數 23
1.3.4 服務(wù)器端與客戶(hù)端編程實(shí)例 27
1.4 一個(gè)簡(jiǎn)單的聊天室程序 32
1.4.1 創(chuàng )建服務(wù)器端界面 32
1.4.2 創(chuàng )建客戶(hù)端界面 36
1.4.3 服務(wù)器端編程 37
1.4.4 客戶(hù)端編程 45
1.4.5 完善其他功能 48
第2章 單機版五子棋 50
2.1 單機版五子棋介紹 50
2.2 創(chuàng )建游戲界面 51
2.2.1 創(chuàng )建基于對話(huà)框的程序 51
2.2.2 設計用戶(hù)界面 52
2.3 設計棋盤(pán)類(lèi) 56
2.3.1 添加棋盤(pán)類(lèi) 56
2.3.2 在棋盤(pán)類(lèi)中添加代碼 57
2.3.3 在對話(huà)框中顯示棋盤(pán) 60
2.4 設計棋子類(lèi) 61
2.4.1 設計棋子類(lèi) 61
2.4.2 顯示棋子 64
2.5 實(shí)現單擊下棋的功能 65
2.5.1 在棋盤(pán)類(lèi)中加入新的成員 65
2.5.2 修改棋盤(pán)類(lèi)的成員函數 66
2.5.3 修改對話(huà)框類(lèi) 70
2.6 判斷贏(yíng)棋 70
2.6.1 在棋盤(pán)類(lèi)中添加hasChess()函數 71
2.6.2 在棋盤(pán)類(lèi)中添加isWin()函數 72
2.6.3 修改Go()函數 74
2.7 實(shí)現重新開(kāi)始和悔棋功能 75
2.7.1 實(shí)現重新開(kāi)始功能 75
2.7.2 實(shí)現悔棋功能 76
2.8 改變光標的形狀 77
2.8.1 在棋盤(pán)類(lèi)中添加canGo()函數 77
2.8.2 在對話(huà)框類(lèi)中添加鼠標移動(dòng)的消息響應函數 77
2.9 加入聲音 78
2.9.1 導入資源 78
2.9.2 播放聲音 79
第3章 網(wǎng)絡(luò )五子棋 81
3.1 網(wǎng)絡(luò )五子棋介紹 81
3.2 創(chuàng )建游戲界面 82
3.2.1 創(chuàng )建服務(wù)器端界面 82
3.2.2 創(chuàng )建客戶(hù)端界面 86
3.2.3 加入棋盤(pán) 90
3.2.4 創(chuàng )建“登錄”對話(huà)框 91
3.3 實(shí)現登錄的功能 94
3.3.1 定義消息結構和常量 95
3.3.2 啟動(dòng)服務(wù)器 103
3.3.3 客戶(hù)端連接服務(wù)器 108
3.3.4 服務(wù)器處理LOGIN消息 112
3.3.5 客戶(hù)端處理服務(wù)器消息 119
3.4 邀請對局 126
3.4.1 客戶(hù)端發(fā)出邀請 127
3.4.2 服務(wù)器處理INVITE消息 133
3.4.3 客戶(hù)端處理INVITE消息 134
3.4.4 服務(wù)器處理同意或拒絕對局的消息 135
3.4.5 客戶(hù)端處理同意或拒絕對局的消息 139
3.5 完成下棋功能 144
3.5.1 準備下棋 145
3.5.2 下棋消息的處理 147
3.5.3 贏(yíng)棋消息的處理 149
3.5.4 實(shí)現認輸功能 152
3.6 完善功能 154
3.6.1 完善離線(xiàn)處理 154
3.6.2 對手離線(xiàn)時(shí)的處理 155
3.6.3 線(xiàn)程同步問(wèn)題 155
3.6.4 加入倒計時(shí)功能 159
第4章 棋譜的保存與回放 163
4.1 創(chuàng )建數據庫 163
4.1.1 MySQL的下載與安裝 163
4.1.2 數據庫設計 164
4.1.3 創(chuàng )建數據庫和表 164
4.2 用戶(hù)管理和棋局管理 165
4.2.1 用戶(hù)管理 165
4.2.2 棋局管理 176
4.3 用戶(hù)注冊和登錄 189
4.3.1 準備工作 189
4.3.2 實(shí)現功能 191
4.4 棋局和棋譜的保存 195
4.4.1 為CClient類(lèi)添加新成員 196
4.4.2 為CClient類(lèi)的成員color賦值 196
4.4.3 記錄棋譜 196
4.4.4 保存棋局和棋譜 197
4.5 棋譜回放 198
4.5.1 棋譜的回放過(guò)程 198
4.5.2 客戶(hù)端顯示對局列表 199
4.5.3 客戶(hù)端獲取棋譜數據 206
4.5.4 實(shí)現棋譜回放 209
第5章 五子棋人機對戰 215
5.1 準備工作 216
5.1.1 創(chuàng )建項目并添加資源 216
5.1.2 修改對話(huà)框類(lèi) 216
5.1.3 添加CBoardStatus類(lèi) 218
5.1.4 修改CBoard類(lèi) 220
5.1.5 實(shí)現人與計算機輪流下棋功能 224
5.2 計算機智能下棋 226
5.2.1 五子棋的棋型與估值 226
5.2.2 估值類(lèi)CEvaluate 230
5.2.3 實(shí)現計算機智能下棋 245
5.3 極小極大搜索法提高下棋水平 246
5.3.1 棋局的評估與極小極大搜索法 246
5.3.2 極小極大搜索法的實(shí)現 249
5.4 Alpha-Beta搜索法 258
5.4.1 Alpha-Beta搜索法簡(jiǎn)介 258
5.4.2 Alpha-Beta搜索法的實(shí)現 259
參考文獻 264
- 信息系統項目管理師案例分析一本通(第二版) [王樹(shù)文 編著(zhù)]
- C語(yǔ)言程序設計(第三版) [主編 丁紅 王立新 蔡開(kāi)立]
- Python數據分析 [主編 馮志輝 趙磊 李放]
- Python程序設計與應用(第二版) [主編 張廣淵]
- 電子產(chǎn)品設計案例教程(微課版)—基于嘉立創(chuàng )EDA(專(zhuān)業(yè)版) [王靜 莫志宏 陳學(xué)昌 丁紅]
- C程序設計實(shí)踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- 程序設計基礎實(shí)踐教程(C/C++語(yǔ)言版) [張桂芬 葛麗娜]
- SwiftUI完全開(kāi)發(fā) [李智威 著(zhù)]
- MySQL數據庫項目式教程 [陳亞峰]
- C語(yǔ)言程序設計習題與實(shí)驗指導(第二版) [主編 甄增榮 張賓]
- C語(yǔ)言程序設計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現實(shí)應用開(kāi)發(fā)實(shí)踐 [主 編 劉龍]
- Python程序設計 [主編 姜春磊 陳虹潔]
- C語(yǔ)言程序設計實(shí)踐教程(活頁(yè)式) [主編 鄭茵 陳巍 滕泓虬]
- 面向對象程序設計 [主編 張勇 張平華 趙小龍]
- Python程序設計基礎及實(shí)戰 [主編 劉健]
- C語(yǔ)言程序設計 [姜雪]
- Python程序設計實(shí)踐教程 [王鶴琴 蔡正保]
- C++程序設計實(shí)踐教程(第三版) [主編 劉衛國 曹岳輝]
- C++程序設計(第三版) [主編 曹岳輝 劉衛國]
- C語(yǔ)言程序設計項目化教程(活頁(yè)式) [主編 張利華 潘曉利]
- 機器人流程自動(dòng)化(RPA)實(shí)戰——基于UiPath [主編 金鑫]
- Python 語(yǔ)言程序設計實(shí)踐指導 [主編 張雙獅]
- Python程序設計案例教程 [主編 毛錦庚 鐘肖英 周賢來(lái) ]
- 信息系統項目管理師案例分析一本通 [王樹(shù)文]
- 基于.NET Core框架的分布式系統架構設計 [湯佳 著(zhù)]
- Python語(yǔ)言程序設計教程 [郭其標 房宜汕]
- 網(wǎng)站前端技術(shù)案例教程(HTML+CSS+JavaScript)(第二版) [黃華升]
- C語(yǔ)言同步案例習題精解 [主編 肖朝暉]
- 教材類(lèi)more>>
- 生活經(jīng)管more>>
- 用英語(yǔ)介紹中國:經(jīng)典誦讀
- 化工分離技術(shù)與優(yōu)化策略研究
- 新概念英語(yǔ)單詞(全四冊)循環(huán)速記一本
- 水利水電工程金屬結構和機電設備制造監
- 廣西瑤族傳統服飾文化研究
- 多維視域下的高校籃球教學(xué)創(chuàng )新研究
- 輸水管線(xiàn)工程風(fēng)險管理
- 不息的水脈—大運河講談錄
- 三峽梯級電站水資源決策支持系統研究與
- 海南黎族民俗文化鑒賞
- C++案例項目精講
- 信息系統項目管理師章節習題與考點(diǎn)特訓
- 武術(shù)基礎教程
- HCIA-Datacom認證題庫分類(lèi)精講
- SwiftUI完全開(kāi)發(fā)
- 網(wǎng)絡(luò )規劃設計師備考一本通