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
- Java面向对象程序设计 [主编 姜春磊 陈虹洁]
- C语言程序设计实验指导与实训(第二版) [主编 倪燃]
- 系统集成项目管理工程师案例分析一本通(第二版) [王树文 编著]
- Python程序设计及实践教程 [肖朝晖]
- C语言程序设计 [魏琴 刘祖珉 赵仕波 肖阳春]
- C语言程序设计实验教程 [张小刚 司春景]
- Photoshop图像处理案例教程 [李清玲]
- 电气控制与PLC程序设计(第二版) [胡冠山]
- Java Web项目化设计实践教程 [邱云 曾陈萍]
- 信息系统项目管理师案例分析一本通(第二版) [王树文 编著]
- C语言程序设计(第三版) [主编 丁红 王立新 蔡开立]
- Python数据分析 [主编 冯志辉 赵磊 李放]
- Python程序设计与应用(第二版) [主编 张广渊]
- 电子产品设计案例教程(微课版)—基于嘉立创EDA(专业版) [王静 莫志宏 陈学昌 丁红]
- C程序设计实践教程 [刘卫国]
- C程序设计(慕课版) [刘卫国]
- 程序设计基础实践教程(C/C++语言版) [张桂芬 葛丽娜]
- SwiftUI完全开发 [李智威 著]
- MySQL数据库项目式教程 [陈亚峰]
- C语言程序设计习题与实验指导(第二版) [主编 甄增荣 张宾]
- C语言程序设计(第二版) [主编 甄增荣 田云霞]
- Unity3D虚拟现实应用开发实践 [主 编 刘龙]
- Python程序设计 [主编 姜春磊 陈虹洁]
- C语言程序设计实践教程(活页式) [主编 郑茵 陈巍 滕泓虬]
- 面向对象程序设计 [主编 张勇 张平华 赵小龙]
- Python程序设计基础及实战 [主编 刘健]
- C语言程序设计 [姜雪]
- Python程序设计实践教程 [王鹤琴 蔡正保]
- C++程序设计实践教程(第三版) [主编 刘卫国 曹岳辉]
- C++程序设计(第三版) [主编 曹岳辉 刘卫国]