热门关键字:  听力密码  听力密码  新概念美语  单词密码  巧用听写练听力
图书信息

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





最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册