欢迎来到中国铁道出版社有限公司官网!
$itImage.title$

C++语言程序设计(第二版)

书      号:9787113271008

丛  书 名:普通高等教育“十三五”规划教材

作      者:张思民,刘政宇,宋毅

译      者:

开      本:16开

装      帧:平装

正文语种:

出  版 社:中国铁道出版社有限公司

定      价:56

  • 内容简介

    C++语言是应用最广泛的面向对象的程序设计语言之一。本书注重可读性和实用性,配备了大量经
    过精心筛选的例题,既能帮助理解知识,又具有启发性。
    本书在内容编写上分为C++语言基础、C++特性和Windows操作系统下的应用程序开发基础三个部
    分,突出C++的编程思想和编程能力的培养。
    本书共分13章,分别介绍基本数据类型、程序控制语句、函数、数组、结构体、共用体和枚举类型、
    指针、类、对象、继承与派生、重载、虚函数、输入输出流、Windows编程、图形设计及应用、MFC编
    程及应用、多媒体程序设计、网络编程和数据库应用等内容。
    本书可以作为高等学校程序设计语言的教材,也可供从事软件开发的工程技术人员自学使用。
  • 前言

    C++语言自问世以来,历经多年发展,日臻成熟,目前 C++标准已经发展到 C++ 20。C++ 20
    在原有基础上提出了一些更为深入的概念,它所支持的面向对象的概念可以很容易地将问题空
    间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方
    法。
    本书第 2 版主要修改了第 1 版中的一些不妥之处,对部分内容作了一些充实和调整。
    全书共分为 13 章。
    第 1 章讲解 C++ 的开发过程和编写 C++ 程序的基本步骤,并介绍了在 Visual Studio 开发
    环境下创建标准 C++ 程序的方法。
    第 2 章介绍 C++ 语言的基本语法,介绍了简单的输入输出语句、基本数据类型、表达式
    和运算符,还介绍了程序设计的三大结构:顺序结构、分支结构和循环结构。
    第 3 章介绍函数,包括函数的定义、函数的调用、函数模板和函数重载等。
    第 4 章主要介绍构造数据类型,内容有数组和字符串的概念及其应用、结构体类型、共用
    体类型、枚举类型,还介绍了编译预处理概念。
    第 5 章介绍指针的概念以及指针与数组、指针与函数的关系,并介绍了指向结构体的指针
    的概念。
    第 6 章为面向对象的程序设计,主要介绍类与对象、构造函数和析构函数、友元、继承与
    派生、运算符重载等重要概念。可以说,这一章是 C++的核心与灵魂。
    第 7 章介绍输入输出流和文件的概念及其应用,并介绍了异常处理、命名空间等概念。
    第 8 章为 Windows 程序设计基础,主要介绍窗体程序设计的方法。
    第 9 章介绍 C++的图形程序设计,重点介绍图形设备接口(GDI)的绘图方法及其应用。
    第 10 章为 Visual C++ 的 MFC 编程简介,介绍了应用向导开发 MFC 应用程序的方法。
    第 11 章为 C++的多媒体应用程序设计示例,介绍了音频播放、图像显示等程序设计的方
    法。
    第 12 章为 C++的网络编程,主要介绍套接字编程和 Web 浏览器程序的编写方法。
    第 13 章介绍 Visual C++创建和调用数据库的基本方法。
    本书由张思民、刘政宇、宋毅任主编,蔡明任副主编,其中第 1、2、3、5 章由刘政宇完
    成,第 4、6、12、13 章及附录由宋毅完成,第 7、8 章由蔡明完成,第 9、10、11 章由张思民
    完成,全书由张思民统稿。在编写过程中,作者力求写出 C++的精髓,但是作者知识水平有限,因而书中疏漏之处在
    所难免,敬请读者批评指正。E-mail:zsm112233@163.com,本书课件可在中国铁道出版社有
    限公司官网 http://www.tdpress.com/51eds/下载。
    编 者
    2020 年 2 月
  • 目录

    第 1 章 C++语言概述........................................................................................................................1
    1.1 程序设计语言及 C++的特点................................................................................................1
    1.2 C++程序开发过程 ................................................................................................................2
    1.3 编写简单的 C++程序 ...........................................................................................................3
    1.4 应用 VC++编译、调试 C++程序..........................................................................................5
    本章小结 .......................................................................................................................................7
    习题一 ...........................................................................................................................................7
    第 2 章 C++语言基础........................................................................................................................8
    2.1 简单的输入输出语句 ...........................................................................................................8
    2.2 数据类型及分类.................................................................................................................10
    2.2.1 数据类型.................................................................................................................10
    2.2.2 基本数据类型.........................................................................................................11
    2.2.3 数据类型转换.........................................................................................................12
    2.2.4 变量 ........................................................................................................................12
    2.2.5 常量 ........................................................................................................................15
    2.3 表达式和运算符.................................................................................................................18
    2.3.1 表达式与运算符 .....................................................................................................18
    2.3.2 算术运算符.............................................................................................................18
    2.3.3 关系与逻辑运算符 .................................................................................................21
    2.3.4 位运算符.................................................................................................................23
    2.3.5 常用的标准函数 .....................................................................................................26
    2.4 程序控制语句.....................................................................................................................27
    2.4.1 语句 ........................................................................................................................27
    2.4.2 顺序控制语句.........................................................................................................28
    2.4.3 选择控制语句.........................................................................................................30
    2.4.4 switch 语句..............................................................................................................34
    2.4.5 循环语句.................................................................................................................35
    2.4.6 转向语句.................................................................................................................42
    2.5 应用实例 ............................................................................................................................42
    本章小结 .....................................................................................................................................46
    习题二 .........................................................................................................................................47
    第 3 章 函数.....................................................................................................................................51
    3.1 函数定义 ............................................................................................................................51
    3.1.1 函数的分类.............................................................................................................51
    3.1.2 函数的定义 ............................................................................................................ 51
    3.2 函数的调用........................................................................................................................ 53
    3.2.1 函数调用的语法形式............................................................................................. 53
    3.2.2 函数调用的过程..................................................................................................... 54
    3.2.3 函数的传值调用..................................................................................................... 55
    3.2.4 函数的引用调用..................................................................................................... 57
    3.2.5 函数的嵌套调用..................................................................................................... 60
    3.2.6 函数的递归调用..................................................................................................... 61
    3.3 函数模板............................................................................................................................ 62
    3.3.1 函数模板的定义..................................................................................................... 62
    3.3.2 模板函数 ................................................................................................................ 64
    3.4 变量的作用域和存储类型................................................................................................. 65
    3.4.1 变量的作用域 ........................................................................................................ 65
    3.4.2 变量的存储类型..................................................................................................... 66
    3.4.3 外部变量 ................................................................................................................ 69
    3.5 随机函数............................................................................................................................ 70
    3.6 函数重载............................................................................................................................ 72
    本章小结..................................................................................................................................... 73
    习题三......................................................................................................................................... 74
    第 4 章 构造数据类型及编译预处理........................................................................................... 76
    4.1 数组.................................................................................................................................... 76
    4.1.1 一维数组 ................................................................................................................ 76
    4.1.2 多维数组 ................................................................................................................ 79
    4.2 字符数组............................................................................................................................ 82
    4.2.1 字符数组与字符串................................................................................................. 82
    4.2.2 常用字符串处理函数............................................................................................. 83
    4.3 数组应用实践 .................................................................................................................... 85
    4.3.1 排序........................................................................................................................ 85
    4.3.2 查找........................................................................................................................ 91
    4.3.3 统计应用 ................................................................................................................ 97
    4.3.4 字符处理 ................................................................................................................ 98
    4.4 构造数据类型 .................................................................................................................... 98
    4.4.1 结构体类型 ............................................................................................................ 98
    4.4.2 共用体类型 ...........................................................................................................103
    4.4.3 枚举类型 ...............................................................................................................104
    4.5 编译预处理.......................................................................................................................105
    4.5.1 “文件包含”预处理..............................................................................................105
    4.5.2 宏定义...................................................................................................................106
    4.5.3 条件编译...............................................................................................................108
    4.6 类型重定义 typedef...........................................................................................................109
    本章小结 ...................................................................................................................................111
    习题四 .......................................................................................................................................111
    第 5 章 指针...................................................................................................................................114
    5.1 指针和指针变量...............................................................................................................114
    5.1.1 指针的概念...........................................................................................................114
    5.1.2 指针的运算...........................................................................................................117
    5.2 指针与数组.......................................................................................................................121
    5.2.1 指向数组的指针变量............................................................................................121
    5.2.2 指针与二维数组 ...................................................................................................124
    5.2.3 指针和字符串.......................................................................................................126
    5.3 指针与函数.......................................................................................................................129
    5.3.1 函数指针...............................................................................................................129
    5.3.2 指针做函数的参数 ...............................................................................................131
    5.3.3 指针型函数...........................................................................................................132
    5.3.4 带参数的 main()函数 ............................................................................................133
    5.4 指向结构体的指针...........................................................................................................134
    5.4.1 结构体指针...........................................................................................................134
    5.4.2 指向结构体数组的指针........................................................................................136
    5.5 应用实例 ..........................................................................................................................139
    本章小结 ...................................................................................................................................142
    习题五 .......................................................................................................................................143
    第 6 章 面向对象程序设计............................................................................................................144
    6.1 面向对象的基本概念 .......................................................................................................144
    6.1.1 面向对象程序设计的基本特点 ............................................................................144
    6.1.2 对象和类的概念 ...................................................................................................145
    6.2 类与对象...........................................................................................................................147
    6.2.1 类的定义...............................................................................................................147
    6.2.2 类的成员函数.......................................................................................................150
    6.2.3 对象 ...................................................................................................................... 151
    6.3 构造函数和析构函数 .......................................................................................................153
    6.3.1 构造函数...............................................................................................................153
    6.3.2 重载构造函数 .......................................................................................................155
    6.3.3 析构函数...............................................................................................................157
    6.3.4 复制构造函数.......................................................................................................159
    6.4 对象指针和静态类成员 ...................................................................................................161
    6.4.1 对象指针...............................................................................................................161
    6.4.2 this 指针 ................................................................................................................163
    6.4.3 静态类成员 ...........................................................................................................164
    6.5 动态内存分配 ...................................................................................................................169
    6.6 友元...................................................................................................................................172
    6.7 继承与派生.......................................................................................................................175
    6.7.1 继承.......................................................................................................................175
    6.7.2 派生类的继承方式................................................................................................177
    6.7.3 多继承...................................................................................................................180
    6.7.4 派生类的构造函数和析构函数.............................................................................183
    6.8 运算符重载.......................................................................................................................184
    6.9 虚函数...............................................................................................................................188
    6.9.1 虚函数的定义 .......................................................................................................188
    6.9.2 虚函数的访问........................................................................................................189
    6.9.3 虚函数与重载的关系及虚函数的限制.................................................................191
    6.9.4 纯虚函数与抽象类................................................................................................191
    6.10 应用实例 .........................................................................................................................193
    本章小结....................................................................................................................................202
    习题六........................................................................................................................................202
    第 7 章 输入输出流类库 ................................................................................................................207
    7.1 流的概念...........................................................................................................................207
    7.1.1 什么是流 ...............................................................................................................207
    7.1.2 C++流类库.............................................................................................................207
    7.1.3 预定义流对象 .......................................................................................................209
    7.2 重载提取和插入运算符....................................................................................................210
    7.3 常用操作输入输出流的成员函数 ....................................................................................211
    7.4 文件...................................................................................................................................214
    7.4.1 文件的概念 ...........................................................................................................214
    7.4.2 文件的打开与关闭................................................................................................216
    7.4.3 文本文件的读写操作............................................................................................219
    7.4.4 二进制文件的读写操作........................................................................................223
    7.4.5 随机访问文件 .......................................................................................................225
    7.5 异常处理 ...........................................................................................................................227
    7.5.1 异常的基本类型....................................................................................................227
    7.5.2 异常处理方法........................................................................................................228
    7.5.3 多个异常的处理方法 ............................................................................................231
    7.6 命名空间...........................................................................................................................232
    7.7 应用实例 ...........................................................................................................................233
    本章小结....................................................................................................................................236
    习题七 .......................................................................................................................................237
    第 8 章 Windows 程序设计基础...................................................................................................239
    8.1 Windows 编程基础............................................................................................................239
    8.1.1 Windows 程序设计的基本概念.............................................................................239
    8.1.2 事件驱动和 API 函数............................................................................................242
    8.2 Windows 程序主要函数与设计方法.................................................................................244
    8.2.1 Windows 程序的设计方法 ....................................................................................244
    8.2.2 Windows 程序的主要函数 ....................................................................................245
    8.3 利用 API 开发 Windows 程序 ...........................................................................................246
    8.3.1 编写 Windows 程序 ...............................................................................................246
    8.3.2 系统自动生成 Windows 程序框架 ........................................................................254
    本章小结 ...................................................................................................................................255
    习题八 .......................................................................................................................................255
    第 9 章 图形程序设计....................................................................................................................256
    9.1 设备描述符和图形设备接口............................................................................................256
    9.2 GDI 基本绘图工具的使用................................................................................................259
    9.2.1 画笔工具...............................................................................................................259
    9.2.2 画刷工具...............................................................................................................260
    9.2.3 颜色的设置...........................................................................................................261
    9.3 GDI 常用绘图函数 ...........................................................................................................262
    9.3.1 图形区域的绘图函数............................................................................................262
    9.3.2 填充图形内部区域的绘图函数 ............................................................................265
    9.4 应用实例 ..........................................................................................................................267
    本章小结 ...................................................................................................................................269
    习题九 .......................................................................................................................................269
    第 10 章 MFC 编程基础................................................................................................................270
    10.1 MFC 类库简介 ................................................................................................................270
    10.2 使用向导开发 MFC 应用程序 ........................................................................................273
    10.2.1 生成 MFC 应用程序框架 ....................................................................................274
    10.2.2 MFC 应用程序结构.............................................................................................277
    10.3 MFC 图形用户界面程序设计 .........................................................................................278
    10.3.1 控件..................................................................................................................... 278
    10.3.2 编辑框、静态文本框及命令按钮的使用...........................................................278
    10.3.3 几个常用控件的使用..........................................................................................285
    本章小结 ...................................................................................................................................288
    习题十 .......................................................................................................................................288
    第 11 章 多媒体应用程序设计 ......................................................................................................289
    11.1 应用音频函数设计声音播放器程序 ..............................................................................289
    11.1.1 声音文件播放原理..............................................................................................289
    11.1.2 高级音频函数 .....................................................................................................290
    11.1.3 简单音频播放程序设计 ......................................................................................291
    11.2 应用 MCIWnd 设计多媒体播放器程序...........................................................................292
    11.3 图像文件显示程序设计..................................................................................................295
    11.3.1 显示位图图像的相关函数 ..................................................................................295
    11.3.2 图像显示程序设计示例 ......................................................................................296
    11.4 基于.NET 基础类库的图像处理程序设计......................................................................298
    11.4.1 .NET 平台结构的 CLR.........................................................................................298
    11.4.2 .NET 基础类库的图像处理类 .............................................................................298
    11.4.3 图像处理示例......................................................................................................299
    本章小结....................................................................................................................................302
    习题十一....................................................................................................................................303
    第 12 章 网络应用程序设计 ..........................................................................................................304
    12.1 网络通信基础..................................................................................................................304
    12.1.1 网络基础知识......................................................................................................304
    12.1.2 TCP 与 UDP 协议 ................................................................................................306
    12.2 套接字编程 .....................................................................................................................307
    12.2.1 套接字 Winsocket................................................................................................307
    12.2.2 套接字函数 .........................................................................................................308
    12.2.3 Winsocket 网络编程示例.....................................................................................311
    12.3 利用 MFC 编写 Web 浏览器程序....................................................................................314
    12.3.1 CHtmlView 类 ......................................................................................................314
    12.3.2 CHtmlView 类的应用...........................................................................................315
    本章小结....................................................................................................................................318
    习题十二....................................................................................................................................318
    第 13 章 数据库应用程序设计 ......................................................................................................319
    13.1 数据库基础知识 .............................................................................................................319
    13.1.1 关系型数据库及 Access 数据库..........................................................................319
    13.1.2 ODBC 数据源 ......................................................................................................321
    13.1.3 应用程序访问数据库..........................................................................................322
    13.2 MFC 的 ODBC 数据库类 .................................................................................................322
    本章小结....................................................................................................................................328
    习题十三....................................................................................................................................328
    附录 A ASCII 码表.........................................................................................................................329
    附录 B 函数的参数传递.................................................................................................................330
    附录 C Visual C++ .NET 常用数据类型.......................................................................................331
  • 作者介绍


    张思民:教授,就职于厦门大学嘉庚学院,长期从事计算机类应用项目开发设计工作,并在高校担任计算机专业程序设计课程的教学工作,有丰富的教学经验和程序设计实践经验。并为企业开发设计过许多应用项目,承担过多项省部级科研课题研究。

    刘政宇:硕士研究生,哈尔滨华德学院教务处处长,副教授,主要从事大数据处理和面向对象的信息系统设计与开发等方面的研究,主讲《面向对象程序设计》、《数据仓库与数据挖掘》等课程,主审、主编或参编计算机相关专业教材十余本。

    宋毅:硕士研究生,哈尔滨华德学院教师,副教授,研究方向为计算机网络安全、自然语言处理,主讲课程有《操作系统》、《数据结构与算法》、《网络应用程序设计》等等。
  • 编辑推荐

    本书在内容编写上分为 C++语言基础和Windows操作系统下的应用程序开发基础两个部分,突出C++的编程思想和编程能力的培养。
  • 书评书荐

  • 附件下载

图书推荐