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