C++案例項(xiàng)目精講
-
【作 者】主編 楊國(guó)興
【I S B N 】978-7-5226-1922-4
【責(zé)任編輯】魏淵源
【適用讀者群】本專(zhuān)通用
【出版時(shí)間】2023-12-19
【開(kāi) 本】16開(kāi)
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁(yè) 數(shù)】272
【千字?jǐn)?shù)】392
【印 張】17
【定 價(jià)】¥49
【叢 書(shū)】暫無(wú)分類(lèi)
【備注信息】
簡(jiǎn)介
本書(shū)特色
前言
章節(jié)列表
精彩閱讀
下載資源
相關(guān)圖書(shū)
本書(shū)以五子棋項(xiàng)目案例為主線(xiàn),介紹使用C++開(kāi)發(fā)應(yīng)用軟件的各種技術(shù),并充分體現(xiàn)面向?qū)ο蟮某绦蛟O(shè)計(jì)思想。本書(shū)內(nèi)容包括多線(xiàn)程與網(wǎng)絡(luò)編程基礎(chǔ)、單機(jī)版五子棋、網(wǎng)絡(luò)五子棋、棋譜的保存與回放和五子棋人機(jī)對(duì)戰(zhàn)等。本書(shū)對(duì)C++中的界面編程、多線(xiàn)程編程、網(wǎng)絡(luò)編程、數(shù)據(jù)庫(kù)編程以及五子棋算法都有詳細(xì)的討論。
本書(shū)案例趣味性強(qiáng),項(xiàng)目實(shí)現(xiàn)過(guò)程描述詳細(xì),可作為大專(zhuān)院校計(jì)算機(jī)類(lèi)各專(zhuān)業(yè)C++程序設(shè)計(jì)實(shí)訓(xùn)、C++程序設(shè)計(jì)課程設(shè)計(jì)等課程的教材,也可以作為C++程序設(shè)計(jì)愛(ài)好者的參考書(shū)。
前 言
C++是目前最流行的程序設(shè)計(jì)語(yǔ)言之一,是在C語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的,融入了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。對(duì)軟件開(kāi)發(fā)人員來(lái)說(shuō),掌握 C++基礎(chǔ)以及具有使用 C++進(jìn)行軟件開(kāi)發(fā)的能力是非常重要的,因此大多數(shù)與計(jì)算機(jī)相關(guān)的專(zhuān)業(yè)都開(kāi)設(shè)了C++程序設(shè)計(jì)課程。
C++程序設(shè)計(jì)(包括任何一種計(jì)算機(jī)語(yǔ)言課程)是一門(mén)實(shí)踐性很強(qiáng)的課程,僅掌握 C++的基本語(yǔ)法知識(shí),與利用 C++進(jìn)行軟件開(kāi)發(fā)還有很大的差距。因此,學(xué)習(xí)者在掌握 C++的基本語(yǔ)法知識(shí)后,應(yīng)該通過(guò)大量的編程實(shí)踐,逐步提高利用C++進(jìn)行軟件開(kāi)發(fā)的能力。
《C++開(kāi)發(fā)案例精講》以五子棋游戲制作為例,介紹利用C++進(jìn)行軟件開(kāi)發(fā)的技術(shù)。五子棋游戲比較簡(jiǎn)單,是大家比較熟悉的游戲之一,因此選擇五子棋游戲?yàn)槔兄谔岣邔W(xué)習(xí)者的興趣,易于按照書(shū)中介紹的步驟,逐步將五子棋游戲制作出來(lái)。
本書(shū)由 5 章內(nèi)容組成,包括多線(xiàn)程與網(wǎng)絡(luò)編程基礎(chǔ)、單機(jī)版五子棋、網(wǎng)絡(luò)五子棋、棋譜的保存與回放以及五子棋人機(jī)對(duì)戰(zhàn),涉及的主要知識(shí)有界面編程、多線(xiàn)程編程、數(shù)據(jù)庫(kù)編程和網(wǎng)絡(luò)編程等。本書(shū)的所有程序都由編者親自編寫(xiě),并在 Visual Studio 2022環(huán)境下調(diào)試通過(guò),數(shù)據(jù)庫(kù)使用的是MySQL數(shù)據(jù)庫(kù)。
本書(shū)的主要特色是給出了程序?qū)崿F(xiàn)的詳細(xì)過(guò)程,真正體現(xiàn)手把手教學(xué),學(xué)習(xí)者只要按照書(shū)中介紹的步驟練習(xí),就能得到最終所需要的程序。
為了方便教師教學(xué)與學(xué)生學(xué)習(xí),本書(shū)提供了 PowerPoint 電子教案,方便教師根據(jù)具體情況進(jìn)行必要的修改;為自學(xué)的讀者提供了全書(shū)的視頻講解,可掃描書(shū)中的二維碼觀(guān)看。
北京科技大學(xué)姚琳教授、魏增產(chǎn)教授,防災(zāi)科技學(xué)院李忠教授認(rèn)真審閱了全書(shū)并提出了許多寶貴意見(jiàn)。本書(shū)的編寫(xiě)得到了北京科技大學(xué)教材建設(shè)經(jīng)費(fèi)的資助,在此一并表示衷心的感謝!
由于編者水平有限,書(shū)中若有不妥之處,懇請(qǐng)專(zhuān)家與讀者批評(píng)指正。
編 者
2023年5月
第1章 多線(xiàn)程與網(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 多線(xiàn)程編程基礎(chǔ) 3
1.2.1 線(xiàn)程的基本操作 3
1.2.2 線(xiàn)程同步 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ù)器端與客戶(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章 單機(jī)版五子棋 50
2.1 單機(jī)版五子棋介紹 50
2.2 創(chuàng)建游戲界面 51
2.2.1 創(chuàng)建基于對(duì)話(huà)框的程序 51
2.2.2 設(shè)計(jì)用戶(hù)界面 52
2.3 設(shè)計(jì)棋盤(pán)類(lèi) 56
2.3.1 添加棋盤(pán)類(lèi) 56
2.3.2 在棋盤(pán)類(lèi)中添加代碼 57
2.3.3 在對(duì)話(huà)框中顯示棋盤(pán) 60
2.4 設(shè)計(jì)棋子類(lèi) 61
2.4.1 設(shè)計(jì)棋子類(lèi) 61
2.4.2 顯示棋子 64
2.5 實(shí)現(xiàn)單擊下棋的功能 65
2.5.1 在棋盤(pán)類(lèi)中加入新的成員 65
2.5.2 修改棋盤(pán)類(lèi)的成員函數(shù) 66
2.5.3 修改對(duì)話(huà)框類(lèi) 70
2.6 判斷贏棋 70
2.6.1 在棋盤(pán)類(lèi)中添加hasChess()函數(shù) 71
2.6.2 在棋盤(pán)類(lèi)中添加isWin()函數(shù) 72
2.6.3 修改Go()函數(shù) 74
2.7 實(shí)現(xiàn)重新開(kāi)始和悔棋功能 75
2.7.1 實(shí)現(xiàn)重新開(kāi)始功能 75
2.7.2 實(shí)現(xiàn)悔棋功能 76
2.8 改變光標(biāo)的形狀 77
2.8.1 在棋盤(pán)類(lèi)中添加canGo()函數(shù) 77
2.8.2 在對(duì)話(huà)框類(lèi)中添加鼠標(biāo)移動(dòng)的消息響應(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)建客戶(hù)端界面 86
3.2.3 加入棋盤(pán) 90
3.2.4 創(chuàng)建“登錄”對(duì)話(huà)框 91
3.3 實(shí)現(xiàn)登錄的功能 94
3.3.1 定義消息結(jié)構(gòu)和常量 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 邀請(qǐng)對(duì)局 126
3.4.1 客戶(hù)端發(fā)出邀請(qǐng) 127
3.4.2 服務(wù)器處理INVITE消息 133
3.4.3 客戶(hù)端處理INVITE消息 134
3.4.4 服務(wù)器處理同意或拒絕對(duì)局的消息 135
3.4.5 客戶(hù)端處理同意或拒絕對(duì)局的消息 139
3.5 完成下棋功能 144
3.5.1 準(zhǔn)備下棋 145
3.5.2 下棋消息的處理 147
3.5.3 贏棋消息的處理 149
3.5.4 實(shí)現(xiàn)認(rèn)輸功能 152
3.6 完善功能 154
3.6.1 完善離線(xiàn)處理 154
3.6.2 對(duì)手離線(xiàn)時(shí)的處理 155
3.6.3 線(xiàn)程同步問(wèn)題 155
3.6.4 加入倒計(jì)時(shí)功能 159
第4章 棋譜的保存與回放 163
4.1 創(chuàng)建數(shù)據(jù)庫(kù) 163
4.1.1 MySQL的下載與安裝 163
4.1.2 數(shù)據(jù)庫(kù)設(shè)計(jì) 164
4.1.3 創(chuàng)建數(shù)據(jù)庫(kù)和表 164
4.2 用戶(hù)管理和棋局管理 165
4.2.1 用戶(hù)管理 165
4.2.2 棋局管理 176
4.3 用戶(hù)注冊(cè)和登錄 189
4.3.1 準(zhǔn)備工作 189
4.3.2 實(shí)現(xiàn)功能 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ù)端顯示對(duì)局列表 199
4.5.3 客戶(hù)端獲取棋譜數(shù)據(jù) 206
4.5.4 實(shí)現(xiàn)棋譜回放 209
第5章 五子棋人機(jī)對(duì)戰(zhàn) 215
5.1 準(zhǔn)備工作 216
5.1.1 創(chuàng)建項(xiàng)目并添加資源 216
5.1.2 修改對(duì)話(huà)框類(lèi) 216
5.1.3 添加CBoardStatus類(lèi) 218
5.1.4 修改CBoard類(lèi) 220
5.1.5 實(shí)現(xiàn)人與計(jì)算機(jī)輪流下棋功能 224
5.2 計(jì)算機(jī)智能下棋 226
5.2.1 五子棋的棋型與估值 226
5.2.2 估值類(lèi)CEvaluate 230
5.2.3 實(shí)現(xiàn)計(jì)算機(jī)智能下棋 245
5.3 極小極大搜索法提高下棋水平 246
5.3.1 棋局的評(píng)估與極小極大搜索法 246
5.3.2 極小極大搜索法的實(shí)現(xiàn) 249
5.4 Alpha-Beta搜索法 258
5.4.1 Alpha-Beta搜索法簡(jiǎn)介 258
5.4.2 Alpha-Beta搜索法的實(shí)現(xiàn) 259
參考文獻(xiàn) 264
- Java面向?qū)ο蟪绦蛟O(shè)計(jì) [主編 姜春磊 陳虹潔]
- C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與實(shí)訓(xùn)(第二版) [主編 倪燃]
- 系統(tǒng)集成項(xiàng)目管理工程師案例分析一本通(第二版) [王樹(shù)文 編著]
- Python程序設(shè)計(jì)及實(shí)踐教程 [肖朝暉]
- C語(yǔ)言程序設(shè)計(jì) [魏琴 劉祖珉 趙仕波 肖陽(yáng)春]
- C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)教程 [張小剛 司春景]
- Photoshop圖像處理案例教程 [李清玲]
- 電氣控制與PLC程序設(shè)計(jì)(第二版) [胡冠山]
- Java Web項(xiàng)目化設(shè)計(jì)實(shí)踐教程 [邱云 曾陳萍]
- 信息系統(tǒng)項(xiàng)目管理師案例分析一本通(第二版) [王樹(shù)文 編著]
- C語(yǔ)言程序設(shè)計(jì)(第三版) [主編 丁紅 王立新 蔡開(kāi)立]
- Python數(shù)據(jù)分析 [主編 馮志輝 趙磊 李放]
- Python程序設(shè)計(jì)與應(yīng)用(第二版) [主編 張廣淵]
- 電子產(chǎn)品設(shè)計(jì)案例教程(微課版)—基于嘉立創(chuàng)EDA(專(zhuān)業(yè)版) [王靜 莫志宏 陳學(xué)昌 丁紅]
- C程序設(shè)計(jì)實(shí)踐教程 [劉衛(wèi)國(guó)]
- C程序設(shè)計(jì)(慕課版) [劉衛(wèi)國(guó)]
- 程序設(shè)計(jì)基礎(chǔ)實(shí)踐教程(C/C++語(yǔ)言版) [張桂芬 葛麗娜]
- SwiftUI完全開(kāi)發(fā) [李智威 著]
- MySQL數(shù)據(jù)庫(kù)項(xiàng)目式教程 [陳亞峰]
- C語(yǔ)言程序設(shè)計(jì)習(xí)題與實(shí)驗(yàn)指導(dǎo)(第二版) [主編 甄增榮 張賓]
- C語(yǔ)言程序設(shè)計(jì)(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現(xiàn)實(shí)應(yīng)用開(kāi)發(fā)實(shí)踐 [主 編 劉龍]
- Python程序設(shè)計(jì) [主編 姜春磊 陳虹潔]
- C語(yǔ)言程序設(shè)計(jì)實(shí)踐教程(活頁(yè)式) [主編 鄭茵 陳巍 滕泓虬]
- 面向?qū)ο蟪绦蛟O(shè)計(jì) [主編 張勇 張平華 趙小龍]
- Python程序設(shè)計(jì)基礎(chǔ)及實(shí)戰(zhàn) [主編 劉健]
- C語(yǔ)言程序設(shè)計(jì) [姜雪]
- Python程序設(shè)計(jì)實(shí)踐教程 [王鶴琴 蔡正保]
- C++程序設(shè)計(jì)實(shí)踐教程(第三版) [主編 劉衛(wèi)國(guó) 曹岳輝]
- C++程序設(shè)計(jì)(第三版) [主編 曹岳輝 劉衛(wèi)國(guó)]

