编辑推荐
贯穿全书的实例程序
简洁的C++语法和Windows程序设计的完美结合
特有的服务器和客户机多线程解决方案
内容简介
书籍 计算机书籍
本书以VC 6.0为开发平台,以一个完整的实例系统的开发过程为主线,将C++基本知识点和Windows程序设计的基础知识融入到实例系统的不同功能模块中去,并最终完成实例系统所有功能的代码。<BR>本书的主要内容为:第1~4章主要介绍C++的基础语法知识,这部分的程序设计不涉及任何界面编程,主要是利用C++进行实例系统底层类的封装和定义;第5~6章主要介绍MFC对Windows程序设计的封装和利用MFC进行Windows程序设计的方法,并完成实例系统中和界面相关的功能;第7~9章主要介绍Windows程序设计高级应用中的数据库编程、多线程编程以及利用Winsock进行网络通信编程这三个方面的知识,同时完成实例系统中比较核心的三大功能:数据库操作、多线程通信与同步以及底层网络通信。<BR>本书不仅仅介绍C++中比较核心和经常使用的基本语法,而且把C++编程和Windows编程有机结合起来,使读者不再孤立地用C++进行枯燥的没有界面的编程。此外,本书把所有的知识点都与实例系统中的一个个相关功能关联起来,使得读者在学习过程中充满趣味性。本书适合有一定的C语言编程基础的读者进行C++编程入门和进阶。
目录
前言<BR>教学建议<BR>第1章 初步认识C++和实例系统<BR>1.1 C++语言概述<BR>1.1.1 C++语言的特点<BR>1.1.2 类和对象的概念<BR>1.2 实例系统概述<BR>1.2.1 实例系统的总体功能<BR>1.2.2 实例系统的总体结构<BR>1.2.3 实例系统的协议设计<BR>1.3 实例系统开发前的准备<BR>1.3.1 创建服务器项目<BR>1.3.2 定义公共头文件<BR>1.3.3 定义协议<BR>1.4 本章小结<BR>1.5 思考与练习<BR>第2章 类和对象及其应用<BR>2.1 C++基础语法<BR>2.1.1 new和delete<BR>2.1.2 const限定修饰符<BR>2.1.3 引用<BR>2.2 类和对象<BR>2.2.1 类和对象的定义<BR>2.2.2 类成员的定义和访问<BR>2.2.3 类的构造函数和析构函数<BR>2.2.4 操作符重载<BR>2.2.5 类模板和标准模板库<BR>2.3 消息实体类的设计和实现<BR>2.3.1 消息实体类的设计<BR>2.3.2 消息实体类的实现<BR>2.4 在线用户信息类的设计<BR>2.4.1 在线用户信息类的定义<BR>2.4.2 在线用户信息类的实现<BR>2.5 本章小结<BR>2.6 思考与练习<BR>第3章 C++多态性的定义及其应用<BR>3.1 基类和派生类<BR>3.1.1 基类和派生类的定义<BR>3.1.2 基类和派生类成员的定义及其访问<BR>3.2 基类和派生类的构造及其析构<BR>3.2.1 基类和派生类的构造函数<BR>3.2.2 基类和派生类的析构函数<BR>3.3 多态性在C++中的体现<BR>3.3.1 静态多态性<BR>3.3.2 动态多态性<BR>3.4 实例系统数据库操作类的设计<BR>3.5 本章小结<BR>3.6 思考与练习<BR>第4章 C++的输入/输出流及其应用<BR>4.1 C++输入/输出流概述<BR>4.1.1 C++的输入/输出流类库<BR>4.1.2 C++对流文件的操作<BR>4.2 >>和<<输入/输出操作符<BR>4.2.1 >>和<<用于标准输入/输出<BR>4.2.2 >>和<<用于文件输入/输出<BR>4.2.3 >>和<<操作符的重载<BR>4.3 get()和put()输入/输出函数<BR>4.3.1 get()和put()用于标准输入/输出<BR>4.3.2 get()和put()用于文件输入/输出<BR>4.4 read()和write()输入/输出函数<BR>4.4.1 read()和write()用于标准输入/输出<BR>4.4.2 read()和write()用于文件输入/输出<BR>4.5 格式控制<BR>4.5.1 布尔变量的输出操作控制<BR>4.5.2 带进制整数的输出操作控制<BR>4.5.3 浮点数输出操作控制<BR>4.5.4 输入操作控制<BR>4.5.5 刷新缓冲区操作控制<BR>4.5.6 字符设置操作控制<BR>4.6 实例系统输入/输出类的设计<BR>4.6.1 输入/输出需求<BR>4.6.2 输入/输出类的实现<BR>4.7 本章小结<BR>4.8 思考与练习<BR>第5章 Windows程序设计基础<BR>5.1 概述<BR>5.1.1 窗口<BR>5.1.2 事件驱动<BR>5.1.3 句柄和Windows消息<BR>5.2 最简单的Windows应用程序<BR>5.2.1 最简单的Windows应用程序的组成<BR>5.2.2 最简单的Windows应用程序示例<BR>5.3 本章小结<BR>5.4 思考与练习<BR>第6章 MFC应用程序基础<BR>6.1 应用程序向导<BR>6.2 MFC应用程序中常用Windows标准控件的应用<BR>6.2.1 按钮控件及其应用<BR>6.2.2 列表框控件及其应用<BR>6.2.3 编辑框控件及其应用<BR>6.2.4 组合框控件及其应用<BR>6.2.5 对话框通用控件及其应用<BR>6.3 基于对话框的MFC应用程序在实例系统中的应用<BR>6.3.1 登录对话框的设计与实现<BR>6.3.2 添加全局变量和全局函数<BR>6.3.3 注册对话框的设计与实现<BR>6.3.4 主界面对话框的设计与实现<BR>6.3.5 查看联系人信息对话框的设计与实现<BR>6.3.6 查找联系人类型对话框的设计与实现<BR>6.3.7 查找联系人结果对话框的设计与实现<BR>6.3.8 文本聊天对话框的设计与实现<BR>6.3.9 为实例系统添加自定义消息<BR>6.4 本章小结<BR>6.5 思考与练习<BR>第7章 MFC数据库编程及其应用<BR>7.1 数据库系统的基本概念<BR>7.2 ODBC基本概念<BR>7.3 MFC的ODBC类简介<BR>7.3.1 CDatabase类<BR>7.3.2 CRecordset类<BR>7.4 设计实例系统数据库<BR>7.5 注册数据源<BR>7.6 设计实例系统数据库操作类<BR>7.7 本章小结<BR>7.8 思考与练习<BR>第8章 Windows多线程应用程序及其应用<BR>8.1 进程和线程<BR>8.1.1 进程和线程的概念<BR>8.1.2 线程的创建和终止<BR>8.2 线程同步<BR>8.2.1 事件对象<BR>8.2.2 临界段<BR>8.2.3 互斥体<BR>8.2.4 信号计数器<BR>8.3 线程通信<BR>8.3.1 利用全局对象进行线程通信<BR>8.3.2 利用自定义消息进行线程通信<BR>8.4 设计服务器多线程类<BR>8.4.1 服务器线程工作流程<BR>8.4.2 服务器线程类的实现<BR>8.5 设计客户端多线程类<BR>8.5.1 客户端线程工作流程<BR>8.5.2 客户端线程类的实现<BR>8.6 本章小结<BR>8.7 思考与练习<BR>第9章 Winsock编程及其应用<BR>9.1 网际协议<BR>9.1.1 TCP和UDP<BR>9.1.2 定址<BR>9.1.3 套接字<BR>9.2 Winsock基础<BR>9.2.1 Winsock的初始化<BR>9.2.2 错误检查和控制<BR>9.2.3 面向连接的协议<BR>9.2.4 无连接协议<BR>9.3 利用Winsock完善实例系统<BR>9.3.1 收发消息类的封装<BR>9.3.2 完善服务器收发消息线程<BR>9.3.3 完善服务器消息处理线程<BR>9.3.4 完善服务器主函数<BR>9.3.5 完善客户端收发消息线程<BR>9.4 本章小结<BR>9.5 思考与练习<BR>参考文献
前言
C++语言是美国贝尔实验室于20世纪80年代在C语言的基础上开发出来的,虽然在它之后又出现了Java和C#之类的新语言,但至今它仍是人们进行中型和大型软件开发项目的最佳选择之一。
本书不同于其他C++语言的教材,而是另辟蹊径,从一个实际的案例 “基于TCP/IP的点对点网络通信系统”出发,结合每一章的知识点,手把手地讲解如何利用学到的知识构架系统。这样不仅让学生在学习C++语言的语法的同时保持极大的兴趣,还能对真正地利用C++语言进行大型软件开发作一个有效的尝试,为学生今后从事开发工作打下良好的基础。
本书所用案例涉及网络协议、数据库、多线程等知识,所以要求读者对计算机网络、数据库、操作系统的基本知识有所了解。本书主要讲述C++面向对象及高级应用,所以面向的是有C或其他语言编程基础的读者。
在组织结构上本书采用案例贯通式,以案例为主线,每一章的案例实现都是建立在前面章节的基础上的。建议读者从头阅读,如果只选取其中的一两章进行阅读,则不能很好地理解案例的实现过程。
本书章节分配如下:
第1章初步认识C++和实例系统。本章首先介绍C++语言的特点,接着介绍本书实例系统的总体结构和功能,重点给出实例系统中的协议设计,最后建立服务器项目,为后面章节的实例系统开发做好准备。
第2章类和对象及其应用。本章介绍C++中类和对象的定义语法,利用这些知识来设计实例系统中的核心基础类:消息实体类和在线用户信息类。
第3章C++多态性的定义及其应用。本章主要介绍C++中继承的定义和多态性的实现,以及如何应用,即设计实例系统中数据库操作类的层次结构。
第4章C++的输入/输出流及其应用。本章详细介绍iostream库在标准输入/输出和文件的输入/输出两个方面的应用及相关语法,并在此基础上为实例系统设计能够读写配置文件信息的输入/输出类。
第5章Windows程序设计基础。本章介绍Windows应用程序的基本框架构成和运行机制。
第6章MFC应用程序基础。本章以实例系统中客户端的建立为例,介绍如何利用MFC和Visual C++的应用程序向导(Application Wizard)编写Windows应用程序,以及MFC应用程序中各种标准控件的使用。
第7章MFC数据库编程及其应用。本章介绍ODBC的概念和简单使用方法,并在此基础上设计实例系统数据库,完善实例系统中服务器端的数据库操作类。
第8章Windows多线程应用程序及其应用。本章主要介绍Windows多线程的概念,以及线程之间的同步与通信,设计实例系统中的服务器多线程类和客户端多线程类。
第9章Winsock编程及其应用。本章主要介绍在Win32平台上基于Winsock的TCP/IP编程基础知识,实现实例系统中网络通信的相关功能,完成整个实例系统。
为了更好地配合任课教师的教学,帮助学生解决学习中的困惑,本书还提供了配套的电子教案。如果需要,可以登录华章网站(www.hzbook.com)或通过邮件liuhengyang@cqut.edu.cn索取。
本书由重庆理工大学的刘恒洋、杨宏雨、王勇、王柯柯、刘洁、黄同愿和但远宏老师执笔编写,同时本书得到了重庆理工大学教材出版基金资助。
尽管我们在写作过程中投入了大量的时间和精力,但由于水平有限,错误和不足仍在所难免,敬请读者批评指正。
编 者
2010年5月