C++案例項目精講

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