- 教材類(lèi)more>>
- 教輔培訓(xùn)more>>
- 生活經(jīng)管more>>
- 計(jì)算機(jī)基礎(chǔ)實(shí)訓(xùn)指導(dǎo)
- 用英語(yǔ)介紹中國(guó)經(jīng)典小故事
- 新概念英語(yǔ)單詞循環(huán)速記1:14天刻意練
- 新能源場(chǎng)站繼電保護(hù)傳動(dòng)作業(yè)指導(dǎo)書(shū)
- 高職院校“德技并修·三育協(xié)同”的育人
- 網(wǎng)絡(luò)規(guī)劃設(shè)計(jì)師真題及模考卷精析(適用
- 涼山脫貧地區(qū)鄉(xiāng)村治理研究
- 中國(guó)—東盟競(jìng)技體育文化共同體研究
- 數(shù)值分析
- 用英語(yǔ)介紹中國(guó)(四六級(jí)版)
- 用英語(yǔ)介紹中國(guó)(第二版)
- 基于AI的Java技術(shù)項(xiàng)目實(shí)戰(zhàn)
- 信息處理技術(shù)員真題及模考卷精析(適用
- 系統(tǒng)集成項(xiàng)目管理工程師案例分析一本通
- 信息安全工程師考前沖刺100題(第二版
- 信息系統(tǒng)項(xiàng)目管理師考前沖刺100題(配
